Home liberachat/#haskell: Logs Calendar

Logs on 2025-01-30 (liberachat/#haskell)

00:00:47 <jackdk> I'm partial to "A parser for things is a function from String, to Maybe the thing and the leftover String"
00:02:00 <glguy> "The only place I’ve seen it being used is in ..." \o/
00:02:15 mange joins (~user@user/mange)
00:03:10 <int-e> now try to make that work with the fail/tail rhyme
00:03:29 noctux joins (~noctux@user/noctux)
00:04:18 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 252 seconds)
00:04:22 <haskellbridge> <Axman6> glguy You're pretty much famous
00:06:37 × dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
00:09:07 Sgeo joins (~Sgeo@user/sgeo)
00:13:53 × user__ quits (~user@user/fmira) (Remote host closed the connection)
00:15:19 × juri_ quits (~juri@implicitcad.org) (Ping timeout: 260 seconds)
00:15:24 dolio joins (~dolio@130.44.140.168)
00:16:05 user__ joins (~user@user/fmira)
00:18:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:19:21 × dolio quits (~dolio@130.44.140.168) (Client Quit)
00:20:27 dolio joins (~dolio@130.44.140.168)
00:22:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
00:27:53 alfiee joins (~alfiee@user/alfiee)
00:30:55 ColinRobinson joins (~juan@user/JuanDaugherty)
00:32:10 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
00:32:12 juri_ joins (~juri@implicitcad.org)
00:33:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:38:02 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:39:33 × acidjnk_new quits (~acidjnk@p200300d6e7283f984d3514a5c03883b9.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
00:44:53 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
00:45:10 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
00:46:19 monochrm joins (trebla@216.138.220.146)
00:46:38 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 245 seconds)
00:46:41 monochrm is now known as monochrom
00:49:03 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:53:41 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
00:55:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:57:22 × sprotte24 quits (~sprotte24@p200300d16f066800e58385d4d3a6ab2d.dip0.t-ipconnect.de) (Quit: Leaving)
00:57:28 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection)
00:58:28 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
01:00:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
01:00:54 × adamCS quits (~adamCS@pool-100-33-243-37.nycmny.fios.verizon.net) (Ping timeout: 246 seconds)
01:03:25 brachyrhynchos joins (~brachyrhy@user/brachyrhynchos)
01:03:48 × xff0x quits (~xff0x@2405:6580:b080:900:dc88:7fed:aa57:a617) (Ping timeout: 252 seconds)
01:04:56 × user__ quits (~user@user/fmira) (Remote host closed the connection)
01:05:32 user__ joins (~user@user/fmira)
01:10:10 adamCS joins (~adamCS@71.190.30.173)
01:10:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:15:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:17:17 alfiee joins (~alfiee@user/alfiee)
01:20:51 × otto_s quits (~user@p5b044c4b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
01:21:27 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
01:22:50 otto_s joins (~user@p5b0441ee.dip0.t-ipconnect.de)
01:26:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:30:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
01:32:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:35:50 monochrm joins (trebla@216.138.220.146)
01:36:13 × ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
01:37:21 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds)
01:37:22 monochrm is now known as monochrom
01:41:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:43:11 Feuermagier joins (~Feuermagi@user/feuermagier)
01:43:40 califax joins (~califax@user/califx)
01:45:34 × user363627 quits (~user@user/user363627) (Ping timeout: 260 seconds)
01:45:46 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:46:03 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
01:55:00 ColinRobinson joins (~juan@user/JuanDaugherty)
01:55:48 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:56:12 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
01:57:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:57:24 <ColinRobinson> because this is a publicly logged channel, clarifying my use of 'factitious" the last time I spoke here was not meant in the English sense, at least the one that shows in web dictionary entries but rathter the one that shows for 'facticity' w or w/o sartre
01:58:24 <ColinRobinson> *rather
01:58:34 × ColinRobinson quits (~juan@user/JuanDaugherty) (Client Quit)
01:59:40 <EvanR> are these words actually cromulent
02:01:38 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:01:41 acidjnk_new joins (~acidjnk@p200300d6e7283f46c5769c4c50fc7d32.dip0.t-ipconnect.de)
02:03:35 ColinRobinson joins (~juan@user/JuanDaugherty)
02:05:35 fired_ joins (la@2600:3c00::f03c:92ff:fee3:aace)
02:05:37 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 248 seconds)
02:05:38 × fired quits (LA@2600:3c00::f03c:92ff:fee3:aace) (Ping timeout: 248 seconds)
02:06:05 fired_ is now known as fired
02:06:12 <ColinRobinson> aiui, 'cromulent' is a nonce without meaning other than as a meme for a nonsense term. Neither of the terms i referred to has that character. Factitious as it is being reported is the exact opposite of the deadly srsness I intend for this persona.
02:06:42 alfiee joins (~alfiee@user/alfiee)
02:07:07 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.199)
02:07:08 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
02:07:40 monochrom joins (trebla@216.138.220.146)
02:07:40 Pozyomka joins (~pyon@user/pyon)
02:09:11 <EvanR> ColinRobinson or JuanDaugherty?
02:09:27 <ColinRobinson> ColinRobinson
02:09:29 <EvanR> familiar with one nick not the other
02:11:10 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
02:11:16 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
02:12:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:14:18 <ColinRobinson> the quit text leads to an explanation (catalog of identities) if u havent already seen.
02:16:14 ColinRobinson is now known as JuanDaugherty
02:17:21 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
02:17:29 tavare joins (~tavare@user/tavare)
02:18:59 <JuanDaugherty> it's possible I may give it some use/role in ##haskell-nlp , it's a rich role as far as automating a persona is concerned, more bot like and this one I intend to have the prolog nature and the one sofar assigned the haskell nature i've decided not to run externally
02:20:19 × brachyrhynchos quits (~brachyrhy@user/brachyrhynchos) (Remote host closed the connection)
02:21:53 <EvanR> the quit text read "Client Quit"
02:22:16 <EvanR> you're a bot?
02:23:03 <JuanDaugherty> not unless i'm marked away
02:23:55 JuanDaugherty is never away in effect
02:24:06 <EvanR> o_O
02:24:10 <JuanDaugherty> when present
02:25:47 <JuanDaugherty> it looks like nick grouping foils the client quit message, checking
02:25:55 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
02:26:31 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
02:27:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:29:05 <talismanick> For a function as ubiquitous as `traverse`, I'm surprised there isn't an infix shorthand
02:37:18 × acidjnk_new quits (~acidjnk@p200300d6e7283f46c5769c4c50fc7d32.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
02:38:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:43:32 <haskellbridge> <Bowuigi> It's easier to associate it with "for" that way I guess
02:44:47 × tuxpaint quits (~a@put.gay) (Quit: gn)
02:45:06 tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e)
02:46:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:46:37 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
02:48:33 <talismanick> `for` is nice if you're mimicking procedural langs with do-notation or simply want to spare your eyes a spurious `flip`, but I wish it was visually distinct like how `<$>` is to `fmap`
02:48:56 <talismanick> `<*$>`, maybe?
02:49:54 <talismanick> `<$>>=` looks nicer, but it's not just `mapM` anymore
02:50:42 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
02:51:08 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
02:51:54 pabs3 joins (~pabs3@user/pabs3)
02:53:29 pavonia joins (~user@user/siracusa)
02:55:54 × sarna quits (~sarna@d224-221.icpnet.pl) (Ping timeout: 252 seconds)
02:56:13 sarna joins (~sarna@d224-221.icpnet.pl)
02:56:26 alfiee joins (~alfiee@user/alfiee)
02:56:43 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
02:56:56 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
02:58:20 monochrm joins (trebla@216.138.220.146)
02:58:38 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 265 seconds)
02:58:41 monochrm is now known as monochrom
02:58:43 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
02:58:43 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
02:58:53 chexum joins (~quassel@gateway/tor-sasl/chexum)
02:59:25 gmg joins (~user@user/gehmehgeh)
03:00:57 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
03:01:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:03:28 × alx741 quits (~alx741@186.33.188.229) (Ping timeout: 265 seconds)
03:03:46 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds)
03:05:11 philopsos joins (~caecilius@user/philopsos)
03:07:06 xff0x_ joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
03:08:11 × pie__ quits (~pie_bnc@user/pie/x-2818909) ()
03:08:34 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds)
03:09:44 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
03:09:50 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
03:12:39 × Square2 quits (~Square4@user/square) (Ping timeout: 260 seconds)
03:17:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:17:25 × polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection)
03:18:14 polykernel joins (~polykerne@user/polykernel)
03:20:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:23:34 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds)
03:24:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
03:29:21 weary-traveler joins (~user@user/user363627)
03:36:03 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:38:09 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
03:41:05 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
03:44:52 alfiee joins (~alfiee@user/alfiee)
03:47:37 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.199) (Quit: Leaving)
03:49:03 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
03:51:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:56:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:04:33 cyphase joins (~cyphase@user/cyphase)
04:07:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:07:49 <monochrom> @type traverse
04:07:50 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
04:10:38 <monochrom> Yeah something like <*$> or <$*>
04:11:22 <monochrom> Note that our traverse is called flip map in impure functional languages for a certain f and a certain t. >:)
04:14:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:24:05 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
04:25:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:26:06 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
04:26:33 aforemny_ joins (~aforemny@2001:9e8:6ce3:9600:2c48:7088:cbda:dd4)
04:27:33 × aforemny quits (~aforemny@i577B125E.versanet.de) (Ping timeout: 248 seconds)
04:27:54 j1n37 joins (~j1n37@user/j1n37)
04:29:41 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
04:32:21 × terrorjack quits (~terrorjac@2a01:4f8:c17:a66e::) (Quit: The Lounge - https://thelounge.chat)
04:33:36 alfiee joins (~alfiee@user/alfiee)
04:33:58 terrorjack joins (~terrorjac@2a01:4f8:c17:a66e::)
04:38:09 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
04:40:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:45:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:45:55 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:47:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:52:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:54:38 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 265 seconds)
04:54:58 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (Ping timeout: 245 seconds)
04:57:51 sa1 joins (sid7690@id-7690.ilkley.irccloud.com)
04:57:56 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
05:04:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:08:50 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
05:09:08 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
05:11:12 <haskellbridge> <maerwald> geekosaur: no, ghcup doesn't overwrite itself by default
05:11:36 <haskellbridge> <maerwald> and no sane package manager places binaries in HOME
05:13:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
05:13:37 monochrm joins (trebla@216.138.220.146)
05:13:43 <haskellbridge> <maerwald> yin: ghcup itself has no dependencies other than "curl" or "wget". The dependencies that you mean are for _GHC_. So someone packaging ghcup properly would _not_ add those dependencies to the ghcup package.
05:13:57 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 246 seconds)
05:13:57 monochrm is now known as monochrom
05:13:59 × monochrom quits (trebla@216.138.220.146) (Client Quit)
05:15:50 euouae joins (~euouae@user/euouae)
05:16:14 <haskellbridge> <maerwald> You can try: <package-manager> install $(ghcup tool-requirements -r)
05:16:32 <euouae> Hello functions of the type Functor f => f a -> f b, what are they called?
05:16:48 <euouae> are they functor transformers? natural transformations?
05:19:01 <geekosaur> the package manager doesn't but rustup does
05:19:47 <haskellbridge> <maerwald> yes, that's why they don't interfere with each other
05:20:02 <geekosaur> that was the point I was trying to make
05:20:41 <geekosaur> as distinct from older pip which happily would overwrite system packages and break stuff
05:21:10 <euouae> pip and weep
05:23:01 alfiee joins (~alfiee@user/alfiee)
05:24:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:24:46 <geekosaur> Fedora gave up some years back and started shipping a private python install for yum/dnf to use so people upgrading system packages didn't break it
05:26:04 monochrom joins (trebla@216.138.220.146)
05:27:49 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
05:28:23 <euouae> debian has some block & banner too for it
05:28:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:29:00 <euouae> error: externally-managed-environment is how it starts... 20 line paragraph error
05:35:20 tnt2 joins (~Thunderbi@user/tnt1)
05:35:24 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds)
05:35:24 tnt2 is now known as tnt1
05:39:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:41:41 × euouae quits (~euouae@user/euouae) ()
05:43:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
05:48:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:48:53 michalz joins (~michalz@185.246.207.197)
05:49:32 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:55:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:57:44 alfiee joins (~alfiee@user/alfiee)
06:02:24 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
06:03:31 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:03:34 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:06:25 × ft quits (~ft@p3e9bcd97.dip0.t-ipconnect.de) (Quit: leaving)
06:06:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:06:51 j1n37 joins (~j1n37@user/j1n37)
06:12:46 CiaoSen joins (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da)
06:14:51 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
06:18:27 <haskellbridge> <Axman6> @irc_libera.chat_euouae I've generally seen "(forall a. f a -> g a)" being referred to as natural transformations
06:18:57 <Axman6> ew... ok, the default formatting used by matrix is bad in IRC. oops
06:25:44 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
06:25:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:26:17 <int-e> haskellbridge: it's fine ;-)
06:27:54 monochrm joins (trebla@216.138.220.146)
06:28:34 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
06:28:34 monochrm is now known as monochrom
06:30:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
06:31:18 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
06:31:31 euleritian joins (~euleritia@dynamic-176-006-142-040.176.6.pool.telefonica.de)
06:32:25 <haskellbridge> <Axman6> :(
06:41:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:41:24 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
06:43:04 × euleritian quits (~euleritia@dynamic-176-006-142-040.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
06:43:42 MyNetAz joins (~MyNetAz@user/MyNetAz)
06:43:48 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
06:45:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
06:46:30 alfiee joins (~alfiee@user/alfiee)
06:49:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:50:57 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
06:53:57 acidjnk_new joins (~acidjnk@p200300d6e7283f467932b3eddade0ab9.dip0.t-ipconnect.de)
06:54:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
07:00:44 monochrm joins (trebla@216.138.220.146)
07:02:16 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 272 seconds)
07:02:16 monochrm is now known as monochrom
07:03:13 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
07:04:04 euleritian joins (~euleritia@dynamic-176-003-044-001.176.3.pool.telefonica.de)
07:04:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:09:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:10:39 Square2 joins (~Square4@user/square)
07:16:21 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
07:19:00 sawilagar joins (~sawilagar@user/sawilagar)
07:19:49 × Square2 quits (~Square4@user/square) (Ping timeout: 260 seconds)
07:20:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:24:38 × Digit quits (~user@user/digit) (Remote host closed the connection)
07:25:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
07:26:20 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 272 seconds)
07:34:55 alfiee joins (~alfiee@user/alfiee)
07:35:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:39:08 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
07:39:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
07:50:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:54:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
07:55:34 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
07:56:03 pabs3 joins (~pabs3@user/pabs3)
08:00:06 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:44 caconym joins (~caconym@user/caconym)
08:01:18 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
08:06:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:10:44 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
08:12:02 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:20:49 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
08:21:06 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
08:24:00 alfiee joins (~alfiee@user/alfiee)
08:25:31 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
08:27:38 Digit joins (~user@user/digit)
08:28:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
08:28:58 × euleritian quits (~euleritia@dynamic-176-003-044-001.176.3.pool.telefonica.de) (Read error: Connection reset by peer)
08:29:16 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
08:35:09 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:35:20 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
08:42:29 × tavare quits (~tavare@user/tavare) (Ping timeout: 248 seconds)
08:56:29 alexherbo2 joins (~alexherbo@2a02-8440-3504-a239-90d9-dcf7-f21b-c236.rev.sfr.net)
08:58:10 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
09:04:45 merijn joins (~merijn@77.242.116.146)
09:06:31 TMA joins (tma@twin.jikos.cz)
09:07:05 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:12:03 bliminse joins (~bliminse@user/bliminse)
09:13:04 alfiee joins (~alfiee@user/alfiee)
09:17:42 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
09:19:54 × tnt1 quits (~Thunderbi@user/tnt1) (Remote host closed the connection)
09:25:15 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:26:14 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
09:27:00 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
09:27:05 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
09:30:06 gmg joins (~user@user/gehmehgeh)
09:32:45 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
09:34:12 × CiaoSen quits (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da) (Ping timeout: 252 seconds)
09:40:07 zmt01 joins (~zmt00@user/zmt00)
09:43:33 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds)
09:47:16 sprotte24 joins (~sprotte24@p200300d16f0f5200f176db88f8d16a26.dip0.t-ipconnect.de)
09:48:37 __monty__ joins (~toonn@user/toonn)
09:49:34 td_ joins (~td@i53870904.versanet.de)
09:58:05 monochrm joins (trebla@216.138.220.146)
09:58:39 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 260 seconds)
09:58:40 monochrm is now known as monochrom
09:59:13 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:14a7:7f2d:4515:55f0)
10:01:49 alfiee joins (~alfiee@user/alfiee)
10:06:10 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
10:12:37 Digitteknohippie joins (~user@user/digit)
10:13:42 × Digit quits (~user@user/digit) (Ping timeout: 252 seconds)
10:15:31 × acidjnk_new quits (~acidjnk@p200300d6e7283f467932b3eddade0ab9.dip0.t-ipconnect.de) (Remote host closed the connection)
10:15:50 acidjnk_new joins (~acidjnk@p200300d6e7283f467932b3eddade0ab9.dip0.t-ipconnect.de)
10:15:54 <ski> (euouae was gone)
10:16:34 CiaoSen joins (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da)
10:25:23 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
10:26:04 gmg joins (~user@user/gehmehgeh)
10:28:22 × xff0x_ quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
10:28:35 × alexherbo2 quits (~alexherbo@2a02-8440-3504-a239-90d9-dcf7-f21b-c236.rev.sfr.net) (Remote host closed the connection)
10:42:02 tnt1 joins (~Thunderbi@user/tnt1)
10:43:16 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
10:43:30 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
10:45:23 × Digitteknohippie quits (~user@user/digit) (Ping timeout: 245 seconds)
10:48:10 tnt2 joins (~Thunderbi@user/tnt1)
10:49:14 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds)
10:49:14 tnt2 is now known as tnt1
10:51:14 alfiee joins (~alfiee@user/alfiee)
10:55:41 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
10:55:51 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
10:57:53 × CiaoSen quits (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da) (Ping timeout: 245 seconds)
11:09:49 chele joins (~chele@user/chele)
11:20:38 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
11:20:44 fp1 joins (~Thunderbi@2001:708:20:1406::1370)
11:21:56 L29Ah joins (~L29Ah@wikipedia/L29Ah)
11:22:21 xff0x joins (~xff0x@ai096095.d.east.v6connect.net)
11:23:01 fp1 is now known as fp
11:26:24 × sprotte24 quits (~sprotte24@p200300d16f0f5200f176db88f8d16a26.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
11:26:30 × mcfrdy quits (~mcfrdy@user/mcfrdy) (Quit: quit)
11:29:46 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
11:33:05 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Quit: fp)
11:35:50 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
11:36:47 MyNetAz joins (~MyNetAz@user/MyNetAz)
11:39:00 jespada joins (~jespada@2800:a4:2225:fa00:219b:97a5:1505:5c5f)
11:40:57 alfiee joins (~alfiee@user/alfiee)
11:43:09 × mange quits (~user@user/mange) (Quit: Zzz...)
11:45:24 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
11:48:28 merijn joins (~merijn@77.242.116.146)
11:49:00 × foul_owl quits (~kerry@185.203.219.82) (Read error: Connection reset by peer)
11:55:29 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
11:56:09 alexherbo2 joins (~alexherbo@2a02-8440-3504-a239-90d9-dcf7-f21b-c236.rev.sfr.net)
12:00:04 × caconym quits (~caconym@user/caconym) (Quit: bye)
12:02:11 caconym joins (~caconym@user/caconym)
12:02:21 CiaoSen joins (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da)
12:05:21 foul_owl joins (~kerry@193.42.0.124)
12:08:50 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
12:09:26 euleritian joins (~euleritia@dynamic-176-006-133-171.176.6.pool.telefonica.de)
12:10:37 Digit joins (~user@user/digit)
12:15:54 × euleritian quits (~euleritia@dynamic-176-006-133-171.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
12:16:53 euleritian joins (~euleritia@dynamic-176-000-008-052.176.0.pool.telefonica.de)
12:18:39 × acidjnk_new quits (~acidjnk@p200300d6e7283f467932b3eddade0ab9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
12:20:07 sprotte24 joins (~sprotte24@p200300d16f0f5200ad248b1696410372.dip0.t-ipconnect.de)
12:21:19 rvalue- joins (~rvalue@user/rvalue)
12:22:03 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 245 seconds)
12:22:06 danza joins (~danza@user/danza)
12:22:46 fp joins (~Thunderbi@2001:708:20:1406::1370)
12:25:03 pie_ joins (~pie_bnc@user/pie/x-2818909)
12:26:10 rvalue- is now known as rvalue
12:28:27 acidjnk_new joins (~acidjnk@p200300d6e7283f4684c6011a1ea1e065.dip0.t-ipconnect.de)
12:30:02 alfiee joins (~alfiee@user/alfiee)
12:30:20 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
12:31:46 danz93642 joins (~danza@user/danza)
12:33:56 × danza quits (~danza@user/danza) (Ping timeout: 244 seconds)
12:34:15 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
12:35:12 pie_ joins (~pie_bnc@user/pie/x-2818909)
12:37:09 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 260 seconds)
12:52:07 <haskellbridge> <eldritchcookie> do functions that are only used in TH splices count as evaluated to hpc? if not normally is there some way to get hpc to understand that i am testing those functions?
12:52:08 srazkvt joins (~srazkvt@user/srazkvt)
12:53:00 × euleritian quits (~euleritia@dynamic-176-000-008-052.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
12:53:16 × jespada quits (~jespada@2800:a4:2225:fa00:219b:97a5:1505:5c5f) (Ping timeout: 244 seconds)
12:53:18 euleritian joins (~euleritia@77.23.250.232)
12:57:29 weary-traveler joins (~user@user/user363627)
12:57:56 jespada joins (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb)
13:00:33 × euleritian quits (~euleritia@77.23.250.232) (Ping timeout: 276 seconds)
13:00:46 euleritian joins (~euleritia@dynamic-176-000-008-052.176.0.pool.telefonica.de)
13:01:32 merijn joins (~merijn@77.242.116.146)
13:02:57 tabaqui1 joins (~root@87.200.129.102)
13:05:40 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
13:06:13 × manwithluck quits (~manwithlu@194.177.28.164) (Ping timeout: 245 seconds)
13:07:07 manwithluck joins (~manwithlu@194.177.28.164)
13:07:11 × danz93642 quits (~danza@user/danza) ()
13:12:40 gentauro joins (~gentauro@user/gentauro)
13:14:53 × euleritian quits (~euleritia@dynamic-176-000-008-052.176.0.pool.telefonica.de) (Ping timeout: 265 seconds)
13:16:06 euleritian joins (~euleritia@dynamic-176-001-213-030.176.1.pool.telefonica.de)
13:19:07 alfiee joins (~alfiee@user/alfiee)
13:20:27 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Remote host closed the connection)
13:21:54 × CiaoSen quits (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da) (Ping timeout: 252 seconds)
13:23:49 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
13:28:03 × srazkvt quits (~srazkvt@user/srazkvt) (Quit: Client closed)
13:30:41 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
13:33:04 merijn joins (~merijn@77.242.116.146)
13:34:02 × euleritian quits (~euleritia@dynamic-176-001-213-030.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
13:37:53 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
13:38:04 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
13:40:00 × sprotte24 quits (~sprotte24@p200300d16f0f5200ad248b1696410372.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
13:49:36 merijn joins (~merijn@77.242.116.146)
13:52:35 weary-traveler joins (~user@user/user363627)
13:58:25 acidjnk_new3 joins (~acidjnk@p200300d6e7283f4679c2ce7937ff2475.dip0.t-ipconnect.de)
14:00:08 pavonia joins (~user@user/siracusa)
14:01:24 × acidjnk_new quits (~acidjnk@p200300d6e7283f4684c6011a1ea1e065.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
14:08:31 alfiee joins (~alfiee@user/alfiee)
14:12:53 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
14:16:25 alx741 joins (~alx741@186.33.188.229)
14:27:53 Square2 joins (~Square4@user/square)
14:32:51 × poscat quits (~poscat@user/poscat) (Ping timeout: 252 seconds)
14:33:30 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 244 seconds)
14:34:12 poscat joins (~poscat@user/poscat)
14:38:07 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
14:39:51 haritz is now known as saimazoon
14:40:00 × foul_owl quits (~kerry@193.42.0.124) (Ping timeout: 252 seconds)
14:40:37 gentauro joins (~gentauro@user/gentauro)
14:50:32 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:52:30 foul_owl joins (~kerry@193.42.0.124)
14:54:50 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
14:55:08 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
14:57:15 alfiee joins (~alfiee@user/alfiee)
14:57:21 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
14:57:44 × yin quits (~yin@user/zero) (Remote host closed the connection)
14:57:55 L29Ah joins (~L29Ah@wikipedia/L29Ah)
14:58:14 euleritian joins (~euleritia@dynamic-176-001-213-030.176.1.pool.telefonica.de)
15:01:42 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
15:09:42 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f4679c2ce7937ff2475.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
15:12:55 rstromlund joins (~user@user/rstromlund)
15:19:22 × jespada quits (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:20:46 jespada joins (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb)
15:22:26 × jespada quits (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb) (Client Quit)
15:25:18 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:33:19 <glguy> I wouldn't expect there to be one
15:37:05 × divya quits (divya@140.238.251.170) (Remote host closed the connection)
15:37:36 Guest89 joins (~Guest89@2a02:8206:7b34:9c00:8aeb:3316:75cf:6455)
15:40:25 Guest64 joins (~Guest64@2600:387:f:7e1b::1)
15:40:46 divya joins (divya@140.238.251.170)
15:45:45 × noteness_ quits (~noteness@user/noteness) (Quit: bye)
15:45:46 × rvalue quits (~rvalue@user/rvalue) (Remote host closed the connection)
15:45:59 noteness joins (~noteness@user/noteness)
15:46:10 rvalue joins (~rvalue@user/rvalue)
15:47:00 alfiee joins (~alfiee@user/alfiee)
15:49:12 SlackCoder joins (~SlackCode@208.26.70.132)
15:51:24 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
15:54:04 × euleritian quits (~euleritia@dynamic-176-001-213-030.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
15:54:21 euleritian joins (~euleritia@77.23.250.232)
15:56:19 acidjnk_new3 joins (~acidjnk@p200300d6e7283f4679c2ce7937ff2475.dip0.t-ipconnect.de)
15:57:41 × Guest64 quits (~Guest64@2600:387:f:7e1b::1) (Killed (ozone (No Spam)))
15:59:05 × euleritian quits (~euleritia@77.23.250.232) (Read error: Connection reset by peer)
15:59:22 Guest64 joins (~Guest64@68-251-36-232.lightspeed.wepbfl.sbcglobal.net)
15:59:48 euleritian joins (~euleritia@77.23.250.232)
16:00:07 danza joins (~danza@user/danza)
16:00:55 × Guest64 quits (~Guest64@68-251-36-232.lightspeed.wepbfl.sbcglobal.net) (Killed (ozone (No Spam)))
16:04:52 × zaquest quits (~notzaques@5.130.79.72) (Quit: Leaving)
16:18:14 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
16:18:29 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
16:19:22 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
16:20:14 × Guest89 quits (~Guest89@2a02:8206:7b34:9c00:8aeb:3316:75cf:6455) (Quit: Client closed)
16:22:22 × SlackCoder quits (~SlackCode@208.26.70.132) (Quit: Leaving)
16:23:02 jespada joins (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb)
16:26:13 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:14a7:7f2d:4515:55f0) (Remote host closed the connection)
16:26:26 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 244 seconds)
16:27:14 × alexherbo2 quits (~alexherbo@2a02-8440-3504-a239-90d9-dcf7-f21b-c236.rev.sfr.net) (Remote host closed the connection)
16:30:55 alexherbo2 joins (~alexherbo@2a02-8440-3504-afc6-692a-5599-d188-3ca4.rev.sfr.net)
16:31:47 danz94407 joins (~danza@user/danza)
16:33:27 × danza quits (~danza@user/danza) (Read error: Connection reset by peer)
16:36:37 ft joins (~ft@p3e9bcd97.dip0.t-ipconnect.de)
16:36:50 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
16:37:05 alfiee joins (~alfiee@user/alfiee)
16:41:25 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
16:50:34 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:53:53 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
16:54:36 chiselfuse joins (~chiselfus@user/chiselfuse)
16:57:10 Guest64 joins (~Guest64@133.cleveland-21-23rs.oh.dial-access.att.net)
16:57:30 ColinRobinson joins (~juan@user/JuanDaugherty)
16:57:52 vanishingideal joins (~vanishing@user/vanishingideal)
16:57:59 × alexherbo2 quits (~alexherbo@2a02-8440-3504-afc6-692a-5599-d188-3ca4.rev.sfr.net) (Remote host closed the connection)
17:01:06 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
17:01:34 × omegatron quits (~some@user/omegatron) (Ping timeout: 265 seconds)
17:02:50 × Guest64 quits (~Guest64@133.cleveland-21-23rs.oh.dial-access.att.net) (Quit: Client closed)
17:03:08 Guest64 joins (~Guest64@133.cleveland-21-23rs.oh.dial-access.att.net)
17:08:52 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
17:09:22 × Guest64 quits (~Guest64@133.cleveland-21-23rs.oh.dial-access.att.net) (K-Lined)
17:09:25 rvalue joins (~rvalue@user/rvalue)
17:12:25 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f4679c2ce7937ff2475.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
17:20:04 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
17:23:01 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
17:24:19 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
17:25:02 vanishingideal joins (~vanishing@user/vanishingideal)
17:25:51 Midjak joins (~MarciZ@82.66.147.146)
17:26:30 alfiee joins (~alfiee@user/alfiee)
17:27:02 × danz94407 quits (~danza@user/danza) (Remote host closed the connection)
17:27:18 danza joins (~danza@user/danza)
17:31:03 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
17:40:26 × ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
17:42:02 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
17:54:29 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
17:55:15 × Midjak quits (~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
17:55:28 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
17:56:06 Midjak joins (~MarciZ@82.66.147.146)
18:00:56 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 272 seconds)
18:05:25 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
18:06:11 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:11:07 target_i joins (~target_i@user/target-i/x-6023099)
18:14:55 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:15:54 alfiee joins (~alfiee@user/alfiee)
18:20:16 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
18:20:37 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
18:20:44 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:23:42 Lord_of_Life_ is now known as Lord_of_Life
18:25:54 × euleritian quits (~euleritia@77.23.250.232) (Read error: Connection reset by peer)
18:28:50 acidjnk_new3 joins (~acidjnk@p200300d6e7283f4644f622875d25c5df.dip0.t-ipconnect.de)
18:29:29 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
18:31:24 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds)
18:35:54 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 260 seconds)
18:40:38 alp joins (~alp@2001:861:8ca0:4940:465c:30a2:2211:b30f)
18:43:25 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
18:43:39 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
18:43:47 × jespada quits (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb) (Quit: My Mac has gone to sleep. ZZZzzz…)
18:44:59 jespada joins (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb)
18:48:00 SlackCoder joins (~SlackCode@remote.nationalgallery.org.ky)
18:48:41 euouae joins (~euouae@user/euouae)
18:49:41 × SlackCoder quits (~SlackCode@remote.nationalgallery.org.ky) (Client Quit)
18:49:47 <euouae> Hello, I have this small code to define my own monad with <https://paste.tomsmeding.com/KAANvlR5>. When I try `C1 (1 :: Int) >>= (\x -> C1 $ x + 1)` I get that the result of the evaluation is `C1 (1 :: Int) >>= (\x -> C1 $ x + 1) :: MyMonad Int`.
18:50:29 <euouae> But why is it not C1 2? I've found that deriving Show will make it say C1 2. I've also found that deriving Eq will make it == C1 2. But is it just stylistic or is there something deeper here with regards to evaluation?
18:51:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:56:33 <geekosaur> that doesn't look like the result of evaluation, only of typechecking?
18:58:32 <ncf> euouae: they're not called anything particular since there aren't any.
18:58:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
18:58:45 <ncf> (assuming f, a, b are universally quantified)
18:58:54 <euouae> It's what happens when I hit enter in the repl geekosaur -- ncf not sure what you're talking about
18:59:06 <ncf> <euouae> Hello functions of the type Functor f => f a -> f b, what are they called?
18:59:24 <mauke> euouae: what repl?
18:59:31 <euouae> ncf, oh yeah I get what you mean, thank you
18:59:52 <euouae> mauke: Interactive-Haskell in Emacs
19:00:42 × zlqrvx quits (~zlqrvx@user/zlqrvx) (Ping timeout: 252 seconds)
19:01:51 <geekosaur> fwiw I tried that here and I got a "No instance for `Show (MyMonad Int)`
19:01:56 <geekosaur> which I would expect
19:02:18 <euouae> I see, ok. It's just a style thing, it's not related to evaluation
19:02:29 <euouae> For w/e reason my repl shows it like it does
19:02:45 <geekosaur> prob ably defaults to showing the type if it can't show the value
19:02:54 <euouae> expr + type yeah
19:04:09 <mauke> :t 1 + 2 * 3
19:04:10 <lambdabot> Num a => a
19:04:58 alfiee joins (~alfiee@user/alfiee)
19:05:10 zlqrvx joins (~zlqrvx@user/zlqrvx)
19:09:08 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
19:09:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:10:54 Pozyomka_ joins (~pyon@user/pyon)
19:11:42 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 276 seconds)
19:12:42 <euouae> Now if I have a `data MyMonad = C Int Int`, how can I make it monadic in the second argument? How can I make it monadic in the first argument?
19:13:04 <euouae> something like `instance Functor (MyMonad Int) where` to begin with doesn't seem to work
19:13:08 <[exa]> euouae: but MyMonad has no arguments?
19:13:23 <euouae> Doesn't its constructor have two arguments
19:13:31 <euouae> Ah, so you need it to be a * -> *
19:13:53 <[exa]> that's the data constructor, that's ok. You need a type-level parameter though, because `fmap` and other functions are supposed to mess with that type
19:14:02 <[exa]> (so they need the variable there)
19:14:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:15:07 <euouae> well let's revise to `data MyMonad a b = C a b`
19:15:23 <[exa]> (e.g. `fmap length` normally has type Functor f => f [a] -> f Int. If you used MyMonad instead of `f`, it wouldn't have a space to store the information about "what's inside"
19:15:35 <[exa]> yap that should work
19:16:02 <euouae> what are the right instance definitions for Functor, etc? I can't use 'MyMonad' because it is not the right kind
19:16:21 <tomsmeding> 'Monad' (and 'Functor', etc.) requires its argument to be of kind Type -> Type (traditionally written * -> *)
19:16:23 <euouae> oh, instance Functor (MyMonad a) where works
19:16:28 alexherbo2 joins (~alexherbo@2a02-8440-3504-afc6-21c9-80c8-175a-acbd.rev.sfr.net)
19:16:28 × MyNetAz quits (~MyNetAz@user/MyNetAz) (Remote host closed the connection)
19:16:34 <tomsmeding> that means that it should be a thing that takes one more type argument, and then produces an actual type
19:16:53 <[exa]> euouae: it's quite useful to start with the standard ones, for example a good workalike for your MyMonad would be a tuple type ( instance Functor ((,) a) )
19:16:57 <tomsmeding> that "one" there is significant: it means that if a data type is an instance of Functor/Applicative/Monad, it is in its _last_ type parameter
19:17:14 <euouae> yeah I get that there's an order involved
19:17:26 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:17:47 <euouae> So my whole exercise today is to try and shed some light into megaparsec's parser types. I had the intuition (maybe faulty?) that monads act like composable state machines
19:17:49 <tomsmeding> `data MyMonad a b` cannot be a "monad in 'a'", it will always be "in 'b'", and the instance will say (MyMonad a)
19:18:05 <euouae> where you feed the machine 'stuff' with >>= and it evolves. Maybe it's the wrong way to think about it?
19:18:26 <tomsmeding> a State monad is essentially a composable state machine, yes
19:18:29 <euouae> tomsmeding: I get it, * is not the same kind as (* -> *)
19:18:31 <tomsmeding> not necessarily a _finite_ state machine
19:18:47 <tomsmeding> a parser monad is typically a combination between at least a State monad and an exception monad
19:19:05 <euouae> but why do you qualify with State and exception, aren't all monads essentially composable state machines?
19:19:10 <tomsmeding> sometimes also a nondeterminism monad if you want to return all possible parses of a particular input (megaparsec doesn't do that)
19:19:12 <euouae> it seems evolutoin comes with >>=
19:19:20 <tomsmeding> `Maybe` is not a state machine
19:19:27 <euouae> Why not?
19:19:34 <tomsmeding> what's the state?
19:19:52 <euouae> its two constructors
19:20:04 <tomsmeding> a function `a -> Maybe b`, when seen as a monadic function, is a function from `a` to `b` that might also crash
19:20:08 Square joins (~Square@user/square)
19:20:25 <euouae> Maybe I have a broader idea of state machine than you or maybe I'm wrong
19:20:34 <tomsmeding> a function `a -> Either String b`, in the same way, is a function from `a` to `b` that might also throw an error string
19:20:51 <mauke> I don't really see how >>= is feeding
19:20:52 <[exa]> euouae: if restricted to "stateful" monads I think the state machine intuition would kinda work, it's just the thing that there are much more kinds of monads
19:20:55 <tomsmeding> a function `a -> State s b` is a function that maps `a` to `b` and in the mean time modifies a state of type `s`
19:21:06 <tomsmeding> this last one can decently be called a state machine
19:21:36 <euouae> I'm not familiar with `State` yet, so before we go there, maybe if you can tell me a bit more about why Maybe is not a state machine
19:21:57 <tomsmeding> euouae: I see a state machine as a box that has some internal state, and that you can send events to and it responds to those events and updates its state
19:22:05 <euouae> mauke, well e.g. `Just 1 >>= (\x -> x + 1)` will give you Just 2. You had the state Just 1; now you have the state Just 2 with input the x+1 calculation.
19:22:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
19:22:13 <[exa]> you can look at Maybe as a state machine too, with 2 states (the one that carries data and the one that has failed already)
19:22:15 <tomsmeding> > Just 1 >>= \x -> Just (x + 1)
19:22:17 <lambdabot> Just 2
19:22:19 <tomsmeding> you need the second Just
19:22:36 <tomsmeding> euouae: if you have a function `Int -> Int`, is that also a state machine?
19:22:53 <tomsmeding> you had a state of type Int, and you get back a new one
19:23:14 <euouae> tomsmeding: I see your point about it being stateless; but if the Int -> Int function is algorithmic, it is the computation of a state machine
19:23:24 × Square2 quits (~Square4@user/square) (Ping timeout: 246 seconds)
19:23:26 <tomsmeding> at that point all programs are state machines :p
19:23:29 MyNetAz joins (~MyNetAz@user/MyNetAz)
19:23:32 <[exa]> <3
19:23:33 <tomsmeding> and it's not a useful label to attach to programs any more
19:23:34 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
19:23:45 <mauke> in particular, it's no longer specific to monads or >>=
19:23:52 <euouae> Yeah but 'composable' state machines is where I like the idea -- that';s what makes monads different
19:24:01 <tomsmeding> functions are the ultimate composable thing!
19:24:06 <euouae> Well, perhaps it is faulty intuition.
19:24:08 <mauke> > ((* 2) . (+ 1)) 3
19:24:10 <lambdabot> 8
19:24:12 <mauke> composes fine
19:24:33 <euouae> I don't mean functionally composable, I mean that their state machine rule sets compose
19:24:46 <mauke> where do you see a rule set?
19:24:54 <euouae> In the definition of >>= in the instance of Monad
19:25:11 <tomsmeding> the only intuition that I know for monads that can still sensibly be called an "intuition", but nevertheless scales to the vast majority of monads (if not all of them), is "overloaded semicolon"
19:25:26 <tomsmeding> the more concrete / simple you make your intuition of monads, the less actual monads it applies to
19:25:40 <mauke> look, it's simple: magic boxes
19:25:48 <tomsmeding> "burrito" works fine for a State monad, but it makes little sense for the Maybe monad already
19:26:00 <mauke> anything that doesn't fit into the box model just uses more magic
19:26:15 <tomsmeding> mauke: I'd call that one not even an intuition any more. :P
19:26:28 <mauke> works for me!
19:27:08 <euouae> maybe I should look more into the state monad at this point
19:27:15 <mauke> have you never opened a box and found N copies of yourself in N different parallel universes?
19:27:43 <tomsmeding> not consciously
19:27:53 CiaoSen joins (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da)
19:29:04 <euouae> btw with Int -> Int you'd have to restrict to recursively defined functions, i.e. computable
19:29:30 <euouae> I don't know if state machines can be noncomputable, because I think of them in terms of rule sets (algorithmic)
19:29:36 <mauke> how do I wrote an uncomputable function
19:29:49 <euouae> I think Goedel's numbering will help you
19:32:48 × alexherbo2 quits (~alexherbo@2a02-8440-3504-afc6-21c9-80c8-175a-acbd.rev.sfr.net) (Remote host closed the connection)
19:32:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:33:07 alexherbo2 joins (~alexherbo@2a02-8440-3504-afc6-21c9-80c8-175a-acbd.rev.sfr.net)
19:34:46 <[exa]> euouae: btw are you familiar with how applicatives work? these are essentially the same thing but waaaaaaaaaaaaay more accessible for intuition
19:35:12 <tomsmeding> euouae: if you think of Int -> Int as a state transformer, then a monad is a state transformer _that also does something else_
19:35:38 <[exa]> > Just (+) <*> Just 1 <*> Just 3 -- euouae try replacing one with Nothing
19:35:40 <lambdabot> Just 4
19:35:52 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:36:17 <tomsmeding> for most monads, like Maybe, Either, State, etc., that "do something else" is actually implemented under the hood with normal functions; for things like IO, that "do something else" is unsafe magic
19:37:02 <tomsmeding> but in the land of the monad, when you're not thinking of how the monad is implemented, you're writing functions (state transformers) that also have an additional _effect_ apart from just mapping its input to an output
19:37:20 <tomsmeding> in the Maybe monad, you map inputs to an output _but you may also crash_
19:37:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:37:42 <tomsmeding> in the (State s) monad, you map inputs to an output _but you may also read/write some additional state of type 's'_
19:37:44 × Digit quits (~user@user/digit) (Ping timeout: 260 seconds)
19:39:07 <tomsmeding> something like `runState :: State s a -> s -> (a, s)` allows you to lift the veil and expose the actual pure functions underneath
19:39:52 <tomsmeding> in this case turning a computation which produces an 'a' into a function that takes an initial additional-state, and produces that 'a' together with the final additional-state
19:41:28 <tomsmeding> the equivalent of a "run" function for the Maybe monad would be to simply case-match on the Maybe value, showing you whether the computation produced a result (Just) or crashed (Nothing)
19:41:50 <tomsmeding> _inside_ the Maybe monad, you cannot see what happened, you're just part of a computation that may crash at some point
19:41:59 <tomsmeding> it's like the Matrix
19:42:14 <tomsmeding> (which is a dangerous analogy to make because I haven't actually seen that film)
19:43:14 <tomsmeding> euouae: the intuition I'm trying to convey here is completely unrelated to what [exa] was trying to get at with the mention of Applicative. :P
19:43:36 <tomsmeding> mine here is a programmer's intuition, not an algebraic one
19:43:51 <tomsmeding> algebraically, a monad is just a monoid in the category of endofunctors
19:45:36 <euouae> you haven't seen the matrix? the weekend is approaching.
19:45:37 Digit joins (~user@user/digit)
19:46:16 <euouae> I'm also trying to get the programming intuition; as for the category stuff, I mostly don't have any intuition, apart for very small things I've figured out on my own (but unrelated to programming?)
19:46:24 <tomsmeding> (>>=) in monadic land corresponds to (&) = flip ($) in normal function land; (>=>) in monadic land corresponds to flip (.) in normal function land
19:46:59 ljdarj joins (~Thunderbi@user/ljdarj)
19:47:00 <tomsmeding> :t flip ($)
19:47:01 <lambdabot> a -> (a -> c) -> c
19:47:04 <tomsmeding> :t (>>=)
19:47:04 <lambdabot> Monad m => m a -> (a -> m b) -> m b
19:47:14 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:47:39 <tomsmeding> the things are flipped because unlike with normal functions, in monadic land, order of execution matters
19:48:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:48:50 <tomsmeding> (>>=) executes the argument (performing any side effects if necessary), and then applies the function to the result
19:49:02 <euouae> I'm going to think about this more. There's things in Haskell that scare me away but there's other things I like (after coming back to it) and I want to try some parsing stuff with megaparsec
19:49:35 <euouae> In particular my IDE experience is really, really nice. I'll later look into debugging, but if that's good too then awesome
19:49:48 <tomsmeding> debugging haskell is honestly kind of crappy
19:49:56 <tomsmeding> the ghci debugger exists but few people use it
19:49:57 <euouae> hm... well. can't have it all.
19:50:17 <euouae> for example is there a way to query what the type checker thinks of an expression in the middle of a big expression?
19:50:19 <euouae> that'd be type debugging
19:50:33 <tomsmeding> oh for sure, the language server supports type queries
19:50:55 <nitrix> Most LSP integrations will tell you that. You can also put a type hole with _ and see what the compiler thinks.
19:50:59 <tomsmeding> for runtime debugging, the most reliable go-to is still "printf debugging" with Debug.Trace
19:51:17 zmt00 joins (~zmt00@user/zmt00)
19:51:41 <euouae> I'll come to that later at some point. Printf debugging is not the best but it is what it is
19:51:51 <nitrix> > 1 + _
19:51:56 <lambdabot> error:
19:51:56 <lambdabot> • Found hole: _ :: a
19:51:56 <lambdabot> Where: ‘a’ is a rigid type variable bound by
19:52:03 <tomsmeding> > "hi" ++ _
19:52:07 <lambdabot> error:
19:52:07 <lambdabot> • Found hole: _ :: [Char]
19:52:07 <lambdabot> • In the second argument of ‘(++)’, namely ‘_’
19:52:22 <euouae> Ah nice tha'ts a cool trick thank you
19:52:28 <euouae> yeah because I wanted something for the REPL too
19:52:33 <euouae> not just lsp stuff in files
19:52:37 <nitrix> I guess the Num a => a on the other lines gets truncated in the response.
19:52:43 <tomsmeding> % :t "hi"
19:52:43 <yahb2> "hi" :: String
19:52:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
19:52:55 <tomsmeding> euouae: ':t' shows the type of an expression
19:53:09 <euouae> yup, can't use it in the middle of stuff though
19:53:23 <euouae> where I'm trying to understand what the type checker is "thinking"
19:53:38 <euouae> in terms of ... I'm lacking the terms, but whatever the polymorphism and other derivations are
19:53:40 <nitrix> Type inference is the term you're looking for.
19:54:05 <euouae> right unfortunately there's normal debugging and type debugging when you write haskell
19:54:10 <euouae> I'm sure it gets better with practice
19:56:02 × danza quits (~danza@user/danza) (Remote host closed the connection)
19:56:18 danza joins (~danza@user/danza)
19:56:22 alfiee joins (~alfiee@user/alfiee)
19:57:51 <nitrix> Normal debugging yes, type debugging no. The more you know, the more tempted you are to use sophisticated types.
20:00:03 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:41 caconym joins (~caconym@user/caconym)
20:00:49 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
20:01:21 zmt01 joins (~zmt00@user/zmt00)
20:03:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:04:44 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
20:08:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
20:09:31 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
20:18:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:25:39 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:28:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
20:31:10 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
20:31:38 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f4644f622875d25c5df.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
20:31:57 danz96699 joins (~danza@user/danza)
20:34:16 weary-traveler joins (~user@user/user363627)
20:34:50 × danza quits (~danza@user/danza) (Ping timeout: 272 seconds)
20:37:53 acidjnk_new3 joins (~acidjnk@p200300d6e7283f4679216c0ad7f4b91d.dip0.t-ipconnect.de)
20:38:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:43:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
20:45:27 alfiee joins (~alfiee@user/alfiee)
20:47:19 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds)
20:48:11 × Midjak quits (~MarciZ@82.66.147.146) (Quit: Leaving)
20:50:04 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
20:52:24 × danz96699 quits (~danza@user/danza) (Remote host closed the connection)
20:52:40 danza joins (~danza@user/danza)
20:55:29 × CiaoSen quits (~Jura@2a05:5800:241:f200:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
20:56:33 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
20:58:50 × danza quits (~danza@user/danza) (Remote host closed the connection)
20:59:23 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:01:34 tomboy64 joins (~tomboy64@user/tomboy64)
21:03:51 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
21:04:51 × alx741 quits (~alx741@186.33.188.229) (Quit: alx741)
21:06:23 danza joins (~danza@user/danza)
21:08:45 nullie joins (~nullie@nuremberg.nullie.name)
21:09:03 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
21:09:19 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
21:14:27 ljdarj joins (~Thunderbi@user/ljdarj)
21:14:40 × alexherbo2 quits (~alexherbo@2a02-8440-3504-afc6-21c9-80c8-175a-acbd.rev.sfr.net) (Remote host closed the connection)
21:15:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:15:51 alexherbo2 joins (~alexherbo@2a02-8440-3504-afc6-514f-10cf-f60a-1cf5.rev.sfr.net)
21:19:27 × alexherbo2 quits (~alexherbo@2a02-8440-3504-afc6-514f-10cf-f60a-1cf5.rev.sfr.net) (Remote host closed the connection)
21:23:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:34:29 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:34:39 × jespada quits (~jespada@2800:a4:220c:6700:19eb:694f:b602:3bcb) (Ping timeout: 246 seconds)
21:35:10 alfiee joins (~alfiee@user/alfiee)
21:37:03 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
21:39:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
21:39:31 <dminuoso> euouae: The general technique to avoid or deal with typing errors generally, is to annotate as much as you can.
21:39:39 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
21:39:40 <dminuoso> The more the type checker is constrained, the less it can infer and generalize.
21:40:46 <dminuoso> Maybe it helps to think of generalization not as something that lets you avoid writing type signatures, but a feature that lets you write quantified types very liberally.
21:41:20 sprotte24 joins (~sprotte24@p200300d16f0f520069bfd2b9cee1df34.dip0.t-ipconnect.de)
21:41:56 <dminuoso> It's an unfortunate consequence of advanced type systems, that you get type unification errors in seemingly random places unrelated to the mistake.
21:42:20 <dminuoso> But by annotating as much as you can, you greatly limit how far these unification errors can propagate.
21:42:56 <dminuoso> Plus, the type annotations help document your code, so twice the reason to annotate everything with a type.
21:45:01 <euouae> interesting, will do
21:47:29 <dminuoso> euouae: There's some potential to improve GHC errors that we bring up every now and then. Some ML languages have whats called a type error slicer, which essentially marks all the spots in your program that somehow contributed to a given type error.
21:47:53 <dminuoso> It still would not necessarily pin point to the cause, but you could at least identify all the moving parts that dont fit for some reason.
21:48:10 <dminuoso> But alas, there is not even a WIP for this in GHC.
21:48:40 <euouae> That's exactly the situation that happened some days ago when I asked a megaparsec question here and you answered it
21:48:52 <euouae> it was some type inference issue where the error was unrelated to the actual issue
21:49:41 <dminuoso> euouae: In hindsight, it was quite related.
21:49:42 <haskellbridge> <sm> euouae: would adding more type signatures have helped ? It's very good advice
21:49:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:50:39 <euouae> dminuoso: experienced haskellers obviously see it differently from novices ;) if you know a lot of C++ you can figure out what the template errors are as well...
21:51:10 <dminuoso> euouae: I think the error was not that complicated. The main reason it took me a moment, was because I had no mental picture of the types involved.
21:51:29 <dminuoso> C++ template instantiation errors are.. something else.
21:51:31 <euouae> well my point is that /you/ could do it and I couldn't :P
21:51:36 <dminuoso> Fair.
21:52:11 <haskellbridge> <sm> troubleshooting complex problems over irc is pretty hard sometimes
21:52:49 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.9.1 - https://znc.in)
21:55:01 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
21:56:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
21:58:07 ljdarj joins (~Thunderbi@user/ljdarj)
21:58:27 monochrm joins (trebla@216.138.220.146)
21:59:46 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds)
21:59:46 monochrm is now known as monochrom
22:02:59 connrs joins (~connrs@user/connrs)
22:04:07 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
22:06:00 × danza quits (~danza@user/danza) ()
22:07:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:12:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
22:14:34 × michalz quits (~michalz@185.246.207.197) (Remote host closed the connection)
22:19:38 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
22:21:22 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:23:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:24:07 Sgeo joins (~Sgeo@user/sgeo)
22:24:34 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
22:25:15 alfiee joins (~alfiee@user/alfiee)
22:27:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
22:28:30 × mulk quits (~mulk@pd9514894.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
22:29:35 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
22:29:37 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
22:30:37 mulk joins (~mulk@pd95141d7.dip0.t-ipconnect.de)
22:33:06 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
22:36:18 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
22:38:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:40:21 alx741 joins (~alx741@186.33.188.229)
22:43:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:45:16 <euouae> Something I don't understand is how come the transformer package provides Control.Monad.Trans.State? Can packages provide stuff under Control.*? (Isn't it a "core/standard" namespace?)
22:45:44 emmanuelux joins (~emmanuelu@user/emmanuelux)
22:48:51 <davean> euouae: no such thing
22:49:21 <euouae> So the imports are structured around central concepts like Control/Data
22:49:32 <euouae> OK, ty
22:50:09 <EvanR> Control and Data are certainly names
22:50:26 <EvanR> I don't think the concepts make much sense for what's been placed under them
22:50:38 <EvanR> just hysterical raisins
22:51:25 <dminuoso> euouae: These namespaces are not sealed.
22:51:39 <EvanR> in haskell data structures are used for control
22:51:46 <dminuoso> In fact, consider module names just arbitrary names. Some follow conventions, others dont.
22:52:34 <dminuoso> Heck, you could even have two packages use the same module name, say `Control.Monad`
22:52:43 <euouae> a bit of chaos
22:53:04 <dminuoso> euouae: In practice that very rarely happens, and we have mechanisms to resolve ambiguiity.
22:53:10 <euouae> laissez faire stuff
22:53:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:55:37 × Googulator quits (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu) (Quit: Client closed)
22:55:42 × alx741 quits (~alx741@186.33.188.229) (Quit: alx741)
22:55:54 Googulator joins (~Googulato@2a01-036d-0106-1666-e945-fd21-b920-9aa7.pool6.digikabel.hu)
22:56:49 <davean> Having heirarchical names is just an extension for convinience.
22:58:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:04:43 weary-traveler joins (~user@user/user363627)
23:06:53 <glguy> My favorite Data. misuse is Data.Kind
23:07:03 <tomsmeding> (re mechanisms to resolve ambiguity: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html#extension-PackageImports )
23:09:21 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:10:58 <dminuoso> Relatedly https://downloads.haskell.org/ghc/latest/docs/users_guide/packages.html#package-thinning-and-renaming
23:11:36 <dminuoso> Unsure how controllable that is via cabal-install
23:12:28 <geekosaur> "mixins" should handle both
23:12:53 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 245 seconds)
23:13:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
23:14:40 alfiee joins (~alfiee@user/alfiee)
23:14:57 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
23:18:50 <dminuoso> A while ago transformers has received these nice diagrams to visualize what the respective transformers do: https://hackage.haskell.org/package/transformers-0.6.1.2/docs/Control-Monad-Trans-Writer-CPS.html
23:19:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
23:19:09 <dminuoso> We're just missing a diagram for Cont. Cant be that hard, right? :-)
23:19:28 <geekosaur> i,i "Cont be that hard"
23:19:37 <dminuoso> Heh.
23:21:02 <EvanR> haskell is famous for laissez faire programming. Terrible I'm outta here
23:21:02 <int-e> please pass all the details to `const "I don't want to hear it."`
23:21:15 <EvanR> looking for a language for more bondage and discipline
23:22:30 <geekosaur> surely there's an appropriate DT language
23:23:03 × rstromlund quits (~user@user/rstromlund) (Ping timeout: 252 seconds)
23:24:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:28:15 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
23:31:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
23:31:59 × haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
23:32:46 haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com)
23:32:46 ChanServ sets mode +v haskellbridge
23:35:39 <monochrom> You know what, I have to understand Reader and Writer first before I understand those two diagrams.
23:35:57 × xff0x quits (~xff0x@ai096095.d.east.v6connect.net) (Ping timeout: 252 seconds)
23:36:07 <monochrom> And generally I have to understand bind first.
23:37:39 <monochrom> But State is missing a diagram and that's a well-known diagram.
23:38:06 xff0x joins (~xff0x@2405:6580:b080:900:704:c9bd:a645:9b1d)
23:38:22 <monochrom> Conjecture: Such a diagram exists iff the monad is of an algebraic effect. Cont is not an algebraic effect.
23:42:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:42:51 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
23:44:14 joeyadams joins (~joeyadams@syn-184-054-105-097.res.spectrum.com)
23:46:35 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
23:47:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
23:49:59 monochrom joins (trebla@216.138.220.146)
23:52:02 <euouae> <https://en.wikibooks.org/wiki/Haskell/Understanding_monads/State> "A monad is sometimes described as providing a value in a context." -- this is very close to what I was thinking when I said monads are like state machines
23:54:15 <dminuoso> euouae: Monads are an abstract interface.
23:54:36 <dminuoso> Comparing them to anything concrete is, at best, just likening it to that specific instance, but that prevents you from seeing what monad is about.
23:54:52 <int-e> now I want a burrito
23:55:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:57:25 <dminuoso> euouae: My best recommendation is to just not worry about what Monad means at all. `IO` is about side effects. `[]` is about lists. `Maybe` is about failure. `Either A` is about exceptions. Each example is trivial to explain to any beginner
23:58:09 <dminuoso> Monad is just observing that all of these things have some pattern and laws in common. There's not really any inherent meaning to it
23:58:40 <dminuoso> And if people stop trying to attach meaning to that word `Monad`, they get on learning Haskell much faster.
23:58:45 <monochrom> I do not mind specific instances that may limit one's imagination because it is part of the learning process.
23:59:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)

All times are in UTC on 2025-01-30.