2024-10-18 00:00:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:03:45 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-10-18 00:04:12 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 00:05:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 00:06:28 +0200 | troojg | (~troojg@user/troojg) troojg |
2024-10-18 00:14:42 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
2024-10-18 00:16:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:16:50 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Read error: Connection reset by peer) |
2024-10-18 00:23:31 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 00:34:08 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:38:13 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 00:38:18 +0200 | <dmj`> | tomsmeding: could catch type errors with a typechecker plugin, during unification |
2024-10-18 00:39:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 00:42:52 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-10-18 00:45:42 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb921c1d480c698edc2c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-10-18 00:48:15 +0200 | mantraofpie_ | mantraofpie |
2024-10-18 00:49:54 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:50:18 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-18 00:54:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 00:55:03 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b57:d075:1efa:336f) (Ping timeout: 252 seconds) |
2024-10-18 00:56:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-10-18 00:57:54 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-10-18 01:05:42 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:06:37 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2024-10-18 01:07:32 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-10-18 01:10:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 01:11:36 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 246 seconds) |
2024-10-18 01:14:18 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) jespada |
2024-10-18 01:15:43 +0200 | rmca | (~rob@188.120.84.50) (Ping timeout: 264 seconds) |
2024-10-18 01:15:48 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 245 seconds) |
2024-10-18 01:16:44 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-10-18 01:24:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:28:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 01:31:18 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) |
2024-10-18 01:39:00 +0200 | TonyStone | (~TonyStone@user/TonyStone) TonyStone |
2024-10-18 01:39:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:40:23 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds) |
2024-10-18 01:43:53 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 01:53:04 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-10-18 01:54:29 +0200 | roconnor | (~quassel@coq/roconnor) () |
2024-10-18 01:54:44 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:01:45 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) |
2024-10-18 02:01:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 02:04:34 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-10-18 02:12:47 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:15:39 +0200 | alp | (~alp@2001:861:e3d6:8f80:c611:3442:c342:856d) (Ping timeout: 246 seconds) |
2024-10-18 02:21:28 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 02:30:06 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 02:32:38 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:34:12 +0200 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) |
2024-10-18 02:34:58 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds) |
2024-10-18 02:36:01 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) |
2024-10-18 02:37:34 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 02:42:16 +0200 | identity | (~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91)) |
2024-10-18 02:48:51 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:53:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 02:56:27 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) (Ping timeout: 265 seconds) |
2024-10-18 02:57:49 +0200 | user363627 | (~user@user/user363627) user363627 |
2024-10-18 03:01:38 +0200 | weary-traveler | (~user@user/user363627) (Ping timeout: 252 seconds) |
2024-10-18 03:04:14 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:05:24 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
2024-10-18 03:06:17 +0200 | <Guest21> | How can I combine a list of predicates to a single predicate, using logical or? |
2024-10-18 03:09:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 03:13:58 +0200 | Square | (~Square@user/square) Square |
2024-10-18 03:14:06 +0200 | <dibblego> | Guest21: https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Monoid.html#t:Any with foldMap |
2024-10-18 03:15:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-10-18 03:17:29 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
2024-10-18 03:17:53 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 245 seconds) |
2024-10-18 03:18:22 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
2024-10-18 03:20:03 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:20:18 +0200 | <Guest21> | \ x -> getAny $ foldMap (Any . ($ x)) ps |
2024-10-18 03:21:19 +0200 | <Guest21> | dibblego like this? |
2024-10-18 03:21:30 +0200 | <dibblego> | lgtm! |
2024-10-18 03:21:58 +0200 | <Guest21> | Still more complicated than what I would have hoped for |
2024-10-18 03:22:09 +0200 | <dibblego> | there are functions that make it a little tidier |
2024-10-18 03:22:39 +0200 | <Guest21> | How exactly would that work? |
2024-10-18 03:22:42 +0200 | <monochrom> | \x -> any ($ x) ps |
2024-10-18 03:23:20 +0200 | <Guest21> | This looks nice! Can we get rid of the lambda somehow? |
2024-10-18 03:23:37 +0200 | <monochrom> | No. |
2024-10-18 03:24:24 +0200 | <Guest21> | OK, thanks a lot |
2024-10-18 03:24:49 +0200 | <monochrom> | Yes. Define "myHelper = \x -> any ($ x) ps". Now you just have to say "myHelper". |
2024-10-18 03:25:05 +0200 | <Lears> | :t flip (any . (&)) |
2024-10-18 03:25:06 +0200 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 03:25:26 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 03:26:17 +0200 | <Lears> | :t (getAny .) . foldMap (Any .) |
2024-10-18 03:26:18 +0200 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 03:26:50 +0200 | <Lears> | (if you really like point-free) |
2024-10-18 03:30:41 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
2024-10-18 03:35:52 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:42:41 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 03:42:53 +0200 | hgolden__ | (~hgolden@23.162.40.110) hgolden |
2024-10-18 03:45:49 +0200 | hgolden_ | (~hgolden@146.70.173.101) (Ping timeout: 260 seconds) |
2024-10-18 03:51:02 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2024-10-18 03:53:53 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:56:23 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds) |
2024-10-18 03:58:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 04:02:29 +0200 | rekahsoft | (~rekahsoft@76.69.85.220) (Ping timeout: 252 seconds) |
2024-10-18 04:03:31 +0200 | spew | (~spew@155.133.15.235) (Quit: spew) |
2024-10-18 04:06:50 +0200 | <probie> | % import Data.Functor.Contravariant |
2024-10-18 04:06:50 +0200 | <yahb2> | <no output> |
2024-10-18 04:07:23 +0200 | <probie> | % :t not . getPredicate . foldMap (Predicate . (not .)) |
2024-10-18 04:07:23 +0200 | <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... |
2024-10-18 04:07:44 +0200 | <probie> | % :t (not .) . getPredicate . foldMap (Predicate . (not .)) |
2024-10-18 04:07:44 +0200 | <yahb2> | (not .) . getPredicate . foldMap (Predicate . (not .)) ; :: Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 04:09:16 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:09:58 +0200 | <monochrom> | onoes, double negation |
2024-10-18 04:13:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 04:25:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:30:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 04:31:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 04:38:47 +0200 | <Axman6> | oh no, you can't not undo that! |
2024-10-18 04:40:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:45:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 04:46:13 +0200 | td_ | (~td@i53870903.versanet.de) (Ping timeout: 248 seconds) |
2024-10-18 04:47:49 +0200 | td_ | (~td@i53870913.versanet.de) td_ |
2024-10-18 04:55:49 +0200 | troojg | (~troojg@user/troojg) (Ping timeout: 260 seconds) |
2024-10-18 04:56:16 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-18 04:56:38 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:00:23 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
2024-10-18 05:01:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 05:02:23 +0200 | Square2 | (~Square4@user/square) Square |
2024-10-18 05:04:53 +0200 | Square | (~Square@user/square) (Ping timeout: 248 seconds) |
2024-10-18 05:12:25 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:18:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
2024-10-18 05:18:58 +0200 | pavonia | (~user@user/siracusa) siracusa |
2024-10-18 05:19:02 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 05:20:33 +0200 | monochrom | (trebla@216.138.220.146) (Read error: Connection reset by peer) |
2024-10-18 05:23:54 +0200 | monochrom | (trebla@216.138.220.146) |
2024-10-18 05:30:27 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:35:28 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 05:43:16 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:48:34 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 05:59:05 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:04:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 06:04:39 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 06:08:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:12:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 06:23:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:29:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-10-18 06:40:56 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:46:14 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 06:47:08 +0200 | neuroevolutus | (~neuroevol@37.19.200.167) neuroevolutus |
2024-10-18 06:48:51 +0200 | neuroevolutus | (~neuroevol@37.19.200.167) (Client Quit) |
2024-10-18 06:56:44 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:03:33 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-10-18 07:03:56 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 07:13:38 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 07:14:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:18:59 +0200 | michalz | (~michalz@185.246.207.222) |
2024-10-18 07:19:08 +0200 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 245 seconds) |
2024-10-18 07:19:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 07:22:08 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-10-18 07:27:03 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-10-18 07:28:17 +0200 | Square | (~Square@user/square) Square |
2024-10-18 07:30:59 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-10-18 07:31:09 +0200 | jero98772 | (~jero98772@2800:484:1d7c:cc00::11) |
2024-10-18 07:31:30 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
2024-10-18 07:31:38 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 245 seconds) |
2024-10-18 07:31:46 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-10-18 07:31:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:34:53 +0200 | rvalue- | rvalue |
2024-10-18 07:35:00 +0200 | <dmj`> | is the monomorphism restriction practical anymore |
2024-10-18 07:36:39 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 07:36:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 07:39:24 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Client Quit) |
2024-10-18 07:41:16 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 07:44:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:49:06 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 07:57:23 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-10-18 08:00:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:03:35 +0200 | jero98772 | (~jero98772@2800:484:1d7c:cc00::11) (Quit: leaving) |
2024-10-18 08:04:52 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 08:12:07 +0200 | Inst | (~Inst@user/Inst) (Remote host closed the connection) |
2024-10-18 08:12:26 +0200 | Inst | (~Inst@user/Inst) Inst |
2024-10-18 08:14:25 +0200 | <probie> | Define "practical" |
2024-10-18 08:15:48 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:19:10 +0200 | monochrom | (trebla@216.138.220.146) (Ping timeout: 252 seconds) |
2024-10-18 08:20:11 +0200 | monochrom | (trebla@216.138.220.146) |
2024-10-18 08:21:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 08:22:33 +0200 | briandaed | (~root@185.234.210.211.r.toneticgroup.pl) |
2024-10-18 08:27:07 +0200 | euleritian | (~euleritia@dynamic-176-000-163-135.176.0.pool.telefonica.de) (Ping timeout: 264 seconds) |
2024-10-18 08:28:04 +0200 | ft | (~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving) |
2024-10-18 08:28:07 +0200 | euleritian | (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) |
2024-10-18 08:28:46 +0200 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) (Quit: Leaving) |
2024-10-18 08:30:33 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) |
2024-10-18 08:31:35 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:36:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 08:41:29 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-10-18 08:42:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 08:45:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:48:58 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 08:52:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 08:56:59 +0200 | m1dnight | (~christoph@d8D861908.access.telenet.be) (Quit: WeeChat 4.4.2) |
2024-10-18 08:57:48 +0200 | m1dnight | (~christoph@d8D861908.access.telenet.be) m1dnight |
2024-10-18 09:00:02 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-10-18 09:00:38 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-10-18 09:03:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:04:38 +0200 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2024-10-18 09:08:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 09:08:06 +0200 | danza | (~danza@user/danza) danza |
2024-10-18 09:19:07 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:23:20 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2024-10-18 09:24:05 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 09:24:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 09:24:19 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Read error: Connection reset by peer) |
2024-10-18 09:25:48 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) synchromesh |
2024-10-18 09:26:31 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 264 seconds) |
2024-10-18 09:30:26 +0200 | danza | (~danza@user/danza) (Remote host closed the connection) |
2024-10-18 09:31:03 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 09:32:37 +0200 | michalz | (~michalz@185.246.207.222) (Ping timeout: 248 seconds) |
2024-10-18 09:33:13 +0200 | michalz | (~michalz@185.246.207.215) |
2024-10-18 09:33:17 +0200 | michalz | (~michalz@185.246.207.215) (Remote host closed the connection) |
2024-10-18 09:34:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:36:09 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2024-10-18 09:36:23 +0200 | <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 |
2024-10-18 09:36:37 +0200 | <tomsmeding> | and also I don't like plugins if the task can be done in any other way at all |
2024-10-18 09:37:08 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-10-18 09:37:49 +0200 | michalz | (~michalz@185.246.207.215) |
2024-10-18 09:38:06 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2024-10-18 09:38:38 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-10-18 09:39:54 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2024-10-18 09:40:06 +0200 | ghoulguy | (glguy@libera/staff/glguy) (Quit: Quit) |
2024-10-18 09:42:14 +0200 | youthlic | (~Thunderbi@user/youthlic) (Ping timeout: 260 seconds) |
2024-10-18 09:42:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 09:43:19 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-10-18 09:43:31 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2024-10-18 09:49:52 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 09:58:04 +0200 | chele | (~chele@user/chele) chele |
2024-10-18 09:58:22 +0200 | madjesti1 | (~madjestic@213.208.215.120) |
2024-10-18 10:03:18 +0200 | madjesti1 | (~madjestic@213.208.215.120) (Quit: leaving) |
2024-10-18 10:14:24 +0200 | madjestic | (~madjestic@213.208.215.120) madjestic |
2024-10-18 10:16:21 +0200 | alp | (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) |
2024-10-18 10:19:36 +0200 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-10-18 10:21:33 +0200 | dcoutts_ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 10:27:09 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) Feuermagier |
2024-10-18 10:28:03 +0200 | dcoutts__ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
2024-10-18 10:30:49 +0200 | dcoutts_ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 260 seconds) |
2024-10-18 10:38:07 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 10:38:09 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-18 10:43:33 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2024-10-18 10:47:31 +0200 | comonad | (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-10-18 10:49:31 +0200 | user363627 | (~user@user/user363627) (Remote host closed the connection) |
2024-10-18 10:49:35 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Read error: Connection reset by peer) |
2024-10-18 10:53:08 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 10:53:56 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-10-18 11:02:57 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-10-18 11:03:05 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 11:24:54 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
2024-10-18 11:27:01 +0200 | madjestic | (~madjestic@213.208.215.120) (Quit: Lost terminal) |
2024-10-18 11:30:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 11:31:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 11:38:38 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 11:46:11 +0200 | mari-estel | (~mari-este@user/mari-estel) (Ping timeout: 265 seconds) |
2024-10-18 11:46:55 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 11:47:04 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
2024-10-18 11:49:01 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 11:53:42 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Quit: WeeChat 4.0.5) |
2024-10-18 11:59:48 +0200 | driib318 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-10-18 12:00:04 +0200 | mari-estel | still has not solved how to compile hoogle on this low-memory machine |
2024-10-18 12:00:23 +0200 | driib318 | (~driib@vmi931078.contaboserver.net) driib |
2024-10-18 12:01:51 +0200 | <briandaed> | mari-estel? is it linux? maybe zram can help |
2024-10-18 12:02:10 +0200 | <mari-estel> | cheers, gonna learn about zram |
2024-10-18 12:02:25 +0200 | <mari-estel> | huh "No manual entry" |
2024-10-18 12:02:27 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 12:02:42 +0200 | <mari-estel> | oh, zramctrl. Apropos helped |
2024-10-18 12:03:35 +0200 | <mari-estel> | "set up and control zram devices". Sorry for the slight offtopic but... what is a zram device? |
2024-10-18 12:06:01 +0200 | <mari-estel> | alright there is a link to https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/… |
2024-10-18 12:12:04 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Read error: Connection reset by peer) |
2024-10-18 12:12:21 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 252 seconds) |
2024-10-18 12:18:25 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 12:18:40 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 12:21:07 +0200 | <tomsmeding> | mari-estel: how much RAM; can you add swap? |
2024-10-18 12:21:30 +0200 | <tomsmeding> | also what architecture and linux distro, perhaps someone else can compile for you |
2024-10-18 12:22:10 +0200 | <mari-estel> | 3k MiB, i guess zramctrl is for adding swap, will read about that eventually. I guess this is ARM |
2024-10-18 12:22:27 +0200 | <tomsmeding> | "3k MiB", is that 3 GiB? |
2024-10-18 12:22:33 +0200 | <tomsmeding> | zram is for transparently compressing RAM |
2024-10-18 12:22:43 +0200 | <mari-estel> | yeah 3 GiB i think |
2024-10-18 12:22:44 +0200 | <tomsmeding> | which helps to the extent that processes store compressible stuff in RAM |
2024-10-18 12:22:54 +0200 | <tomsmeding> | I believe zram functions by adding a swap device _in RAM_ that is compressed |
2024-10-18 12:23:12 +0200 | <tomsmeding> | 3 GiB should be enough to compile most haskell things |
2024-10-18 12:23:15 +0200 | <mari-estel> | hum i see. I would rather go for uncompressed swapped then. Any pointers to linux manuals i should read? |
2024-10-18 12:23:29 +0200 | <mari-estel> | well hoogle fails and i think it could only be because of memory |
2024-10-18 12:23:30 +0200 | <tomsmeding> | mari-estel: what happens if you just `cabal install -j1 hoogle`? |
2024-10-18 12:23:47 +0200 | <mari-estel> | i will try that but... how would a single core help? |
2024-10-18 12:24:04 +0200 | <tomsmeding> | well, compiling multiple things simultaneously means you now need to fit _two_ GHCs in RAM :p |
2024-10-18 12:24:25 +0200 | <tomsmeding> | -j1 is an easy way to divide memory usage by like 4 |
2024-10-18 12:24:32 +0200 | <mari-estel> | hmm |
2024-10-18 12:24:34 +0200 | <tomsmeding> | (depending on how many cores it ran on before) |
2024-10-18 12:24:44 +0200 | <mari-estel> | cool stuff, trying that now... |
2024-10-18 12:25:13 +0200 | <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 |
2024-10-18 12:25:24 +0200 | <tomsmeding> | s/swpafile/swapfile/ |
2024-10-18 12:25:42 +0200 | <mari-estel> | plenty of hints, cheers tomsmeding! |
2024-10-18 12:25:43 +0200 | <tomsmeding> | fairly sure this does not persist after a reboot |
2024-10-18 12:25:51 +0200 | <tomsmeding> | (which is probably exactly as you want it) |
2024-10-18 12:26:13 +0200 | <tomsmeding> | mari-estel: I have some experience building e.g. the haskell playground on a cheap VPS :p |
2024-10-18 12:26:20 +0200 | euleritian | (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) (Ping timeout: 260 seconds) |
2024-10-18 12:26:20 +0200 | <mari-estel> | (: |
2024-10-18 12:26:30 +0200 | <briandaed> | also there maybe processes that could be stopped, services or something that is not crucial |
2024-10-18 12:27:02 +0200 | <mari-estel> | already tried with no other services running, but i am confident in -j1 and the rest |
2024-10-18 12:27:04 +0200 | <geekosaur> | it will only persist if you add it as a swap entry in /etc/fstab |
2024-10-18 12:27:11 +0200 | <tomsmeding> | right |
2024-10-18 12:27:33 +0200 | <tomsmeding> | mari-estel: let me know what package it fails on if you compile with -j1 and it still fails |
2024-10-18 12:27:54 +0200 | <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 |
2024-10-18 12:28:31 +0200 | <tomsmeding> | (if it does, my bets are on vector or aeson) |
2024-10-18 12:28:39 +0200 | <mari-estel> | good point about the package... wondering whether pre-installing that with --lib could help. Let us see whether any fails with -j1 |
2024-10-18 12:29:00 +0200 | <tomsmeding> | pre-installing won't help, GHC is the big memory-eater here and GHC is restarted from scratch for every new package |
2024-10-18 12:29:42 +0200 | <mari-estel> | hm but in theory if it find the right version ready it will not rebuild? |
2024-10-18 12:29:48 +0200 | <mari-estel> | *finds |
2024-10-18 12:30:08 +0200 | <tomsmeding> | if the problem is indeed memory, then the problem is the peak memory use during the whole process |
2024-10-18 12:30:18 +0200 | <tomsmeding> | you aren't going to lower the peak by doing things in a different order |
2024-10-18 12:30:48 +0200 | <mari-estel> | well avoiding a package's compilation would not allocate that extra amount |
2024-10-18 12:31:01 +0200 | <tomsmeding> | sure, but to pre-install you still have to build it :p |
2024-10-18 12:31:39 +0200 | <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 |
2024-10-18 12:32:44 +0200 | <mari-estel> | i see what you mean, the compiler being restarted from scratch means peak is going to be the same, makes sense |
2024-10-18 12:32:53 +0200 | <tomsmeding> | yep |
2024-10-18 12:33:38 +0200 | <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 |
2024-10-18 12:34:02 +0200 | <tomsmeding> | but 1. arranging that the latter happens in a cabal project is tricky, and 2. that won't give huge gains, I think |
2024-10-18 12:34:29 +0200 | <mari-estel> | yeah and that is some delving i am not going to tackle at the moment anyways |
2024-10-18 12:35:47 +0200 | <Inst> | people say that the only possible function with a type signature of a -> a, when you're not abusing unsafe, is id |
2024-10-18 12:36:13 +0200 | <Inst> | but why isn't id' or seq foo included? |
2024-10-18 12:36:25 +0200 | <tomsmeding> | what is id'? |
2024-10-18 12:36:41 +0200 | <Inst> | \a -> seq a a |
2024-10-18 12:36:46 +0200 | <tomsmeding> | that's the same as id ;) |
2024-10-18 12:37:10 +0200 | <geekosaur> | do you understand what `seq a a` does? (or more precisely, doesn't do) |
2024-10-18 12:37:15 +0200 | <tomsmeding> | in general, seq a a is the same as a |
2024-10-18 12:37:27 +0200 | <tomsmeding> | it adds a dependency on the evaluation of a to the evaluation of its result, which is a |
2024-10-18 12:37:34 +0200 | <geekosaur> | "ensure that `a` has been evaluated when `a` is evaluated" |
2024-10-18 12:37:47 +0200 | <tomsmeding> | 'seq foo' is indeed different, I guess? |
2024-10-18 12:38:28 +0200 | <Inst> | gah, waiting on browser is stop hanging :( |
2024-10-18 12:38:34 +0200 | <geekosaur> | it's outside the type system model that we are using when discussing that, though |
2024-10-18 12:39:08 +0200 | <geekosaur> | and in particular introduces a possible bottom, but we excluded `undefined`/bottom already from the discussion |
2024-10-18 12:39:30 +0200 | <merijn> | Inst: because people generally handwave non-total inputs |
2024-10-18 12:40:17 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 248 seconds) |
2024-10-18 12:40:41 +0200 | <Inst> | iirc bang patterns desugars to seq |
2024-10-18 12:41:01 +0200 | <Inst> | but bang patterns will trigger evaluation in where or let clauses |
2024-10-18 12:41:57 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-10-18 12:42:02 +0200 | <geekosaur> | oh, you only excluded unsafe. so I give you `undefined :: a -> a` |
2024-10-18 12:42:12 +0200 | <Inst> | ack :( |
2024-10-18 12:42:12 +0200 | <geekosaur> | (now you see why I excluded it) |
2024-10-18 12:42:20 +0200 | <Inst> | i assume the bottom was excluded as well |
2024-10-18 12:42:44 +0200 | <geekosaur> | but if you exclude bottom then you cannot discuss `seq` |
2024-10-18 12:42:48 +0200 | <tomsmeding> | if you include bottoms, there are so many different bottoms |
2024-10-18 12:42:56 +0200 | <Inst> | here's a weird mystery, like, let foo = id where !_ = undefined |
2024-10-18 12:42:58 +0200 | <geekosaur> | because the only thing it can do is introduce a bottom |
2024-10-18 12:43:15 +0200 | <tomsmeding> | and there is this "fast and loose reasoning is morally correct" paper that people vaguely cite when handwaving bottoms away |
2024-10-18 12:45:40 +0200 | leah2 | (~leah@vuxu.org) leah2 |
2024-10-18 12:46:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 12:49:19 +0200 | <Inst> | hmmm, seems more like an issue with my understanding of bang patterns, ugh |
2024-10-18 12:49:38 +0200 | <Inst> | > foo = id where !_ = undefined |
2024-10-18 12:49:39 +0200 | <lambdabot> | <hint>:1:5: error: parse error on input ‘=’ |
2024-10-18 12:49:46 +0200 | <Inst> | > let foo = id where !_ = undefined |
2024-10-18 12:49:47 +0200 | <lambdabot> | <no location info>: error: |
2024-10-18 12:49:48 +0200 | <lambdabot> | not an expression: ‘let foo = id where !_ = undefined’ |
2024-10-18 12:49:48 +0200 | <Inst> | > foo 3 |
2024-10-18 12:49:49 +0200 | <lambdabot> | error: |
2024-10-18 12:49:49 +0200 | <lambdabot> | • No instance for (Typeable a0) |
2024-10-18 12:49:50 +0200 | <lambdabot> | arising from a use of ‘show_M71330527728707901318’ |
2024-10-18 12:49:55 +0200 | <tomsmeding> | try with % |
2024-10-18 12:49:58 +0200 | <Inst> | % let foo = id where !_ = undefined |
2024-10-18 12:49:58 +0200 | <yahb2> | <no output> |
2024-10-18 12:50:00 +0200 | <tomsmeding> | lambdabot is not full ghci |
2024-10-18 12:50:05 +0200 | <Inst> | % foo 3 |
2024-10-18 12:50:05 +0200 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:11:25 in interactive:Ghci3 |
2024-10-18 12:50:24 +0200 | <Inst> | % let foo = id where _ = undefined `seq` () |
2024-10-18 12:50:24 +0200 | <yahb2> | <no output> |
2024-10-18 12:50:27 +0200 | <Inst> | foo 3 |
2024-10-18 12:50:29 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 12:50:34 +0200 | <Inst> | % foo 3 |
2024-10-18 12:50:34 +0200 | <yahb2> | 3 |
2024-10-18 12:50:39 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 260 seconds) |
2024-10-18 12:51:06 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-10-18 12:52:43 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) |
2024-10-18 12:54:47 +0200 | <Inst> | https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns… |
2024-10-18 12:54:56 +0200 | <Inst> | hmmm, maybe i misunderstood when i thought bang = seq |
2024-10-18 12:55:27 +0200 | <tomsmeding> | Inst: you forgot the bang in your last example |
2024-10-18 12:55:57 +0200 | <tomsmeding> | % let foo = x `seq` id where x = undefined |
2024-10-18 12:55:57 +0200 | <yahb2> | <no output> |
2024-10-18 12:55:59 +0200 | <tomsmeding> | foo 3 |
2024-10-18 12:56:01 +0200 | <tomsmeding> | % foo 3 |
2024-10-18 12:56:01 +0200 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:19:32 in interactive:Ghci6 |
2024-10-18 12:56:07 +0200 | <tomsmeding> | bang does become seq |
2024-10-18 12:56:12 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 12:56:27 +0200 | <tomsmeding> | ah, except of course when it doesn't because pattern matching is more complicated |
2024-10-18 12:56:39 +0200 | <Inst> | :( |
2024-10-18 12:57:51 +0200 | <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 |
2024-10-18 12:57:58 +0200 | <Inst> | an unused value |
2024-10-18 12:58:37 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) acidjnk |
2024-10-18 12:58:47 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 12:59:04 +0200 | <Inst> | but in general, we pretend that id' = id, or for that matter, let id'' = force, then again, force has an NFData constraint |
2024-10-18 12:59:20 +0200 | <tomsmeding> | id' = id is actually true |
2024-10-18 12:59:26 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 12:59:38 +0200 | <tomsmeding> | id = force is not true, but is true in the world of "total haskell" |
2024-10-18 13:00:06 +0200 | euleritian | (~euleritia@tmo-125-85.customers.d1-online.com) |
2024-10-18 13:00:14 +0200 | <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 |
2024-10-18 13:00:25 +0200 | <tomsmeding> | and at that point you also evaluate the argument to id |
2024-10-18 13:03:08 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2 |
2024-10-18 13:04:12 +0200 | euleritian | (~euleritia@tmo-125-85.customers.d1-online.com) (Ping timeout: 246 seconds) |
2024-10-18 13:05:55 +0200 | leah2 | (~leah@vuxu.org) leah2 |
2024-10-18 13:09:54 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2024-10-18 13:09:56 +0200 | Digit | (~user@user/digit) (Ping timeout: 252 seconds) |
2024-10-18 13:13:36 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 13:13:49 +0200 | ft | (~ft@p4fc2a216.dip0.t-ipconnect.de) ft |
2024-10-18 13:16:40 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-10-18 13:17:34 +0200 | <Inst> | i should read up on parametricity and how bang patterns actually work, i guess |
2024-10-18 13:17:44 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-10-18 13:17:50 +0200 | <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 |
2024-10-18 13:18:10 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-10-18 13:18:43 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 13:18:52 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 272 seconds) |
2024-10-18 13:20:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 13:20:24 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
2024-10-18 13:22:45 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2024-10-18 13:29:41 +0200 | Digitteknohippie | Digit |
2024-10-18 13:30:58 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 13:32:07 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 13:32:27 +0200 | euleritian | (~euleritia@ip-185-104-138-55.ptr.icomera.net) |
2024-10-18 13:33:08 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2024-10-18 13:33:27 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
2024-10-18 13:33:27 +0200 | ljdarj1 | ljdarj |
2024-10-18 13:33:59 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 13:35:40 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 13:38:21 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 13:45:09 +0200 | euleritian | (~euleritia@ip-185-104-138-55.ptr.icomera.net) (Ping timeout: 276 seconds) |
2024-10-18 13:48:14 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 13:57:42 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 14:00:12 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-10-18 14:00:31 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2024-10-18 14:00:31 +0200 | ljdarj1 | ljdarj |
2024-10-18 14:00:53 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2024-10-18 14:00:53 +0200 | ChanServ | +v haskellbridge |
2024-10-18 14:07:28 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Ping timeout: 245 seconds) |
2024-10-18 14:10:15 +0200 | euleritian | (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) |
2024-10-18 14:18:18 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:18:38 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2 |
2024-10-18 14:19:06 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b1c9:c57e:b0f1:f862) |
2024-10-18 14:27:09 +0200 | alp | (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) (Ping timeout: 246 seconds) |
2024-10-18 14:33:54 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:34:57 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) alexherbo2 |
2024-10-18 14:38:20 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:44:34 +0200 | identity | (~identity@user/ZharMeny) identity |
2024-10-18 14:48:38 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 14:53:19 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
2024-10-18 14:59:29 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 15:05:15 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 15:21:33 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 15:21:50 +0200 | hiecaq | (~hiecaq@user/hiecaq) hiecaq |
2024-10-18 15:26:48 +0200 | robertm | (robertm@lattice.rojoma.com) (Ping timeout: 252 seconds) |
2024-10-18 15:30:44 +0200 | Flow | (~none@gentoo/developer/flow) (Quit: WeeChat 4.2.1) |
2024-10-18 15:32:33 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 15:34:20 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 15:36:26 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-10-18 15:43:18 +0200 | dispater | (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-10-18 15:43:19 +0200 | orcus | (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-10-18 15:45:07 +0200 | dispater | (~dispater@mail.brprice.uk) |
2024-10-18 15:45:36 +0200 | orcus | (~orcus@mail.brprice.uk) |
2024-10-18 15:51:00 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 15:52:16 +0200 | <Inst> | hmmm, so seq and bang patterns are equivalent, except that bang patterns are substantially more ergonomic |
2024-10-18 15:52:34 +0200 | <Inst> | well, depends on context |
2024-10-18 15:53:33 +0200 | <Inst> | just that bangs allow you to do stuff that would require breaking down the standard function syntax to replicate with seq |
2024-10-18 15:54:40 +0200 | euleritian | (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) (Ping timeout: 272 seconds) |
2024-10-18 15:55:12 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
2024-10-18 15:56:09 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-10-18 16:02:14 +0200 | <mari-estel> | hey tomsmeding, compiling with -j1 worked! Thanks a lot for that! |
2024-10-18 16:02:22 +0200 | <tomsmeding> | mari-estel: yay! |
2024-10-18 16:02:25 +0200 | <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 |
2024-10-18 16:02:26 +0200 | <tomsmeding> | sometimes it's easier than you think |
2024-10-18 16:02:46 +0200 | <tomsmeding> | oh is 'hoogle generate' so ram-hungry too? |
2024-10-18 16:02:49 +0200 | <tomsmeding> | then yes, swap |
2024-10-18 16:02:52 +0200 | <mari-estel> | it is less of a problem though because i managed to install linux on another machine |
2024-10-18 16:07:53 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-10-18 16:08:44 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 248 seconds) |
2024-10-18 16:18:02 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 16:19:29 +0200 | comonad | (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) |
2024-10-18 16:24:38 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
2024-10-18 16:24:54 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2024-10-18 16:28:53 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 16:29:14 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 16:31:11 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 16:37:23 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 16:37:35 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
2024-10-18 16:38:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 16:38:32 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
2024-10-18 16:42:46 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 16:44:48 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 16:47:27 +0200 | spew | (~spew@155.133.15.104) spew |
2024-10-18 16:49:15 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 16:52:42 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-10-18 16:53:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 16:56:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 16:56:27 +0200 | tabemann_ | (~tabemann@2600:1700:7990:24e0:9b92:fe17:1b69:2f6b) |
2024-10-18 16:56:31 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-10-18 16:56:49 +0200 | tabemann | (~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741) (Ping timeout: 260 seconds) |
2024-10-18 16:57:53 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-10-18 16:58:34 +0200 | glguy | (glguy@libera/staff/glguy) glguy |
2024-10-18 16:58:52 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
2024-10-18 17:04:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:09:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 17:13:27 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2024-10-18 17:20:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:23:05 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
2024-10-18 17:23:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-10-18 17:23:51 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 17:24:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 17:25:14 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 17:34:46 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 17:35:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:40:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 17:45:58 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-10-18 17:46:45 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-10-18 17:48:46 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-10-18 17:50:45 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:53:25 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 17:55:20 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-10-18 17:55:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 17:55:32 +0200 | <glguy> | dmj`: yes, it is practical |
2024-10-18 18:03:27 +0200 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) billchenchina |
2024-10-18 18:04:44 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 18:05:36 +0200 | <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? |
2024-10-18 18:06:07 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 18:07:59 +0200 | <ncf> | use an optic for step 1 and then regular haskell for steps 2 and 3? |
2024-10-18 18:09:40 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 18:10:11 +0200 | <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. |
2024-10-18 18:11:51 +0200 | Square | (~Square@user/square) Square |
2024-10-18 18:13:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-10-18 18:14:23 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Client Quit) |
2024-10-18 18:15:09 +0200 | <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. |
2024-10-18 18:16:09 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 18:16:14 +0200 | <c_wraith> | You won't get prosecuted for using unlawful optics |
2024-10-18 18:16:33 +0200 | <c_wraith> | The still *work*, they just can't be blindly refactored. |
2024-10-18 18:16:45 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-10-18 18:17:23 +0200 | <c_wraith> | There's a reason filtered is not a Fold |
2024-10-18 18:18:25 +0200 | <haskellbridge> | <maralorn> c_wraith: Yeah, I know. But in the large team we have I’d rather be careful with that. |
2024-10-18 18:18:35 +0200 | EvanR | (~EvanR@user/evanr) EvanR |
2024-10-18 18:18:54 +0200 | <haskellbridge> | <maralorn> Lears: I like the traverseMaybe idea, thank you. |
2024-10-18 18:19:02 +0200 | <EvanR> | is there a version of unfoldr which keeps unfolding forever and doesn't need to deal with Maybe |
2024-10-18 18:19:44 +0200 | <ncf> | wait, so you need to put the filtered list back in? |
2024-10-18 18:20:14 +0200 | ncf | is confused about the problem |
2024-10-18 18:20:22 +0200 | <c_wraith> | I'd honestly just use lenses's filtered combinator unless it doesn't work for some reason |
2024-10-18 18:20:30 +0200 | <c_wraith> | err, lens's |
2024-10-18 18:20:59 +0200 | <c_wraith> | EvanR: is that not just... iterate? |
2024-10-18 18:21:11 +0200 | <EvanR> | :t iterate |
2024-10-18 18:21:12 +0200 | <lambdabot> | (a -> a) -> a -> [a] |
2024-10-18 18:21:24 +0200 | <c_wraith> | or do you want a separate state value that's passed along? |
2024-10-18 18:21:27 +0200 | <EvanR> | quite possible |
2024-10-18 18:21:29 +0200 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
2024-10-18 18:21:41 +0200 | <EvanR> | you could just map the sequence of states? |
2024-10-18 18:22:15 +0200 | <EvanR> | if so, haskell at its finest |
2024-10-18 18:22:38 +0200 | <c_wraith> | a common pattern with iterate is to use it on (state, value) tuples then map snd to get rid of the states |
2024-10-18 18:23:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 18:26:06 +0200 | <haskellbridge> | <maralorn> ncf: Yes. |
2024-10-18 18:27:10 +0200 | <ncf> | then you should have a lens or a traversal with target type [Whatever] |
2024-10-18 18:27:27 +0200 | <ncf> | so you can map/filter/whatever over that |
2024-10-18 18:28:55 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-10-18 18:30:30 +0200 | <c_wraith> | that doesn't sound right to me, but I think we're interpreting the problem differently. the specification is really vague |