2025-02-11 00:04:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 00:09:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-02-11 00:09:54 +0100 | hololeap | (~quassel@user/hololeap) (Quit: Bye) |
2025-02-11 00:10:57 +0100 | hololeap | (~quassel@user/hololeap) hololeap |
2025-02-11 00:15:26 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-02-11 00:19:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 00:24:39 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 265 seconds) |
2025-02-11 00:26:59 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 00:27:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 00:31:11 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 00:39:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 00:44:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-11 00:53:47 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-02-11 00:53:48 +0100 | otbergsten | (~otbergste@user/otbergsten) (Remote host closed the connection) |
2025-02-11 00:54:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 00:59:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-11 01:07:21 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-02-11 01:10:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 01:13:13 +0100 | athan | (~athan@syn-173-042-095-241.biz.spectrum.com) athan |
2025-02-11 01:14:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-02-11 01:15:03 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 01:16:54 +0100 | <lyxia> | I somehow need existential newtypes in Haskell... are there any workarounds (or have they been implemented already)? |
2025-02-11 01:17:47 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-02-11 01:19:06 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-02-11 01:19:58 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds) |
2025-02-11 01:19:58 +0100 | ljdarj1 | ljdarj |
2025-02-11 01:21:51 +0100 | <Leary> | lyxia: You can use a smart constructor that secretly `unsafeCoerce`s the hidden type to `Any`, then provide a Rank2 `withFoo` for unwrapping. See `Data.Some.Newtype` for an example in the wild. |
2025-02-11 01:22:39 +0100 | athan | (~athan@syn-173-042-095-241.biz.spectrum.com) (Quit: Konversation terminated!) |
2025-02-11 01:25:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 01:27:49 +0100 | <Leary> | There's also a similar trick to give the constructor a constraint, so long as any runtime data can be computed from the argument: https://gist.github.com/LSLeary/ef0f75468938fa6ff505331171bb011c |
2025-02-11 01:32:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 01:35:15 +0100 | <lyxia> | Very cursed, thank you :) |
2025-02-11 01:43:18 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f999088022741b454a0.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-02-11 01:43:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 01:48:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 01:58:39 +0100 | hammond | (proscan@gateway04.insomnia247.nl) (Ping timeout: 246 seconds) |
2025-02-11 01:59:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 02:02:01 +0100 | sprotte24 | (~sprotte24@p200300d16f01b7005c77723fc43a3702.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-02-11 02:03:28 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 02:03:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 02:04:53 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 02:07:33 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 02:09:39 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 260 seconds) |
2025-02-11 02:14:00 +0100 | neto | (~Netnet@143-208-42-129.users.certto.com.br) |
2025-02-11 02:14:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 02:19:29 +0100 | euouae | (~euouae@user/euouae) (Remote host closed the connection) |
2025-02-11 02:19:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-02-11 02:19:50 +0100 | neto | (~Netnet@143-208-42-129.users.certto.com.br) (Remote host closed the connection) |
2025-02-11 02:20:08 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 272 seconds) |
2025-02-11 02:20:41 +0100 | hammond | (proscan@gateway04.insomnia247.nl) |
2025-02-11 02:24:35 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2025-02-11 02:25:23 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds) |
2025-02-11 02:29:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 02:34:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 02:38:21 +0100 | <lisbeths> | bash_macros(){ while read -r i; do eval "$( printf "%s" "$i" | awk "$1" ; )" ; done ; } ; |
2025-02-11 02:39:54 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-11 02:43:56 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-02-11 02:45:11 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 02:49:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 02:52:33 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 02:57:12 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-02-11 03:00:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 03:07:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-11 03:12:50 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 03:13:33 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2025-02-11 03:17:18 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 252 seconds) |
2025-02-11 03:17:45 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
2025-02-11 03:18:36 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 03:23:03 +0100 | pikajude | (~jude@2001:19f0:ac01:373:5400:2ff:fe86:3274) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-11 03:23:06 +0100 | pounce | (~pounce@user/cute/pounce) (Read error: Connection reset by peer) |
2025-02-11 03:23:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 03:23:14 +0100 | Vajb | (~Vajb@n84e9ei03jkqt6rm3ev-1.v6.elisa-mobile.fi) (Ping timeout: 248 seconds) |
2025-02-11 03:23:19 +0100 | pounce | (~pounce@user/cute/pounce) pounce |
2025-02-11 03:23:23 +0100 | pikajude | (~jude@149.28.207.64) pikajude |
2025-02-11 03:23:40 +0100 | andreas303 | (andreas303@is.drunk.and.ready-to.party) (Quit: fBNC - https://bnc4free.com) |
2025-02-11 03:24:02 +0100 | berberman | (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-11 03:24:15 +0100 | berberman | (~berberman@user/berberman) berberman |
2025-02-11 03:24:18 +0100 | andreas303 | (andreas303@is.drunk.and.ready-to.party) andreas303 |
2025-02-11 03:24:21 +0100 | bryanv | (~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10) (Quit: No Ping reply in 180 seconds.) |
2025-02-11 03:25:34 +0100 | bryanv | (~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10) |
2025-02-11 03:25:54 +0100 | ggVGc | (~ggVGc@a.lowtech.earth) (Ping timeout: 248 seconds) |
2025-02-11 03:25:54 +0100 | [_________] | (~oos95GWG@user/oos95GWG) (Ping timeout: 248 seconds) |
2025-02-11 03:26:46 +0100 | ggVGc | (~ggVGc@a.lowtech.earth) |
2025-02-11 03:26:47 +0100 | [_________] | (~oos95GWG@user/oos95GWG) oos95GWG |
2025-02-11 03:28:21 +0100 | Axma24393 | Axman6 |
2025-02-11 03:29:36 +0100 | <haskellbridge> | <thirdofmay18081814goya> Where is lens' Fold composition defined? |
2025-02-11 03:29:41 +0100 | yegorc | (~yegorc@user/yegorc) (Leaving) |
2025-02-11 03:33:58 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 03:35:10 +0100 | <c_wraith> | a Fold is still a function of shape `(a -> f b) -> s -> f t', so they compose with (.) like every other optic |
2025-02-11 03:35:46 +0100 | <c_wraith> | The only thing special about a Fold is that they add a Contravariant constraint to f |
2025-02-11 03:36:49 +0100 | <c_wraith> | which when combined with the Applicative constraint means that you can't use them with any choice of f that would actually contain a t |
2025-02-11 03:39:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-02-11 03:40:39 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 03:45:14 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-11 03:49:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 03:53:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-02-11 03:53:56 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 268 seconds) |
2025-02-11 03:58:16 +0100 | <haskellbridge> | <thirdofmay18081814goya> ah right ok I see, ty! |
2025-02-11 03:58:41 +0100 | Square3 | (~Square@user/square) Square |
2025-02-11 03:59:48 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 04:00:14 +0100 | Square3 | Square |
2025-02-11 04:01:05 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2025-02-11 04:01:47 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
2025-02-11 04:04:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 04:09:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 04:20:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 04:21:28 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
2025-02-11 04:23:14 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 04:24:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 04:28:38 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Remote host closed the connection) |
2025-02-11 04:30:55 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 04:33:34 +0100 | m5zs7k | (aquares@web10.mydevil.net) m5zs7k |
2025-02-11 04:35:02 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 04:35:02 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 04:35:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 04:42:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 04:43:34 +0100 | manwithluck` | (~manwithlu@2a09:bac1:5be0:20::49:de) (Remote host closed the connection) |
2025-02-11 04:47:19 +0100 | hattckory | (~hattckry@user/hattckory) hattckory |
2025-02-11 04:51:30 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-02-11 04:53:20 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 04:53:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 04:53:48 +0100 | hattckory | attk |
2025-02-11 04:57:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-02-11 04:57:54 +0100 | tavare | (~tavare@user/tavare) tavare |
2025-02-11 05:04:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-02-11 05:08:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 05:13:37 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 05:18:08 +0100 | Googulator28 | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 05:18:23 +0100 | Googulator28 | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 05:18:58 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 05:21:52 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-11 05:23:26 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 05:24:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 05:28:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 05:33:48 +0100 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 252 seconds) |
2025-02-11 05:34:03 +0100 | attk | (~hattckry@user/hattckory) (Quit: attk) |
2025-02-11 05:35:32 +0100 | foul_owl | (~kerry@193.42.0.122) (Ping timeout: 252 seconds) |
2025-02-11 05:38:09 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2025-02-11 05:39:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 05:43:58 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 05:48:10 +0100 | lol_ | (~lol@2603:3016:1e01:b9c0:f7:4b70:33ec:27a0) |
2025-02-11 05:48:17 +0100 | foul_owl | (~kerry@193.42.0.122) foul_owl |
2025-02-11 05:51:03 +0100 | aforemny | (~aforemny@2001:9e8:6cfe:5000:87c7:acaa:b551:71f7) (Ping timeout: 246 seconds) |
2025-02-11 05:51:46 +0100 | aforemny | (~aforemny@i59F4C4A3.versanet.de) aforemny |
2025-02-11 05:52:39 +0100 | jcarpenter2 | (~lol@2603:3016:1e01:b9c0:41a0:c194:66be:75a1) (Ping timeout: 276 seconds) |
2025-02-11 05:54:10 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 248 seconds) |
2025-02-11 05:54:36 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
2025-02-11 05:55:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 05:58:53 +0100 | m5zs7k | (aquares@web10.mydevil.net) m5zs7k |
2025-02-11 05:59:16 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-11 05:59:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 06:07:22 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 06:10:25 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 06:11:44 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-02-11 06:14:02 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2025-02-11 06:14:24 +0100 | mrmr155334346318 | (~mrmr@user/mrmr) (Ping timeout: 252 seconds) |
2025-02-11 06:17:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 06:23:54 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Remote host closed the connection) |
2025-02-11 06:24:33 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
2025-02-11 06:24:41 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 06:26:26 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 06:28:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 06:29:21 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds) |
2025-02-11 06:32:27 +0100 | attk | (~attk@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) attk |
2025-02-11 06:33:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 06:35:09 +0100 | <haskellbridge> | <thirdofmay18081814goya> does anyone have examples of transformations that are particularly clearly expressed using profunctor optics? |
2025-02-11 06:35:40 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-02-11 06:38:14 +0100 | foul_owl | (~kerry@193.42.0.122) (Ping timeout: 252 seconds) |
2025-02-11 06:39:13 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 06:43:30 +0100 | fmira | (~user@user/fmira) fmira |
2025-02-11 06:43:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 06:48:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 06:50:54 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Remote host closed the connection) |
2025-02-11 06:52:16 +0100 | Square2 | (~Square4@user/square) Square |
2025-02-11 06:52:42 +0100 | foul_owl | (~kerry@174-21-138-88.tukw.qwest.net) foul_owl |
2025-02-11 06:53:16 +0100 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2025-02-11 06:55:26 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 06:57:35 +0100 | lunitur | (~lunitur@86.33.73.151) (Ping timeout: 265 seconds) |
2025-02-11 06:59:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 06:59:45 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 07:02:56 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection) |
2025-02-11 07:03:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 07:04:02 +0100 | hattckory | (~hattckory@user/hattckory) hattckory |
2025-02-11 07:08:22 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden |
2025-02-11 07:09:18 +0100 | michalz | (~michalz@185.246.207.200) |
2025-02-11 07:13:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 07:16:22 +0100 | JeremyB99 | (~JeremyB99@dhcp-251-168.resnet.purdue.edu) |
2025-02-11 07:16:27 +0100 | Googulator31 | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 07:17:25 +0100 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-02-11 07:17:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 07:18:08 +0100 | Googulator28 | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 07:18:34 +0100 | lunitur | (~lunitur@86.33.95.148) |
2025-02-11 07:28:04 +0100 | hattckory | (~hattckory@user/hattckory) (Remote host closed the connection) |
2025-02-11 07:28:19 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 07:28:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 07:29:43 +0100 | misterfish | (~misterfis@84.53.85.146) misterfish |
2025-02-11 07:32:52 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
2025-02-11 07:33:09 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 07:33:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 07:33:57 +0100 | mrmr155334346318 | (~mrmr@user/mrmr) mrmr |
2025-02-11 07:34:37 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 07:38:33 +0100 | mrmr155334346318 | (~mrmr@user/mrmr) (Read error: Connection reset by peer) |
2025-02-11 07:38:54 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 244 seconds) |
2025-02-11 07:39:53 +0100 | <dminuoso> | thirdofmay18081814goya: What do you mean by transformations? |
2025-02-11 07:40:29 +0100 | mange | (~user@user/mange) (Quit: Quittin' time!) |
2025-02-11 07:40:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 07:43:11 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 07:44:53 +0100 | <haskellbridge> | <thirdofmay18081814goya> dminuoso: the applying of a lens and an action to a datatype |
2025-02-11 07:45:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 07:45:17 +0100 | <dminuoso> | They dont differ from van laarhoven or the mixed (van laarhoven + profunctor-style) in that sense. |
2025-02-11 07:45:25 +0100 | <dminuoso> | Profunctors are an implementation detail here. |
2025-02-11 07:46:14 +0100 | <haskellbridge> | <thirdofmay18081814goya> we'd expect composition to be easier when using a higher abstraction no? |
2025-02-11 07:46:29 +0100 | <haskellbridge> | <Bowuigi> thirdofmay18081814goya cleanly wrt VL lenses or in general? |
2025-02-11 07:47:13 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 07:47:18 +0100 | <haskellbridge> | <thirdofmay18081814goya> Bowuigi: in general |
2025-02-11 07:47:57 +0100 | <haskellbridge> | <thirdofmay18081814goya> it's not a rigorous question tbh, I'm just looking for personal opinions of instructive usages of the profunctor encoding |
2025-02-11 07:49:21 +0100 | <haskellbridge> | <Bowuigi> Ah, the nice part of the profunctor encoding is that you have access to the profunctor API. But since arrows are profunctors it doesn't make much of a difference wrt VL lenses |
2025-02-11 07:49:40 +0100 | ft | (~ft@p4fc2a610.dip0.t-ipconnect.de) (Quit: leaving) |
2025-02-11 07:51:06 +0100 | <haskellbridge> | <Bowuigi> But switching the underlying profunctor that you use in a combined VL/profunctor optic could help yeah |
2025-02-11 07:51:53 +0100 | <haskellbridge> | <Bowuigi> Like, to get effectful lenses over Kleisli or something like that |
2025-02-11 07:52:26 +0100 | <haskellbridge> | <thirdofmay18081814goya> hm I see |
2025-02-11 07:59:09 +0100 | <haskellbridge> | <Bowuigi> I had a "type Optic p f s t a b = p a (f b) -> p s (f t)" sitting around my projects |
2025-02-11 07:59:56 +0100 | <haskellbridge> | <Bowuigi> Oddly enough the definition on profunctor-optics is "type Optic p s t a b = p a b -> p s t", which is equivalent |
2025-02-11 08:04:10 +0100 | <haskellbridge> | <Bowuigi> Namely, "Optic1 p f s t a b = Optic2 (\x y -> p x (f y)) s t a b" and "Optic2 p s t a b = Optic1 p Identity s t a b" |
2025-02-11 08:06:16 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:06:26 +0100 | <haskellbridge> | <thirdofmay18081814goya> huh I haven't encountered a case where "f" is not the identity functor yet |
2025-02-11 08:06:30 +0100 | <haskellbridge> | <thirdofmay18081814goya> what did you use it for? |
2025-02-11 08:08:21 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-02-11 08:08:26 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
2025-02-11 08:08:27 +0100 | tnt2 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 08:09:19 +0100 | <haskellbridge> | <Bowuigi> It's a bit nicer to write VL lenses with it. For example, the usual Lens (not generalizing over the profunctor) is just "forall f. Functor f => Optic (->) f s t a b" |
2025-02-11 08:09:36 +0100 | polykernel_ | (~polykerne@user/polykernel) polykernel |
2025-02-11 08:10:41 +0100 | <haskellbridge> | <Bowuigi> Similar syntax can be achieved for the rest of the hierarchy using constraints, like how lens does it but with much less type aliases |
2025-02-11 08:10:42 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:10:44 +0100 | tnt2 | tnt1 |
2025-02-11 08:11:53 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-02-11 08:12:20 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:12:34 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:13:28 +0100 | polykernel | (~polykerne@user/polykernel) (Ping timeout: 265 seconds) |
2025-02-11 08:13:29 +0100 | polykernel_ | polykernel |
2025-02-11 08:14:41 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:15:01 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:15:09 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:15:34 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:17:34 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds) |
2025-02-11 08:20:10 +0100 | polykernel | (~polykerne@user/polykernel) (Ping timeout: 252 seconds) |
2025-02-11 08:21:27 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 08:21:48 +0100 | <haskellbridge> | <thirdofmay18081814goya> oh cool |
2025-02-11 08:22:26 +0100 | <dminuoso> | One should say, that VL lenses themselves are an ancient construct that is not used by `lens` either. |
2025-02-11 08:22:38 +0100 | <dminuoso> | Lens uses an encoding that is a mixture of VL and profunctor. |
2025-02-11 08:23:10 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) CiaoSen |
2025-02-11 08:23:28 +0100 | <dminuoso> | thirdofmay18081814goya: The big advantage of the profunctor encoding is that the implementation becomes completely uniform, there's no weird encodings depending on the type of optic. |
2025-02-11 08:23:36 +0100 | <dminuoso> | Like `lens` has. |
2025-02-11 08:26:06 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:26:21 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:27:00 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:27:16 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:28:47 +0100 | akegalj | (~akegalj@78-3-100-82.adsl.net.t-com.hr) akegalj |
2025-02-11 08:30:40 +0100 | <energizer> | am i missing anything relevant? https://bpa.st/CF7A |
2025-02-11 08:30:53 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 08:31:47 +0100 | <haskellbridge> | <thirdofmay18081814goya> dminuoso: ah that's nice |
2025-02-11 08:35:13 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 08:35:26 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:35:40 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:36:05 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:36:28 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:36:48 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:36:58 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) (Ping timeout: 272 seconds) |
2025-02-11 08:37:02 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:38:35 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) CiaoSen |
2025-02-11 08:40:06 +0100 | sawilagar | (~sawilagar@user/sawilagar) sawilagar |
2025-02-11 08:44:49 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) (Ping timeout: 248 seconds) |
2025-02-11 08:47:09 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) CiaoSen |
2025-02-11 08:52:35 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 08:55:54 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:57:03 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 245 seconds) |
2025-02-11 08:58:00 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 08:58:34 +0100 | dtman34 | (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2025-02-11 08:58:45 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 08:58:48 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-02-11 08:58:53 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-02-11 08:58:59 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:00:01 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-02-11 09:00:33 +0100 | dtman34 | (~dtman34@2601:447:d000:1f5e:74c2:4ec:de8d:13d3) dtman34 |
2025-02-11 09:00:40 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-02-11 09:00:50 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-02-11 09:00:51 +0100 | <ski> | energizer : occasionally `(<*>>) :: f (a -> f b) -> f a -> f b' is useful (`frob <$> foo <*> bar <*> baz <*>> quux') |
2025-02-11 09:02:07 +0100 | <energizer> | ski: i don't see that on hoogle. is that a recognized thing? |
2025-02-11 09:02:21 +0100 | <ski> | custom think i define, at times |
2025-02-11 09:03:38 +0100 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 244 seconds) |
2025-02-11 09:04:21 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:04:21 +0100 | <ski> | imagine (with `Monad f') `frob :: a -> b -> c -> d -> f e', `foo :: f a', `bar :: f b', `baz :: f c', `quux :: f d', and then `frob <$> foo <*> bar <*> baz <*>> quux :: f e' |
2025-02-11 09:04:35 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:04:59 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:05:07 +0100 | <ski> | allows you to use the idiomatic/applicative combinators with an occasional monadic `join' effect |
2025-02-11 09:05:13 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:06:51 +0100 | <energizer> | interesting |
2025-02-11 09:06:54 +0100 | <dminuoso> | thirdofmay18081814goya: For instance, consider type IndexedFold i s a = forall p f. (Indexable i p, Contravariant f, Applicative f) => p a (f a) -> s -> f s |
2025-02-11 09:07:02 +0100 | <ski> | @hoogle (a -> f b) -> f (a -> b) |
2025-02-11 09:07:02 +0100 | <lambdabot> | No results found |
2025-02-11 09:08:15 +0100 | <ski> | energizer : because it can get annoying, cluttered, to have to write `join (frob <$> foo <*> bar <*> baz <*> quux)' |
2025-02-11 09:08:17 +0100 | <haskellbridge> | <thirdofmay18081814goya> dminuoso: any chance you know of an example? |
2025-02-11 09:08:33 +0100 | <dminuoso> | Just gave you one. |
2025-02-11 09:08:47 +0100 | <haskellbridge> | <thirdofmay18081814goya> I meant a particular action on it |
2025-02-11 09:10:05 +0100 | <ski> | (that `(a -> f b) -> f (a -> b)' would be kinda opposite of `(??) :: f (a -> b) -> a -> f b'. would only work for quite special `f's) |
2025-02-11 09:10:14 +0100 | <haskellbridge> | <thirdofmay18081814goya> dminuoso: but yeah you're right, that is a simpler type than some of the other ones |
2025-02-11 09:14:28 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2025-02-11 09:14:52 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:15:06 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:15:13 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:16:02 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:16:42 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:16:59 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:18:17 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-02-11 09:19:15 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 09:20:31 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 09:21:34 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:21:48 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:22:16 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2025-02-11 09:24:49 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 09:25:56 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-02-11 09:28:50 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:29:06 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-02-11 09:29:07 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:30:36 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) (Remote host closed the connection) |
2025-02-11 09:30:51 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-50-70-31-30-224.dsl.bell.ca) |
2025-02-11 09:39:53 +0100 | Googulator31 | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 09:40:03 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 09:42:45 +0100 | talismanick | (~user@2601:644:937c:ed10::ae5) (Ping timeout: 276 seconds) |
2025-02-11 09:43:24 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 09:44:51 +0100 | dtman34 | (~dtman34@2601:447:d000:1f5e:74c2:4ec:de8d:13d3) (Ping timeout: 246 seconds) |
2025-02-11 09:45:23 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-02-11 09:48:31 +0100 | mulk | (~mulk@pd95141d7.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2025-02-11 09:48:58 +0100 | mulk | (~mulk@p5b2dc995.dip0.t-ipconnect.de) mulk |
2025-02-11 09:52:03 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f949088022741b454a0.dip0.t-ipconnect.de) |
2025-02-11 09:56:15 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-02-11 09:59:55 +0100 | chele | (~chele@user/chele) chele |
2025-02-11 10:00:33 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-02-11 10:07:16 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 10:10:07 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Read error: Connection reset by peer) |
2025-02-11 10:11:38 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 10:13:06 +0100 | tabaqui1 | (~root@87.200.129.102) tabaqui |
2025-02-11 10:17:11 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-02-11 10:24:29 +0100 | divya | (divya@140.238.251.170) (Remote host closed the connection) |
2025-02-11 10:24:52 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 10:25:27 +0100 | dysfigured | (~dfg@dfg.rocks) |
2025-02-11 10:26:24 +0100 | dfg | (~dfg@user/dfg) (Ping timeout: 252 seconds) |
2025-02-11 10:27:18 +0100 | divya | (divya@140.238.251.170) divya |
2025-02-11 10:28:58 +0100 | tnt2 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 10:29:34 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds) |
2025-02-11 10:29:36 +0100 | <mniip> | ski, nowadays I recognize it as more of a crutch for not having proper idiom brackets :P |
2025-02-11 10:31:47 +0100 | <ski> | yea .. this got me thinking (again) on my ideas for something better than idiom brackets |
2025-02-11 10:32:20 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 10:32:55 +0100 | <ski> | (why i was thinking about `(a -> f b) -> f (a -> b)') |
2025-02-11 10:33:32 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds) |
2025-02-11 10:33:39 +0100 | tnt2 | (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds) |
2025-02-11 10:35:08 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 10:35:58 +0100 | <ski> | iirc, `forall a b. (a,f b) -> f (a,b)', alternatively `forall a b. f (a -> b) -> (a -> f b)', are sometimes known as "strength". i'm wondering whether there's a traditional name for `forall a b. (a -> f b) -> f (a -> b)', and what reasonable laws would be |
2025-02-11 10:36:56 +0100 | lunitur | (~lunitur@86.33.95.148) (Ping timeout: 252 seconds) |
2025-02-11 10:39:54 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
2025-02-11 10:40:32 +0100 | tnt2 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 10:41:06 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds) |
2025-02-11 10:43:59 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 10:45:22 +0100 | tnt2 | (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds) |
2025-02-11 10:45:37 +0100 | otbergsten | (~otbergste@user/otbergsten) otbergsten |
2025-02-11 10:46:10 +0100 | <mniip> | ski, have you seen what lean has in store? |
2025-02-11 10:46:45 +0100 | <mniip> | do <- frob (<- foo) (<- bar) (<- baz) (<- quux) |
2025-02-11 10:47:14 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 10:48:26 +0100 | <ski> | hm, not that i recall atm |
2025-02-11 10:51:13 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2025-02-11 10:55:41 +0100 | <ski> | mhm, seems to be documented at <https://lean-lang.org/doc/reference/latest/Functors___-Monads-and--do--Notation/Syntax/#do-notation> |
2025-02-11 10:56:00 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 10:57:41 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 11:00:24 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 11:02:14 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 252 seconds) |
2025-02-11 11:03:19 +0100 | JamesMowery | (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Ping timeout: 252 seconds) |
2025-02-11 11:04:28 +0100 | <mauke> | :t \x -> fmap ($ x) |
2025-02-11 11:04:29 +0100 | <lambdabot> | Functor f => a -> f (a -> b) -> f b |
2025-02-11 11:06:08 +0100 | <ski> | yes |
2025-02-11 11:11:28 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
2025-02-11 11:14:37 +0100 | <mauke> | hmm, flipping arrows but not products to sums |
2025-02-11 11:21:59 +0100 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | shreyasminocha | (51fdc93eda@user/shreyasminocha) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | cpli | (77fc530071@2a03:6000:1812:100::252) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | duncan | (c6181279e3@user/meow/duncan) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | bheesham | (3aa22d8375@2a03:6000:1812:100::e40) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | jmcantrell | (644f1bed9a@user/jmcantrell) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | smiesner | (b0cf5acf8c@user/smiesner) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | bsima1 | (9d7e39c8ad@2a03:6000:1812:100::dd) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | fvr | (ef3e56ca8b@2a03:6000:1812:100::3c4) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | jleightcap | (7bc4014b62@user/jleightcap) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | bgtdsword | (b968c1779f@2a03:6000:1812:100::1460) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | arcadewise | (52968ed80d@2a03:6000:1812:100::3df) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | b0o | (0e4a0bf4c9@2a03:6000:1812:100::1bf) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | evanrelf | (3addc196af@2a03:6000:1812:100::f0) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | raghavgururajan | (ea769b8000@user/raghavgururajan) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | thatonelutenist | (8216c46202@2a03:6000:1812:100::fb3) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | sm2n | (ae95cb1267@user/sm2n) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | fgaz | (1ff9197ed6@2a03:6000:1812:100::11ea) (Remote host closed the connection) |
2025-02-11 11:21:59 +0100 | filwisher | (2e6936c793@2a03:6000:1812:100::170) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | jakzale | (6291399afa@user/jakzale) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | sus | (1b7af6299f@user/zeromomentum) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | Ankhers | (e99e97ef8e@2a03:6000:1812:100::2a2) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | rselim | (ce261f06ff@user/milesrout) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | simendsjo | (34b0550437@2a03:6000:1812:100::1441) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | samhh | (7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) (Remote host closed the connection) |
2025-02-11 11:22:00 +0100 | probie | (cc0b34050a@user/probie) (Remote host closed the connection) |
2025-02-11 11:22:01 +0100 | JoelMcCracken | (5ea8252fbb@2a03:6000:1812:100::10e3) (Remote host closed the connection) |
2025-02-11 11:22:01 +0100 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) (Remote host closed the connection) |
2025-02-11 11:22:01 +0100 | pmk | (6afe4476a1@2a03:6000:1812:100::26d) (Remote host closed the connection) |
2025-02-11 11:22:01 +0100 | ymherklotz | (cb2c9cfbdd@2a03:6000:1812:100::29a) (Remote host closed the connection) |
2025-02-11 11:22:01 +0100 | lane | (809450f172@2a03:6000:1812:100::1300) (Remote host closed the connection) |
2025-02-11 11:22:02 +0100 | ggb | (a62ffbaf4f@2a03:6000:1812:100::3ac) (Write error: Broken pipe) |
2025-02-11 11:22:02 +0100 | lucyy | (228ee8f0ce@user/lucyy) (Remote host closed the connection) |
2025-02-11 11:22:02 +0100 | akspecs | (00cc8321af@sourcehut/user/akspecs) (Write error: Broken pipe) |
2025-02-11 11:22:02 +0100 | ursa-major | (114efe6c39@2a03:6000:1812:100::11f3) (Remote host closed the connection) |
2025-02-11 11:22:02 +0100 | jkoshy | (99b9359beb@user/jkoshy) (Remote host closed the connection) |
2025-02-11 11:22:02 +0100 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) (Remote host closed the connection) |
2025-02-11 11:23:14 +0100 | foul_owl | (~kerry@174-21-138-88.tukw.qwest.net) (Ping timeout: 248 seconds) |
2025-02-11 11:24:15 +0100 | samhh_ | (7569f027cf@2a03:6000:1812:100::e4) (Ping timeout: 246 seconds) |
2025-02-11 11:24:27 +0100 | RussetParrotBear | (45ce440a48@2a03:6000:1812:100::e2) (Read error: Connection reset by peer) |
2025-02-11 11:24:27 +0100 | henrytill | (e0180937c3@2a03:6000:1812:100::e8c) (Read error: Connection reset by peer) |
2025-02-11 11:24:27 +0100 | lukec | (9dfd4d094e@2a03:6000:1812:100::10e) (Remote host closed the connection) |
2025-02-11 11:27:15 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:c1a:8d45:26a8:2ec3) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-11 11:27:32 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:e51:40e8:9bc8:8d19) nschoe |
2025-02-11 11:33:21 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds) |
2025-02-11 11:33:23 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 252 seconds) |
2025-02-11 11:33:51 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 11:34:06 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 11:34:53 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-11 11:36:12 +0100 | img | (~img@user/img) img |
2025-02-11 11:36:35 +0100 | foul_owl | (~kerry@193.42.0.124) foul_owl |
2025-02-11 11:40:41 +0100 | <ncf> | mauke: what is? |
2025-02-11 11:42:38 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) Maxdamantus |
2025-02-11 11:43:12 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 11:43:22 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 11:45:38 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 11:47:23 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) CiaoSen |
2025-02-11 11:49:53 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 248 seconds) |
2025-02-11 11:50:08 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-02-11 11:58:57 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds) |
2025-02-11 11:58:58 +0100 | tnt2 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 12:04:04 +0100 | tnt2 | (~Thunderbi@user/tnt1) (Ping timeout: 272 seconds) |
2025-02-11 12:07:26 +0100 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
2025-02-11 12:13:25 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
2025-02-11 12:18:30 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2025-02-11 12:19:57 +0100 | haritz | saimazoon |
2025-02-11 12:20:23 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 12:21:10 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) (Ping timeout: 272 seconds) |
2025-02-11 12:23:05 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) CiaoSen |
2025-02-11 12:24:53 +0100 | <bwe> | I've multiple functions `(a, b) -> Maybe c`. How can I chain them, i. e. if first yields Nothing, second is performed on input etc., if none yields a `Just c`, then I manually define a return value. |
2025-02-11 12:29:37 +0100 | Akshat | (~Akshat@2409:40d0:11e1:cd05:62b2:b7f8:bf3f:70d) |
2025-02-11 12:30:20 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 12:30:28 +0100 | Akshat | (~Akshat@2409:40d0:11e1:cd05:62b2:b7f8:bf3f:70d) (Client Quit) |
2025-02-11 12:30:39 +0100 | Akshat | (~Akshat@2409:40d0:11e1:cd05:62b2:b7f8:bf3f:70d) |
2025-02-11 12:34:55 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 12:35:02 +0100 | ggb | (a62ffbaf4f@2a03:6000:1812:100::3ac) ggb |
2025-02-11 12:35:03 +0100 | filwisher | (2e6936c793@2a03:6000:1812:100::170) |
2025-02-11 12:35:03 +0100 | bsima1 | (9d7e39c8ad@2a03:6000:1812:100::dd) |
2025-02-11 12:35:03 +0100 | pmk | (6afe4476a1@2a03:6000:1812:100::26d) pmk |
2025-02-11 12:35:03 +0100 | fgaz | (1ff9197ed6@2a03:6000:1812:100::11ea) fgaz |
2025-02-11 12:35:03 +0100 | lukec | (9dfd4d094e@2a03:6000:1812:100::10e) |
2025-02-11 12:35:03 +0100 | arcadewise | (52968ed80d@2a03:6000:1812:100::3df) l3gacyb3ta |
2025-02-11 12:35:04 +0100 | bgtdsword | (b968c1779f@2a03:6000:1812:100::1460) |
2025-02-11 12:35:04 +0100 | smiesner | (b0cf5acf8c@user/smiesner) smiesner |
2025-02-11 12:35:04 +0100 | samhh | (7569f027cf@2a03:6000:1812:100::e4) samhh |
2025-02-11 12:35:04 +0100 | rselim | (ce261f06ff@user/milesrout) milesrout |
2025-02-11 12:35:04 +0100 | lane | (809450f172@2a03:6000:1812:100::1300) lane |
2025-02-11 12:35:05 +0100 | jkoshy | (99b9359beb@user/jkoshy) jkoshy |
2025-02-11 12:35:05 +0100 | RussetParrotBear | (45ce440a48@2a03:6000:1812:100::e2) |
2025-02-11 12:35:06 +0100 | thatonelutenist | (8216c46202@2a03:6000:1812:100::fb3) thatonelutenist |
2025-02-11 12:35:06 +0100 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) chaitlatte0 |
2025-02-11 12:35:06 +0100 | cpli | (77fc530071@2a03:6000:1812:100::252) cpli |
2025-02-11 12:35:06 +0100 | akspecs | (00cc8321af@sourcehut/user/akspecs) akspecs |
2025-02-11 12:35:06 +0100 | lucyy | (228ee8f0ce@user/lucyy) lucyy |
2025-02-11 12:35:06 +0100 | sus | (1b7af6299f@user/zeromomentum) zeromomentum |
2025-02-11 12:35:07 +0100 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) fn_lumi |
2025-02-11 12:35:07 +0100 | jmcantrell | (644f1bed9a@user/jmcantrell) jmcantrell |
2025-02-11 12:35:08 +0100 | jakzale | (6291399afa@user/jakzale) jakzale |
2025-02-11 12:35:08 +0100 | probie | (cc0b34050a@user/probie) probie |
2025-02-11 12:35:09 +0100 | samhh_ | (7569f027cf@2a03:6000:1812:100::e4) samhh |
2025-02-11 12:35:09 +0100 | jleightcap | (7bc4014b62@user/jleightcap) jleightcap |
2025-02-11 12:35:09 +0100 | raghavgururajan | (ea769b8000@user/raghavgururajan) raghavgururajan |
2025-02-11 12:35:09 +0100 | JoelMcCracken | (5ea8252fbb@2a03:6000:1812:100::10e3) JoelMcCracken |
2025-02-11 12:35:10 +0100 | henrytill | (e0180937c3@2a03:6000:1812:100::e8c) henrytill |
2025-02-11 12:35:10 +0100 | shreyasminocha | (51fdc93eda@user/shreyasminocha) shreyasminocha |
2025-02-11 12:35:10 +0100 | simendsjo | (34b0550437@2a03:6000:1812:100::1441) simendsjo |
2025-02-11 12:35:10 +0100 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) aniketd |
2025-02-11 12:35:10 +0100 | sm2n | (ae95cb1267@user/sm2n) sm2n |
2025-02-11 12:35:10 +0100 | b0o | (0e4a0bf4c9@2a03:6000:1812:100::1bf) b0o |
2025-02-11 12:35:10 +0100 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) whereiseveryone |
2025-02-11 12:35:10 +0100 | ursa-major | (114efe6c39@2a03:6000:1812:100::11f3) ursa-major |
2025-02-11 12:35:11 +0100 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) jeso |
2025-02-11 12:35:14 +0100 | duncan | (c6181279e3@user/meow/duncan) duncan |
2025-02-11 12:35:14 +0100 | fvr | (ef3e56ca8b@2a03:6000:1812:100::3c4) fvr |
2025-02-11 12:35:14 +0100 | bheesham | (3aa22d8375@2a03:6000:1812:100::e40) bheesham |
2025-02-11 12:35:14 +0100 | Ankhers | (e99e97ef8e@2a03:6000:1812:100::2a2) Ankhers |
2025-02-11 12:37:14 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
2025-02-11 12:38:05 +0100 | <ski> | > let foo n | even n = Just (n `div` 2) | otherwise = Nothing; bar 1 = Nothing; bar n = Just (3 * n + 1) in intercalate "," [(maybe "stop" show . getFirst) ((First . foo <> First . bar) n) | n <- [1 .. 8] :: [Integer]] -- hrm .. |
2025-02-11 12:38:06 +0100 | <lambdabot> | "stop,1,10,2,16,3,22,4" |
2025-02-11 12:38:46 +0100 | <akegalj> | bwe: I would explicitly chain them (\input -> fun1 input <|> fun2 input <|> fun3 input <|> Just 4) (a,b) |
2025-02-11 12:39:08 +0100 | <ski> | > let foo n | even n = Just (n `div` 2) | otherwise = Nothing; bar 1 = Nothing; bar n = Just (3 * n + 1) in intercalate "," [maybe "stop" show (foo n <|> bar n) | n <- [1 .. 8] :: [Integer]] -- simpler |
2025-02-11 12:39:10 +0100 | <lambdabot> | "stop,1,10,2,16,3,22,4" |
2025-02-11 12:39:18 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-02-11 12:40:14 +0100 | CalimeroTeknik | (~calimero@user/calimeroteknik) (Ping timeout: 260 seconds) |
2025-02-11 12:44:49 +0100 | <haskellbridge> | <alexfmpe> bwe: fromMaybe defaultValue $ asum $ fmap ($ input) [fun1, fun2,...] |
2025-02-11 12:49:30 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2025-02-11 12:52:30 +0100 | CalimeroTeknik | (~calimero@ctkarch.org) |
2025-02-11 12:53:02 +0100 | Akshat | (~Akshat@2409:40d0:11e1:cd05:62b2:b7f8:bf3f:70d) (Quit: Client closed) |
2025-02-11 12:57:23 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-02-11 12:59:33 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 13:00:02 +0100 | JeremyB99 | (~JeremyB99@dhcp-251-168.resnet.purdue.edu) (Remote host closed the connection) |
2025-02-11 13:00:04 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-02-11 13:00:11 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 13:02:11 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-02-11 13:02:30 +0100 | akegalj | (~akegalj@78-3-100-82.adsl.net.t-com.hr) (Ping timeout: 252 seconds) |
2025-02-11 13:06:06 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
2025-02-11 13:07:47 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 13:11:20 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 13:12:39 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 13:17:01 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.5.1) |
2025-02-11 13:17:13 +0100 | chele_ | (~chele@user/chele) chele |
2025-02-11 13:17:49 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 13:18:25 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) NinjaTrappeur |
2025-02-11 13:18:42 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-02-11 13:19:40 +0100 | chele__ | (~chele@user/chele) chele |
2025-02-11 13:20:30 +0100 | chele | (~chele@user/chele) (Ping timeout: 276 seconds) |
2025-02-11 13:22:09 +0100 | chele_ | (~chele@user/chele) (Ping timeout: 248 seconds) |
2025-02-11 13:22:42 +0100 | <dminuoso> | thirdofmay18081814goya: Roughly, the way you "run" a lens does not differ too wildly between all three variants (VL, mixed and profunctor). |
2025-02-11 13:24:06 +0100 | sprotte24 | (~sprotte24@p200300d16f05dc007daaf3d6dd12202b.dip0.t-ipconnect.de) |
2025-02-11 13:27:00 +0100 | jespada | (~jespada@2800:a4:2211:9c00:4cb1:4c0:c141:d649) jespada |
2025-02-11 13:27:38 +0100 | <dminuoso> | thirdofmay18081814goya: The cute trick in profunctor representation that all optics are just profunctor transformer functions, so "using" them amounts to just applying them to a particular choice of a profunctor |
2025-02-11 13:28:02 +0100 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-02-11 13:28:12 +0100 | <dminuoso> | Similarly to how in VL representation you pick a particular functor to "use" it |
2025-02-11 13:28:21 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 13:28:26 +0100 | tavare | (~tavare@user/tavare) tavare |
2025-02-11 13:29:55 +0100 | <dminuoso> | Compare `type LensP s t a b = forall p. Strong p => Optic p s t a b` with `type LensVL s t a b = forall f . Functor f => (a -> f b) -> s -> f t` |
2025-02-11 13:30:21 +0100 | <dminuoso> | Where type Optic p s t a b = p a b -> p s t |
2025-02-11 13:30:22 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 13:30:33 +0100 | <dminuoso> | So `type LensP s t a b = forall p. Strong p => p a b -> p s t` |
2025-02-11 13:31:12 +0100 | <dminuoso> | If we write `p` in an infix position with a nice operator instead, the similarity becomes more obvious: |
2025-02-11 13:32:40 +0100 | <dminuoso> | type LensP s t a b = forall (:=>). Strong (:=>) => (a :=> b) -> s :=> t |
2025-02-11 13:32:46 +0100 | <dminuoso> | type LensVL s t a b = forall f . Functor f => (a -> f b) -> s -> f t |
2025-02-11 13:32:58 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-11 13:33:19 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 13:34:21 +0100 | <dminuoso> | So a simple way to run a LensP would be to just turn it into a LensVL by just picking :=> ~ UpStar |
2025-02-11 13:35:01 +0100 | <dminuoso> | In this particular example, the profunctor representation is just vastly more generalized. |
2025-02-11 13:37:25 +0100 | <bwe> | alexfmpe, akegalj, ski: thanks, I've gone for alexfmpe's approach, solves my requirement. |
2025-02-11 13:37:57 +0100 | <dminuoso> | `viewL l = runConst . l Const` and `viewP l = getConst . (l (UpStar Const))` |
2025-02-11 13:38:10 +0100 | <dminuoso> | Oh |
2025-02-11 13:38:21 +0100 | <dminuoso> | `viewP l = getConst . runUpStar (l (UpStar Const))` of course. |
2025-02-11 13:40:19 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2025-02-11 13:40:23 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 13:44:37 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds) |
2025-02-11 13:51:49 +0100 | Square2 | (~Square4@user/square) Square |
2025-02-11 13:53:08 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 13:54:46 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 13:55:19 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2025-02-11 13:59:33 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 248 seconds) |
2025-02-11 14:01:14 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2025-02-11 14:02:28 +0100 | Digit | (~user@user/digit) (Ping timeout: 245 seconds) |
2025-02-11 14:10:00 +0100 | akegalj | (~akegalj@168-206.dsl.iskon.hr) |
2025-02-11 14:10:43 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) CiaoSen |
2025-02-11 14:11:08 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2025-02-11 14:16:25 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 14:20:35 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 14:25:40 +0100 | causal | (~eric@50.35.84.231) causal |
2025-02-11 14:29:08 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-02-11 14:30:32 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 14:33:27 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder |
2025-02-11 14:37:58 +0100 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-02-11 14:40:51 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-02-11 14:41:48 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-02-11 14:52:01 +0100 | Digitteknohippie | Digit |
2025-02-11 14:57:29 +0100 | otbergsten | (~otbergste@user/otbergsten) (Remote host closed the connection) |
2025-02-11 14:57:59 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-02-11 15:03:19 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 15:04:49 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 15:08:00 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
2025-02-11 15:08:01 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 15:09:24 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-02-11 15:10:50 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2025-02-11 15:13:06 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-02-11 15:17:49 +0100 | <kaol> | Is there something more powerful than :r in ghci to recompile a different library in the same cabal file as well? Something I could use instead of restarting ghci itself. |
2025-02-11 15:21:54 +0100 | <dminuoso> | kaol: Given that the whole business of how libraries end up in GHC is usually managed by cabal-install... |
2025-02-11 15:22:24 +0100 | <dminuoso> | I suppose you could use `ghcid` with a bit of massage |
2025-02-11 15:22:35 +0100 | <dminuoso> | It really depends on how you intend to detect "different library" |
2025-02-11 15:22:47 +0100 | <dminuoso> | Or what you want to use GHCi for |
2025-02-11 15:26:35 +0100 | <kaol> | I really don't care about ghcid. |
2025-02-11 15:26:59 +0100 | <kaol> | I'm running my tests in a repl and the library part of my code has a bug. |
2025-02-11 15:27:52 +0100 | <kaol> | And apparently this is some barrier that requires either copying the module to my test directory or restarting ghci all the time. |
2025-02-11 15:28:28 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-02-11 15:29:39 +0100 | <kaol> | I'm calling my test's main in repl. |
2025-02-11 15:29:53 +0100 | CiaoSen | (~Jura@ip-037-201-241-067.um10.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2025-02-11 15:30:16 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-02-11 15:30:35 +0100 | sprotte24 | (~sprotte24@p200300d16f05dc007daaf3d6dd12202b.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-02-11 15:31:05 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 15:31:11 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 15:31:43 +0100 | <kaol> | different library as in my cabal file having two stanzas, one for library and another for test-suite. |
2025-02-11 15:33:47 +0100 | <kaol> | I guess I can do with just removing the library dependency from the test, copying over any missing build-depends and adding both directories to hs-source-dirs. |
2025-02-11 15:34:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2025-02-11 15:35:23 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 252 seconds) |
2025-02-11 15:38:57 +0100 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 276 seconds) |
2025-02-11 15:40:42 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Read error: Connection reset by peer) |
2025-02-11 15:41:23 +0100 | <kaol> | Not a fan of these ergonomics. |
2025-02-11 15:41:49 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 15:41:53 +0100 | polykernel | (~polykerne@user/polykernel) polykernel |
2025-02-11 15:46:17 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 15:46:25 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 15:48:21 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-02-11 15:51:00 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 15:53:33 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 15:54:05 +0100 | misterfish | (~misterfis@84.53.85.146) misterfish |
2025-02-11 15:57:58 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-11 16:01:00 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2025-02-11 16:02:21 +0100 | son0p | (~ff@2800:e6:4000:d723:c181:4205:f2b1:437a) (Quit: Leaving) |
2025-02-11 16:03:19 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 16:03:28 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 16:06:10 +0100 | <haskellbridge> | <sm> kaol: I didn't follow that exactly but it sounds like something stack build --fast --file-watch is good for |
2025-02-11 16:15:46 +0100 | rembo10_ | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-11 16:16:34 +0100 | Anushka | (~Anushka@101.0.63.190) |
2025-02-11 16:17:12 +0100 | rembo10 | (~rembo10@main.remulis.com) rembo10 |
2025-02-11 16:20:47 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2025-02-11 16:25:15 +0100 | <tomsmeding> | kaol: I'm fairly sure ghci can only have one component loaded at a time; the others will be used as compiled dependencies. It can only reload the loaded component, so what you want is impossible, currently, I think |
2025-02-11 16:26:15 +0100 | <tomsmeding> | if you can put your tests in a haskell file instead of running them manually in a repl, then making that an executable/test-suite component of your package allows you to simply use `cabal run` to run the tests, which does have better ergonomics (but perhaps longer roundtrip times) |
2025-02-11 16:27:50 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-02-11 16:28:53 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2025-02-11 16:29:21 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
2025-02-11 16:36:12 +0100 | <haskellbridge> | <sm> oh.. I have a ghci script that uses various ghc options like -i to load from multiple packages into ghci as if they were in one package, for better reloading |
2025-02-11 16:38:22 +0100 | <haskellbridge> | <sm> https://github.com/simonmichael/hledger/blob/fbbe897133fabbef337f30cd746386a90545f45d/Justfile#L353 |
2025-02-11 16:38:22 +0100 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/wEXSVISAROaeFNEYxArasFqE/RCSq550tWp4 (4 lines) |
2025-02-11 16:39:41 +0100 | <haskellbridge> | <sm> just add the source paths with -i, it seems like |
2025-02-11 16:40:45 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 16:41:17 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 16:43:06 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 16:45:32 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-02-11 16:47:30 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds) |
2025-02-11 16:47:59 +0100 | euouae | (~euouae@user/euouae) euouae |
2025-02-11 16:48:52 +0100 | <euouae> | dminuoso: okay, I reflected a bit on the Vec3 exercise. The <$> f-wraps the constructor, and the <*> applies f-values one by one until it is reduced to an f-value. |
2025-02-11 16:49:41 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-02-11 16:50:30 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-11 17:00:57 +0100 | <dminuoso> | euouae: Perfect. Now off to the final variantÖ |
2025-02-11 17:01:25 +0100 | <dminuoso> | Now write a `traverseVec3X` that does the same thing, except it only applies its action to the X component of Vec3. Write variants for Y and Z too. |
2025-02-11 17:01:33 +0100 | Digit | (~user@user/digit) (Ping timeout: 244 seconds) |
2025-02-11 17:01:46 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:01:46 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-02-11 17:01:54 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:03:54 +0100 | Digit | (~user@user/digit) Digit |
2025-02-11 17:08:03 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Read error: Connection reset by peer) |
2025-02-11 17:13:36 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-02-11 17:14:36 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds) |
2025-02-11 17:15:06 +0100 | ec | (~ec@gateway/tor-sasl/ec) ec |
2025-02-11 17:18:02 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:18:10 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:18:38 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 17:21:30 +0100 | chele__ | (~chele@user/chele) (Remote host closed the connection) |
2025-02-11 17:22:22 +0100 | <euouae> | something like: traverseVecX f (Vec3 x y z) = Vec3 <$> f x <*> pure y <*> pure z |
2025-02-11 17:22:31 +0100 | <euouae> | although now I have to have :: Applicative f => (a -> f a) -> Vec3 a -> f (Vec3 a) |
2025-02-11 17:22:37 +0100 | <euouae> | i.e. I can't hve it a -> f b anymore. |
2025-02-11 17:22:58 +0100 | <euouae> | well, what seems to me like is that we have composable setters now |
2025-02-11 17:24:49 +0100 | <haskellbridge> | <alexfmpe> kaol: cabal repl all --enable-multi-repl |
2025-02-11 17:24:59 +0100 | <haskellbridge> | <alexfmpe> Need cabal 3.12 |
2025-02-11 17:25:23 +0100 | <haskellbridge> | <alexfmpe> Still a bit rough around the edges but mostly works |
2025-02-11 17:26:13 +0100 | CalimeroTeknik | (~calimero@ctkarch.org) (Changing host) |
2025-02-11 17:26:13 +0100 | CalimeroTeknik | (~calimero@user/calimeroteknik) CalimeroTeknik |
2025-02-11 17:28:43 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:28:50 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:29:21 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 17:32:53 +0100 | <tomsmeding> | :def is unsupported in multi-mode, lol |
2025-02-11 17:33:18 +0100 | <tomsmeding> | nor is :m or :set |
2025-02-11 17:33:42 +0100 | <euouae> | does haskell have a good sql (or otherwise) database |
2025-02-11 17:33:44 +0100 | <euouae> | library |
2025-02-11 17:34:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 276 seconds) |
2025-02-11 17:34:20 +0100 | <euouae> | I was using SQLAlchemy on Python and it works nicely, I was able to declaratively put together all the tables of the schema |
2025-02-11 17:34:26 +0100 | <euouae> | including their relationships |
2025-02-11 17:34:56 +0100 | <EvanR> | I've used sqlite-simple and postgres-simple |
2025-02-11 17:35:04 +0100 | <EvanR> | keeping it simple |
2025-02-11 17:36:24 +0100 | <euouae> | how about db migrations? by hand? |
2025-02-11 17:36:27 +0100 | <kaol> | hasql is my default choice. Anything that tries to model anything by duplicating table definitions in the source is sure to raise my blood pressure. |
2025-02-11 17:36:57 +0100 | <euouae> | kaol: ORM in general or just that aspect? |
2025-02-11 17:37:50 +0100 | <euouae> | I do use PostgreSQL so it's nice that hasql uses it too |
2025-02-11 17:38:22 +0100 | <kuribas> | euouae: shameless plug, my sql generator library https://hackage.haskell.org/package/hasqlator-mysql-0.2.1 |
2025-02-11 17:38:34 +0100 | <kuribas> | no PostgreSQL yet though... |
2025-02-11 17:38:51 +0100 | <kaol> | I think much better by writing and thinking in SQL than trying to play ship bottle building game with some other abstraction. |
2025-02-11 17:39:28 +0100 | <kuribas> | my library tries to be as close as possible to SQL, but remaining composable and type safe. |
2025-02-11 17:39:32 +0100 | <kaol> | Queries as profunctors is as natural as I've ever seen anything to be. |
2025-02-11 17:39:45 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
2025-02-11 17:39:47 +0100 | <kuribas> | opaleye? |
2025-02-11 17:40:44 +0100 | <kaol> | If I'd have a use case for constructing queries dynamically routinely I might consider some other library. |
2025-02-11 17:41:00 +0100 | <kaol> | Composable is kind of no op if you write the query only once. |
2025-02-11 17:41:24 +0100 | <kuribas> | Yeah, my library is meant for when you want to compose dynamic queries. If you just need a static query, then *-simple is the easiest way. |
2025-02-11 17:41:26 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 17:41:40 +0100 | <kaol> | Or type safety. It doesn't even solve the whole problem unless you access the DB schema to check it against it too. |
2025-02-11 17:42:02 +0100 | <tomsmeding> | (please don't make me run a database to compile your code) |
2025-02-11 17:42:03 +0100 | <kaol> | Or duplicate the schema. |
2025-02-11 17:42:15 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-02-11 17:42:37 +0100 | <kaol> | My dream is something I can just give pg_dump -s and it'd use it for everything. |
2025-02-11 17:42:46 +0100 | <kuribas> | kaol: you cannot check against the schema without including it as types... |
2025-02-11 17:42:55 +0100 | ft | (~ft@p4fc2a610.dip0.t-ipconnect.de) ft |
2025-02-11 17:43:00 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-02-11 17:43:00 +0100 | <euouae> | kaol: so from your perspective the best benefit is to learn postgresql/sql as best as one can |
2025-02-11 17:43:05 +0100 | <kaol> | Feed the schema dump to TH to get types. |
2025-02-11 17:43:08 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-02-11 17:43:39 +0100 | <kuribas> | kaol: in my library you export the schema to a haskell type, then feed it to TH to get your types. |
2025-02-11 17:43:54 +0100 | <kuribas> | well, export to a haskell value. |
2025-02-11 17:44:08 +0100 | <kuribas> | kaol: this way you don't need access to a DB to compile the code. |
2025-02-11 17:44:12 +0100 | <kaol> | Schema? As in from pg_dump output or some other representation? |
2025-02-11 17:44:30 +0100 | <kuribas> | kaol: It reads the information schema of the given database. |
2025-02-11 17:45:26 +0100 | prasad | (~Thunderbi@2601:243:c001:3f07::5c) |
2025-02-11 17:46:15 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-02-11 17:46:40 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
2025-02-11 17:47:01 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-02-11 17:49:01 +0100 | <kuribas> | You fetch the table info from the connection: https://hackage.haskell.org/package/hasqlator-mysql-0.2.1/docs/Database-MySQL-Hasqlator-Typed-Sche… |
2025-02-11 17:49:27 +0100 | <kuribas> | Then pretty print it into some module: https://hackage.haskell.org/package/hasqlator-mysql-0.2.1/docs/Database-MySQL-Hasqlator-Typed-Sche… |
2025-02-11 17:52:39 +0100 | <kuribas> | Or if you like, you can put this in a script or a CI/CD pipeline. |
2025-02-11 17:52:56 +0100 | rvalue- | rvalue |
2025-02-11 17:52:57 +0100 | <kuribas> | regen_schemas.sh or something. |
2025-02-11 17:53:08 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2025-02-11 17:53:41 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) |
2025-02-11 17:55:54 +0100 | jespada | (~jespada@2800:a4:2211:9c00:4cb1:4c0:c141:d649) (Ping timeout: 265 seconds) |
2025-02-11 17:57:36 +0100 | jespada | (~jespada@2800:a4:2230:3e00:3974:82a3:7f20:1404) jespada |
2025-02-11 17:58:02 +0100 | tri | (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 252 seconds) |
2025-02-11 17:58:28 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Remote host closed the connection) |
2025-02-11 17:58:36 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) |
2025-02-11 17:58:53 +0100 | causal | (~eric@50.35.84.231) (Quit: WeeChat 4.5.1) |
2025-02-11 17:59:13 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2025-02-11 18:06:35 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2025-02-11 18:10:22 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2025-02-11 18:11:17 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b132:8d6d:8d5:36a3) (Ping timeout: 248 seconds) |
2025-02-11 18:12:17 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
2025-02-11 18:12:55 +0100 | JeremyB99 | (~JeremyB99@dhcp-248-27.resnet.purdue.edu) |
2025-02-11 18:12:55 +0100 | JeremyB99 | (~JeremyB99@dhcp-248-27.resnet.purdue.edu) (Read error: Connection reset by peer) |
2025-02-11 18:13:24 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 18:13:38 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 18:17:36 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 264 seconds) |
2025-02-11 18:17:36 +0100 | gehmehgeh | (~user@user/gehmehgeh) gehmehgeh |
2025-02-11 18:17:55 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 18:18:30 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2025-02-11 18:21:05 +0100 | Square | (~Square@user/square) Square |
2025-02-11 18:21:30 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-02-11 18:21:40 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2025-02-11 18:22:29 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-11 18:23:04 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:a2d0:c4aa:65e5:970a:4d0b:8e34) |
2025-02-11 18:23:23 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:a2d0:c4aa:65e5:970a:4d0b:8e34) (Read error: Connection reset by peer) |
2025-02-11 18:24:04 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2025-02-11 18:24:26 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2025-02-11 18:24:44 +0100 | urdh_ | (~urdh@user/urdh) urdh |
2025-02-11 18:25:54 +0100 | urdh | (~urdh@user/urdh) (Ping timeout: 268 seconds) |
2025-02-11 18:25:54 +0100 | urdh_ | urdh |
2025-02-11 18:31:36 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) |
2025-02-11 18:34:49 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2025-02-11 18:35:05 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) (Read error: Connection reset by peer) |
2025-02-11 18:35:42 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-02-11 18:36:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 18:39:53 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) |
2025-02-11 18:42:07 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) (Read error: Connection reset by peer) |
2025-02-11 18:43:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-02-11 18:44:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 18:49:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 18:51:12 +0100 | polykernel | (~polykerne@user/polykernel) (Ping timeout: 252 seconds) |
2025-02-11 18:51:26 +0100 | polykernel | (~polykerne@user/polykernel) polykernel |
2025-02-11 18:52:35 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) |
2025-02-11 18:53:12 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2025-02-11 18:58:49 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) (Read error: Connection reset by peer) |
2025-02-11 18:59:14 +0100 | lockywolf | (~lockywolf@coconut.lockywolf.net) (Ping timeout: 248 seconds) |
2025-02-11 18:59:38 +0100 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 252 seconds) |
2025-02-11 19:05:23 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds) |
2025-02-11 19:05:47 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-02-11 19:05:59 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 19:07:31 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) (Quit: Client closed) |
2025-02-11 19:07:47 +0100 | Googulator | (~Googulato@2a01-036d-0106-4074-758c-12a1-cbb4-05eb.pool6.digikabel.hu) |
2025-02-11 19:08:50 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) |
2025-02-11 19:10:12 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-02-11 19:10:15 +0100 | Anushka | (~Anushka@101.0.63.190) (Quit: Client closed) |
2025-02-11 19:11:15 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-73.itap.purdue.edu) (Read error: Connection reset by peer) |
2025-02-11 19:11:35 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) justsomeguy |
2025-02-11 19:12:37 +0100 | <justsomeguy> | Can someone help me understand what Traversable is all about? |
2025-02-11 19:14:37 +0100 | <ncf> | justsomeguy: did you see https://wiki.haskell.org/Typeclassopedia#Traversable ? |
2025-02-11 19:15:12 +0100 | <ncf> | or https://en.wikibooks.org/wiki/Haskell/Traversable |
2025-02-11 19:16:44 +0100 | jespada | (~jespada@2800:a4:2230:3e00:3974:82a3:7f20:1404) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-02-11 19:16:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2025-02-11 19:17:49 +0100 | lockywolf | (~lockywolf@coconut.lockywolf.net) lockywolf |
2025-02-11 19:18:05 +0100 | <EvanR> | a generalization of mapM |
2025-02-11 19:20:19 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2025-02-11 19:21:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 19:21:46 +0100 | <monochrom> | If it helps: traverse is impure fmap. |
2025-02-11 19:22:37 +0100 | JeremyB99 | (~JeremyB99@172.59.98.128) |
2025-02-11 19:23:32 +0100 | <justsomeguy> | At this point the examples make sense, but I'm not sure how they evaluate. |
2025-02-11 19:23:46 +0100 | <justsomeguy> | Maybe I just have to write it out on paper. |
2025-02-11 19:23:50 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection) |
2025-02-11 19:24:09 +0100 | JeremyB99 | (~JeremyB99@172.59.98.128) (Remote host closed the connection) |
2025-02-11 19:24:18 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d362:29:704c:ca03:6a71:2d6c) |
2025-02-11 19:24:48 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2025-02-11 19:25:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 19:25:48 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-02-11 19:26:32 +0100 | <monochrom> | If I'm allowed to illustrate sequence instead: sequence [foo, goo, hoo] = liftA2 (:) foo (liftA2 (:) goo (liftA2 (:) hoo (pure []))))) |
2025-02-11 19:26:52 +0100 | <monochrom> | It may be useful motivate why one would want it. |
2025-02-11 19:27:04 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-02-11 19:27:34 +0100 | <monochrom> | Remember how you can DIY liftA10, liftA11, liftA12 etc by pure and a lot of liftA2? |
2025-02-11 19:29:13 +0100 | <haskellbridge> | <alexfmpe> Yeah, I'd say sequence is basically folding with applicative, but with a fold function that preserves the original structure. |
2025-02-11 19:29:15 +0100 | <haskellbridge> | Traverse is fmap followed by sequence, so it's kind of foldMap with applicative |
2025-02-11 19:29:22 +0100 | <monochrom> | You can then go ambitious and say "but liftA10 is always 10. can I make it variable length?". Answer: sequence accepts an arbitary list so it's variable length. (The compromise is that we only have homogeneous lists, so the input list has to be homogeneous, whereas liftA10 is OK with 10 different types.) |
2025-02-11 19:29:25 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d362:29:704c:ca03:6a71:2d6c) (Ping timeout: 268 seconds) |
2025-02-11 19:29:32 +0100 | <haskellbridge> | <alexfmpe> * suitable combining |
2025-02-11 19:29:41 +0100 | <monochrom> | If you accept sequence, then traverse is just sequence and fmap. |
2025-02-11 19:30:30 +0100 | jespada | (~jespada@2800:a4:2230:3e00:3974:82a3:7f20:1404) jespada |
2025-02-11 19:30:35 +0100 | <EvanR> | :t sequence |
2025-02-11 19:30:36 +0100 | <lambdabot> | (Traversable t, Monad m) => t (m a) -> m (t a) |
2025-02-11 19:30:41 +0100 | <EvanR> | :t sequenceA |
2025-02-11 19:30:42 +0100 | <lambdabot> | (Traversable t, Applicative f) => t (f a) -> f (t a) |
2025-02-11 19:30:52 +0100 | <haskellbridge> | <alexfmpe> * only works when there's |
2025-02-11 19:30:53 +0100 | <monochrom> | OK yeah sequenceA. |
2025-02-11 19:31:30 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-02-11 19:31:44 +0100 | <EvanR> | the next in the pattern would be something of the form (Traversable t, Functor f) => t (f a) -> f (t a) |
2025-02-11 19:32:13 +0100 | <EvanR> | haskell hasn't figured this one out yet |
2025-02-11 19:32:33 +0100 | <monochrom> | Application: Suppose you want a procedure foo such that foo n reads n lines from stdin and return the list of those n lines. Then it is: sequenceA (replicate n getLine) |
2025-02-11 19:32:37 +0100 | <tomsmeding> | I'm not sure if a "pattern" is the right way to look at those :P |
2025-02-11 19:32:41 +0100 | <EvanR> | lol |
2025-02-11 19:33:01 +0100 | <monochrom> | perhaps s/pattern/generalization/ |
2025-02-11 19:33:34 +0100 | <monochrom> | But I think weakening to functor is impossible. |
2025-02-11 19:33:41 +0100 | <euouae> | what's a profunctor? |
2025-02-11 19:34:03 +0100 | <EvanR> | do you know what a contravariant functor is |
2025-02-11 19:34:18 +0100 | <euouae> | yes |
2025-02-11 19:34:59 +0100 | <EvanR> | profunctor class is for types which are functor in one parameter and contravariant functor in the other |
2025-02-11 19:35:42 +0100 | <euouae> | oh I see. hm.. I'll keep it in mind when I encounter it |
2025-02-11 19:35:58 +0100 | <ncf> | (->) is the canonical example |
2025-02-11 19:36:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 19:37:09 +0100 | <monochrom> | lambda the ultimate goto. (->) the ultimate instance. |
2025-02-11 19:37:30 +0100 | <EvanR> | (A -> a, A <- b) |
2025-02-11 19:39:54 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-02-11 19:40:48 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2025-02-11 19:41:06 +0100 | Guest93 | (~Guest93@pool-96-250-224-152.nycmny.fios.verizon.net) |
2025-02-11 19:41:18 +0100 | Lord_of_Life_ | Lord_of_Life |
2025-02-11 19:41:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 19:42:01 +0100 | Guest93 | (~Guest93@pool-96-250-224-152.nycmny.fios.verizon.net) (Client Quit) |
2025-02-11 19:44:48 +0100 | mniip | (mniip@libera/staff/mniip) (Quit: This page is intentionally left blank) |
2025-02-11 19:46:41 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2025-02-11 19:46:45 +0100 | <euouae> | Thanks |
2025-02-11 19:49:01 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-02-11 19:52:00 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 19:54:24 +0100 | akegalj | (~akegalj@168-206.dsl.iskon.hr) (Quit: leaving) |
2025-02-11 19:54:43 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 19:55:03 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2025-02-11 19:56:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-11 19:59:09 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-11 20:04:06 +0100 | sprotte24 | (~sprotte24@p200300d16f05dc00448362a75cf21d07.dip0.t-ipconnect.de) |
2025-02-11 20:05:56 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2025-02-11 20:07:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 20:11:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 20:17:29 +0100 | <euouae> | When I see something like `base:Data.Semigroup.Internal.Endo [a]` in the output of an exported type with `:t`, what exactly does it mean? |
2025-02-11 20:18:01 +0100 | <EvanR> | Endo [a] |
2025-02-11 20:18:06 +0100 | <euouae> | I know it's some constriction of some kind placed on [a], but it seems private/implementation? |
2025-02-11 20:18:09 +0100 | <euouae> | Is it just using GHC features? |
2025-02-11 20:18:10 +0100 | <EvanR> | just more specific |
2025-02-11 20:18:36 +0100 | <euouae> | Oh I'm not worried about what this specific type means, just why would it be .Internal exposed to the user of the API |
2025-02-11 20:18:38 +0100 | <EvanR> | Endo a is a newtype to add Monoid support for a -> a |
2025-02-11 20:18:46 +0100 | <int-e> | you get it from importing Data.Semigroup or Data.Monoid |
2025-02-11 20:19:09 +0100 | <EvanR> | modules can reexport stuff defined in an internal module |
2025-02-11 20:19:31 +0100 | <euouae> | But isn't it finnicky to re export internal stuff? You're tied to something that can blow up at any time |
2025-02-11 20:19:42 +0100 | <EvanR> | and you never would have known about it if it wasn't for that pesky verbose output and their dog! |
2025-02-11 20:20:00 +0100 | <euouae> | lol |
2025-02-11 20:20:07 +0100 | <mauke> | euouae: ?? it's your own implementation details |
2025-02-11 20:20:09 +0100 | <EvanR> | well whatever is exported is by definition the public API |
2025-02-11 20:20:11 +0100 | <EvanR> | wherever it came from |
2025-02-11 20:20:20 +0100 | <mauke> | you're allowed to depend on yourself |
2025-02-11 20:20:43 +0100 | <int-e> | Endo [a] is usually used as a difference list, to avoid a quadratic slowdown when concatenating many lists |
2025-02-11 20:20:55 +0100 | <euouae> | Yeah this is a fold |
2025-02-11 20:20:59 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-02-11 20:21:06 +0100 | <euouae> | I guess that's the optimization |
2025-02-11 20:21:40 +0100 | <euouae> | It's just that... I guess what I'm asking is, if you're a library writer (like lens here) and you dig into GHC internal modules, are you committing a sin? Perhaps GHC documentation says this is okay? |
2025-02-11 20:22:16 +0100 | <euouae> | I understand that there are be optimizations in lens that are GHC specific, but I hadn't seen anything before, maybe this is my first exposure |
2025-02-11 20:22:45 +0100 | <int-e> | GHC is the dominant implementation anyway. |
2025-02-11 20:22:48 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 20:22:53 +0100 | <mauke> | wait, are you saying lens is using ghc internal modules? |
2025-02-11 20:23:07 +0100 | <int-e> | I'd be surprised if it didn't |
2025-02-11 20:23:26 +0100 | <mauke> | because https://hackage.haskell.org/package/base-4.21.0.0/docs/Data-Monoid.html#t:Endo is public |
2025-02-11 20:23:41 +0100 | notzmv | (~umar@user/notzmv) (Ping timeout: 268 seconds) |
2025-02-11 20:23:49 +0100 | <int-e> | But yeah I think those two questions are not connected. |
2025-02-11 20:23:55 +0100 | <mauke> | it's just originally defined in GHC.Internal.Data.Semigroup.Internal |
2025-02-11 20:24:09 +0100 | <mauke> | but Data.Monoid re-exports it |
2025-02-11 20:24:31 +0100 | <int-e> | (It's slightly unfortunate that ghci doesn't tell you where to import Endo from but that information is hard to track.) |
2025-02-11 20:24:46 +0100 | <euouae> | Oh, I see... |
2025-02-11 20:24:55 +0100 | <euouae> | mauke, I didn't realize it was a public type! |
2025-02-11 20:25:05 +0100 | <euouae> | I just went with what :t told me |
2025-02-11 20:25:14 +0100 | <int-e> | euouae: note how my first answer was two modules that you can import it from, maybe you missed it |
2025-02-11 20:25:46 +0100 | <euouae> | Yeah but you said Endo a, and I thought maybe my type was different |
2025-02-11 20:25:58 +0100 | <euouae> | I thought Endo might've been public but that base:...Internal thing might've been an optimization |
2025-02-11 20:26:07 +0100 | <int-e> | No, it was just the unqualified version of the same thing |
2025-02-11 20:26:32 +0100 | <euouae> | right, makes sense |
2025-02-11 20:26:35 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:faad:86de:6310:fa61) |
2025-02-11 20:27:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-11 20:30:01 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:faad:86de:6310:fa61) (Remote host closed the connection) |
2025-02-11 20:36:20 +0100 | <euouae> | is there a good way to look up documentation somehow? maybe from the repl or emacs? I end up searching with control+f on hackage pages |
2025-02-11 20:36:34 +0100 | <euouae> | e.g. I want to look up `each` from the lens library |
2025-02-11 20:36:42 +0100 | xdej | (~xdej@quatramaran.salle-s.org) (Ping timeout: 244 seconds) |
2025-02-11 20:37:10 +0100 | <euouae> | hm -- trying :doc gives me `try recompiling with --haddock`, maybe I need to enable it in the cabal file |
2025-02-11 20:37:19 +0100 | <exarkun> | if you have lsp you can get some |
2025-02-11 20:37:40 +0100 | <exarkun> | C-c l h h |
2025-02-11 20:37:59 +0100 | <euouae> | hmm yeah but first I have to write a valid expression using the identifier |
2025-02-11 20:38:10 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 20:38:10 +0100 | <mauke> | euouae: on many hackage pages you can hit 's' for an interactive search |
2025-02-11 20:38:12 +0100 | <euouae> | I can't e.g. do it on `each` if it sits by itself in a random line |
2025-02-11 20:38:25 +0100 | <euouae> | ah, `s` is nice |
2025-02-11 20:38:31 +0100 | <exarkun> | if lsp has managed to parse the buffer including it, you can |
2025-02-11 20:38:45 +0100 | <exarkun> | (+/- some random hls quirks) |
2025-02-11 20:38:56 +0100 | <euouae> | Yeah exactly, I need to have valid code before I can even look up the symbol :P exarkun |
2025-02-11 20:39:23 +0100 | <exarkun> | not valid code, just parseable |
2025-02-11 20:39:43 +0100 | <euouae> | what is the big difference? |
2025-02-11 20:40:04 +0100 | <exarkun> | each on a line by itself is likely quite parsable, even if it is a type error |
2025-02-11 20:40:30 +0100 | <euouae> | it's not working |
2025-02-11 20:40:45 +0100 | <euouae> | What does work is `_ = const 1 each` |
2025-02-11 20:41:01 +0100 | <exarkun> | is your line in a `where` block? or a `let`? |
2025-02-11 20:41:09 +0100 | <euouae> | no top-level |
2025-02-11 20:41:13 +0100 | <euouae> | LSP: no content at point is what I get |
2025-02-11 20:41:15 +0100 | <exarkun> | oh, ok. sure, or that. |
2025-02-11 20:41:23 +0100 | <exarkun> | in all those cases, it's a syntax error not to have an = |
2025-02-11 20:41:25 +0100 | <euouae> | anyway the docs of `each` are empty too lol... heh. maybe I need the -haddock thing |
2025-02-11 20:41:40 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-02-11 20:42:23 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-02-11 20:43:25 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 268 seconds) |
2025-02-11 20:43:47 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 20:45:03 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-11 20:45:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-02-11 20:47:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 20:47:52 +0100 | sixfourtwelve | (~ethanmorg@82.18.82.103) sixfourtwelve |
2025-02-11 20:48:10 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 20:51:08 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-02-11 20:51:45 +0100 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 252 seconds) |
2025-02-11 20:54:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-02-11 20:54:59 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2025-02-11 20:55:00 +0100 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-02-11 20:55:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-02-11 21:00:02 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-02-11 21:00:28 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-02-11 21:00:45 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-02-11 21:01:36 +0100 | <ash3en> | what is Fortan like, from the Haskell perspective? |
2025-02-11 21:04:17 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2025-02-11 21:04:17 +0100 | ljdarj1 | ljdarj |
2025-02-11 21:06:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 21:06:33 +0100 | <justsomeguy> | How does this evaluate: (fmap . fmap) sum Just [1,2,3]? Why does (fmap . fmap) sum Just [1,2,3] == (fmap sum) (Just [1,2,3])? |
2025-02-11 21:07:09 +0100 | <mauke> | (fmap . fmap) sum = fmap (fmap sum) |
2025-02-11 21:07:21 +0100 | <Rembane> | \o/ Functor laws \o/ |
2025-02-11 21:07:52 +0100 | <mauke> | fmap f Just = f . Just |
2025-02-11 21:07:58 +0100 | <mauke> | because of the naked reader instance |
2025-02-11 21:08:01 +0100 | Katarushisu3 | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-02-11 21:08:04 +0100 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Read error: Connection reset by peer) |
2025-02-11 21:08:04 +0100 | Katarushisu3 | Katarushisu |
2025-02-11 21:08:27 +0100 | <justsomeguy> | Wait wait wait... |
2025-02-11 21:08:32 +0100 | <mauke> | (fmap sum . Just) [1,2,3] = fmap sum (Just [1,2,3]) |
2025-02-11 21:09:08 +0100 | <mauke> | the 1st/3rd things I said are just the definition of (.) |
2025-02-11 21:09:13 +0100 | <mauke> | the middle thing is where it gets funky |
2025-02-11 21:10:18 +0100 | <mauke> | > fmap fmap fmap sum Just [1,2,3] |
2025-02-11 21:10:19 +0100 | <lambdabot> | Just 6 |
2025-02-11 21:10:23 +0100 | <justsomeguy> | How does fmap f Just = f . Just? |
2025-02-11 21:10:28 +0100 | <mauke> | because fmap = (.) |
2025-02-11 21:10:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 21:10:52 +0100 | <mauke> | instance Functor ((->) e) where fmap = (.) |
2025-02-11 21:12:52 +0100 | <mauke> | :t fmap |
2025-02-11 21:12:53 +0100 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
2025-02-11 21:12:57 +0100 | pavonia | (~user@user/siracusa) siracusa |
2025-02-11 21:14:01 +0100 | <mauke> | let f = ((->) e) in (a -> b) -> f a -> f b ==> (a -> b) -> (->) e a -> (->) e b |
2025-02-11 21:14:23 +0100 | <mauke> | = (a -> b) -> (e -> a) -> (e -> b) |
2025-02-11 21:15:51 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2025-02-11 21:19:17 +0100 | <justsomeguy> | Honestly, I wish I could say that I understood your thoughtful explanation, but I'm so confused. |
2025-02-11 21:19:50 +0100 | <mauke> | it wasn't very thoughtful :-) |
2025-02-11 21:19:54 +0100 | <monochrom> | Write your own Functor instance for (->)e, and discover that its fmap is exactly (.) |
2025-02-11 21:19:56 +0100 | <mauke> | what's the first thing that makes no sense? |
2025-02-11 21:20:07 +0100 | <mauke> | for example, do you know what (->) e means as a type? |
2025-02-11 21:21:01 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-02-11 21:21:12 +0100 | <justsomeguy> | I'm not sure. Isn't (->) the type of a function, and e is the type of its first argument? |
2025-02-11 21:21:21 +0100 | <monochrom> | All true. |
2025-02-11 21:21:29 +0100 | <mauke> | yes |
2025-02-11 21:21:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 21:21:47 +0100 | <monochrom> | Precisely why all of the above is correct. |
2025-02-11 21:21:49 +0100 | <mauke> | a -> b = (->) a b = ((->) a) b |
2025-02-11 21:21:58 +0100 | <justsomeguy> | (By the way, I'm on 7% batter right now.) |
2025-02-11 21:22:03 +0100 | <monochrom> | BTW [a] = [] a |
2025-02-11 21:22:04 +0100 | <mauke> | perhaps non-obvious: you can curry type applications |
2025-02-11 21:22:58 +0100 | <mauke> | which is why you can partially apply a type constructor like (->) and make a Functor instance for it |
2025-02-11 21:24:00 +0100 | <mauke> | if you're familiar with the Reader monad, (->) is the same thing |
2025-02-11 21:24:08 +0100 | <mauke> | (or rather, Reader is a newtype wrapper around (->)) |
2025-02-11 21:25:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 21:26:17 +0100 | <justsomeguy> | My battery is about to die! I'm going to experiment with this more. |
2025-02-11 21:26:35 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
2025-02-11 21:26:50 +0100 | <Digit> | 20 years since i first got interested in Haskell. i should probably learn how to use it. is there a "learn Haskell while you sleep"? or anything that can be repurposed for such. ... do you think that's even possible? can Haskell be learned in our sleep? |
2025-02-11 21:27:44 +0100 | <mauke> | doubt it |
2025-02-11 21:28:28 +0100 | <EvanR> | maybe subliminal messaging to convince yourself you know haskell |
2025-02-11 21:28:37 +0100 | <EvanR> | maybe that's enough |
2025-02-11 21:29:24 +0100 | <Digit> | ooh, now you're onto something. could hypnotise myself in my sleep to stop being so lazy and self sabotaging around my Haskell aspirations. |
2025-02-11 21:31:42 +0100 | <monochrom> | Can you learn anything at all while you sleep? |
2025-02-11 21:31:52 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 21:32:11 +0100 | <EvanR> | what counts as learning |
2025-02-11 21:32:29 +0100 | <EvanR> | is it a mutation in the physical structure of the brain |
2025-02-11 21:32:41 +0100 | <EvanR> | then yes |
2025-02-11 21:33:05 +0100 | <monochrom> | Then does brain surgery count as learning, too? >:) |
2025-02-11 21:33:24 +0100 | <EvanR> | or unlearning |
2025-02-11 21:33:43 +0100 | <EvanR> | which is handy if you already learned C++ before trying to learn haskell |
2025-02-11 21:34:09 +0100 | <monochrom> | Learning is Unlearning. Ignorance is Strength. Great. >:) |
2025-02-11 21:34:32 +0100 | <mauke> | knowledge is costrength |
2025-02-11 21:35:46 +0100 | <haskellbridge> | <sm> @Digit: skim #haskell IRC/matrix chats in idle moments, it’s not exactly sleeping but you can pick up a lot over time |
2025-02-11 21:36:01 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-11 21:36:10 +0100 | <haskellbridge> | <sm> play haskell videos in the background... |
2025-02-11 21:36:40 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Remote host closed the connection) |
2025-02-11 21:36:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 21:36:55 +0100 | jespada | (~jespada@2800:a4:2230:3e00:3974:82a3:7f20:1404) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-02-11 21:37:19 +0100 | <haskellbridge> | <Bowuigi> EvanR Sleeping already mutates the physical structure of your brain, that's why we sleep |
2025-02-11 21:38:29 +0100 | <haskellbridge> | <Bowuigi> Learning stuff while sleeping is likely possible, but so hard it's not worth it |
2025-02-11 21:38:47 +0100 | <EvanR> | that's what I was getting at |
2025-02-11 21:38:55 +0100 | <haskellbridge> | <Bowuigi> You would need to dream about this new topic AND remember your dream later |
2025-02-11 21:39:22 +0100 | sixfourtwelve | (~ethanmorg@82.18.82.103) (Quit: leaving) |
2025-02-11 21:39:47 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2025-02-11 21:40:31 +0100 | <haskellbridge> | <Bowuigi> AFAIU we have many dreams per night, but we usually don't remember all of them. Even if we do, they kinda blend into a single story, yet another explanation why dreams can be so weird |
2025-02-11 21:41:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 21:41:21 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
2025-02-11 21:41:24 +0100 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 260 seconds) |
2025-02-11 21:41:31 +0100 | <mauke> | do dreams live in volatile ram? |
2025-02-11 21:42:22 +0100 | <haskellbridge> | <Bowuigi> They are kinda just streamed once and gone forever |
2025-02-11 21:43:18 +0100 | gentauro | (~gentauro@user/gentauro) gentauro |
2025-02-11 21:44:16 +0100 | <haskellbridge> | <Bowuigi> But technically, if you had control over most of your dreams you can learn new stuff. Specially since pattern matching becomes easier. Sounds useful for CT |
2025-02-11 21:46:01 +0100 | <ski> | i've heard some engineers have been able to generate a "real life" model of a design, in front of them, in a lucid dream, being able to move around and view from different angles, adjust and modify things to see how it seems to work out |
2025-02-11 21:46:25 +0100 | <mauke> | nah, I've tried to read things in dreams (text, diagrams, etc) |
2025-02-11 21:46:28 +0100 | <mauke> | it doesn't go well |
2025-02-11 21:46:31 +0100 | <EvanR> | memory palace |
2025-02-11 21:46:59 +0100 | <ski> | (i've also had dreams pondering programming or math problems. but those (for me) tend to be more abstract, not like you're in a 3D environment at all) |
2025-02-11 21:47:15 +0100 | <haskellbridge> | <Bowuigi> Also, how we remember a dream changes as time passes. If our brain inserts a generic human somewhere, after waking up it will try to coerce that NPC into someone we know, modifying our memories destructively |
2025-02-11 21:47:22 +0100 | <ski> | yep, mauke. ditto with mirrors, as well |
2025-02-11 21:47:33 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2025-02-11 21:47:41 +0100 | <geekosaur> | when I was having lucid dreams due to a prescription I was on, I found that from a distance I could understand what something "said" as a concept, but looking at the individual characters they were essentially random |
2025-02-11 21:47:52 +0100 | <ski> | (dreaming about chatting IRC is also weird ..) |
2025-02-11 21:48:55 +0100 | <haskellbridge> | <Bowuigi> Haven't had the text issue tbh |
2025-02-11 21:49:05 +0100 | mrmr | (~mrmr@user/mrmr) mrmr |
2025-02-11 21:49:16 +0100 | <haskellbridge> | <Bowuigi> When my dreams have text (not often at all) it's always readable |
2025-02-11 21:49:36 +0100 | <ski> | people use that issue with text, and also e.g. watches, as a "reality check", to make it more likely they get a lucid dream |
2025-02-11 21:49:39 +0100 | <EvanR> | readable but not necessarily legible xD |
2025-02-11 21:50:28 +0100 | <ski> | (if you get into a habit of doing such checks, you often tend to extend that habit into your dreams. and then you can notice the discrepancy, and realize you're dreaming, and so become lucid) |
2025-02-11 21:51:38 +0100 | <haskellbridge> | <Bowuigi> Lucid dreaming is pretty cool but doesn't it use extra resources or something? I would like to use my sleeping time to sleep (tho it can be useful) |
2025-02-11 21:51:40 +0100 | yegorc | (~yegorc@user/yegorc) yegorc |
2025-02-11 21:52:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 21:52:21 +0100 | <geekosaur> | yes, ime it means your conscious mind isn't fully resting |
2025-02-11 21:52:34 +0100 | <geekosaur> | frontaltemporal stuff is being "awake"-active |
2025-02-11 21:53:33 +0100 | <ski> | i wonder how much difference there is, wrt ordinary REM sleep |
2025-02-11 21:55:11 +0100 | sprotte24 | (~sprotte24@p200300d16f05dc00448362a75cf21d07.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-02-11 21:55:22 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-02-11 21:56:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 22:01:55 +0100 | Square | (~Square@user/square) (Ping timeout: 265 seconds) |
2025-02-11 22:03:20 +0100 | sprotte24 | (~sprotte24@p200300d16f05dc00448362a75cf21d07.dip0.t-ipconnect.de) |
2025-02-11 22:07:17 +0100 | lockywolf | (~lockywolf@coconut.lockywolf.net) (Ping timeout: 268 seconds) |
2025-02-11 22:07:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 22:09:31 +0100 | JuanDaugherty | ColinRobinson |
2025-02-11 22:12:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 22:14:49 +0100 | kimiamania8 | (~65804703@user/kimiamania) (Quit: PegeLinux) |
2025-02-11 22:15:58 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-02-11 22:16:51 +0100 | kimiamania8 | (~65804703@user/kimiamania) kimiamania |
2025-02-11 22:18:31 +0100 | misterfish | (~misterfis@84.53.85.146) misterfish |
2025-02-11 22:20:16 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 22:23:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 22:24:36 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 22:30:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-02-11 22:32:38 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-02-11 22:40:56 +0100 | takuan | (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection) |
2025-02-11 22:41:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 22:44:55 +0100 | AlexNoo_ | (~AlexNoo@178.34.151.30) |
2025-02-11 22:44:55 +0100 | AlexZenon | (~alzenon@178.34.151.30) (Read error: Connection reset by peer) |
2025-02-11 22:45:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 22:45:51 +0100 | myme | (~myme@2a01:799:d5a:d600:3359:17b6:3323:1290) (Ping timeout: 252 seconds) |
2025-02-11 22:46:35 +0100 | AlexZenon | (~alzenon@178.34.151.30) |
2025-02-11 22:48:08 +0100 | myme | (~myme@40.51-175-185.customer.lyse.net) myme |
2025-02-11 22:49:15 +0100 | AlexNoo | (~AlexNoo@178.34.151.30) (Ping timeout: 276 seconds) |
2025-02-11 22:49:29 +0100 | haskellbridge | sm . o O peak #haskell there |
2025-02-11 22:52:24 +0100 | AlexNoo_ | AlexNoo |
2025-02-11 22:56:27 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 23:00:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 23:06:48 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-02-11 23:09:00 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 23:11:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 23:13:22 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-11 23:16:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-11 23:16:21 +0100 | michalz | (~michalz@185.246.207.200) (Remote host closed the connection) |
2025-02-11 23:18:04 +0100 | Leary | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
2025-02-11 23:26:39 +0100 | <dminuoso> | euouae: Have you implemented traverseVec3Y and Z variants too? |
2025-02-11 23:27:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 23:27:24 +0100 | dysthesis | (~dysthesis@user/dysthesis) dysthesis |
2025-02-11 23:28:01 +0100 | <dminuoso> | euouae: Also note, you can weaken the constraint to Functor. Try rewriting it to not use `pure`. |
2025-02-11 23:28:13 +0100 | <dminuoso> | You can either play type tetris or employ the Applicative/Functor laws. |
2025-02-11 23:30:48 +0100 | dysthesis | (~dysthesis@user/dysthesis) (Remote host closed the connection) |
2025-02-11 23:31:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-02-11 23:35:22 +0100 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 252 seconds) |
2025-02-11 23:36:00 +0100 | <euouae> | dminuoso: for X I used `traverseVecX f (Vec3 x y z) = Vec3 <$> f x <*> pure y <*> pure z` with the obvious modification for Y and Z |
2025-02-11 23:38:22 +0100 | <euouae> | to do without the pure's I think I'd use something like (\x -> Vec3 x y z) <$> f x |
2025-02-11 23:39:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 23:42:11 +0100 | <euouae> | lens are a lot of fun |
2025-02-11 23:45:12 +0100 | fmira | (~user@user/fmira) (Ping timeout: 264 seconds) |
2025-02-11 23:45:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-11 23:56:40 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2025-02-11 23:56:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-11 23:57:24 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-11 23:58:12 +0100 | Leary | (~Leary@user/Leary/x-0910699) Leary |