Logs on 2024-10-18 (liberachat/#haskell)
| 00:01:45 | → | xff0x joins (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) |
| 00:01:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 00:04:34 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 00:12:47 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:15:39 | × | alp quits (~alp@2001:861:e3d6:8f80:c611:3442:c342:856d) (Ping timeout: 246 seconds) |
| 00:21:28 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 00:30:06 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 00:32:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:34:12 | → | joeyadams joins (~joeyadams@syn-184-054-105-097.res.spectrum.com) |
| 00:34:58 | × | xff0x quits (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds) |
| 00:36:01 | → | xff0x joins (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) |
| 00:37:34 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 00:42:16 | × | identity quits (~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91)) |
| 00:48:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:53:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 00:56:27 | × | xff0x quits (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) (Ping timeout: 265 seconds) |
| 00:57:49 | → | user363627 joins (~user@user/user363627) |
| 01:01:38 | × | weary-traveler quits (~user@user/user363627) (Ping timeout: 252 seconds) |
| 01:04:14 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:05:24 | → | Guest21 joins (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
| 01:06:17 | <Guest21> | How can I combine a list of predicates to a single predicate, using logical or? |
| 01:09:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 01:13:58 | → | Square joins (~Square@user/square) |
| 01:14:06 | <dibblego> | Guest21: https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Monoid.html#t:Any with foldMap |
| 01:15:29 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 01:17:29 | × | Guest21 quits (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
| 01:17:53 | × | Square2 quits (~Square4@user/square) (Ping timeout: 245 seconds) |
| 01:18:22 | → | Guest21 joins (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
| 01:20:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:20:18 | <Guest21> | \ x -> getAny $ foldMap (Any . ($ x)) ps |
| 01:21:19 | <Guest21> | dibblego like this? |
| 01:21:30 | <dibblego> | lgtm! |
| 01:21:58 | <Guest21> | Still more complicated than what I would have hoped for |
| 01:22:09 | <dibblego> | there are functions that make it a little tidier |
| 01:22:39 | <Guest21> | How exactly would that work? |
| 01:22:42 | <monochrom> | \x -> any ($ x) ps |
| 01:23:20 | <Guest21> | This looks nice! Can we get rid of the lambda somehow? |
| 01:23:37 | <monochrom> | No. |
| 01:24:24 | <Guest21> | OK, thanks a lot |
| 01:24:49 | <monochrom> | Yes. Define "myHelper = \x -> any ($ x) ps". Now you just have to say "myHelper". |
| 01:25:05 | <Lears> | :t flip (any . (&)) |
| 01:25:06 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
| 01:25:26 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 01:26:17 | <Lears> | :t (getAny .) . foldMap (Any .) |
| 01:26:18 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
| 01:26:50 | <Lears> | (if you really like point-free) |
| 01:30:41 | × | Guest21 quits (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
| 01:35:52 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:42:41 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 01:42:53 | → | hgolden__ joins (~hgolden@23.162.40.110) |
| 01:45:49 | × | hgolden_ quits (~hgolden@146.70.173.101) (Ping timeout: 260 seconds) |
| 01:51:02 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:53:53 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:56:23 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds) |
| 01:58:39 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 02:02:29 | × | rekahsoft quits (~rekahsoft@76.69.85.220) (Ping timeout: 252 seconds) |
| 02:03:31 | × | spew quits (~spew@155.133.15.235) (Quit: spew) |
| 02:06:50 | <probie> | % import Data.Functor.Contravariant |
| 02:06:50 | <yahb2> | <no output> |
| 02:07:23 | <probie> | % :t not . getPredicate . foldMap (Predicate . (not .)) |
| 02:07:23 | <yahb2> | <interactive>:1:7: error: [GHC-83865] ; • Couldn't match type ‘a -> Bool’ with ‘Bool’ ; Expected: Predicate a -> Bool ; Actual: Predicate a -> a -> Bool ; • Probable cause: ‘g... |
| 02:07:44 | <probie> | % :t (not .) . getPredicate . foldMap (Predicate . (not .)) |
| 02:07:44 | <yahb2> | (not .) . getPredicate . foldMap (Predicate . (not .)) ; :: Foldable t => t (a -> Bool) -> a -> Bool |
| 02:09:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:09:58 | <monochrom> | onoes, double negation |
| 02:13:57 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 02:25:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:30:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 02:31:18 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 02:38:47 | <Axman6> | oh no, you can't not undo that! |
| 02:40:50 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:45:46 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 02:46:13 | × | td_ quits (~td@i53870903.versanet.de) (Ping timeout: 248 seconds) |
| 02:47:49 | → | td_ joins (~td@i53870913.versanet.de) |
| 02:55:49 | × | troojg quits (~troojg@user/troojg) (Ping timeout: 260 seconds) |
| 02:56:16 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:56:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:00:23 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
| 03:01:39 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:02:23 | → | Square2 joins (~Square4@user/square) |
| 03:04:53 | × | Square quits (~Square@user/square) (Ping timeout: 248 seconds) |
| 03:12:25 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:18:18 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
| 03:18:58 | → | pavonia joins (~user@user/siracusa) |
| 03:19:02 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 03:20:33 | × | monochrom quits (trebla@216.138.220.146) (Read error: Connection reset by peer) |
| 03:23:54 | → | monochrom joins (trebla@216.138.220.146) |
| 03:30:27 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:35:28 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 03:43:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:48:34 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 03:59:05 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:04:04 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 04:04:39 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:08:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:12:57 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:23:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:29:58 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 04:40:56 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:46:14 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 04:47:08 | → | neuroevolutus joins (~neuroevol@37.19.200.167) |
| 04:48:51 | × | neuroevolutus quits (~neuroevol@37.19.200.167) (Client Quit) |
| 04:56:44 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:03:33 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 05:03:56 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 05:13:38 | → | rosco joins (~rosco@175.136.23.238) |
| 05:14:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:18:59 | → | michalz joins (~michalz@185.246.207.222) |
| 05:19:08 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 245 seconds) |
| 05:19:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 05:22:08 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:27:03 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 05:28:17 | → | Square joins (~Square@user/square) |
| 05:30:59 | → | rvalue- joins (~rvalue@user/rvalue) |
| 05:31:09 | → | jero98772 joins (~jero98772@2800:484:1d7c:cc00::11) |
| 05:31:30 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 05:31:38 | × | Square2 quits (~Square4@user/square) (Ping timeout: 245 seconds) |
| 05:31:46 | → | euphores joins (~SASL_euph@user/euphores) |
| 05:31:50 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:34:53 | rvalue- | is now known as rvalue |
| 05:35:00 | <dmj`> | is the monomorphism restriction practical anymore |
| 05:36:39 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 05:36:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 05:39:24 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Client Quit) |
| 05:41:16 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 05:44:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:49:06 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 05:57:23 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:00:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:03:35 | × | jero98772 quits (~jero98772@2800:484:1d7c:cc00::11) (Quit: leaving) |
| 06:04:52 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:12:07 | × | Inst quits (~Inst@user/Inst) (Remote host closed the connection) |
| 06:12:26 | → | Inst joins (~Inst@user/Inst) |
| 06:14:25 | <probie> | Define "practical" |
| 06:15:48 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:19:10 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds) |
| 06:20:11 | → | monochrom joins (trebla@216.138.220.146) |
| 06:21:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 06:22:33 | → | briandaed joins (~root@185.234.210.211.r.toneticgroup.pl) |
| 06:27:07 | × | euleritian quits (~euleritia@dynamic-176-000-163-135.176.0.pool.telefonica.de) (Ping timeout: 264 seconds) |
| 06:28:04 | × | ft quits (~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:28:07 | → | euleritian joins (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) |
| 06:28:46 | × | joeyadams quits (~joeyadams@syn-184-054-105-097.res.spectrum.com) (Quit: Leaving) |
| 06:30:33 | → | acidjnk_new joins (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) |
| 06:31:35 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:36:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 06:41:29 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 06:42:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:45:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:48:58 | × | rosco quits (~rosco@175.136.23.238) (Quit: Lost terminal) |
| 06:52:39 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 06:56:59 | × | m1dnight quits (~christoph@d8D861908.access.telenet.be) (Quit: WeeChat 4.4.2) |
| 06:57:48 | → | m1dnight joins (~christoph@d8D861908.access.telenet.be) |
| 07:00:02 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 07:00:38 | → | caconym joins (~caconym@user/caconym) |
| 07:03:21 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:04:38 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 07:08:01 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 07:08:06 | → | danza joins (~danza@user/danza) |
| 07:19:07 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:23:20 | × | ubert quits (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 07:24:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 07:24:18 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 07:24:19 | × | synchromesh quits (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Read error: Connection reset by peer) |
| 07:25:48 | → | synchromesh joins (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) |
| 07:26:31 | × | dcoutts_ quits (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 264 seconds) |
| 07:30:26 | × | danza quits (~danza@user/danza) (Remote host closed the connection) |
| 07:31:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:32:37 | × | michalz quits (~michalz@185.246.207.222) (Ping timeout: 248 seconds) |
| 07:33:13 | → | michalz joins (~michalz@185.246.207.215) |
| 07:33:17 | × | michalz quits (~michalz@185.246.207.215) (Remote host closed the connection) |
| 07:34:57 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:36:09 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 07:36:23 | <tomsmeding> | dmj`: it is fair that I left ghc plugins out of my response, but given that they were hesitant to write a wrapper around (:>), I'm sure they wouldn't want to write a plugin :p |
| 07:36:37 | <tomsmeding> | and also I don't like plugins if the task can be done in any other way at all |
| 07:37:08 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 07:37:49 | → | michalz joins (~michalz@185.246.207.215) |
| 07:38:06 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
| 07:38:38 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 07:39:54 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:40:06 | × | ghoulguy quits (glguy@libera/staff/glguy) (Quit: Quit) |
| 07:42:14 | × | youthlic quits (~Thunderbi@user/youthlic) (Ping timeout: 260 seconds) |
| 07:42:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:43:19 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 07:43:31 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 07:49:52 | → | rosco joins (~rosco@175.136.23.238) |
| 07:58:04 | → | chele joins (~chele@user/chele) |
| 07:58:22 | → | madjesti1 joins (~madjestic@213.208.215.120) |
| 08:03:18 | × | madjesti1 quits (~madjestic@213.208.215.120) (Quit: leaving) |
| 08:14:24 | → | madjestic joins (~madjestic@213.208.215.120) |
| 08:16:21 | → | alp joins (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) |
| 08:19:36 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 08:21:33 | → | dcoutts_ joins (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
| 08:27:09 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 08:28:03 | → | dcoutts__ joins (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
| 08:30:49 | × | dcoutts_ quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 260 seconds) |
| 08:38:07 | → | mari-estel joins (~mari-este@user/mari-estel) |
| 08:38:09 | → | mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com) |
| 08:43:33 | → | __monty__ joins (~toonn@user/toonn) |
| 08:47:31 | × | comonad quits (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 08:49:31 | × | user363627 quits (~user@user/user363627) (Remote host closed the connection) |
| 08:49:35 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Read error: Connection reset by peer) |
| 08:53:08 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 08:53:56 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 09:02:57 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 09:03:05 | → | ubert joins (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) |
| 09:24:54 | × | Flow quits (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
| 09:27:01 | × | madjestic quits (~madjestic@213.208.215.120) (Quit: Lost terminal) |
| 09:30:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:31:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:38:38 | → | Flow joins (~none@gentoo/developer/flow) |
| 09:46:11 | × | mari-estel quits (~mari-este@user/mari-estel) (Ping timeout: 265 seconds) |
| 09:46:55 | × | rosco quits (~rosco@175.136.23.238) (Quit: Lost terminal) |
| 09:47:04 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 09:49:01 | → | mari-estel joins (~mari-este@user/mari-estel) |
| 09:53:42 | × | synchromesh quits (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Quit: WeeChat 4.0.5) |
| 09:59:48 | × | driib318 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 10:00:04 | mari-estel | still has not solved how to compile hoogle on this low-memory machine |
| 10:00:23 | → | driib318 joins (~driib@vmi931078.contaboserver.net) |
| 10:01:51 | <briandaed> | mari-estel? is it linux? maybe zram can help |
| 10:02:10 | <mari-estel> | cheers, gonna learn about zram |
| 10:02:25 | <mari-estel> | huh "No manual entry" |
| 10:02:27 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 10:02:42 | <mari-estel> | oh, zramctrl. Apropos helped |
| 10:03:35 | <mari-estel> | "set up and control zram devices". Sorry for the slight offtopic but... what is a zram device? |
| 10:06:01 | <mari-estel> | alright there is a link to https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/blockdev/zram.rst |
| 10:12:04 | × | mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Read error: Connection reset by peer) |
| 10:12:21 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 252 seconds) |
| 10:18:25 | × | mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection) |
| 10:18:40 | → | mari-estel joins (~mari-este@user/mari-estel) |
| 10:21:07 | <tomsmeding> | mari-estel: how much RAM; can you add swap? |
| 10:21:30 | <tomsmeding> | also what architecture and linux distro, perhaps someone else can compile for you |
| 10:22:10 | <mari-estel> | 3k MiB, i guess zramctrl is for adding swap, will read about that eventually. I guess this is ARM |
| 10:22:27 | <tomsmeding> | "3k MiB", is that 3 GiB? |
| 10:22:33 | <tomsmeding> | zram is for transparently compressing RAM |
| 10:22:43 | <mari-estel> | yeah 3 GiB i think |
| 10:22:44 | <tomsmeding> | which helps to the extent that processes store compressible stuff in RAM |
| 10:22:54 | <tomsmeding> | I believe zram functions by adding a swap device _in RAM_ that is compressed |
| 10:23:12 | <tomsmeding> | 3 GiB should be enough to compile most haskell things |
| 10:23:15 | <mari-estel> | hum i see. I would rather go for uncompressed swapped then. Any pointers to linux manuals i should read? |
| 10:23:29 | <mari-estel> | well hoogle fails and i think it could only be because of memory |
| 10:23:30 | <tomsmeding> | mari-estel: what happens if you just `cabal install -j1 hoogle`? |
| 10:23:47 | <mari-estel> | i will try that but... how would a single core help? |
| 10:24:04 | <tomsmeding> | well, compiling multiple things simultaneously means you now need to fit _two_ GHCs in RAM :p |
| 10:24:25 | <tomsmeding> | -j1 is an easy way to divide memory usage by like 4 |
| 10:24:32 | <mari-estel> | hmm |
| 10:24:34 | <tomsmeding> | (depending on how many cores it ran on before) |
| 10:24:44 | <mari-estel> | cool stuff, trying that now... |
| 10:25:13 | <tomsmeding> | if that doesn't work: keep passing -j1 to cabal, but also: sudo fallocate -l 1G /swapfile; sudo chmod 0600 /swapfile; sudo mkswap /swpafile; sudo swapon /swapfile |
| 10:25:24 | <tomsmeding> | s/swpafile/swapfile/ |
| 10:25:42 | <mari-estel> | plenty of hints, cheers tomsmeding! |
| 10:25:43 | <tomsmeding> | fairly sure this does not persist after a reboot |
| 10:25:51 | <tomsmeding> | (which is probably exactly as you want it) |
| 10:26:13 | <tomsmeding> | mari-estel: I have some experience building e.g. the haskell playground on a cheap VPS :p |
| 10:26:20 | × | euleritian quits (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) (Ping timeout: 260 seconds) |
| 10:26:20 | <mari-estel> | (: |
| 10:26:30 | <briandaed> | also there maybe processes that could be stopped, services or something that is not crucial |
| 10:27:02 | <mari-estel> | already tried with no other services running, but i am confident in -j1 and the rest |
| 10:27:04 | <geekosaur> | it will only persist if you add it as a swap entry in /etc/fstab |
| 10:27:11 | <tomsmeding> | right |
| 10:27:33 | <tomsmeding> | mari-estel: let me know what package it fails on if you compile with -j1 and it still fails |
| 10:27:54 | <tomsmeding> | if a haskell package needs more than 3 GiB of RAM to compile on a normal linux distro without excessive stuff happening, the fault is with that package, not with you |
| 10:28:31 | <tomsmeding> | (if it does, my bets are on vector or aeson) |
| 10:28:39 | <mari-estel> | good point about the package... wondering whether pre-installing that with --lib could help. Let us see whether any fails with -j1 |
| 10:29:00 | <tomsmeding> | pre-installing won't help, GHC is the big memory-eater here and GHC is restarted from scratch for every new package |
| 10:29:42 | <mari-estel> | hm but in theory if it find the right version ready it will not rebuild? |
| 10:29:48 | <mari-estel> | *finds |
| 10:30:08 | <tomsmeding> | if the problem is indeed memory, then the problem is the peak memory use during the whole process |
| 10:30:18 | <tomsmeding> | you aren't going to lower the peak by doing things in a different order |
| 10:30:48 | <mari-estel> | well avoiding a package's compilation would not allocate that extra amount |
| 10:31:01 | <tomsmeding> | sure, but to pre-install you still have to build it :p |
| 10:31:39 | <tomsmeding> | and having someone else build a _haskell library_ for you is folly, those things depend on the precise compilation configuration of all the transitive dependencies |
| 10:32:44 | <mari-estel> | i see what you mean, the compiler being restarted from scratch means peak is going to be the same, makes sense |
| 10:32:53 | <tomsmeding> | yep |
| 10:33:38 | <tomsmeding> | GHC does compile all the _modules_ in a single package in one process, and that theoretically could result in a higher peak than compiling all modules individually |
| 10:34:02 | <tomsmeding> | but 1. arranging that the latter happens in a cabal project is tricky, and 2. that won't give huge gains, I think |
| 10:34:29 | <mari-estel> | yeah and that is some delving i am not going to tackle at the moment anyways |
| 10:35:47 | <Inst> | people say that the only possible function with a type signature of a -> a, when you're not abusing unsafe, is id |
| 10:36:13 | <Inst> | but why isn't id' or seq foo included? |
| 10:36:25 | <tomsmeding> | what is id'? |
| 10:36:41 | <Inst> | \a -> seq a a |
| 10:36:46 | <tomsmeding> | that's the same as id ;) |
| 10:37:10 | <geekosaur> | do you understand what `seq a a` does? (or more precisely, doesn't do) |
| 10:37:15 | <tomsmeding> | in general, seq a a is the same as a |
| 10:37:27 | <tomsmeding> | it adds a dependency on the evaluation of a to the evaluation of its result, which is a |
| 10:37:34 | <geekosaur> | "ensure that `a` has been evaluated when `a` is evaluated" |
| 10:37:47 | <tomsmeding> | 'seq foo' is indeed different, I guess? |
| 10:38:28 | <Inst> | gah, waiting on browser is stop hanging :( |
| 10:38:34 | <geekosaur> | it's outside the type system model that we are using when discussing that, though |
| 10:39:08 | <geekosaur> | and in particular introduces a possible bottom, but we excluded `undefined`/bottom already from the discussion |
| 10:39:30 | <merijn> | Inst: because people generally handwave non-total inputs |
| 10:40:17 | × | kronicmage quits (~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 248 seconds) |
| 10:40:41 | <Inst> | iirc bang patterns desugars to seq |
| 10:41:01 | <Inst> | but bang patterns will trigger evaluation in where or let clauses |
| 10:41:57 | × | acidjnk_new quits (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 10:42:02 | <geekosaur> | oh, you only excluded unsafe. so I give you `undefined :: a -> a` |
| 10:42:12 | <Inst> | ack :( |
| 10:42:12 | <geekosaur> | (now you see why I excluded it) |
| 10:42:20 | <Inst> | i assume the bottom was excluded as well |
| 10:42:44 | <geekosaur> | but if you exclude bottom then you cannot discuss `seq` |
| 10:42:48 | <tomsmeding> | if you include bottoms, there are so many different bottoms |
| 10:42:56 | <Inst> | here's a weird mystery, like, let foo = id where !_ = undefined |
| 10:42:58 | <geekosaur> | because the only thing it can do is introduce a bottom |
| 10:43:15 | <tomsmeding> | and there is this "fast and loose reasoning is morally correct" paper that people vaguely cite when handwaving bottoms away |
| 10:45:40 | → | leah2 joins (~leah@vuxu.org) |
| 10:46:19 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 10:49:19 | <Inst> | hmmm, seems more like an issue with my understanding of bang patterns, ugh |
| 10:49:38 | <Inst> | > foo = id where !_ = undefined |
| 10:49:39 | <lambdabot> | <hint>:1:5: error: parse error on input ‘=’ |
| 10:49:46 | <Inst> | > let foo = id where !_ = undefined |
| 10:49:47 | <lambdabot> | <no location info>: error: |
| 10:49:48 | <lambdabot> | not an expression: ‘let foo = id where !_ = undefined’ |
| 10:49:48 | <Inst> | > foo 3 |
| 10:49:49 | <lambdabot> | error: |
| 10:49:49 | <lambdabot> | • No instance for (Typeable a0) |
| 10:49:50 | <lambdabot> | arising from a use of ‘show_M71330527728707901318’ |
| 10:49:55 | <tomsmeding> | try with % |
| 10:49:58 | <Inst> | % let foo = id where !_ = undefined |
| 10:49:58 | <yahb2> | <no output> |
| 10:50:00 | <tomsmeding> | lambdabot is not full ghci |
| 10:50:05 | <Inst> | % foo 3 |
| 10:50:05 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:11:25 in interactive:Ghci3 |
| 10:50:24 | <Inst> | % let foo = id where _ = undefined `seq` () |
| 10:50:24 | <yahb2> | <no output> |
| 10:50:27 | <Inst> | foo 3 |
| 10:50:29 | → | euleritian joins (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
| 10:50:34 | <Inst> | % foo 3 |
| 10:50:34 | <yahb2> | 3 |
| 10:50:39 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 260 seconds) |
| 10:51:06 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:52:43 | → | kronicmage joins (~kronicmag@neotame.csclub.uwaterloo.ca) |
| 10:54:47 | <Inst> | https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns.rst |
| 10:54:56 | <Inst> | hmmm, maybe i misunderstood when i thought bang = seq |
| 10:55:27 | <tomsmeding> | Inst: you forgot the bang in your last example |
| 10:55:57 | <tomsmeding> | % let foo = x `seq` id where x = undefined |
| 10:55:57 | <yahb2> | <no output> |
| 10:55:59 | <tomsmeding> | foo 3 |
| 10:56:01 | <tomsmeding> | % foo 3 |
| 10:56:01 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:19:32 in interactive:Ghci6 |
| 10:56:07 | <tomsmeding> | bang does become seq |
| 10:56:12 | × | euleritian quits (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:56:27 | <tomsmeding> | ah, except of course when it doesn't because pattern matching is more complicated |
| 10:56:39 | <Inst> | :( |
| 10:57:51 | <Inst> | the mystery is still, if you have in a let or where cluase, an unknown value, you can bang it and still get evaluation |
| 10:57:58 | <Inst> | an unused value |
| 10:58:37 | → | acidjnk_new joins (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) |
| 10:58:47 | × | mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection) |
| 10:59:04 | <Inst> | but in general, we pretend that id' = id, or for that matter, let id'' = force, then again, force has an NFData constraint |
| 10:59:20 | <tomsmeding> | id' = id is actually true |
| 10:59:26 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 10:59:38 | <tomsmeding> | id = force is not true, but is true in the world of "total haskell" |
| 11:00:06 | → | euleritian joins (~euleritia@tmo-125-85.customers.d1-online.com) |
| 11:00:14 | <tomsmeding> | "id' = id" is true because sure, id' is strict in its argument, but that strictness only comes into play if you actually use the result of the id' call |
| 11:00:25 | <tomsmeding> | and at that point you also evaluate the argument to id |
| 11:03:08 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) |
| 11:04:12 | × | euleritian quits (~euleritia@tmo-125-85.customers.d1-online.com) (Ping timeout: 246 seconds) |
| 11:05:55 | → | leah2 joins (~leah@vuxu.org) |
| 11:09:54 | → | Digitteknohippie joins (~user@user/digit) |
| 11:09:56 | × | Digit quits (~user@user/digit) (Ping timeout: 252 seconds) |
| 11:13:36 | → | euleritian joins (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
| 11:13:49 | → | ft joins (~ft@p4fc2a216.dip0.t-ipconnect.de) |
| 11:16:40 | × | robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:17:34 | <Inst> | i should read up on parametricity and how bang patterns actually work, i guess |
| 11:17:44 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 11:17:50 | <Inst> | i still blame Eric Normand for not understanding what a -> a means when he should know better for having worked at Scrive on a Haskell project |
| 11:18:10 | → | rvalue joins (~rvalue@user/rvalue) |
| 11:18:43 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 11:18:52 | × | Flow quits (~none@gentoo/developer/flow) (Ping timeout: 272 seconds) |
| 11:20:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 11:20:24 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 11:22:45 | × | ubert quits (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
| 11:29:41 | Digitteknohippie | is now known as Digit |
| 11:30:58 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 11:32:07 | × | euleritian quits (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 11:32:27 | → | euleritian joins (~euleritia@ip-185-104-138-55.ptr.icomera.net) |
| 11:33:08 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 11:33:27 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
| 11:33:27 | ljdarj1 | is now known as ljdarj |
| 11:33:59 | → | rosco joins (~rosco@175.136.23.238) |
| 11:35:40 | → | Flow joins (~none@gentoo/developer/flow) |
| 11:38:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:45:09 | × | euleritian quits (~euleritia@ip-185-104-138-55.ptr.icomera.net) (Ping timeout: 276 seconds) |
| 11:48:14 | → | euleritian joins (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
| 11:57:42 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 12:00:12 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 12:00:31 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
| 12:00:31 | ljdarj1 | is now known as ljdarj |
| 12:00:53 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 12:00:53 | ChanServ | sets mode +v haskellbridge |
| 12:07:28 | × | euleritian quits (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Ping timeout: 245 seconds) |
| 12:10:15 | → | euleritian joins (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) |
| 12:18:18 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
| 12:18:38 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) |
| 12:19:06 | → | xff0x joins (~xff0x@2405:6580:b080:900:b1c9:c57e:b0f1:f862) |
| 12:27:09 | × | alp quits (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) (Ping timeout: 246 seconds) |
| 12:33:54 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
| 12:34:57 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) |
| 12:38:20 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) (Remote host closed the connection) |
| 12:44:34 | → | identity joins (~identity@user/ZharMeny) |
| 12:48:38 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) |
| 12:53:19 | × | Flow quits (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
| 12:59:29 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:05:15 | → | Flow joins (~none@gentoo/developer/flow) |
| 13:21:33 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
| 13:21:50 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 13:26:48 | × | robertm quits (robertm@lattice.rojoma.com) (Ping timeout: 252 seconds) |
| 13:30:44 | × | Flow quits (~none@gentoo/developer/flow) (Quit: WeeChat 4.2.1) |
| 13:32:33 | → | Flow joins (~none@gentoo/developer/flow) |
| 13:34:20 | → | ubert joins (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) |
| 13:36:26 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 13:43:18 | × | dispater quits (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:43:19 | × | orcus quits (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:45:07 | → | dispater joins (~dispater@mail.brprice.uk) |
| 13:45:36 | → | orcus joins (~orcus@mail.brprice.uk) |
| 13:51:00 | → | mari-estel joins (~mari-este@user/mari-estel) |
| 13:52:16 | <Inst> | hmmm, so seq and bang patterns are equivalent, except that bang patterns are substantially more ergonomic |
| 13:52:34 | <Inst> | well, depends on context |
| 13:53:33 | <Inst> | just that bangs allow you to do stuff that would require breaking down the standard function syntax to replicate with seq |
| 13:54:40 | × | euleritian quits (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) (Ping timeout: 272 seconds) |
| 13:55:12 | → | euleritian joins (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
| 13:56:09 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 14:02:14 | <mari-estel> | hey tomsmeding, compiling with -j1 worked! Thanks a lot for that! |
| 14:02:22 | <tomsmeding> | mari-estel: yay! |
| 14:02:25 | <mari-estel> | i will try to recall the trick as it seems very useful. Unfortunately now i have "hoogle generate" failing, i will try your other hints about managing swap |
| 14:02:26 | <tomsmeding> | sometimes it's easier than you think |
| 14:02:46 | <tomsmeding> | oh is 'hoogle generate' so ram-hungry too? |
| 14:02:49 | <tomsmeding> | then yes, swap |
| 14:02:52 | <mari-estel> | it is less of a problem though because i managed to install linux on another machine |
| 14:07:53 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:08:44 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 248 seconds) |
| 14:18:02 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 14:19:29 | → | comonad joins (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) |
| 14:24:38 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 14:24:54 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 14:28:53 | × | mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection) |
| 14:29:14 | → | mari-estel joins (~mari-este@user/mari-estel) |
| 14:31:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 14:37:23 | × | euleritian quits (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:37:35 | → | euleritian joins (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
| 14:38:19 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 14:38:32 | × | ubert quits (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
| 14:42:46 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) |
| 14:44:48 | → | ubert joins (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) |
| 14:47:27 | → | spew joins (~spew@155.133.15.104) |
| 14:49:15 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 14:52:42 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 14:53:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 14:56:27 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:56:27 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:9b92:fe17:1b69:2f6b) |
| 14:56:31 | → | weary-traveler joins (~user@user/user363627) |
| 14:56:49 | × | tabemann quits (~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741) (Ping timeout: 260 seconds) |
| 14:57:53 | × | euleritian quits (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 14:58:34 | → | glguy joins (glguy@libera/staff/glguy) |
| 14:58:52 | → | euleritian joins (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
| 15:04:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:09:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 15:13:27 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 15:20:00 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:23:05 | × | ubert quits (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
| 15:23:39 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
| 15:23:51 | × | mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection) |
| 15:24:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 15:25:14 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
| 15:34:46 | × | rosco quits (~rosco@175.136.23.238) (Quit: Lost terminal) |
| 15:35:21 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:40:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 15:45:58 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 15:46:45 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 15:48:46 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 15:50:45 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 15:53:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:55:20 | → | euphores joins (~SASL_euph@user/euphores) |
| 15:55:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 15:55:32 | <glguy> | dmj`: yes, it is practical |
| 16:03:27 | → | billchenchina- joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
| 16:04:44 | → | alexherbo2 joins (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) |
| 16:05:36 | <haskellbridge> | <maralorn> Lens wizards, please help, I am confused. I have a multiple X in Y, and I want to do three things on all the X, 1. get, 2. map, 3. filter. I can’t write a lawful traversal because filtering reduces the number of Xs. But a Fold is not enough because it can’t be used for mutation. Is there a reasonable optic to do this? |
| 16:06:07 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:07:59 | <ncf> | use an optic for step 1 and then regular haskell for steps 2 and 3? |
| 16:09:40 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 16:10:11 | <haskellbridge> | <maralorn> Well, the problem is that Y is a really big datatype and the Xs are everywhere and I don’t want to repeat locating them 3 times. |
| 16:11:51 | → | Square joins (~Square@user/square) |
| 16:13:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 16:14:23 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Client Quit) |
| 16:15:09 | <Lears> | I don't know about lenses, but you can write a `traverseMaybe :: Applicative f => (X -> f (Maybe X)) -> Y -> f Y` to fuse these operations. |
| 16:16:09 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 16:16:14 | <c_wraith> | You won't get prosecuted for using unlawful optics |
| 16:16:33 | <c_wraith> | The still *work*, they just can't be blindly refactored. |
| 16:16:45 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:17:23 | <c_wraith> | There's a reason filtered is not a Fold |
| 16:18:25 | <haskellbridge> | <maralorn> c_wraith: Yeah, I know. But in the large team we have I’d rather be careful with that. |
| 16:18:35 | → | EvanR joins (~EvanR@user/evanr) |
| 16:18:54 | <haskellbridge> | <maralorn> Lears: I like the traverseMaybe idea, thank you. |
| 16:19:02 | <EvanR> | is there a version of unfoldr which keeps unfolding forever and doesn't need to deal with Maybe |
| 16:19:44 | <ncf> | wait, so you need to put the filtered list back in? |
| 16:20:14 | ncf | is confused about the problem |
| 16:20:22 | <c_wraith> | I'd honestly just use lenses's filtered combinator unless it doesn't work for some reason |
| 16:20:30 | <c_wraith> | err, lens's |
| 16:20:59 | <c_wraith> | EvanR: is that not just... iterate? |
| 16:21:11 | <EvanR> | :t iterate |
| 16:21:12 | <lambdabot> | (a -> a) -> a -> [a] |
| 16:21:24 | <c_wraith> | or do you want a separate state value that's passed along? |
| 16:21:27 | <EvanR> | quite possible |
| 16:21:29 | × | billchenchina- quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
| 16:21:41 | <EvanR> | you could just map the sequence of states? |
| 16:22:15 | <EvanR> | if so, haskell at its finest |
| 16:22:38 | <c_wraith> | a common pattern with iterate is to use it on (state, value) tuples then map snd to get rid of the states |
| 16:23:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:26:06 | <haskellbridge> | <maralorn> ncf: Yes. |
| 16:27:10 | <ncf> | then you should have a lens or a traversal with target type [Whatever] |
| 16:27:27 | <ncf> | so you can map/filter/whatever over that |
| 16:28:55 | × | acidjnk_new quits (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 16:30:30 | <c_wraith> | that doesn't sound right to me, but I think we're interpreting the problem differently. the specification is really vague |
| 16:31:13 | ncf | nods |
| 16:31:25 | <c_wraith> | Like.. Do you want to map over every value and only keep the changes that pass the filter? Do you want to remove elements from the Y that fail the filter? |
| 16:32:14 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:34:30 | glguy | is now known as ghoulguy |
| 16:36:10 | <c_wraith> | Is the whole operation a Y -> Y? a Y -> ([X], Y)? |
| 16:37:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 16:37:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:45:47 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 16:45:54 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
| 16:46:30 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:47:32 | × | euleritian quits (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:47:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 16:47:44 | → | euleritian joins (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
| 16:47:51 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 16:48:40 | → | alp joins (~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d) |
| 16:52:03 | → | acidjnk_new joins (~acidjnk@p200300d6e72cfb56ac585057b67fefcd.dip0.t-ipconnect.de) |
| 16:52:37 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 16:54:19 | × | benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
| 16:54:34 | → | benjaminl joins (~benjaminl@user/benjaminl) |
| 16:57:45 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 17:03:17 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 17:03:45 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:08:01 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 17:10:43 | <EvanR> | I thought chess would simply be a data type for a "board state" and a datatype for "moves" which bring you from one board to another, and a game is a chain of moves, or chain of boards |
| 17:10:59 | <EvanR> | but to get this to work the board type is growing some serious legs xD |
| 17:11:45 | <EvanR> | can black castle? since this is usually expressed as historical, gotta keep a flag in the board state. But wait they might be able to castle on one side but not the other because a rook moved |
| 17:12:12 | <EvanR> | en passant is possible when a pawn "bolted" 2 spaces on the previous move |
| 17:12:25 | <EvanR> | this is turning into a history instead of a state |
| 17:12:51 | <int-e> | https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation may be useful (it encodes all the state you need except previous positions for three-fold repetition) |
| 17:13:52 | <int-e> | (i.e. it already has all the legs and appendices you're talking about) |
| 17:14:35 | <EvanR> | three fold repetition :scream: |
| 17:14:53 | <int-e> | well for that you really need the full history |
| 17:15:02 | <int-e> | so yeah that's pretty awful |
| 17:15:22 | <int-e> | (well, history since the last capture or promotion, but still) |
| 17:15:30 | <int-e> | (or pawn advancement) |
| 17:18:09 | × | alp quits (~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d) (Ping timeout: 248 seconds) |
| 17:20:40 | → | jinsun joins (~jinsun@user/jinsun) |
| 17:22:14 | → | BolzmannPain joins (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) |
| 17:23:02 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 272 seconds) |
| 17:23:10 | × | BolzmannPain quits (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Client Quit) |
| 17:23:35 | → | BolzmannPain2 joins (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) |
| 17:29:13 | × | dcoutts__ quits (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 265 seconds) |
| 17:29:44 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 17:34:31 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:37:34 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 17:37:52 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 252 seconds) |
| 17:38:58 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 17:41:04 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 17:41:28 | <EvanR> | there is this cliff where the thing you want to model with haskell datatypes goes from "so simple" and fits on a page... to huge but unavoidable because "sorry, reality" |
| 17:41:41 | <EvanR> | whats up with that |
| 17:41:57 | <EvanR> | you could simplify chess to make a point, but why is this like a seismic change |
| 17:42:29 | <EvanR> | is haskell optimized for the simplest cases |
| 17:48:18 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 245 seconds) |
| 17:49:17 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 17:49:54 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 17:50:15 | → | athan joins (~athan@syn-173-042-095-241.biz.spectrum.com) |
| 17:52:49 | → | dcoutts__ joins (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
| 17:53:24 | × | st_aldini quits (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) (Read error: Connection reset by peer) |
| 17:54:05 | → | st_aldini joins (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) |
| 17:56:51 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 17:56:56 | <haskellbridge> | <magic_rb> Idk chess rules, but by what you described what id do is store the board state, so just the positions of pawns in a linked list |
| 17:57:16 | <haskellbridge> | <magic_rb> Everything else is computed from that, like whether a pawn moved by 2 squares or whatever |
| 17:57:57 | × | athan quits (~athan@syn-173-042-095-241.biz.spectrum.com) (Ping timeout: 252 seconds) |
| 18:01:15 | → | BolzmannPain13 joins (~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36) |
| 18:01:57 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 18:02:51 | × | alexherbo2 quits (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
| 18:03:30 | <EvanR> | a diff of boards |
| 18:04:33 | × | BolzmannPain2 quits (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Ping timeout: 256 seconds) |
| 18:04:45 | <haskellbridge> | <magic_rb> Well not directly, essentially "didPawnMove :: Board -> Board" |
| 18:04:47 | <int-e> | To work with the board you do want an efficient map from positions to pieces though. |
| 18:04:52 | <EvanR> | sure, you might be able to compute a move from two boards. Though that's not enough to know what the possible moves are for a given board |
| 18:05:06 | <haskellbridge> | <magic_rb> Then you take N for each function |
| 18:05:07 | <EvanR> | because reasons |
| 18:05:18 | <haskellbridge> | <magic_rb> Or just "[Board]" |
| 18:05:42 | <EvanR> | yeah this sounds like a simplification of chess, it could collapse a lot |
| 18:05:45 | <haskellbridge> | <magic_rb> And for the board it could be "Map (Int, Int) ChessPiece" |
| 18:05:50 | <EvanR> | sure |
| 18:06:19 | <int-e> | (Using 64 bit masks for each type of pieces is a thing ("bitboards") but if you worry that much about performance then why are you using Haskell :P) |
| 18:06:27 | <EvanR> | it's just not enough to play actual chess on |
| 18:06:45 | <EvanR> | in the sense of stopping you from making illegal moves |
| 18:07:00 | <EvanR> | if you wanted to e.g. generate the tree of all games |
| 18:07:05 | <int-e> | But yes, you do need extra state on top of that. Just to reaffirm what has been said already :) |
| 18:07:34 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 18:07:48 | <haskellbridge> | <magic_rb> The datatype doesnt prevent you from making illegal moves, the checks around it do |
| 18:07:57 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 18:07:58 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:07:58 | <EvanR> | there's not enough info |
| 18:08:03 | <EvanR> | in a single board |
| 18:08:14 | <EvanR> | that's the rub |
| 18:08:29 | <haskellbridge> | <magic_rb> Thats why you need `someCheck :: [Board] -> Bool |
| 18:08:37 | <EvanR> | ......... yeah |
| 18:08:45 | <EvanR> | so much for elegance xD |
| 18:09:02 | <haskellbridge> | <magic_rb> You can also generate the list of valid moves given a list of boards |
| 18:09:13 | <haskellbridge> | <magic_rb> And then check if the given move is in that set |
| 18:09:21 | <EvanR> | when you have the entire history of something, sometimes that's making the "state" redundant |
| 18:09:34 | <haskellbridge> | <magic_rb> Which then would allow you to generate a tree of all possible states |
| 18:09:41 | <EvanR> | the state stops becoming a good summary of what happened |
| 18:09:48 | <EvanR> | and you don't need it anymore since you have history |
| 18:09:50 | <haskellbridge> | <magic_rb> Wdym redundant, having the history is the state |
| 18:09:58 | <EvanR> | well you have these board positions |
| 18:10:04 | <EvanR> | but they're redundant |
| 18:10:08 | <haskellbridge> | <magic_rb> You can also store "[Move]" but i feel like thats harder to get right |
| 18:10:10 | <EvanR> | all you need is the history of moves |
| 18:11:15 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 18:11:49 | × | EvanR quits (~EvanR@user/evanr) (Read error: Connection reset by peer) |
| 18:11:52 | → | EvanR_ joins (~EvanR@user/evanr) |
| 18:12:37 | EvanR_ | is now known as EvanR |
| 18:12:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:13:13 | <EvanR> | the moves route is more theoretically interesting, assuming you upgrade it to allow combining moves, now you have a semigroupoid |
| 18:14:07 | <EvanR> | but is more data |
| 18:14:57 | × | CrunchyFlakes quits (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 18:17:07 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:17:35 | → | CrunchyFlakes joins (~CrunchyFl@31.19.233.78) |
| 18:20:23 | → | druchan joins (uid567859@id-567859.lymington.irccloud.com) |
| 18:21:23 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 244 seconds) |
| 18:22:30 | <druchan> | hey folks, i have this small piece of code (https://pastebin.com/VpeBm0aV) but on compile and run, it keeps crashing due to running out of memory (or shows a `bus error` and crashes). any idea what i could be doing wrong? |
| 18:26:31 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 18:27:20 | <briandaed> | and how big are response bodies there? have you tried it with curl? maybe it's just 'too big' |
| 18:28:02 | → | mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com) |
| 18:28:18 | × | dcoutts__ quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 245 seconds) |
| 18:30:02 | <int-e> | Hmm listing the packages you depend on would be helpful. I assume this is http-conduit. Oh and the <...'...> really messes with the syntax highlighting for me |
| 18:30:19 | <int-e> | druchan: ^ |
| 18:31:12 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 18:31:39 | <int-e> | (three eternities later, http-conduit is still building) |
| 18:32:32 | <int-e> | length (unpack dat) -- Data.ByteString.Char8 should have a `length` |
| 18:32:36 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 18:34:26 | → | synchromesh joins (~john@2406:5a00:2497:300:bcf8:f387:b864:86a) |
| 18:35:38 | <int-e> | hmm it survives a simple test for me: fetching https://paste.tomsmeding.com/ \ process 7 ...also survives fetching 10MB of data a couple of times using ~60MB of memory |
| 18:35:42 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 246 seconds) |
| 18:36:31 | <briandaed> | looks like it's 'url' specific, and indeed error message is right |
| 18:36:55 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:38:43 | <EvanR> | fetch 10M using 60M of memory, it lifts 0.16666x its own weight! |
| 18:39:42 | <int-e> | EvanR: it's a 24M executable (stripped), so that's a big part of the memory footprint |
| 18:40:57 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
| 18:41:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:43:09 | <EvanR> | living in a world of infinite memory is weird |
| 18:43:43 | <int-e> | well it's not infinite :) |
| 18:43:58 | <int-e> | and VMs are often very limited in that capacity (hah, capacity) |
| 18:44:07 | <mreh> | when I trace this https://hackage.haskell.org/package/GPipe-Core-0.2.3.1/docs/src/Graphics.GPipe.Internal.Texture.html#readTexture2D it looks like it's freeing the memeory before I print the result and then after printing it immediately segfaults |
| 18:44:40 | <druchan> | thanks int-e.. sometimes, the `bus error` shows up within the first few links of the 36. and sometimes much later. so... not sure. i'll try to see if it's because of some URL(s) in my list. |
| 18:45:02 | <EvanR> | at one point the biggest executable on my computer was vim at 7M |
| 18:45:16 | <EvanR> | that was gratuitous |
| 18:46:08 | <mreh> | isn't bracket meant to order the effects of the first, third then second argument? |
| 18:46:27 | <mreh> | I chucked some `putStrLn`s in there |
| 18:47:08 | <int-e> | druchan: can you discern whether it's running out of memory or actuall crashing in some other way? is there something else running that hogs all memory? also, what platform is this? (I'm on x86-64 Linux which is probably the platform that causes the least trouble for GHC + most Haskell libraries.) |
| 18:47:47 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 18:48:00 | <tomsmeding> | mreh: according to the haddock mouseover, this is not `bracket` from Control.Exception. I'm afraid that's all I have to offer :) |
| 18:48:12 | <mreh> | oh what?! |
| 18:48:16 | <int-e> | hmm what GHC version am I using... 9.2.7 (hopefully not too critical but you never know) |
| 18:48:26 | <druchan> | haskell noob here so not sure about that except, i did do a profiling and then saw, in the pdf from postscript, there was a 600MB+ spike in the heap |
| 18:48:58 | <druchan> | init-e: GHC v9.2.5 |
| 18:49:07 | <druchan> | M3 Pro, 36GB RAM and it crashes |
| 18:49:23 | <druchan> | the `bus error` is very cryptic and unhelpful. i wasnt able to find out what that is about |
| 18:49:48 | <tomsmeding> | druchan: if you do `lldb "$(cabal list-bin yourexecutablename)"` and then type `run`, does it crash, and if so what does it print? |
| 18:49:52 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 18:49:59 | <tomsmeding> | (type either `quit` or `exit` to get out of lldb, I forget) |
| 18:50:23 | <tomsmeding> | lldb is a C debugger, not a Haskell debugger, so it's bound to be not terribly helpful. But you never know |
| 18:51:13 | <druchan> | haha okay fair enough |
| 18:51:37 | <druchan> | it crashed |
| 18:51:38 | <druchan> | https://paste.tomsmeding.com/FNKlqYdG |
| 18:51:38 | <mreh> | It's from MonadAsyncException - "If an exception is raised, then bracket will re-raise the exception (after performing the release)." - I didn't realise segfault was an exception. |
| 18:51:55 | <tomsmeding> | mreh: it likely is not |
| 18:52:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 18:52:55 | <tomsmeding> | druchan: interesting. That "__gmpn_sqr_diag_addlsh1" is a function from GMP, the library underlying (arbitrary-precision) Integer arithmetic in Haskell |
| 18:53:26 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 18:53:26 | <tomsmeding> | and furthermore, the error is EXC_BAD_ACCESS, which sounds like it's not running out of memory, but it's accessing invalid memory instead |
| 18:53:43 | <tomsmeding> | druchan: can you get a backtrace? Perhaps `bt` |
| 18:53:45 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 18:54:07 | <druchan> | how do i do bt? |
| 18:54:09 | <briandaed> | druchan try compiling it for profiling and then run with +RTS -xc -RTS, and your problem is probably caused by... too old ghc version, if possible switch to 9.4 or later to check if problem still occurs |
| 18:54:11 | <tomsmeding> | druchan: type it in lldb |
| 18:54:55 | <druchan> | https://www.irccloud.com/pastebin/mYDHV4zH/ |
| 18:54:57 | <briandaed> | *too old for M3 |
| 18:55:26 | <int-e> | hmm that URL returns 275144 bytes... so it's not a super large feed that causes it |
| 18:55:58 | <int-e> | AH EXC_BAD_ACCESS is at least more useful than "bus error" |
| 18:55:59 | <tomsmeding> | druchan: is that really the entire backtrace? |
| 18:56:30 | <briandaed> | similar to https://gitlab.haskell.org/ghc/ghc/-/issues/22497 |
| 18:56:34 | <tomsmeding> | if the call to GMP was from some non-Haskell code then I would expect some further visible stack frames; if it was from Haskell then I'm not sure how that normally looks on macOS |
| 18:56:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 18:56:44 | <tomsmeding> | so that sounds like heap corruption then, which is... bad? |
| 18:56:58 | <druchan> | tomsmeding: yeah, that was the output when i tried `bt`. should i do `bt` multiple times? |
| 18:57:11 | <tomsmeding> | no it outputs the whole thing |
| 18:57:32 | <tomsmeding> | oh briandaed's linked issue looks extremely relevant |
| 18:57:42 | <tomsmeding> | in particular this reproducer https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_464384 |
| 18:57:44 | <druchan> | yeah seems like that's what i am facing too |
| 18:57:51 | → | poxel joins (~lennart@user/poxel) |
| 18:58:12 | <druchan> | i think i should just upgrade ghc and try again |
| 18:59:12 | <int-e> | Oh "The platforms reserve register x18. Don’t use this register." would indeed explain sporadic horrible errors. |
| 18:59:17 | <int-e> | druchan: yeah |
| 18:59:39 | <druchan> | sigh and i was almost ready to port my code to Purescript :/ |
| 18:59:49 | <tomsmeding> | oof it's gmp that is the culprit? That's unexpeced |
| 19:00:05 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 19:00:19 | <tomsmeding> | druchan: the fix for that bug was backported to ghc 9.2.6 lol |
| 19:00:30 | <tomsmeding> | just one minor version too old! |
| 19:00:44 | → | caconym joins (~caconym@user/caconym) |
| 19:01:27 | <tomsmeding> | but yeah, upgrading to 9.4.8 if you can is probably safest |
| 19:01:29 | <int-e> | tomsmeding: nah AIUI GHC's code generator uses the reserved register, the OS zeros it on occasion, and then that zero pointer gets passed around to other libraries like GMP |
| 19:02:21 | × | BolzmannPain13 quits (~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36) (Ping timeout: 256 seconds) |
| 19:02:21 | <tomsmeding> | int-e: this https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_472557 definitely points to an issue in GMP |
| 19:02:31 | <tomsmeding> | (it could still be that GHC also had issues; I don't know) |
| 19:02:59 | <int-e> | tomsmeding: Ah, I didn't read far enough. Yes it does. |
| 19:03:14 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 19:05:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:20 | <int-e> | tomsmeding: seems to be fixed now though. https://gitlab.haskell.org/ghc/gmp-tarballs/-/merge_requests/4/diffs?commit_id=7bb13b556d81e60556db6b5ef8757f55a3925527 did this by patching gmp-6.2.1; the current GHC repo carries gmp-6.3.0 without that patch |
| 19:07:30 | <tomsmeding> | mreh: could this be a threading issue? Are you calling this function from multiple threads? |
| 19:07:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:07:38 | <int-e> | now... which GHC versions have either of these fixes? :-/ |
| 19:07:40 | <druchan> | and now this little maneouver is going to cost us .. whatever time it takes for cabal to recompile |
| 19:07:44 | <tomsmeding> | int-e: 9.2.6 |
| 19:08:04 | <tomsmeding> | int-e: https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_485068 |
| 19:08:25 | <tomsmeding> | if you click that commit and open "Tags containing commit", you can see it's included in 9.2.6 |
| 19:08:31 | <tomsmeding> | which is funny because druchan was using 9.2.5 |
| 19:08:54 | <int-e> | unlucky |
| 19:10:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:12:03 | → | robertm joins (robertm@lattice.rojoma.com) |
| 19:12:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 19:12:10 | → | BolzmannPain2 joins (~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4) |
| 19:12:17 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 248 seconds) |
| 19:14:48 | <druchan> | okay i upgraded, recompiled and run the program a few times -- no crashes now. |
| 19:14:58 | <druchan> | thanks tomsmeding int-e |
| 19:15:01 | <tomsmeding> | yay! |
| 19:15:12 | <tomsmeding> | also thanks briandaed for digging up the precise issue at work |
| 19:15:18 | <druchan> | thanks briandaed too yes! |
| 19:15:22 | <briandaed> | :) |
| 19:15:53 | <druchan> | is there a haskell beginner channel btw? i dont want to clog up this space if so... learning haskell now, might have lotsa questions |
| 19:16:04 | <druchan> | FP slack was not very helpful on this one |
| 19:16:09 | <tomsmeding> | #haskell-beginners exists, but no clue how active |
| 19:16:15 | <tomsmeding> | this particular question was not a beginner question though ;) |
| 19:16:31 | <tomsmeding> | beginner questions are generally welcome here in #haskell |
| 19:16:32 | <sam113101> | I wish I knew haskell |
| 19:16:38 | <int-e> | it's not like this channel is super busy either |
| 19:16:55 | <druchan> | has it always been like that when it was on freenode? |
| 19:17:01 | <haskellbridge> | <sm> In addition, there's the Haskell matrix room which is sometimes less technical |
| 19:17:27 | <tomsmeding> | as always on IRC, it's just one channel though, so holding two conversations in parallel is impractical -- but that goes both ways, beginner questions through advanced topics and advanced topics through beginner questions |
| 19:17:45 | <int-e> | druchan: well, numbers have gone down over the years |
| 19:17:58 | <tomsmeding> | druchan: when it was on freenode the number of idlers was larger, but I suspect many of the ones we "lost" were not actually reading. |
| 19:18:10 | <druchan> | ah okay |
| 19:18:21 | <haskellbridge> | <sm> and there's lots more channels now |
| 19:18:49 | <druchan> | i cant tell you folks how relieved i am now though. i was almost thinking haskell is probably not for me coz i thought this was something to do with the laziness |
| 19:19:17 | <tomsmeding> | druchan: if you get "bus error" or "segmentation fault" in haskell and you're not using some C code or C libraries yourself, |
| 19:19:23 | <tomsmeding> | then something is awfully wrong |
| 19:19:33 | <tomsmeding> | that is _not_ supposed to happen |
| 19:19:55 | <int-e> | https://wiki.haskell.org/IRC_channel has some historic numbers about early channel activity |
| 19:20:31 | <sam113101> | I'd like to see some code examples of haskell |
| 19:20:56 | <druchan> | i should've learnt some systems stuff but noooo boy didnt pay attention in C classes. |
| 19:21:03 | <druchan> | anyway, thanks folks. |
| 19:21:43 | <EvanR> | yeah haskell has like 20 something channels here |
| 19:21:52 | <tomsmeding> | O.o does it? |
| 19:21:58 | <EvanR> | lol |
| 19:22:02 | <tomsmeding> | I know of... 5? |
| 19:22:17 | <tomsmeding> | oh 6 |
| 19:22:28 | <int-e> | sam113101: visit https://wiki.haskell.org/Special:Random until you see a code block ;-) |
| 19:22:28 | <EvanR> | maybe some didn't make it off freenode |
| 19:22:36 | <EvanR> | but there's one for each language |
| 19:22:37 | <tomsmeding> | (#ghc, #haskell, #haskell-offtopic, #hackage, #haskell-infrastructure, #haskell-beginners) |
| 19:22:45 | <tomsmeding> | oh I see |
| 19:22:58 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:23:06 | <EvanR> | #haskell-game come on |
| 19:23:10 | <int-e> | @where lyah |
| 19:23:10 | <lambdabot> | http://www.learnyouahaskell.com/ or the slightly updated fork https://learnyouahaskell.github.io/ |
| 19:23:22 | <EvanR> | surely #haskell-blah is still around |
| 19:23:30 | <EvanR> | #haskell-advanced ? |
| 19:23:31 | <int-e> | (probably not the best, but also not the worst source for example code) |
| 19:24:11 | <int-e> | #haskell-ascended ? |
| 19:24:20 | <tomsmeding> | hah, /msg alis list haskell |
| 19:24:28 | <tomsmeding> | doesn't fit on my screen :) |
| 19:24:39 | <int-e> | @seen lambdabot |
| 19:24:39 | <lambdabot> | Yes, I'm here. I'm in ##villagegreen, #lambdacalculus, #esolangs, #scannedinavian, #bfpg, #kmonad, #xmonad, #haskell-it-offtopic, #haskell-cs, #haskell-tw, #haskell-es, #haskell-au, #haskell-it, # |
| 19:24:39 | <lambdabot> | haskell-cn, #haskell-ghcup, #haskell-lens, #haskell-in-depth, #haskell-offtopic, #haskell-blah, #haskell-beginners, #ghc and #haskell |
| 19:25:06 | <int-e> | (includes some odd ones) |
| 19:28:04 | <monochrom> | There is #haskell-in-depth |
| 19:28:27 | <int-e> | what's the #haskell-overflow status? |
| 19:29:04 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 19:29:44 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 19:29:52 | <EvanR> | #haskell-overwhelming |
| 19:30:23 | <int-e> | (#haskelllll redirects there) |
| 19:30:26 | <EvanR> | my life for foldr |
| 19:31:11 | <int-e> | #foldr? |
| 19:31:50 | <monochrom> | #haskell-overflow is also part of the #haskell* family of channels. (As in, I also have ops there. :) ) |
| 19:31:53 | <int-e> | EvanR: foldr is perfect for making progress lazile |
| 19:31:56 | <int-e> | *lazily |
| 19:32:09 | <monochrom> | But I guess no one ever bothered to send lambdabot there. |
| 19:34:02 | <EvanR> | I feel like #haskell-game has been requesting a lambdabot but never got one |
| 19:34:16 | <EvanR> | been kind of dead lately though |
| 19:34:27 | <EvanR> | I think because of bridge problems |
| 19:36:31 | <monochrom> | A game of Contract Bridge. >:) |
| 19:36:33 | <int-e> | EvanR: that's news to me, but it's easy to miss a highlight |
| 19:36:40 | <int-e> | (re: #haskell-game) |
| 19:36:51 | <EvanR> | more like olds |
| 19:37:02 | <EvanR> | I could be dredging up a convo from the 2010s |
| 19:37:19 | <int-e> | uh, that would predate me running the thing |
| 19:37:20 | <haskellbridge> | <sm> the haskell gamers are more on matrix now |
| 19:37:44 | <EvanR> | int-e, you're the wizard of Hask? |
| 19:37:47 | <int-e> | not discord? |
| 19:37:56 | <int-e> | EvanR: No. I just run lambdabot. |
| 19:38:02 | <haskellbridge> | <sm> hell no. Though I'm sure there are haskellers there too |
| 19:38:14 | <EvanR> | there is a haskell game discord |
| 19:38:15 | <haskellbridge> | <sm> probably a lot |
| 19:38:15 | <int-e> | (To be clear, I don't like Discord at all. But a lot of people mention being there. :P) |
| 19:38:37 | <haskellbridge> | <sm> poor beknighted lost souls |
| 19:38:38 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:38:41 | <int-e> | (So it's kind of hard to ignore that it's a thing.) |
| 19:40:06 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:41:24 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 19:42:49 | → | neuroevolutus joins (~neuroevol@2001:ac8:9a:75::e014) |
| 19:47:01 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 19:51:17 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds) |
| 19:52:41 | × | briandaed quits (~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection) |
| 19:53:21 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 19:55:26 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:55:35 | → | dcoutts__ joins (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
| 19:58:08 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:59:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:59:15 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:01:00 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:02:41 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 20:03:48 | × | euleritian quits (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 20:04:31 | × | dcoutts__ quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 252 seconds) |
| 20:05:32 | → | alp joins (~alp@2001:861:e3d6:8f80:5390:64ff:457d:f218) |
| 20:06:02 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 20:13:31 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:15:30 | × | BolzmannPain2 quits (~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4) (Quit: Client closed) |
| 20:18:06 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 20:18:54 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 20:19:20 | → | rvalue joins (~rvalue@user/rvalue) |
| 20:28:46 | × | michalz quits (~michalz@185.246.207.215) (Remote host closed the connection) |
| 20:29:29 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:31:39 | → | dcoutts__ joins (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
| 20:38:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 20:39:20 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
| 20:40:51 | Feuermagier | is now known as Guest844 |
| 20:40:51 | → | Feuermagier_ joins (~Feuermagi@user/feuermagier) |
| 20:40:51 | × | Guest844 quits (~Feuermagi@user/feuermagier) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
| 20:40:51 | Feuermagier_ | is now known as Feuermagier |
| 20:41:11 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 20:48:07 | × | mima quits (~mmh@user/mima) (Ping timeout: 264 seconds) |
| 20:48:33 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 276 seconds) |
| 20:49:05 | × | tcard__ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 20:49:10 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:50:07 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 20:51:39 | → | dcoutts_ joins (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
| 20:53:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 20:54:38 | × | dcoutts__ quits (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 265 seconds) |
| 20:56:36 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:57:14 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 20:58:59 | → | mima joins (~mmh@user/mima) |
| 21:01:48 | × | neuroevolutus quits (~neuroevol@2001:ac8:9a:75::e014) (Quit: Client closed) |
| 21:02:21 | × | kimiamania quits (~924ba01d@user/kimiamania) (Quit: PegeLinux) |
| 21:02:44 | → | kimiamania joins (~924ba01d@user/kimiamania) |
| 21:04:32 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:07:22 | → | hgolden_ joins (~hgolden@146.70.173.229) |
| 21:09:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 21:10:06 | × | hgolden__ quits (~hgolden@23.162.40.110) (Ping timeout: 265 seconds) |
| 21:13:37 | → | supercode joins (~supercode@user/supercode) |
| 21:14:08 | × | poxel quits (~lennart@user/poxel) (Quit: WeeChat 4.4.2) |
| 21:17:30 | × | dcoutts_ quits (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 252 seconds) |
| 21:19:55 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:19:59 | <dmj`> | would be nice to expose type level lambda syntax in instance heads |
| 21:20:21 | × | mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 248 seconds) |
| 21:20:49 | <dmj`> | instance Functor (\a -> Foo a b) where |
| 21:21:51 | <int-e> | "expose" - does the compiler actually have that internally now? |
| 21:21:59 | <dmj`> | supposedly it does |
| 21:24:11 | <dmj`> | or allow type synonyms to rearrange the variables so kind inference would pass |
| 21:26:34 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 21:26:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:27:49 | <int-e> | I still expect that the compiler would fall flat on its nose if you allowed this, because suddenly you'll have to deal with constraints like Functor (\a -> Foo a b) => ... and ultimately deal at least with some of the messier complications of higher order unification. |
| 21:35:08 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:41:31 | <dmj`> | yea, definitely don't want higher order unification, but would like a lightweight way around restriction, one that doesn't involve newtypes |
| 21:42:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:47:29 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:48:29 | <dmj`> | int-e: term level lambdas don't require higher order unification so |
| 21:49:16 | <int-e> | dmj`: but yours are at the type level |
| 21:49:25 | <int-e> | nobody's unifying terms |
| 21:49:43 | <int-e> | well until things become fully dependently typed |
| 21:50:20 | <int-e> | Which I think is something GHC is trying very hard to avoid. |
| 21:50:34 | <dmj`> | we'd need to add a KindApp constructor |
| 21:51:09 | → | mreh joins (~matthew@host86-128-2-51.range86-128.btcentralplus.com) |
| 21:51:30 | <dmj`> | we just have KindFun |
| 21:52:19 | <dmj`> | you're right it would require higher order unification |
| 21:53:20 | <dmj`> | that's the restriction on type families, they're not higher order. |
| 21:53:53 | <int-e> | and so are type synonyms (which can't be partially applied) |
| 21:55:09 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:56:40 | <dmj`> | Ok we do have KindApp, we'd need TypeLam, which would be problematic |
| 21:57:41 | <dmj`> | it could be added technically, and then its usage would be restricted, so end users couldn't express higher order functions in type families |
| 21:57:58 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:58:08 | <dmj`> | pretty sure microhs does this |
| 22:05:10 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:07:12 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 22:15:39 | × | mreh quits (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 276 seconds) |
| 22:16:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:16:52 | × | gawen quits (~gawen@user/gawen) (Quit: cya) |
| 22:17:34 | → | fmira joins (~user@user/fmira) |
| 22:19:16 | × | fmira quits (~user@user/fmira) (Remote host closed the connection) |
| 22:19:38 | → | fmira joins (~user@user/fmira) |
| 22:20:06 | × | druchan quits (uid567859@id-567859.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:21:17 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:21:57 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:25:24 | → | gawen joins (~gawen@user/gawen) |
| 22:31:17 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 22:32:09 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:32:40 | × | supercode quits (~supercode@user/supercode) (Quit: Client closed) |
| 22:36:33 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 22:40:27 | → | weary-traveler joins (~user@user/user363627) |
| 22:47:31 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:52:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:06:42 | → | euleritian joins (~euleritia@146.52.11.212) |
| 23:07:17 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
| 23:08:56 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:13:31 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 23:13:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 23:14:29 | × | acidjnk_new quits (~acidjnk@p200300d6e72cfb56ac585057b67fefcd.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 23:16:43 | → | arahael_ joins (~arahael@user/arahael) |
| 23:17:46 | → | fireking04 joins (~user@36-227-66-185.dynamic-ip.hinet.net) |
| 23:19:01 | × | arahael quits (~arahael@user/arahael) (Quit: Switching Machines) |
| 23:19:06 | arahael_ | is now known as arahael |
| 23:21:54 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:24:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:28:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 23:31:38 | × | euleritian quits (~euleritia@146.52.11.212) (Ping timeout: 272 seconds) |
| 23:32:18 | → | euleritian joins (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
| 23:34:42 | × | euleritian quits (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:35:03 | → | euleritian joins (~euleritia@146.52.11.212) |
| 23:39:09 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 23:42:03 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:47:31 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 23:50:26 | × | euleritian quits (~euleritia@146.52.11.212) (Remote host closed the connection) |
| 23:50:40 | → | euleritian joins (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
| 23:53:06 | × | st_aldini quits (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) (Read error: Connection reset by peer) |
| 23:53:48 | → | st_aldini joins (~Thunderbi@136.48.22.91) |
| 23:54:48 | × | euleritian quits (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 23:55:16 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:55:36 | → | euleritian joins (~euleritia@146.52.11.212) |
| 23:58:02 | → | troojg joins (~troojg@user/troojg) |
All times are in UTC on 2024-10-18.