2024-07-01 00:01:12 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-07-01 00:12:08 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 00:12:40 +0200 | dcoutts_ | (~duncan@ip-185-104-136-57.ptr.icomera.net) |
2024-07-01 00:14:03 +0200 | dcoutts__ | (~duncan@212.187.244.86) |
2024-07-01 00:16:48 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3215-598d-b470-a88f-97cf-942e.rev.sfr.net) (Remote host closed the connection) |
2024-07-01 00:17:23 +0200 | dcoutts_ | (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 264 seconds) |
2024-07-01 00:18:00 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3215-598d-4c2c-7398-d9af-2ab7.rev.sfr.net) |
2024-07-01 00:20:18 +0200 | dcoutts_ | (~duncan@185.201.60.220) |
2024-07-01 00:21:31 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3215-598d-4c2c-7398-d9af-2ab7.rev.sfr.net) (Remote host closed the connection) |
2024-07-01 00:23:01 +0200 | dcoutts__ | (~duncan@212.187.244.86) (Ping timeout: 256 seconds) |
2024-07-01 00:23:40 +0200 | ss4 | (~wootehfoo@user/wootehfoot) |
2024-07-01 00:27:15 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 264 seconds) |
2024-07-01 00:27:31 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
2024-07-01 00:28:25 +0200 | dcoutts_ | (~duncan@185.201.60.220) (Read error: Connection reset by peer) |
2024-07-01 00:31:23 +0200 | Nixkernal | (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) (Ping timeout: 256 seconds) |
2024-07-01 00:36:32 +0200 | nshepperd2 | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: The Lounge - https://thelounge.chat) |
2024-07-01 00:36:56 +0200 | mxs9 | (~mxs@user/mxs) |
2024-07-01 00:37:22 +0200 | nshepperd2 | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2024-07-01 00:37:24 +0200 | lain` | (lain`@user/lain/x-9874679) (Remote host closed the connection) |
2024-07-01 00:37:52 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 00:37:57 +0200 | nshepperd2 | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Client Quit) |
2024-07-01 00:38:27 +0200 | lain` | (lain`@user/lain/x-9874679) (Remote host closed the connection) |
2024-07-01 00:38:54 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 00:39:50 +0200 | lain` | (lain`@user/lain/x-9874679) (Remote host closed the connection) |
2024-07-01 00:40:17 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 00:40:21 +0200 | zzz | (~yin@user/zero) (Ping timeout: 255 seconds) |
2024-07-01 00:40:28 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) |
2024-07-01 00:41:22 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) (Client Quit) |
2024-07-01 00:42:52 +0200 | joeyadams | (~joeyadams@2603:6010:5100:2ed:2bef:3f32:3ac3:d5e) |
2024-07-01 00:43:39 +0200 | dcoutts | (~duncan@94.119.32.12) |
2024-07-01 00:46:12 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) |
2024-07-01 00:46:18 +0200 | <monochrom> | w00t new cabal-install! |
2024-07-01 00:47:19 +0200 | zzz | (~yin@user/zero) |
2024-07-01 00:48:16 +0200 | dolio | (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-07-01 00:49:45 +0200 | dolio | (~dolio@130.44.134.54) |
2024-07-01 00:53:16 +0200 | dcoutts | (~duncan@94.119.32.12) (Remote host closed the connection) |
2024-07-01 00:53:18 +0200 | dolio | (~dolio@130.44.134.54) (Client Quit) |
2024-07-01 00:53:34 +0200 | dcoutts | (~duncan@94.119.32.5) |
2024-07-01 00:53:46 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) (Quit: The Lounge - https://thelounge.chat) |
2024-07-01 00:53:55 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) |
2024-07-01 00:55:18 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) (Client Quit) |
2024-07-01 00:55:26 +0200 | nshepperd2 | (~nshepperd@2a01:4f9:3b:4cc9::2) |
2024-07-01 00:56:26 +0200 | dolio | (~dolio@130.44.134.54) |
2024-07-01 00:59:23 +0200 | dcoutts | (~duncan@94.119.32.5) (Ping timeout: 264 seconds) |
2024-07-01 01:00:27 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-07-01 01:03:34 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-07-01 01:06:13 +0200 | misterfish | (~misterfis@84.53.85.146) |
2024-07-01 01:07:01 +0200 | emm | (~emm@user/edmeme) (Ping timeout: 246 seconds) |
2024-07-01 01:09:08 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 252 seconds) |
2024-07-01 01:14:11 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2024-07-01 01:20:04 +0200 | mxs9 | (~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat) |
2024-07-01 01:30:01 +0200 | mxs9 | (~mxs@user/mxs) |
2024-07-01 01:31:08 +0200 | ss4 | (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
2024-07-01 01:42:50 +0200 | phma | (~phma@2001:5b0:215a:ef08:a1:7264:bc90:3efa) (Read error: Connection reset by peer) |
2024-07-01 01:45:46 +0200 | phma | (phma@2001:5b0:2144:3258:22dc:c425:bf48:7057) |
2024-07-01 01:48:09 +0200 | phma | (phma@2001:5b0:2144:3258:22dc:c425:bf48:7057) (Read error: Connection reset by peer) |
2024-07-01 01:54:16 +0200 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 246 seconds) |
2024-07-01 02:00:32 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-07-01 02:01:56 +0200 | califax | (~califax@user/califx) |
2024-07-01 02:05:53 +0200 | phma | (~phma@host-67-44-208-142.hnremote.net) |
2024-07-01 02:11:15 +0200 | Leary | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
2024-07-01 02:14:06 +0200 | Leary | (~Leary@user/Leary/x-0910699) |
2024-07-01 02:21:16 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-07-01 02:29:37 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 272 seconds) |
2024-07-01 02:34:53 +0200 | xdminsy | (~xdminsy@117.147.70.231) (Ping timeout: 240 seconds) |
2024-07-01 02:35:48 +0200 | xdminsy | (~xdminsy@117.147.70.231) |
2024-07-01 02:37:06 +0200 | dcoutts | (~duncan@cpc113460-oxfd27-2-0-cust409.4-3.cable.virginm.net) |
2024-07-01 02:44:02 +0200 | ft | (~ft@mue-88-130-107-007.dsl.tropolys.de) (Ping timeout: 268 seconds) |
2024-07-01 02:45:18 +0200 | ft | (~ft@mue-88-130-106-118.dsl.tropolys.de) |
2024-07-01 02:59:29 +0200 | <Axman6> | :o |
2024-07-01 03:16:47 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds) |
2024-07-01 03:32:26 +0200 | lol_ | jcarpenter2 |
2024-07-01 03:33:37 +0200 | <mikko> | is there any way to install packages such that they are available in the default ghci (outside any project) without introducing a ~/.ghc directory? |
2024-07-01 03:33:53 +0200 | <mikko> | here's what i tried https://bpa.st/raw/XPGA |
2024-07-01 03:34:28 +0200 | caryfitz | (~caryfitz@2600:1700:e72:9000::47) (Ping timeout: 256 seconds) |
2024-07-01 03:34:39 +0200 | <mikko> | i spent good 20 minutes chatting with chatgippity about package-db and whatever but none of its suggestions helped |
2024-07-01 03:35:43 +0200 | <mikko> | i'm a bit confused where cabal is even installing the package and why removing .ghc affects anything when there's clearly no package there |
2024-07-01 03:36:02 +0200 | <mikko> | and why it even generates .ghc when i already have ~/.config/ghc/ghci.conf |
2024-07-01 03:36:41 +0200 | <sclv> | cabal doesn’t generate .ghc. unsurprisingly, ghc does |
2024-07-01 03:37:27 +0200 | <mikko> | well it's definitely the cabal command that generates it |
2024-07-01 03:37:44 +0200 | <sclv> | the thing cabal writes in there is the default env file. which is mentioned in your paste |
2024-07-01 03:38:10 +0200 | <sclv> | thats where the package is picked up by ghci from, as a “pointer” to the actual location its installed |
2024-07-01 03:38:50 +0200 | <mikko> | i tried moving that to ~/.config/ghc/ but it didn't seem to help |
2024-07-01 03:38:56 +0200 | <sclv> | you can explicitly pass in a different env file location to ghci if you don’t want it to use the one in .ghc — and similarly you can direct cabal to write that enc file elsewhere |
2024-07-01 03:39:50 +0200 | <sclv> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/packages.html#package-environments |
2024-07-01 03:41:35 +0200 | <mikko> | hmm maybe it belong in $XDG_DATA_HOME not $XDG_CONFIG_HOME |
2024-07-01 03:44:31 +0200 | <jcarpenter2> | I've been working on this program that does pattern matching against expression trees, and just noticed pattern matching is sort of like parsing |
2024-07-01 03:45:26 +0200 | <jcarpenter2> | Instead of parsers that match parts of an input string, there are patterns that match parts of a structured expression tree |
2024-07-01 03:47:27 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2024-07-01 03:48:53 +0200 | <mikko> | yup moving the environment thingamagic from ~/.ghc/ to ~/.local/share/ghc/ did the trick |
2024-07-01 03:56:12 +0200 | <sclv> | nice |
2024-07-01 04:09:47 +0200 | rosco | (~rosco@175.136.155.137) |
2024-07-01 04:11:24 +0200 | Typedfern | (~Typedfern@82.red-83-37-24.dynamicip.rima-tde.net) (Ping timeout: 255 seconds) |
2024-07-01 04:16:08 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2024-07-01 04:16:41 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2024-07-01 04:26:08 +0200 | Typedfern | (~Typedfern@182.red-83-37-43.dynamicip.rima-tde.net) |
2024-07-01 04:41:02 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2024-07-01 04:41:52 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2024-07-01 04:43:48 +0200 | td_ | (~td@i5387093F.versanet.de) (Ping timeout: 255 seconds) |
2024-07-01 04:45:37 +0200 | td_ | (~td@i53870923.versanet.de) |
2024-07-01 04:46:59 +0200 | [exa] | (~exa@user/exa/x-3587197) (Ping timeout: 260 seconds) |
2024-07-01 04:48:36 +0200 | bairyn | (~bairyn@50.250.232.19) (Ping timeout: 268 seconds) |
2024-07-01 04:49:55 +0200 | bairyn | (~bairyn@50.250.232.19) |
2024-07-01 05:01:27 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 260 seconds) |
2024-07-01 05:20:15 +0200 | aforemny | (~aforemny@2001:9e8:6cdc:700:7c5a:7635:6125:375c) (Ping timeout: 255 seconds) |
2024-07-01 05:20:26 +0200 | aforemny_ | (~aforemny@i59F516CB.versanet.de) |
2024-07-01 05:24:58 +0200 | rosco | (~rosco@175.136.155.137) (Ping timeout: 246 seconds) |
2024-07-01 05:34:46 +0200 | rosco | (~rosco@175.136.155.137) |
2024-07-01 05:47:31 +0200 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-07-01 05:50:32 +0200 | JimL | (~quassel@89.162.16.26) |
2024-07-01 06:01:11 +0200 | zzz | (~yin@user/zero) (Ping timeout: 264 seconds) |
2024-07-01 06:14:19 +0200 | TactfulCitrus | (~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047) (Ping timeout: 268 seconds) |
2024-07-01 06:21:13 +0200 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-07-01 06:23:42 +0200 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) |
2024-07-01 06:29:05 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-07-01 06:55:00 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-07-01 06:56:05 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-07-01 07:02:28 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-07-01 07:13:40 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2024-07-01 07:24:54 +0200 | michalz | (~michalz@185.246.207.221) |
2024-07-01 07:31:07 +0200 | simendsjo | (~user@84.209.170.3) |
2024-07-01 07:34:52 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-07-01 07:49:40 +0200 | misterfish | (~misterfis@84.53.85.146) |
2024-07-01 07:53:17 +0200 | joeyadams | (~joeyadams@2603:6010:5100:2ed:2bef:3f32:3ac3:d5e) (Quit: Leaving) |
2024-07-01 07:55:26 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-07-01 08:05:29 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-07-01 08:08:06 +0200 | amjoseph | (~amjoseph@static-198-44-128-146.cust.tzulo.com) (Ping timeout: 268 seconds) |
2024-07-01 08:10:51 +0200 | amjoseph | (~amjoseph@static-198-44-128-146.cust.tzulo.com) |
2024-07-01 08:25:25 +0200 | TactfulCitrus | (~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047) |
2024-07-01 08:40:04 +0200 | ft | (~ft@mue-88-130-106-118.dsl.tropolys.de) (Remote host closed the connection) |
2024-07-01 08:42:57 +0200 | simendsjo | (~user@84.209.170.3) (Remote host closed the connection) |
2024-07-01 08:51:08 +0200 | dcoutts | (~duncan@cpc113460-oxfd27-2-0-cust409.4-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-07-01 09:00:17 +0200 | danza | (~francesco@151.44.206.77) |
2024-07-01 09:02:50 +0200 | nurupo | (~nurupo.ga@user/nurupo) (Quit: nurupo.ga) |
2024-07-01 09:03:39 +0200 | nurupo | (~nurupo.ga@user/nurupo) |
2024-07-01 09:05:33 +0200 | dcoutts | (~duncan@cpc113460-oxfd27-2-0-cust409.4-3.cable.virginm.net) |
2024-07-01 09:06:05 +0200 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 272 seconds) |
2024-07-01 09:07:14 +0200 | misterfish | (~misterfis@84.53.85.146) |
2024-07-01 09:15:33 +0200 | michalz | (~michalz@185.246.207.221) (Ping timeout: 256 seconds) |
2024-07-01 09:21:55 +0200 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 256 seconds) |
2024-07-01 09:21:56 +0200 | danza | (~francesco@151.44.206.77) (Ping timeout: 252 seconds) |
2024-07-01 09:22:43 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-07-01 09:26:23 +0200 | lewisje | (~lewisje@74.215.19.22) |
2024-07-01 09:31:31 +0200 | simendsjo | (~user@84.209.170.3) |
2024-07-01 09:40:27 +0200 | mikess | (~mikess@user/mikess) (Ping timeout: 264 seconds) |
2024-07-01 09:41:33 +0200 | gmg | (~user@user/gehmehgeh) |
2024-07-01 09:42:26 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) |
2024-07-01 10:00:41 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-07-01 10:05:24 +0200 | michalz | (~michalz@185.246.207.193) |
2024-07-01 10:12:02 +0200 | __monty__ | (~toonn@user/toonn) |
2024-07-01 10:13:49 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-07-01 10:15:38 +0200 | img | (~img@user/img) |
2024-07-01 10:30:40 +0200 | swistak | (~swistak@185.21.216.141) |
2024-07-01 10:31:45 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-07-01 10:33:47 +0200 | emm | (~emm@user/edmeme) |
2024-07-01 10:36:30 +0200 | cheater_ | (~Username@user/cheater) |
2024-07-01 10:36:39 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) |
2024-07-01 10:37:01 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) (Ping timeout: 268 seconds) |
2024-07-01 10:37:14 +0200 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-07-01 10:40:43 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2024-07-01 10:40:48 +0200 | cheater_ | cheater |
2024-07-01 10:41:18 +0200 | greenflower | (~greenflow@122.171.18.1) |
2024-07-01 10:42:14 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2024-07-01 10:43:36 +0200 | chele | (~chele@user/chele) |
2024-07-01 10:46:36 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) |
2024-07-01 10:48:03 +0200 | p3n | (~p3n@217.198.124.246) |
2024-07-01 10:52:50 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-07-01 10:58:44 +0200 | [exa] | (~exa@user/exa/x-3587197) |
2024-07-01 11:07:00 +0200 | killy | (~killy@staticline-31-183-144-171.toya.net.pl) |
2024-07-01 11:07:25 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) |
2024-07-01 11:12:01 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3404-2111-f9f6-780a-2169-fa49.rev.sfr.net) |
2024-07-01 11:12:10 +0200 | emm | (~emm@user/edmeme) (Ping timeout: 268 seconds) |
2024-07-01 11:15:59 +0200 | fun-safe-math | (~fun-safe-@24.21.106.247) () |
2024-07-01 11:16:16 +0200 | killy | (~killy@staticline-31-183-144-171.toya.net.pl) (Quit: leaving) |
2024-07-01 11:16:55 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3404-2111-f9f6-780a-2169-fa49.rev.sfr.net) (Remote host closed the connection) |
2024-07-01 11:19:04 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3404-2111-844d-6b69-bf95-f1f7.rev.sfr.net) |
2024-07-01 11:37:49 +0200 | simendsjo | (~user@84.209.170.3) (Remote host closed the connection) |
2024-07-01 11:40:02 +0200 | simendsjo | (~user@84.209.170.3) |
2024-07-01 11:44:47 +0200 | simendsjo | (~user@84.209.170.3) (Remote host closed the connection) |
2024-07-01 11:53:49 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-07-01 12:00:25 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-07-01 12:11:34 +0200 | rosco | (~rosco@175.136.155.137) (Quit: Lost terminal) |
2024-07-01 12:35:09 +0200 | dcoutts | (~duncan@cpc113460-oxfd27-2-0-cust409.4-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2024-07-01 12:41:23 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) (Ping timeout: 264 seconds) |
2024-07-01 12:41:50 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-07-01 12:42:29 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) |
2024-07-01 12:43:09 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-07-01 12:51:34 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-07-01 12:52:55 +0200 | zzz | (~yin@user/zero) |
2024-07-01 13:03:55 +0200 | danse-nr3 | (~danse-nr3@151.44.206.77) (Ping timeout: 256 seconds) |
2024-07-01 13:04:09 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) |
2024-07-01 13:10:08 +0200 | tomsmeding | (~tomsmedin@2a01:4f8:c0c:5e5e::2) (Quit: ZNC 1.9.0 - https://znc.in) |
2024-07-01 13:11:38 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-07-01 13:17:41 +0200 | ircbrowse_tom | (~ircbrowse@user/tomsmeding/bot/ircbrowse-tom) |
2024-07-01 13:17:43 +0200 | Server | +Cnt |
2024-07-01 13:18:11 +0200 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection) |
2024-07-01 13:18:36 +0200 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) |
2024-07-01 13:18:36 +0200 | ChanServ | +v yahb2 |
2024-07-01 13:19:14 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2024-07-01 13:19:48 +0200 | pavonia | (~user@user/siracusa) |
2024-07-01 13:20:25 +0200 | dcoutts | (~duncan@185.201.60.211) |
2024-07-01 13:27:35 +0200 | igemnace | (~igemnace@user/igemnace) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
2024-07-01 13:29:54 +0200 | Ekho | (~Ekho@user/ekho) (Quit: CORE ERROR, SYSTEM HALTED.) |
2024-07-01 13:30:14 +0200 | Catty | (~catties@user/meow/catties) (Remote host closed the connection) |
2024-07-01 13:30:50 +0200 | igemnace | (~igemnace@user/igemnace) |
2024-07-01 13:32:06 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) (Ping timeout: 255 seconds) |
2024-07-01 13:34:29 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) |
2024-07-01 13:35:21 +0200 | catties | (~catties@user/meow/catties) |
2024-07-01 13:41:19 +0200 | Ekho | (~Ekho@user/ekho) |
2024-07-01 13:41:35 +0200 | rosco | (~rosco@175.136.155.137) |
2024-07-01 13:42:27 +0200 | dcoutts | (~duncan@185.201.60.211) (Remote host closed the connection) |
2024-07-01 13:44:46 +0200 | Square | (~Square@user/square) |
2024-07-01 13:45:03 +0200 | dcoutts | (~duncan@ip-185-104-136-21.ptr.icomera.net) |
2024-07-01 13:57:26 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9) (Remote host closed the connection) |
2024-07-01 13:59:33 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9) |
2024-07-01 14:03:41 +0200 | dcoutts | (~duncan@ip-185-104-136-21.ptr.icomera.net) (Ping timeout: 240 seconds) |
2024-07-01 14:06:00 +0200 | Nixkernal | (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) |
2024-07-01 14:15:56 +0200 | greenflower | (~greenflow@122.171.18.1) (Ping timeout: 250 seconds) |
2024-07-01 14:28:28 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2024-07-01 14:29:21 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2024-07-01 14:34:37 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-07-01 14:35:39 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 264 seconds) |
2024-07-01 14:40:52 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) (Ping timeout: 256 seconds) |
2024-07-01 14:43:43 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-07-01 14:44:42 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) |
2024-07-01 14:45:38 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) (Client Quit) |
2024-07-01 14:47:49 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) |
2024-07-01 14:49:35 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-07-01 14:54:38 +0200 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-07-01 15:04:00 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3404-2111-844d-6b69-bf95-f1f7.rev.sfr.net) (Remote host closed the connection) |
2024-07-01 15:04:46 +0200 | tired | (~tired@user/tired) (Remote host closed the connection) |
2024-07-01 15:05:57 +0200 | tired | (~tired@user/tired) |
2024-07-01 15:38:53 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 268 seconds) |
2024-07-01 15:43:12 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-07-01 15:43:23 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-07-01 15:43:29 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) |
2024-07-01 15:44:00 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
2024-07-01 15:45:22 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2024-07-01 15:59:36 +0200 | dcoutts | (~duncan@185.201.60.13) |
2024-07-01 16:08:36 +0200 | ystael | (~ystael@user/ystael) |
2024-07-01 16:09:16 +0200 | dcoutts | (~duncan@185.201.60.13) (Ping timeout: 256 seconds) |
2024-07-01 16:11:50 +0200 | cheater_ | (~Username@user/cheater) |
2024-07-01 16:15:20 +0200 | dcoutts | (~duncan@94.119.32.11) |
2024-07-01 16:16:11 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2024-07-01 16:16:17 +0200 | cheater_ | cheater |
2024-07-01 16:24:22 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-07-01 16:28:13 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) |
2024-07-01 16:32:03 +0200 | dcoutts | (~duncan@94.119.32.11) (Ping timeout: 252 seconds) |
2024-07-01 16:34:08 +0200 | maroloccio | (~marolocci@151.73.250.151) |
2024-07-01 16:39:46 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds) |
2024-07-01 16:44:29 +0200 | spenat | (~spenat@c-1125235c.012-6-62726f1.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2024-07-01 16:46:20 +0200 | dcoutts | (~duncan@ip-185-104-136-57.ptr.icomera.net) |
2024-07-01 16:50:26 +0200 | ft | (~ft@p4fc2ab80.dip0.t-ipconnect.de) |
2024-07-01 16:58:40 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-07-01 17:00:40 +0200 | danse-nr3 | (~danse-nr3@151.35.249.42) (Read error: Connection reset by peer) |
2024-07-01 17:01:08 +0200 | danse-nr3 | (~danse-nr3@151.43.102.201) |
2024-07-01 17:02:44 +0200 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-07-01 17:09:17 +0200 | meritamen | (~user@user/meritamen) |
2024-07-01 17:11:15 +0200 | spenat | (~spenat@c-1125235c.012-6-62726f1.bbcust.telenor.se) |
2024-07-01 17:14:24 +0200 | dcoutts | (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 252 seconds) |
2024-07-01 17:19:01 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-07-01 17:19:33 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-07-01 17:20:05 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 272 seconds) |
2024-07-01 17:22:57 +0200 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) (Quit: Later) |
2024-07-01 17:23:43 +0200 | rncwnd | (~quassel@2a01:4f8:221:27c6::1) |
2024-07-01 17:23:47 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-07-01 17:23:56 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) |
2024-07-01 17:24:16 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-07-01 17:24:33 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-07-01 17:28:05 +0200 | meritamen | (~user@user/meritamen) (Ping timeout: 240 seconds) |
2024-07-01 17:30:48 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 268 seconds) |
2024-07-01 17:31:43 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-07-01 17:33:41 +0200 | dcoutts | (~duncan@212.187.183.33) |
2024-07-01 17:35:43 +0200 | cheater_ | (~Username@user/cheater) |
2024-07-01 17:37:04 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2024-07-01 17:37:08 +0200 | cheater_ | cheater |
2024-07-01 17:47:28 +0200 | AlexNoo_ | (~AlexNoo@94.233.240.124) |
2024-07-01 17:47:42 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) |
2024-07-01 17:48:25 +0200 | mikess | (~mikess@user/mikess) |
2024-07-01 17:50:39 +0200 | AlexZenon | (~alzenon@94.233.240.141) (Ping timeout: 264 seconds) |
2024-07-01 17:51:28 +0200 | AlexNoo | (~AlexNoo@94.233.240.141) (Ping timeout: 268 seconds) |
2024-07-01 17:51:29 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2024-07-01 17:54:03 +0200 | soverysour | (~soverysou@81.196.150.219) |
2024-07-01 17:54:03 +0200 | soverysour | (~soverysou@81.196.150.219) (Changing host) |
2024-07-01 17:54:03 +0200 | soverysour | (~soverysou@user/soverysour) |
2024-07-01 17:56:59 +0200 | AlexNoo_ | AlexNoo |
2024-07-01 18:11:25 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-07-01 18:13:17 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 240 seconds) |
2024-07-01 18:14:34 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-07-01 18:28:39 +0200 | soverysour | (~soverysou@user/soverysour) (Ping timeout: 255 seconds) |
2024-07-01 18:33:33 +0200 | danse-nr3 | (~danse-nr3@151.43.102.201) (Ping timeout: 272 seconds) |
2024-07-01 18:34:26 +0200 | danza | (~francesco@151.43.102.201) |
2024-07-01 18:35:33 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-07-01 18:36:13 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-07-01 18:52:25 +0200 | danza | (~francesco@151.43.102.201) (Ping timeout: 246 seconds) |
2024-07-01 18:56:16 +0200 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 246 seconds) |
2024-07-01 19:00:24 +0200 | dcoutts | (~duncan@212.187.183.33) (Ping timeout: 256 seconds) |
2024-07-01 19:02:49 +0200 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-07-01 19:04:10 +0200 | AlexZenon | (~alzenon@94.233.240.124) |
2024-07-01 19:04:42 +0200 | danse-nr3 | (~danse-nr3@151.43.102.201) |
2024-07-01 19:08:08 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-07-01 19:08:16 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-07-01 19:13:22 +0200 | AlexZenon | (~alzenon@94.233.240.124) (Read error: Connection reset by peer) |
2024-07-01 19:18:02 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
2024-07-01 19:18:11 +0200 | AlexZenon | (~alzenon@94.233.240.124) |
2024-07-01 19:20:17 +0200 | maroloccio | (~marolocci@151.73.250.151) (Quit: WeeChat 3.8) |
2024-07-01 19:20:51 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-07-01 19:24:05 +0200 | dcoutts | (~duncan@212.187.183.33) |
2024-07-01 19:29:47 +0200 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer) |
2024-07-01 19:32:12 +0200 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) |
2024-07-01 19:38:16 +0200 | <Athas> | What are good introductory Haskell textbooks these days? |
2024-07-01 19:38:52 +0200 | <monochrom> | I think Hutton's book. |
2024-07-01 19:38:53 +0200 | <haskellbridge> | <sm> what kind of style, focus, and prequisites ? |
2024-07-01 19:39:01 +0200 | <haskellbridge> | <sm> Hutton is always considered good |
2024-07-01 19:39:06 +0200 | <Athas> | I know of Hutton's book, and I will recommend it. But what else? |
2024-07-01 19:39:23 +0200 | <Athas> | The context is a master's level course with no required textbook, but merely recommended ones. |
2024-07-01 19:39:30 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-07-01 19:39:30 +0200 | <haskellbridge> | <sm> for a light intro I always liked |
2024-07-01 19:39:30 +0200 | <haskellbridge> | @where htac |
2024-07-01 19:39:31 +0200 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
2024-07-01 19:39:45 +0200 | <Athas> | I'm taking over the course, which used to recommend Hutton and LYAH, but I think the latter is outdated (and I never liked it much myself). |
2024-07-01 19:39:59 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) |
2024-07-01 19:40:44 +0200 | <Athas> | That Haskell Cookbook looks good; I will take a closer look. |
2024-07-01 19:41:28 +0200 | <monochrom> | The other resources I am familiar with, I have described them in http://www.vex.net/~trebla/haskell/learn-sources.html |
2024-07-01 19:41:37 +0200 | <haskellbridge> | <sm> more: https://www.extrema.is/articles/haskell-books -> beginner |
2024-07-01 19:41:47 +0200 | <monochrom> | But the wikibook is always a good place to start for free. |
2024-07-01 19:41:57 +0200 | <haskellbridge> | <sm> that too |
2024-07-01 19:42:28 +0200 | Noinia | (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 246 seconds) |
2024-07-01 19:42:40 +0200 | <haskellbridge> | <sm> I heard good things about Effective Haskell IIRC |
2024-07-01 19:43:37 +0200 | <Athas> | Woah, there's more books than I expected. This used to be simpler. |
2024-07-01 19:44:04 +0200 | <monochrom> | Well yeah consider "which book do you recommend for Java?" >:) |
2024-07-01 19:44:05 +0200 | <Athas> | In the old days, you read Hutton, and then you read RWH (while walking uphill). |
2024-07-01 19:44:26 +0200 | <Athas> | And in the even older days, the Gentle Introduction. |
2024-07-01 19:44:52 +0200 | <monochrom> | But ironically in the case of C I just need to know to recommend King's. (Unless you don't have that much money.) |
2024-07-01 19:47:58 +0200 | <dolio> | Up to date with C99. |
2024-07-01 19:48:36 +0200 | <haskellbridge> | <sm> Athas: let us know what you decide |
2024-07-01 19:48:55 +0200 | <Athas> | How is LYAH perceived nowadays? Is it actually outdated? |
2024-07-01 19:49:27 +0200 | <haskellbridge> | <sm> people usually say it's lacking hands-on exercises, I think ? |
2024-07-01 19:49:29 +0200 | <monochrom> | About the money thing: I realize that I am completely out of touch these days. Young people simply find free (probably pirated) PDF on the internet. :) |
2024-07-01 19:50:05 +0200 | <monochrom> | I change my mind about LYAH every 11 years. >:) |
2024-07-01 19:50:24 +0200 | <dolio> | We could have a much cheaper book to recommend. Just one page. "Don't use C." |
2024-07-01 19:50:26 +0200 | <Athas> | I'll be writing my own exercises anyway, so that's not an important aspect. |
2024-07-01 19:50:29 +0200 | <haskellbridge> | <sm> unless there's a repo with recent commits, you can be pretty sure any haskell book is a bit outdated on tools and setup |
2024-07-01 19:50:48 +0200 | dcoutts | (~duncan@212.187.183.33) (Ping timeout: 256 seconds) |
2024-07-01 19:50:56 +0200 | <Athas> | Yes, I don't expect tooling to be covered, but I prefer that the code in the book will at least work. |
2024-07-01 19:51:15 +0200 | <Athas> | Actually, I don't remember if Hutton is pre or post things like the Functor=>Applicative=>Monad change. |
2024-07-01 19:51:19 +0200 | <haskellbridge> | <sm> well that's a long shot also. Most books don't ensure that |
2024-07-01 19:51:41 +0200 | <monochrom> | I wonder if LYAH is GI made longer and slower. :) |
2024-07-01 19:52:10 +0200 | <monochrom> | To be sure, LYAH covers more topics, so not really fair. |
2024-07-01 19:52:33 +0200 | <monochrom> | Hutton's has FAM. |
2024-07-01 19:53:25 +0200 | <Athas> | That is good to know. I left my copy at the office. |
2024-07-01 19:55:26 +0200 | <monochrom> | Hrm, Bird's is the one that's pre-FAM. |
2024-07-01 19:55:42 +0200 | <geekosaur> | and he bitched about it iirc |
2024-07-01 19:55:47 +0200 | <dolio> | What is the status of the evil bird book, though? |
2024-07-01 19:55:56 +0200 | <geekosaur> | because his book had just gone off to press when FAM landed |
2024-07-01 19:56:24 +0200 | <haskellbridge> | <sm> what is this "press" you speak of |
2024-07-01 19:56:40 +0200 | <monochrom> | What is the evil bird book? |
2024-07-01 19:57:31 +0200 | tomsmeding | (~tomsmedin@static.21.109.88.23.clients.your-server.de) |
2024-07-01 19:57:53 +0200 | <dolio> | https://0x0.st/XaBG.jpg |
2024-07-01 19:58:43 +0200 | <monochrom> | Oh haha, now I see what "evil bird" means heh. |
2024-07-01 19:59:56 +0200 | rosco | (~rosco@175.136.155.137) (Quit: Lost terminal) |
2024-07-01 20:01:30 +0200 | <EvanR> | they are so close to the title with so much whitespace below |
2024-07-01 20:01:36 +0200 | <EvanR> | what is going ON with that layout |
2024-07-01 20:01:39 +0200 | danse-nr3 | (~danse-nr3@151.43.102.201) (Ping timeout: 260 seconds) |
2024-07-01 20:02:23 +0200 | <dolio> | Dunno. There's an OCaml one, too. |
2024-07-01 20:02:45 +0200 | <monochrom> | Leave blank space to show the spacious atmosphere/vibe. |
2024-07-01 20:02:48 +0200 | <dolio> | With an angry robin or something. |
2024-07-01 20:02:52 +0200 | <haskellbridge> | <sm> they didn't stand where they were asked. They're _evil_. |
2024-07-01 20:03:03 +0200 | <monochrom> | For example Chinese painting and the Dune Part 1 movie. |
2024-07-01 20:04:21 +0200 | hueso | (~root@user/hueso) (Quit: hueso) |
2024-07-01 20:05:38 +0200 | <monochrom> | In most Chinese paintings, it's like 70%-90% blank space. In one scene in Dune where the Baron, his nephew, and the reverend mother were meeting, it's 10% those 3 persons and 90% the empty hall they're in. |
2024-07-01 20:06:31 +0200 | <monochrom> | In my https://www.vex.net/~trebla/haskell/forwardconstraint/ForwardConstraint.hs , it's 90% docs/comments and 10% code. >:) |
2024-07-01 20:07:59 +0200 | hueso | (~root@user/hueso) |
2024-07-01 20:08:33 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-07-01 20:08:46 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds) |
2024-07-01 20:12:13 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2024-07-01 20:12:37 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2024-07-01 20:13:34 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 20:16:23 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-07-01 20:21:21 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-07-01 20:23:20 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-07-01 20:33:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-07-01 20:35:47 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-07-01 20:36:11 +0200 | euleritian | (~euleritia@2a02:810a:b00:1568:a497:6bd5:cbcc:abc0) |
2024-07-01 20:40:20 +0200 | jrm | (~jrm@user/jrm) (Quit: ciao) |
2024-07-01 20:41:57 +0200 | jrm | (~jrm@user/jrm) |
2024-07-01 20:52:29 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-07-01 20:57:14 +0200 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2024-07-01 21:00:58 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-07-01 21:01:27 +0200 | jrm | (~jrm@user/jrm) (Quit: ciao) |
2024-07-01 21:02:56 +0200 | jrm | (~jrm@user/jrm) |
2024-07-01 21:03:08 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2024-07-01 21:05:47 +0200 | Arsen | (arsen@gentoo/developer/managarm.dev.Arsen) (Quit: Quit.) |
2024-07-01 21:07:50 +0200 | target_i | (~target_i@user/target-i/x-6023099) |
2024-07-01 21:08:21 +0200 | Arsen | (arsen@aarsen.me) |
2024-07-01 21:08:45 +0200 | Arsen | Guest702 |
2024-07-01 21:09:51 +0200 | euleritian | (~euleritia@2a02:810a:b00:1568:a497:6bd5:cbcc:abc0) (Ping timeout: 264 seconds) |
2024-07-01 21:10:48 +0200 | euleritian | (~euleritia@95.90.211.232) |
2024-07-01 21:10:56 +0200 | hseg | (~gesh@46.120.21.14) |
2024-07-01 21:11:26 +0200 | pavonia | (~user@user/siracusa) |
2024-07-01 21:11:38 +0200 | <tomsmeding> | monochrom: (disclaimer, read the books (1-3) but didn't see the movie) Herbert does like his grand halls. We get a grand hall (the previous emperor's metal contraption on Arrakis) at the end of book 1, and in books 2 and 3 we get Alia's temple, the palace in Arrakeen, and various other big places |
2024-07-01 21:13:33 +0200 | <hseg> | Hi. IIRC, typeclass inference is confluent (in particular, the category of typeclasses is thin). How does GHC enforce this (eg what prevents me from writing an inconsistent pair of inferences Ord a => Eq [a])? |
2024-07-01 21:13:52 +0200 | <tomsmeding> | have you tried it and looked at the error message? |
2024-07-01 21:14:28 +0200 | <hseg> | not yet, should've done so first, sorry |
2024-07-01 21:15:46 +0200 | <hseg> | guessing -- that's going to get me into overlapping instance trouble, isn't it? |
2024-07-01 21:15:51 +0200 | <tomsmeding> | also try 'data T a = T a ; instance Eq (f a) ; instance Eq (T a)' and look at all the diagnostics |
2024-07-01 21:16:05 +0200 | <tomsmeding> | well for your 'Eq [a]' GHC just plainly says "duplicate instances" |
2024-07-01 21:16:32 +0200 | <tomsmeding> | but with my example you get "Overlapping instances" errors |
2024-07-01 21:17:00 +0200 | <hseg> | hrm, https://0x0.st/XaMG.txt doesn't get me into trouble yet, odd |
2024-07-01 21:17:56 +0200 | <monochrom> | Basically overlapping instances at some point. Plus the implicit fact that you gain more instances from importing and it's accumulative, and you perpetuate what you gain to those who import you, therefore two branches that overlap each other will be noticed eventually (e.g., in your main). |
2024-07-01 21:18:41 +0200 | <tomsmeding> | monochrom: why do hseg's two Q instances not overlap |
2024-07-01 21:18:41 +0200 | <monochrom> | Sometimes we even say "incoherent" which is more scaremongering than "overlap" :) |
2024-07-01 21:18:42 +0200 | <hseg> | ah, ok |
2024-07-01 21:19:28 +0200 | <monochrom> | Hrm... I don't know. Let me try... |
2024-07-01 21:19:33 +0200 | <tomsmeding> | ah, ghc does throw an error when trying to instantiate an ambiguous situation |
2024-07-01 21:19:53 +0200 | <tomsmeding> | hseg: https://play.haskell.org/saved/xlgZHO2X |
2024-07-01 21:19:57 +0200 | <monochrom> | I should be creating a Unix-and-C midterm test instead of playing with Haskell... |
2024-07-01 21:20:24 +0200 | <tomsmeding> | ask them to implement closures in C |
2024-07-01 21:21:12 +0200 | <hseg> | Ah, OK so _now_ I get an UndecidableInstances warning |
2024-07-01 21:21:22 +0200 | <hseg> | https://0x0.st/XaM7.txt |
2024-07-01 21:21:26 +0200 | <monochrom> | Hrm interesting, you have to use methods before conflicts are noticed. This is truly lazy. :) |
2024-07-01 21:21:41 +0200 | <hseg> | rofl |
2024-07-01 21:21:45 +0200 | zzz | (~yin@user/zero) (Ping timeout: 268 seconds) |
2024-07-01 21:21:45 +0200 | <tomsmeding> | UndecidableInstances is irrelevant to preserving confluence though, I think |
2024-07-01 21:21:53 +0200 | Guest702 | (arsen@aarsen.me) (Changing host) |
2024-07-01 21:21:53 +0200 | Guest702 | (arsen@gentoo/developer/managarm.dev.Arsen) |
2024-07-01 21:22:04 +0200 | <tomsmeding> | it's relevant for preserving, well, decidability |
2024-07-01 21:22:16 +0200 | <hseg> | tomsmeding: I'm unsurprised by your case, though -- it's clearly overlapping |
2024-07-01 21:22:22 +0200 | <tomsmeding> | it is |
2024-07-01 21:22:43 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
2024-07-01 21:23:14 +0200 | <hseg> | Ah, OK, with UI am getting the Overlapping instances warning |
2024-07-01 21:23:48 +0200 | Guest702 | (arsen@gentoo/developer/managarm.dev.Arsen) (Quit: Quit.) |
2024-07-01 21:23:58 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds) |
2024-07-01 21:24:16 +0200 | <hseg> | though doesn't this mean that the promise of the thinness of typeclasses is a) only true in the absence of overlap and b) only reflects that absence's tiebreaking power? |
2024-07-01 21:24:45 +0200 | <tomsmeding> | can you usefully define overlapping typeclasses though |
2024-07-01 21:24:53 +0200 | <tomsmeding> | (without {-# OVERLAPPING #-} and friends) |
2024-07-01 21:24:53 +0200 | <hseg> | think so? |
2024-07-01 21:25:04 +0200 | <tomsmeding> | (because that's explicitly opting out of confluence) |
2024-07-01 21:25:21 +0200 | <tomsmeding> | that is, can you define overlapping instances in such a way that you can use them |
2024-07-01 21:25:47 +0200 | <tomsmeding> | any use of a method from overlapping classes will be ambiguous |
2024-07-01 21:25:56 +0200 | <tomsmeding> | if both are in scope, that is |
2024-07-01 21:25:57 +0200 | Arsen | (arsen@gentoo/developer/managarm.dev.Arsen) |
2024-07-01 21:27:26 +0200 | <tomsmeding> | perhaps not as satisfying as overlapping definitions being rejected at definition site, but at least it does preserve confluence |
2024-07-01 21:27:47 +0200 | <carbolymer> | @pl \(k,v) -> (, v) <$> V2.readParamName @V2.ParamName k |
2024-07-01 21:27:47 +0200 | <lambdabot> | (line 1, column 13): |
2024-07-01 21:27:47 +0200 | <lambdabot> | unexpected ',' |
2024-07-01 21:27:47 +0200 | <lambdabot> | expecting expression |
2024-07-01 21:27:56 +0200 | <carbolymer> | lambdabot does not understand tuplesections? |
2024-07-01 21:28:06 +0200 | <tomsmeding> | well, @pl at least doesn't |
2024-07-01 21:28:12 +0200 | <geekosaur> | @pl doesn't understand tuples |
2024-07-01 21:28:23 +0200 | soverysour | (~soverysou@user/soverysour) |
2024-07-01 21:28:35 +0200 | <tomsmeding> | @pl \a b -> (a, b) |
2024-07-01 21:28:35 +0200 | <lambdabot> | (,) |
2024-07-01 21:28:37 +0200 | <tomsmeding> | that it does |
2024-07-01 21:29:03 +0200 | <geekosaur> | more precisely, there's some simple mapping of some simple cases but the general case throws an error |
2024-07-01 21:29:21 +0200 | <tomsmeding> | also it parses the type application as a use of infix (@) |
2024-07-01 21:29:24 +0200 | <tomsmeding> | @pl \(k,v) -> (\x -> (x, v)) <$> f k |
2024-07-01 21:29:24 +0200 | <lambdabot> | uncurry (flip ((<$>) . flip (,)) . f) |
2024-07-01 21:29:48 +0200 | <geekosaur> | in particular, pattern matching can't be made pointfree unless it can render the whole expression without breaking apart the tuple, iircc |
2024-07-01 21:29:58 +0200 | RiXSon | (~rixson@178-164-206-66.pool.digikabel.hu) (Ping timeout: 264 seconds) |
2024-07-01 21:30:22 +0200 | <tomsmeding> | @pl \(a, b) -> (b, a) |
2024-07-01 21:30:22 +0200 | <lambdabot> | uncurry (flip (,)) |
2024-07-01 21:30:28 +0200 | <tomsmeding> | seems to have _some_ understanding |
2024-07-01 21:30:34 +0200 | <geekosaur> | and it predates tuplesections, so won't handle it at all |
2024-07-01 21:31:27 +0200 | <geekosaur> | yes, that one it knows it can use uncurry. I think it has trouble with more complex ones though] |
2024-07-01 21:31:57 +0200 | <tomsmeding> | perhaps "it understands tuples but the transformation is not complete in their presence" |
2024-07-01 21:32:39 +0200 | emm | (~emm@user/edmeme) |
2024-07-01 21:32:49 +0200 | <monochrom> | @pl isn't even a LLM so nevermind "understand" >:) |
2024-07-01 21:33:22 +0200 | <tomsmeding> | you get what I meant :p |
2024-07-01 21:33:47 +0200 | EvanR | (~EvanR@user/evanr) |
2024-07-01 21:37:12 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Read error: Connection reset by peer) |
2024-07-01 21:37:39 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2024-07-01 21:37:46 +0200 | <cheater> | if i have a function f :: [Int] -> [Int], f = (++ [2]), where do i say the 2 "comes from" in something like f [1, 7] == [1, 7, 2]? |
2024-07-01 21:41:29 +0200 | <monochrom> | I don't understand the question. But probably "2 comes from f"? |
2024-07-01 21:42:53 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Read error: Connection reset by peer) |
2024-07-01 21:49:27 +0200 | hseg | (~gesh@46.120.21.14) (Quit: WeeChat 4.3.3) |
2024-07-01 21:51:15 +0200 | euleritian | (~euleritia@95.90.211.232) (Ping timeout: 264 seconds) |
2024-07-01 21:51:52 +0200 | <EvanR> | 2 goes anywhere Int is expected, it doesn't come from anywhere |
2024-07-01 21:52:14 +0200 | <EvanR> | in the sense that ++ comes from the Num class |
2024-07-01 21:52:16 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) |
2024-07-01 21:52:21 +0200 | <EvanR> | what |
2024-07-01 21:52:26 +0200 | <EvanR> | the Data.List module |
2024-07-01 21:52:40 +0200 | tomsmeding | looks at EvanR |
2024-07-01 21:52:42 +0200 | <EvanR> | heat wave destroying my brain |
2024-07-01 21:53:05 +0200 | <tomsmeding> | maybe ++ comes from Num twice |
2024-07-01 21:53:20 +0200 | <EvanR> | beep once for yes twice for no |
2024-07-01 21:53:28 +0200 | <EvanR> | yes yes |
2024-07-01 21:53:47 +0200 | <geekosaur> | beeep - beeep - beeep - beeep - beeep … |
2024-07-01 21:59:01 +0200 | remedan | (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!) |
2024-07-01 21:59:06 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2024-07-01 22:01:30 +0200 | lain` | (lain`@user/lain/x-9874679) (Ping timeout: 255 seconds) |
2024-07-01 22:01:54 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 22:09:59 +0200 | <mreh> | what is this magic by which a case statement can help clarify an existential type in an eliminator? |
2024-07-01 22:10:50 +0200 | <mreh> | withSomeSBool (toSBool bool) $ \(sb :: SBool b) -> |
2024-07-01 22:10:50 +0200 | <mreh> | case dict @MonadLogging sb of |
2024-07-01 22:10:53 +0200 | <mreh> | Dict -> runLogging @b program |
2024-07-01 22:12:36 +0200 | <tomsmeding> | mreh: what's the type of 'dict' |
2024-07-01 22:12:59 +0200 | <mreh> | it's a biggie |
2024-07-01 22:13:02 +0200 | <mreh> | hang on |
2024-07-01 22:13:47 +0200 | <mreh> | dict :: ( c 'True, c 'False ) => SBool b -> Dict (c b) |
2024-07-01 22:13:48 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-07-01 22:14:17 +0200 | <tomsmeding> | well then that 'dict' function produces 'MonadLogging b' evidence |
2024-07-01 22:14:27 +0200 | <tomsmeding> | that wasn't there before |
2024-07-01 22:14:50 +0200 | <tomsmeding> | there was MonadLogging 'True and MonadLogging 'False; 'dict' does the case analysis and produces MonadLogging b |
2024-07-01 22:15:15 +0200 | <tomsmeding> | writing 'case sb of { STrue -> runLogging @b program ; SFalse -> runLogging @b program }' should also work |
2024-07-01 22:15:17 +0200 | <mreh> | yeah, I get that bit, but like, what? |
2024-07-01 22:15:44 +0200 | <mreh> | before GHC doesn't know what b is, and now it does |
2024-07-01 22:15:48 +0200 | <tomsmeding> | no it doesn't |
2024-07-01 22:15:50 +0200 | <mreh> | it's forall b. |
2024-07-01 22:15:58 +0200 | <tomsmeding> | it just knows that whatever b is, there is apparently a MonadLogging instance for it |
2024-07-01 22:15:58 +0200 | lain` | (lain`@user/lain/x-9874679) (Remote host closed the connection) |
2024-07-01 22:16:04 +0200 | <tomsmeding> | 'dict' proved that |
2024-07-01 22:16:12 +0200 | <mreh> | oooo |
2024-07-01 22:16:14 +0200 | <tomsmeding> | (by case analysis) |
2024-07-01 22:16:48 +0200 | <tomsmeding> | Dict :: c => Dict c |
2024-07-01 22:17:20 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 22:17:22 +0200 | <tomsmeding> | if we make the dictionaries explicit (and turn => into ->), it looks more like: case dict @MonadLogging sb of Dict d -> runLoggin @b d program |
2024-07-01 22:17:39 +0200 | <tomsmeding> | and: dict SFalse = Dict dMonadLoggingFalse ; dict STrue = Dict dMonadLoggingTrue |
2024-07-01 22:18:41 +0200 | <mreh> | okay |
2024-07-01 22:18:57 +0200 | <mreh> | so it's to placate the type checker |
2024-07-01 22:19:20 +0200 | <tomsmeding> | well, 'dict' is actually doing something here |
2024-07-01 22:19:26 +0200 | <tomsmeding> | look at my expanded version of 'dict' |
2024-07-01 22:19:39 +0200 | <mreh> | yes |
2024-07-01 22:19:41 +0200 | <tomsmeding> | the Dict constructor _has a field_: it's invisible in normal haskell, but there is a field there |
2024-07-01 22:19:48 +0200 | <tomsmeding> | the dictionary for MonadLogging |
2024-07-01 22:20:06 +0200 | <tomsmeding> | 'dict' pattern matches on the singleton for 'b' and chooses the correct dictionary to put in Dict's field |
2024-07-01 22:20:19 +0200 | <tomsmeding> | with your match on Dict, GHC has that dictionary available to pass to runLogging |
2024-07-01 22:20:20 +0200 | <mreh> | is this the implicit variable GHC uses to find typeclasses? |
2024-07-01 22:20:40 +0200 | <tomsmeding> | my use of the word "dictionary" here refers to how GHC implements type classes at runtime |
2024-07-01 22:20:59 +0200 | lain` | (lain`@user/lain/x-9874679) (Remote host closed the connection) |
2024-07-01 22:21:05 +0200 | <tomsmeding> | if you have a type class, say 'class Eq a where { (==), (/=) :: a -> a -> a }', then at runtime, that is a _record with two fields_ |
2024-07-01 22:21:45 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2024-07-01 22:21:45 +0200 | <tomsmeding> | and if you have a polymorphic function 'foo :: Eq a => a -> a -> Int', then at runtime that has type 'EqDict a -> a -> a -> Int' |
2024-07-01 22:21:48 +0200 | lain` | (lain`@user/lain/x-9874679) |
2024-07-01 22:22:04 +0200 | <tomsmeding> | but these dictionaries (the records) are passed around automatically by GHC |
2024-07-01 22:22:05 +0200 | <mreh> | riight |
2024-07-01 22:22:20 +0200 | <tomsmeding> | if you show the Core of a piece of code, you can see them |
2024-07-01 22:22:23 +0200 | <mreh> | so I've read |
2024-07-01 22:22:30 +0200 | <mreh> | okay |
2024-07-01 22:22:58 +0200 | <tomsmeding> | mreh: https://play.haskell.org/saved/aScvorhS press Core and look at the definition for 'foo' (the third in the output) |
2024-07-01 22:22:58 +0200 | <mreh> | I guess this is a consequnce of type erasure? |
2024-07-01 22:23:18 +0200 | <tomsmeding> | it takes 4 arguments: a type (the 'a' type variable), the Eq dictionary for 'a', and 'x' and 'y' |
2024-07-01 22:23:58 +0200 | <tomsmeding> | and in foo's body in Core you can see that it takes the "==" field of that dictionary and applies it to x and y |
2024-07-01 22:24:03 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 22:24:33 +0200 | <mreh> | `== @a_aII`? |
2024-07-01 22:24:48 +0200 | <tomsmeding> | in normal haskell syntax that would be `(==) @a dEq x y` |
2024-07-01 22:25:20 +0200 | <tomsmeding> | i.e. type-apply the `(==)` field name of the Eq dictionary to 'a', use it to get the field out of the record dEq, and apply the value (of type a -> a -> Bool) to x and y |
2024-07-01 22:25:50 +0200 | <mreh> | cooool |
2024-07-01 22:25:53 +0200 | <mreh> | I'm learning core |
2024-07-01 22:26:07 +0200 | <tomsmeding> | I'm not sure I would connect it to type erasure, though I guess one could say that because types are erased at runtime, you can't look up instances from scratch so they have to be passed around explicitly? |
2024-07-01 22:26:15 +0200 | <tomsmeding> | it's cool, isn't it? :) |
2024-07-01 22:26:39 +0200 | <tomsmeding> | so now look back at my expanded versions after "if we make the dictionaries explicit" |
2024-07-01 22:27:07 +0200 | <tomsmeding> | I explicitly wrote those dMonadLogging values there to show what's really going on |
2024-07-01 22:27:12 +0200 | <tomsmeding> | GHC infers them, but they're there |
2024-07-01 22:27:44 +0200 | <tomsmeding> | dMonadLoggingFalse and dMonadLoggingTrue would be top-level constants (if a class is a record type, an instance is a top-level value of that type) |
2024-07-01 22:28:11 +0200 | remedan | (~remedan@ip-62-245-108-153.bb.vodafone.cz) |
2024-07-01 22:28:16 +0200 | byorgey | (~byorgey@user/byorgey) |
2024-07-01 22:28:22 +0200 | <mreh> | yup |
2024-07-01 22:28:36 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
2024-07-01 22:28:46 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 22:31:45 +0200 | bionade24 | (~quassel@2a03:4000:33:45b::1) (Quit: Apocalypse Incoming!) |
2024-07-01 22:32:30 +0200 | bionade24 | (~quassel@2a03:4000:33:45b::1) |
2024-07-01 22:35:02 +0200 | <mreh> | it still seems a big magical that the dictionary implicitly finds its way over on the other side of that arrow |
2024-07-01 22:35:17 +0200 | <tomsmeding> | the -> arrow of the case match? |
2024-07-01 22:35:20 +0200 | <mreh> | yeah |
2024-07-01 22:35:25 +0200 | <tomsmeding> | that's type class inference for you |
2024-07-01 22:35:26 +0200 | soverysour | (~soverysou@user/soverysour) (Ping timeout: 268 seconds) |
2024-07-01 22:35:37 +0200 | <tomsmeding> | whenever a dictionary is required, ghc looks in the environment to see if there are any suitable ones around |
2024-07-01 22:35:51 +0200 | <tomsmeding> | usually they come from the top level, or from some top-level function applied to some other value |
2024-07-01 22:36:35 +0200 | <tomsmeding> | e.g. if you have 'instance Eq (T a) => Ord (T a) where', then that's a top-level _function_ dOrdT :: EqDict a -> OrdDict a |
2024-07-01 22:36:50 +0200 | <tomsmeding> | but they can also come from the local scope, as you see in your example |
2024-07-01 22:37:22 +0200 | <tomsmeding> | ghc always collects all instances in the environment that match, and if multiple match you get an overlapping instances error |
2024-07-01 22:48:04 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 22:50:05 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-07-01 22:53:19 +0200 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2024-07-01 22:54:24 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-07-01 22:56:33 +0200 | <Leary> | mreh: By the way, "magic by which pattern matching can refine a type" (paraphrasing) is exactly what GADTs provide. E.g. `forall p. p :~: P -> R p` is equivalent to `R P`, and you can witness this from inside it by pattern matching on the argument. |
2024-07-01 22:57:25 +0200 | benkard | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 22:57:51 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 22:57:51 +0200 | benkard | mulk |
2024-07-01 23:00:50 +0200 | euleritian | (~euleritia@dynamic-176-007-148-253.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-07-01 23:01:06 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-07-01 23:02:05 +0200 | benkard | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 23:02:39 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 23:05:38 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 23:06:51 +0200 | benkard | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 23:10:27 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 23:12:25 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 23:16:09 +0200 | benkard | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) |
2024-07-01 23:17:22 +0200 | mulk | (~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-07-01 23:17:23 +0200 | benkard | mulk |
2024-07-01 23:27:47 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-07-01 23:32:33 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-07-01 23:38:32 +0200 | michalz | (~michalz@185.246.207.193) (Quit: ZNC 1.9.0 - https://znc.in) |
2024-07-01 23:40:16 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2024-07-01 23:41:31 +0200 | EvanR | (~EvanR@user/evanr) |
2024-07-01 23:52:46 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
2024-07-01 23:58:59 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2024-07-01 23:59:03 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |