Home liberachat/#haskell: Logs Calendar

Logs on 2023-09-14 (liberachat/#haskell)

00:04:24 × phma quits (~phma@host-67-44-208-141.hnremote.net) (Read error: Connection reset by peer)
00:04:48 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 246 seconds)
00:04:53 phma joins (~phma@2001:5b0:211f:7af8:a52f:4bf4:d1dd:8ad4)
00:07:22 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Server closed connection)
00:07:31 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
00:09:09 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 252 seconds)
00:14:33 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
00:16:44 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
00:26:21 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds)
00:35:17 Inst joins (~Inst@120.244.192.250)
00:39:05 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
00:42:50 <Inst> is it imperative that I handle all possible exceptions generated by a readFile action?
00:43:48 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
00:45:23 × danza_ quits (~francesco@151.37.244.202) (Read error: Connection reset by peer)
00:45:48 danza_ joins (~francesco@151.37.236.99)
00:48:21 Sciencentistguy9 joins (~sciencent@hacksoc/ordinary-member)
00:48:29 <Inst> probably it's just better to propagate IO errors via the IO exception type
00:50:02 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
00:50:02 Sciencentistguy9 is now known as Sciencentistguy
00:53:42 × Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds)
00:55:12 × todi quits (~todi@p5dca5c94.dip0.t-ipconnect.de) (Remote host closed the connection)
00:55:29 todi joins (~todi@p5dca5c94.dip0.t-ipconnect.de)
00:55:44 × absence quits (torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 246 seconds)
00:55:51 absence joins (torgeihe@hildring.pvv.ntnu.no)
00:56:10 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:56:10 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:56:10 wroathe joins (~wroathe@user/wroathe)
01:02:06 × samhh quits (7569f027cf@2604:bf00:561:2000::e4) (Server closed connection)
01:02:06 samhh_ is now known as samhh
01:02:18 samhh_ joins (7569f027cf@2604:bf00:561:2000::e4)
01:25:04 × drewjose quits (~drewjose@129.154.40.88) (Server closed connection)
01:25:22 drewjose joins (~drewjose@129.154.40.88)
01:31:03 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Server closed connection)
01:31:10 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
01:31:19 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
01:31:19 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
01:31:19 finn_elija is now known as FinnElija
01:35:29 <monochrom> It is imperative programming to handle exceptions. >:)
01:43:16 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
01:43:19 <MelanieMalik> dragons
01:44:54 × otto_s quits (~user@p4ff27130.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
01:45:10 <monochrom> https://www.vex.net/~trebla/photo/unorganized/dragon.jpg :)
01:45:52 <int-e> :t interact
01:45:53 <lambdabot> (String -> String) -> IO ()
01:46:56 otto_s joins (~user@p4ff27db5.dip0.t-ipconnect.de)
01:49:03 caryhartline joins (~caryhartl@168.182.58.169)
01:50:48 × wagle quits (~wagle@quassel.wagle.io) (Server closed connection)
01:51:05 wagle joins (~wagle@quassel.wagle.io)
01:54:01 <Axman6> Anyone have a good reference for how to implement showsPrec for a fairly standard numerical expression ADT?
01:55:40 <Axman6> data type is: data E = Num Int | Var VarName | Index | Add E E | Mul E E | Sub E E | Neg E, so very simple, with Index just mapping to the string "index"
01:58:49 <Axman6> I guess I could steal a lot of that from simple-reflect
02:02:06 ChaiTRex joins (~ChaiTRex@user/chaitrex)
02:02:44 haritzondo joins (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
02:03:26 × haritz quits (~hrtz@user/haritz) (Read error: Connection reset by peer)
02:05:29 <int-e> Axman6: FWIW, the intended meaning of the precedence can be found in the Haskell report. https://www.haskell.org/onlinereport/derived.html#sect10.4
02:07:08 <Axman6> great, thanks
02:10:08 notzmv joins (~zmv@user/notzmv)
02:12:00 <[Leary]> `deriving Show` + -ddump-deriv?
02:13:34 <Axman6> That might help if I used infix constructors I guess
02:17:06 <Axman6> not sure how to handle negation - showsIndexExprCPP p (Neg e) = showString "-" . showsIndexExprCPP (p+1) e, which seems to work, but I have no idea if it's actually correct
02:17:24 <Axman6> also p never decreases
02:17:24 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
02:17:51 × codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
02:19:18 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds)
02:19:31 <Axman6> definitely going to need to make a parser for this type at some point too -_-
02:23:28 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:25:28 Axman6 could just make negate x = 0 - x ...
02:31:24 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 246 seconds)
02:33:23 ChaiTRex joins (~ChaiTRex@user/chaitrex)
02:34:17 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f9cc:9bb3:d19d:9050) (Remote host closed the connection)
02:34:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
02:34:47 × xff0x quits (~xff0x@2405:6580:b080:900:9311:4ac5:5e3e:3a1c) (Ping timeout: 246 seconds)
02:42:46 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:42:46 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:43:40 <Inst> Axman6: no harsh feelings with anything you might have said, if I say stupid things or behave stupidly, I should expect to get a negative response
02:45:31 × td_ quits (~td@i5387093F.versanet.de) (Ping timeout: 252 seconds)
02:46:04 <Inst> monochrom: well, the original plan was to cast every exception constructor that could be anticipated to my own type
02:47:13 td_ joins (~td@i5387091B.versanet.de)
02:48:12 × alinab quits (sid468903@id-468903.helmsley.irccloud.com) (Server closed connection)
02:48:20 alinab joins (sid468903@id-468903.helmsley.irccloud.com)
02:50:50 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
03:00:07 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
03:08:27 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 252 seconds)
03:09:14 × aforemny quits (~aforemny@i59F516E5.versanet.de) (Ping timeout: 245 seconds)
03:09:23 aforemny_ joins (~aforemny@i59F516F8.versanet.de)
03:10:20 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
03:10:56 codaraxis joins (~codaraxis@user/codaraxis)
03:14:50 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:25:18 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
03:25:30 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
03:26:05 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:26:14 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
03:29:29 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
03:29:47 <jackdk> Axman6: Best I know of is https://www.haskellforall.com/2020/11/pretty-print-syntax-trees-with-this-one.html ; if you find other good answers, do let me know
03:30:06 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
03:31:45 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
03:31:55 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
03:32:12 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
03:33:14 × c_wraith quits (~c_wraith@adjoint.us) (Server closed connection)
03:34:24 c_wraith joins (~c_wraith@adjoint.us)
03:36:30 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:41:50 caryhartline joins (~caryhartl@168.182.58.169)
03:45:14 privacy joins (~privacy@47.219.84.6)
03:45:27 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:45:27 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:45:27 finn_elija is now known as FinnElija
03:51:25 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
03:56:22 <haskellbridge> <t​ewuzij> Can I use brackets and commas than spaces?
03:58:40 <monochrom> No.
04:03:44 <EvanR> :t "(), "
04:03:45 <lambdabot> [Char]
04:04:06 Sciencentistguy3 joins (~sciencent@hacksoc/ordinary-member)
04:04:08 <EvanR> Yes
04:05:15 × privacy quits (~privacy@47.219.84.6) (Quit: Leaving)
04:05:29 jargon joins (~jargon@184.101.67.95)
04:05:39 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds)
04:05:39 Sciencentistguy3 is now known as Sciencentistguy
04:05:59 privacy joins (~privacy@47.219.84.6)
04:06:14 <institor> :t ((,) ,)
04:06:15 <lambdabot> t -> (a -> b -> (a, b), t)
04:06:33 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:07:28 aaronv joins (~aaronv@user/aaronv)
04:08:13 michalz joins (~michalz@185.246.207.217)
04:08:57 <EvanR> touché
04:13:23 <Axman6> > map(show)([1..10]) -- you can however use spaces and brackets
04:13:24 <lambdabot> ["1","2","3","4","5","6","7","8","9","10"]
04:17:33 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
04:17:58 aaronv joins (~aaronv@user/aaronv)
04:21:18 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 246 seconds)
04:23:22 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:31:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:38:04 × tomku quits (~tomku@user/tomku) (Server closed connection)
04:38:17 tomku joins (~tomku@user/tomku)
04:40:53 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
04:44:00 × Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (Server closed connection)
04:44:15 Hobbyboy joins (Hobbyboy@hobbyboy.co.uk)
04:44:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:45:30 × danza_ quits (~francesco@151.37.236.99) (Read error: Connection reset by peer)
04:45:48 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
04:46:17 danza_ joins (~francesco@151.19.246.34)
04:52:47 <Inst> okay, you know how bad Haskell via Pacman is?
04:52:54 <Inst> it turns out that if you install agda, it corrupts GHCup
04:53:07 <Inst> or rather, it corrupts Cabal, which for whatever reason all of a sudden wants to use the 9.0.2 that comes with agda
04:57:10 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
04:57:14 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Quit: WeeChat 3.6)
04:57:30 aaronv joins (~aaronv@user/aaronv)
05:01:22 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
05:03:05 CiaoSen joins (~Jura@2a05:5800:2b2:5a00:664b:f0ff:fe37:9ef)
05:07:56 <haskellbridge> <m​aerwald> That sounds like a PATH issue
05:07:57 <Axman6> Yeah don't use system package managers for Haskell, it's not worth it. I would guess the same's true for Idris
05:08:18 chomwitt joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
05:10:22 caryhartline joins (~caryhartl@168.182.58.169)
05:16:36 glider joins (~glider@user/glider)
05:17:57 × chomwitt quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Ping timeout: 255 seconds)
05:20:50 chomwitt joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
05:24:01 × Inst quits (~Inst@120.244.192.250) (Remote host closed the connection)
05:24:31 Inst joins (~Inst@120.244.192.250)
05:28:56 <Inst> Axman6 no, I mean, I know that pacman goes TERRIBLY with Haskell
05:29:18 <Inst> but Agda is a separate language, it just happens to use Haskell as a compiler
05:34:45 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:34:46 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
05:39:11 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:43:15 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Read error: Connection reset by peer)
05:43:50 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
05:44:29 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
05:47:59 × raym quits (~ray@user/raym) (Quit: server reboot - Upgrade to 13.2-RELEASE-p3)
05:52:18 ubert joins (~Thunderbi@178.165.200.97.wireless.dyn.drei.com)
05:54:49 × jackdk quits (sid373013@cssa/jackdk) (Server closed connection)
05:54:59 jackdk joins (sid373013@cssa/jackdk)
05:55:49 × mjs2600 quits (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
05:58:02 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Server closed connection)
05:58:13 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
05:59:36 mjs2600 joins (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
06:01:15 × dy quits (sid3438@user/dy) (Server closed connection)
06:01:26 dy joins (sid3438@user/dy)
06:05:49 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
06:07:59 × chomwitt quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
06:08:20 chomwitt joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
06:10:04 × sgarcia quits (sgarcia@swarm.znchost.com) (Ping timeout: 245 seconds)
06:11:03 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:14:05 sgarcia joins (sgarcia@swarm.znchost.com)
06:26:22 yosef` joins (~yosef`@user/yosef/x-2947716)
06:34:00 sshine joins (~simon@zhen.mechanicus.xyz)
06:34:49 kraftwerk28_ is now known as kraftwerk28
06:43:24 × chomwitt quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
06:44:45 raym joins (~ray@user/raym)
06:49:27 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:55:21 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 255 seconds)
06:58:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:03:38 fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021)
07:03:54 Inst joins (~Inst@120.244.192.250)
07:07:24 lortabac joins (~lortabac@2a01:e0a:541:b8f0:1dda:7f6d:8801:7a7b)
07:09:13 aforemny_ is now known as aforemny
07:09:18 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 246 seconds)
07:11:35 chiselfuse joins (~chiselfus@user/chiselfuse)
07:13:31 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:15:26 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:17:40 ursa-major joins (~ursa-majo@37.19.210.38)
07:18:26 × qhong quits (~qhong@rescomp-21-400677.stanford.edu) (Read error: Connection reset by peer)
07:18:36 qhong joins (~qhong@rescomp-21-400677.stanford.edu)
07:19:13 × renegade quits (~renegade@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
07:19:56 renegade joins (~renegade@bcdcac82.skybroadband.com)
07:22:10 × xmachina quits (~xmachina@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 252 seconds)
07:22:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:22:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
07:22:40 xmachina joins (~xmachina@modemcable048.127-56-74.mc.videotron.ca)
07:27:27 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
07:28:07 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
07:34:54 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
07:37:01 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 252 seconds)
07:38:24 × libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving)
07:41:40 schweers joins (~user@p200300e57723860073a75a2a83d5f435.dip0.t-ipconnect.de)
07:43:18 <Inst> btw tomssmeding, any suggestions for what to do next?
07:43:21 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
07:43:30 <Inst> My lib is hot garbage, every time I look at it, I get disgusted because I feel like the architecture is terrible
07:43:35 <tomsmeding> using ghc from pacman is quite possible, you "just" have to pass -dynamic to ghc always iirc
07:43:46 <Inst> I just cabal installed and called it a day
07:43:49 <tomsmeding> but you have to choose between arch's ghc and pacman's ghc, otherwise you'll get confused
07:44:06 <tomsmeding> afaiu the system can handle two simultaneously installed ghc's just fine, given the correct PATH setup
07:44:14 <Inst> should I try to publish my hot garbage lib to hackage? The name literally says "alpha" though
07:44:41 <tomsmeding> put it on github, add an entry to the haskell weekly news, and wait for feedback
07:45:16 <Inst> hmmm, okay, and I can use cabal to link to the github package for my other project that I need
07:45:42 <tomsmeding> yeah
07:45:49 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:45:50 <tomsmeding> cabal.project
07:46:00 <schweers> Hi, I have a (hopefully) quick question: I have a new stack project and I want to use HDBC and HDBC-postgresql. Adding HDBC to `package.yaml` works fine and I can `import HDBC` in my sources. Yet I have no idea how to add HDBC-postgresql. According to the user guide I need `extra-deps`, but this doesn’t work. Stack complains that the field `S.extra-deps` is unknown. For what it’s worth, I installed everything
07:46:00 <schweers> using `ghcup`.
07:47:37 <tomsmeding> schweers: post your full package.yaml and stack.yaml?
07:47:39 <tomsmeding> @where paste
07:47:39 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
07:48:22 <schweers> sure: package.yaml: https://paste.tomsmeding.com/vduFAqeu
07:48:49 <schweers> stack.yaml: https://paste.tomsmeding.com/EUygkp5U
07:49:33 <tomsmeding> schweers: try putting the 'extra-deps: - ...' block in stack.yaml instead
07:49:36 <tomsmeding> I believe it goes there
07:49:37 <schweers> Unless I made a mistake, stack.yaml should still be the the original.
07:49:51 <schweers> tomsmeding: I’ll try, give me a sec
07:50:02 <tomsmeding> schweers: I think you made a mistake _because_ it's still the original ;)
07:50:46 <schweers> I feel really stupid right now. I’m sure that I tried that as well, but only got complaints from stack. Now it works. Thank you so much!
07:50:59 <tomsmeding> glad it worked :)
07:51:49 <schweers> So am I!
07:52:10 <Inst> i'm wondering though, is a self-hosting installer for Haskell a good or bad idea?
07:52:20 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:52:22 <schweers> On a related note: is HDBC-postgres the/a recommended library to use to connect to a Postgres Database?
07:52:29 <Inst> erm, installer framework, rather
07:54:38 renegade_ joins (~renegade@bcdcac82.skybroadband.com)
07:55:43 chele joins (~chele@user/chele)
07:55:51 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:56:49 × renegade quits (~renegade@bcdcac82.skybroadband.com) (Ping timeout: 252 seconds)
07:59:17 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
07:59:33 jackneill__ joins (~Jackneill@20014C4E1E101A0048EACD7D3B494F2B.dsl.pool.telekom.hu)
08:00:02 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev)
08:00:25 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
08:02:12 takuan joins (~takuan@178-116-218-225.access.telenet.be)
08:03:43 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Ping timeout: 240 seconds)
08:06:50 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
08:14:36 × anpad quits (~pandeyan@user/anpad) (Ping timeout: 248 seconds)
08:15:27 cfricke joins (~cfricke@user/cfricke)
08:17:09 anpad joins (~pandeyan@user/anpad)
08:18:18 atwm joins (~atwm@45.10.152.184)
08:18:49 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
08:23:15 × renegade_ quits (~renegade@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
08:24:39 × danza_ quits (~francesco@151.19.246.34) (Ping timeout: 245 seconds)
08:26:07 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
08:28:24 renegade joins (~renegade@bcdcac82.skybroadband.com)
08:32:43 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
08:38:34 libertyprime joins (~libertypr@203.96.203.44)
08:40:44 × atwm quits (~atwm@45.10.152.184) (Ping timeout: 255 seconds)
08:41:55 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
08:42:25 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
08:42:40 atwm joins (~atwm@45.10.152.186)
08:46:15 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
08:46:53 chiselfuse joins (~chiselfus@user/chiselfuse)
08:47:15 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
08:48:10 danse-nr3 joins (~francesco@151.35.230.79)
08:49:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
08:49:57 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
08:49:57 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
08:49:57 wroathe joins (~wroathe@user/wroathe)
08:53:24 × privacy quits (~privacy@47.219.84.6) (Quit: Leaving)
08:54:42 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
08:57:30 gehmehgeh joins (~user@user/gehmehgeh)
09:01:53 × renegade quits (~renegade@bcdcac82.skybroadband.com) (Ping timeout: 255 seconds)
09:02:16 × atwm quits (~atwm@45.10.152.186) (Remote host closed the connection)
09:02:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
09:07:36 × wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 252 seconds)
09:07:46 × apache quits (apache2@anubis.0x90.dk) (Server closed connection)
09:07:54 apache2 joins (apache2@anubis.0x90.dk)
09:08:38 renegade joins (~renegade@bcdcac82.skybroadband.com)
09:08:50 wagle joins (~wagle@quassel.wagle.io)
09:09:49 solution joins (~solution@94-21-157-146.pool.digikabel.hu)
09:11:30 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev)
09:13:39 × troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds)
09:13:44 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
09:14:15 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Server closed connection)
09:14:23 lambdabot joins (~lambdabot@silicon.int-e.eu)
09:14:23 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
09:14:23 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
09:14:59 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
09:15:07 mc47 joins (~mc47@xmonad/TheMC47)
09:15:50 anpad joins (~pandeyan@user/anpad)
09:17:21 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit)
09:17:55 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
09:26:37 troydm joins (~troydm@user/troydm)
09:27:27 × foul_owl_ quits (~kerry@185.219.141.161) (Ping timeout: 255 seconds)
09:29:21 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:29:51 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
09:33:37 × mysl quits (~mysl@user/mysl) (Ping timeout: 252 seconds)
09:34:22 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
09:35:12 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
09:36:29 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
09:37:47 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
09:38:38 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
09:39:04 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
09:39:43 × yosef` quits (~yosef`@user/yosef/x-2947716) (Ping timeout: 245 seconds)
09:40:08 foul_owl_ joins (~kerry@185.219.141.160)
09:43:00 × Inst quits (~Inst@120.244.192.250) (Remote host closed the connection)
09:43:26 Inst joins (~Inst@120.244.192.250)
09:46:34 × ft quits (~ft@p508dbaa9.dip0.t-ipconnect.de) (Quit: leaving)
09:50:39 azimut joins (~azimut@gateway/tor-sasl/azimut)
09:52:04 × libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving)
09:54:03 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
09:54:28 vglfr joins (~vglfr@188.239.201.89)
09:55:35 oblivious joins (~oblivious@38.111.191.92.dynamic.jazztel.es)
09:56:12 × oblivious quits (~oblivious@38.111.191.92.dynamic.jazztel.es) (Client Quit)
09:57:04 × vglfr quits (~vglfr@188.239.201.89) (Remote host closed the connection)
09:57:58 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
09:58:01 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
09:59:29 chomwitt joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
10:00:47 cyphase_eviltwin joins (~cyphase@user/cyphase)
10:01:04 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 258 seconds)
10:02:18 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
10:05:21 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:07:45 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev)
10:22:44 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:31:54 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Server closed connection)
10:32:54 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
10:33:05 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
10:36:23 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds)
10:44:34 × michalz quits (~michalz@185.246.207.217) (Read error: No route to host)
10:45:42 michalz joins (~michalz@185.246.207.201)
10:47:06 Square2 joins (~Square4@user/square)
11:00:21 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 252 seconds)
11:02:31 Inst joins (~Inst@120.244.192.250)
11:03:20 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
11:03:21 nyr joins (~nyr@user/nyr)
11:07:05 xff0x joins (~xff0x@2405:6580:b080:900:820a:8b71:e207:7b95)
11:12:23 × CiaoSen quits (~Jura@2a05:5800:2b2:5a00:664b:f0ff:fe37:9ef) (Ping timeout: 255 seconds)
11:22:29 pyooque joins (~puke@user/puke)
11:22:29 × puke quits (~puke@user/puke) (Killed (osmium.libera.chat (Nickname regained by services)))
11:22:29 pyooque is now known as puke
11:30:29 × Teacup quits (~teacup@user/teacup) (Ping timeout: 245 seconds)
11:31:00 Teacup joins (~teacup@user/teacup)
11:33:00 pounce joins (~pounce@user/cute/pounce)
11:33:23 <dminuoso> Hi. Im a bit at a loss. Im fiddling around with nano-cryptr, which does foreign import ccall safe "crypt_r" crypt_r :: CString-> CString -> Ptr CDOpaque -> IO CString
11:33:54 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
11:33:55 <dminuoso> However, Im on macOS and I cant quite figure out what macho objects this is resolved from ultimately
11:34:13 <dminuoso> i.e. how can I figure out which library this is resolved from?
11:36:10 <jackdk> schweers: I like hasql. If you need a big, heavy, type-safe hammer, opaleye is awesome but has more of a learning curve. Unsure of others (rel8, selda, etc). Never got my head around beam. If you want something really simple, postgresql-simple is that.
11:38:02 <dminuoso> postgresql-simple has a rather questional "self-made" query parameter interpolation logic, sadly, however.
11:38:17 <dminuoso> Which is a real bummer considering libpq has first class support for this.
11:38:50 <haskellbridge> <m​auke> safeErce :: (a ~ b) => b -> a
11:38:53 <dminuoso> hasql gets this one right, and it uses binary de/serialization too (postgresql-simple only uses text encoding). for various workloads that makes a tremendous performance difference
11:39:10 __monty__ joins (~toonn@user/toonn)
11:44:16 gmg_ joins (~user@user/gehmehgeh)
11:45:32 <schweers> jackdk: Thanks, I’ll have a look at those, especially opaleye.
11:46:09 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 246 seconds)
11:49:30 <jackdk> yeah I like hasql's use of the binary protocol, as well as its ability to annotate query strings with types denoting their parameters. That's why I'd say opaleye pays off if you really need the safety and the ability to stitch queries together
11:50:29 <danse-nr3> cannot hasql do that? Seems quite a common use case
11:51:18 <danse-nr3> but from what you say it seems that hasql is less type-safe, that is more interesting
11:51:29 <dminuoso> danse-nr3: No, hasql is not about query building.
11:51:55 <dminuoso> It just gives you some tools to stich sort of parameter decoder/encoder together with queries.
11:52:07 <danse-nr3> i see, thanks dminuoso
11:52:28 <dminuoso> well and a lot of small combinators, like TH syntax validation of your queries if you want it.
11:52:36 <jackdk> https://hackage.haskell.org/package/hasql-1.6.3.2/docs/Hasql-Statement.html#t:Statement this constructor just wraps a ByteString with additional information and codecs, but you can't bolt statements together. I do like its use of contravariant functors
11:53:16 <dminuoso> my biggest convern with postgresql-simple is really the "home-made" query interpolation, really.
11:54:15 <dminuoso> I have more trust in libpq getting this right, than some convoluted haskell code that likely was written once, and never looked at by anyone else.
11:54:23 <dminuoso> but thats just grumpy me.
11:55:19 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
11:55:49 <danse-nr3> i recall studying relational algebra, but i am not aware of any haskell lib that is based on it
11:56:32 <danse-nr3> it would probably be more effort on top of building the compatibility layer
11:57:36 <danse-nr3> but could aid a neat design
11:58:44 privacy joins (~privacy@47.219.84.6)
12:10:19 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
12:11:06 <dminuoso> There is a bunch of relational algebra libraries
12:11:09 <dminuoso> https://github.com/agentm/project-m36 is one of them
12:11:47 <dminuoso> Nowadays, I think I really just want a django-esque relational mapper but for Haskell. Without any type tricks.
12:11:50 <dminuoso> Just pure, dumb, dynamic things.
12:14:26 <danse-nr3> nice, i will check project-m36 out, thanks. Dynamic things? Having a type for a table is already a lot of type safety, to help with marshalling and querying
12:15:04 <danse-nr3> i guess that does not need the less known type-level features
12:16:13 <danse-nr3> anyways, for practicality, if i would write an app nowadays i would base it upon postgrest. Saves even more boilerplate
12:16:56 haritzondo is now known as haritz
12:16:56 × haritz quits (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
12:16:56 haritz joins (~hrtz@user/haritz)
12:19:15 <danse-nr3> oh m36 is not a shim, it is a database
12:20:24 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
12:20:41 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
12:26:11 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
12:29:04 × danse-nr3 quits (~francesco@151.35.230.79) (Ping timeout: 252 seconds)
12:35:03 × phma quits (~phma@2001:5b0:211f:7af8:a52f:4bf4:d1dd:8ad4) (Read error: Connection reset by peer)
12:36:00 phma joins (phma@2001:5b0:210b:c008:bd31:491b:c236:df4b)
12:39:39 × nyr quits (~nyr@user/nyr) (Ping timeout: 245 seconds)
12:41:51 × acidjnk quits (~acidjnk@p200300d6e7072f94d95e0f42a9292ff4.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
12:44:10 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
12:49:04 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
12:52:56 × disconnect3d quits (~disconnec@user/disconnect3d) (Server closed connection)
12:53:06 disconnect3d joins (~disconnec@user/disconnect3d)
12:53:19 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
12:55:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:56:56 danse-nr3 joins (~francesco@151.35.231.127)
12:58:02 acidjnk joins (~acidjnk@p200300d6e7072f94d84002b8d460e75b.dip0.t-ipconnect.de)
12:59:52 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
13:00:52 bontaq joins (~user@ool-45707d2c.dyn.optonline.net)
13:02:14 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
13:05:51 × MelanieMalik quits (ellenor@callbox.trd.is) (Server closed connection)
13:09:47 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
13:10:53 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Quit: WeeChat 4.0.3)
13:11:09 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit)
13:13:27 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
13:13:52 <dminuoso> danse-nr3: There are things where bolting on type system just adds so much inconvenience with a complicated and verbose, and slow, API, all at the cost of perceived stability.
13:14:47 Ellenor joins (ellenor@callbox.trd.is)
13:15:18 <dminuoso> The reality is, when you build SQL queries, you *very* likely will try them out rapidly anyway, to see whether your SQL is expressed correctly.
13:17:11 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
13:17:19 <danse-nr3> maybe having a type for a table and using it for querying is more complex than i imagine
13:17:28 × acidjnk quits (~acidjnk@p200300d6e7072f94d84002b8d460e75b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
13:20:25 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:1dda:7f6d:8801:7a7b) (Quit: WeeChat 2.8)
13:20:37 <dminuoso> Honestly, 'query :: Typeable a => Connection -> String -> IO [a]' is all I really want.
13:21:17 <dminuoso> There could be some additional glue, where the database code is made aware of some kind of table <> type mapping, such that diagnotics work nicely
13:22:07 <dminuoso> The sort of django model.py equivalent.
13:25:55 lortabac joins (~lortabac@2a01:e0a:541:b8f0:1dda:7f6d:8801:7a7b)
13:27:12 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
13:29:47 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
13:30:17 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
13:31:21 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:31:21 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:31:21 wroathe joins (~wroathe@user/wroathe)
13:40:18 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
13:42:18 <fendor> dminuoso, I suppose you do want an API that enforces the usage of prepared statements
13:42:48 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
13:44:09 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
13:47:43 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)
13:49:08 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
13:49:49 acidjnk joins (~acidjnk@p200300d6e7072f94d84002b8d460e75b.dip0.t-ipconnect.de)
13:51:48 × privacy quits (~privacy@47.219.84.6) (Quit: Leaving)
13:52:38 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
13:54:03 × bsima quits (~bsima@143.198.118.179) (Server closed connection)
13:54:22 bsima joins (~bsima@2604:a880:400:d0::19f1:7001)
13:54:50 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds)
13:55:17 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:55:43 califax joins (~califax@user/califx)
13:55:49 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
13:58:27 ystael joins (~ystael@user/ystael)
13:58:42 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
13:59:13 chiselfuse joins (~chiselfus@user/chiselfuse)
14:00:29 × ggVGc quits (~ggVGc@a.lowtech.earth) (Server closed connection)
14:00:52 ggVGc joins (~ggVGc@a.lowtech.earth)
14:01:22 ripspin joins (~chatzilla@1.145.159.142)
14:03:01 nyr joins (~nyr@user/nyr)
14:04:03 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
14:13:34 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
14:15:32 ystael joins (~ystael@user/ystael)
14:19:56 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:21:04 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
14:22:08 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:1dda:7f6d:8801:7a7b) (Quit: WeeChat 2.8)
14:25:27 califax_ joins (~califax@user/califx)
14:27:54 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
14:28:15 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
14:29:15 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
14:29:15 califax_ is now known as califax
14:33:00 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 240 seconds)
14:35:29 × megaTherion quits (~therion@2001:470:1f09:68::1) (Quit: ZNC 1.8.2 - https://znc.in)
14:35:39 megaTherion joins (~therion@unix.io)
14:39:48 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
14:45:10 ystael joins (~ystael@user/ystael)
14:46:10 samlamamma joins (~user@h-46-59-69-159.A785.priv.bahnhof.se)
14:47:28 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
14:48:44 × lisq quits (~quassel@lis.moe) (Server closed connection)
14:48:53 lisq joins (~quassel@lis.moe)
14:52:09 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
14:52:36 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds)
14:52:59 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
14:54:04 <samlamamma> Hi :-). Dumb question: Is the 'diamond problem' from multiple inheritance possible in Haskell's type classes? I'd think no, since we can't provide or override implementations in the type classes themselves.
14:54:59 <danse-nr3> i agree
14:55:00 Square joins (~Square@user/square)
14:55:40 <EvanR> there's no inheritance so you can't have multiple inheritance
14:56:19 <samlamamma> What about class (Foo f, Bar f) => Baz f where ... ?
14:56:36 × aspen quits (sid449115@helmsley.irccloud.com) (Ping timeout: 240 seconds)
14:56:44 × jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 245 seconds)
14:56:44 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 245 seconds)
14:56:46 <samlamamma> EvanR: What would you call that :-)?
14:56:47 × bjs quits (sid190364@user/bjs) (Ping timeout: 246 seconds)
14:56:56 × joel135 quits (sid136450@id-136450.hampstead.irccloud.com) (Ping timeout: 255 seconds)
14:56:56 × pjlsergeant__ quits (sid143467@id-143467.hampstead.irccloud.com) (Ping timeout: 255 seconds)
14:56:57 × snek quits (sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 246 seconds)
14:56:57 × smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Ping timeout: 246 seconds)
14:57:00 × gaze___ quits (sid387101@id-387101.helmsley.irccloud.com) (Ping timeout: 240 seconds)
14:57:00 × g00gler quits (uid125351@id-125351.uxbridge.irccloud.com) (Ping timeout: 258 seconds)
14:57:00 × rubin55 quits (sid175221@id-175221.hampstead.irccloud.com) (Ping timeout: 258 seconds)
14:57:01 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
14:57:01 × Pent quits (sid313808@id-313808.lymington.irccloud.com) (Ping timeout: 252 seconds)
14:57:01 × acertain_ quits (sid470584@id-470584.hampstead.irccloud.com) (Ping timeout: 252 seconds)
14:57:02 × diagprov quits (sid348783@user/diagprov) (Ping timeout: 246 seconds)
14:57:03 <EvanR> additional constraint on a class
14:57:06 × gmc quits (sid58314@id-58314.ilkley.irccloud.com) (Ping timeout: 255 seconds)
14:57:06 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 255 seconds)
14:57:07 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (Ping timeout: 258 seconds)
14:57:08 × skippy quits (sid26890@user/slice) (Ping timeout: 246 seconds)
14:57:09 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 245 seconds)
14:57:14 <danse-nr3> as you said samlamamma, implementations are not provided in the classes, so there is no inheritance
14:57:16 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (Ping timeout: 248 seconds)
14:57:17 × integral quits (sid296274@user/integral) (Ping timeout: 248 seconds)
14:57:17 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (Ping timeout: 248 seconds)
14:57:17 × bw_ quits (sid2730@id-2730.ilkley.irccloud.com) (Ping timeout: 248 seconds)
14:57:17 × tritlo_ quits (sid58727@id-58727.hampstead.irccloud.com) (Ping timeout: 248 seconds)
14:57:18 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 246 seconds)
14:57:23 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 255 seconds)
14:57:23 × jakesyl____ quits (sid56879@id-56879.hampstead.irccloud.com) (Ping timeout: 255 seconds)
14:57:23 × sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 258 seconds)
14:57:23 × chessai quits (sid225296@id-225296.lymington.irccloud.com) (Ping timeout: 246 seconds)
14:57:24 × delyan_ quits (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 246 seconds)
14:57:24 × dy quits (sid3438@user/dy) (Ping timeout: 240 seconds)
14:57:24 × shawwwn quits (sid6132@id-6132.helmsley.irccloud.com) (Ping timeout: 240 seconds)
14:57:30 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Ping timeout: 258 seconds)
14:57:32 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × rune_ quits (sid21167@id-21167.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × edwardk quits (sid47016@haskell/developer/edwardk) (Read error: Connection reset by peer)
14:57:32 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × mustafa quits (sid502723@rockylinux/releng/mustafa) (Read error: Connection reset by peer)
14:57:32 × lexi-lambda quits (sid92601@id-92601.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × evertedsphere quits (sid434122@id-434122.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:32 × amir quits (sid22336@user/amir) (Read error: Connection reset by peer)
14:57:32 × hamishmack quits (sid389057@id-389057.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × hovsater quits (sid499516@id-499516.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × jmct quits (sid160793@id-160793.tinside.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × idnar quits (sid12240@debian/mithrandi) (Read error: Connection reset by peer)
14:57:33 × degraafk quits (sid71464@id-71464.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:33 × geekosaur[c] quits (sid609282@xmonad/geekosaur) (Read error: Connection reset by peer)
14:57:34 × AndreasK quits (sid320732@id-320732.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:34 × lally quits (sid388228@id-388228.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:34 × systemfault quits (sid267009@about/typescript/member/systemfault) (Read error: Connection reset by peer)
14:57:34 × T_S____ quits (sid501726@id-501726.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:34 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
14:57:34 × tnks quits (sid412124@id-412124.helmsley.irccloud.com) (Ping timeout: 252 seconds)
14:57:34 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 245 seconds)
14:57:35 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:36 × taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (Read error: Connection reset by peer)
14:57:36 × astra quits (sid289983@id-289983.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:36 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (Read error: Connection reset by peer)
14:57:36 × Fangs quits (sid141280@id-141280.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:37 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:37 × yvan-sraka quits (sid419690@id-419690.lymington.irccloud.com) (Write error: Connection reset by peer)
14:57:37 × buhman quits (sid411355@user/buhman) (Read error: Connection reset by peer)
14:57:38 × davetapley quits (sid666@2a03:5180:f:5::29a) (Read error: Connection reset by peer)
14:57:38 × totbwf quits (sid402332@id-402332.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:38 × wallymathieu quits (sid533252@id-533252.uxbridge.irccloud.com) (Read error: Connection reset by peer)
14:57:38 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:38 × SethTisue quits (sid14912@id-14912.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:38 × ProofTechnique_ quits (sid79547@id-79547.ilkley.irccloud.com) (Read error: Connection reset by peer)
14:57:38 × haasn quits (sid579015@id-579015.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:39 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (Write error: Connection reset by peer)
14:57:39 × conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (Read error: Connection reset by peer)
14:57:39 × carter quits (sid14827@id-14827.helmsley.irccloud.com) (Read error: Connection reset by peer)
14:57:39 × yandere quits (sid467876@id-467876.ilkley.irccloud.com) (Ping timeout: 246 seconds)
14:57:39 × Boarders___ quits (sid425905@id-425905.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:39 × nrr______ quits (sid20938@id-20938.lymington.irccloud.com) (Read error: Connection reset by peer)
14:57:40 × edm quits (sid147314@id-147314.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:40 × SanchayanMaity quits (sid478177@id-478177.hampstead.irccloud.com) (Read error: Connection reset by peer)
14:57:45 <danse-nr3> so many people quitting ... some network disruption going on ...
14:57:46 × edmundnoble_ quits (sid229620@id-229620.helmsley.irccloud.com) (Ping timeout: 258 seconds)
14:57:52 <EvanR> I detect a great split in the net
14:57:54 <samlamamma> So it's not just me!
14:57:54 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
14:58:00 × mankyKitty quits (sid31287@id-31287.helmsley.irccloud.com) (Ping timeout: 246 seconds)
14:58:08 aspen joins (sid449115@helmsley.irccloud.com)
14:58:08 <Square> You can have implementation in classes iirc
14:58:12 <EvanR> Like a 1000 connections were just suddenly reset by peer
14:58:21 × Guest3051 quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 246 seconds)
14:58:21 <samlamamma> Alright, I accept what you're saying. That makes sense, inheritance is the borrowing of concrete implementation.
14:58:24 × alinab quits (sid468903@id-468903.helmsley.irccloud.com) (Ping timeout: 245 seconds)
14:58:24 × christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Ping timeout: 245 seconds)
14:58:32 × Adeon quits (sid418992@id-418992.lymington.irccloud.com) (Ping timeout: 258 seconds)
14:58:35 × schweers quits (~user@p200300e57723860073a75a2a83d5f435.dip0.t-ipconnect.de) (Remote host closed the connection)
14:58:40 × ggranberry quits (sid267884@id-267884.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
14:58:42 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (Ping timeout: 246 seconds)
14:58:59 mankyKitty joins (sid31287@helmsley.irccloud.com)
14:59:02 jmct joins (sid160793@tinside.irccloud.com)
14:59:03 edwardk joins (sid47016@haskell/developer/edwardk)
14:59:04 evertedsphere joins (sid434122@hampstead.irccloud.com)
14:59:04 pepeiborra joins (sid443799@ilkley.irccloud.com)
14:59:04 <danse-nr3> yeah there can be default implementations
14:59:04 pjlsergeant__ joins (sid143467@hampstead.irccloud.com)
14:59:06 amir joins (sid22336@user/amir)
14:59:07 S11001001 joins (sid42510@ilkley.irccloud.com)
14:59:12 g00gler joins (uid125351@uxbridge.irccloud.com)
14:59:12 geekosaur[c] joins (sid609282@xmonad/geekosaur)
14:59:13 ggranberry joins (sid267884@id-267884.uxbridge.irccloud.com)
14:59:13 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
14:59:14 wallymathieu joins (sid533252@uxbridge.irccloud.com)
14:59:15 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
14:59:17 buhman joins (sid411355@user/buhman)
14:59:18 jonrh joins (sid5185@id-5185.ilkley.irccloud.com)
14:59:20 parseval joins (sid239098@id-239098.helmsley.irccloud.com)
14:59:21 hovsater joins (sid499516@id-499516.lymington.irccloud.com)
14:59:21 sclv joins (sid39734@haskell/developer/sclv)
14:59:22 sa1 joins (sid7690@id-7690.ilkley.irccloud.com)
14:59:23 T_S____ joins (sid501726@id-501726.uxbridge.irccloud.com)
14:59:23 hamishmack joins (sid389057@id-389057.hampstead.irccloud.com)
14:59:25 Adeon joins (sid418992@id-418992.lymington.irccloud.com)
14:59:27 tritlo_ joins (sid58727@id-58727.hampstead.irccloud.com)
14:59:31 idnar joins (sid12240@debian/mithrandi)
14:59:35 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
14:59:37 dy joins (sid3438@id-3438.helmsley.irccloud.com)
14:59:38 iphy joins (sid67735@id-67735.lymington.irccloud.com)
14:59:39 skippy joins (sid26890@id-26890.lymington.irccloud.com)
14:59:40 systemfault joins (sid267009@about/typescript/member/systemfault)
14:59:40 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
14:59:41 nrr______ joins (sid20938@id-20938.lymington.irccloud.com)
14:59:42 rune_ joins (sid21167@ilkley.irccloud.com)
14:59:42 ProofTechnique_ joins (sid79547@id-79547.ilkley.irccloud.com)
14:59:42 cbarrett joins (sid192934@id-192934.helmsley.irccloud.com)
14:59:42 snek joins (sid280155@id-280155.lymington.irccloud.com)
14:59:43 alinab joins (sid468903@helmsley.irccloud.com)
14:59:44 integral joins (sid296274@id-296274.lymington.irccloud.com)
14:59:44 conjunctive joins (sid433686@id-433686.helmsley.irccloud.com)
14:59:45 <EvanR> in class (Foo f, Bar f) => Baz f where, you have to have those 3 classes for each f, it can't borrow
14:59:45 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
14:59:45 jackdk joins (sid373013@id-373013.tinside.irccloud.com)
14:59:48 diagprov joins (sid348783@id-348783.hampstead.irccloud.com)
14:59:49 rubin55 joins (sid175221@id-175221.hampstead.irccloud.com)
14:59:51 <danse-nr3> hey people that are joining again: what happened to your internet?
14:59:52 Pent joins (sid313808@id-313808.lymington.irccloud.com)
14:59:53 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
14:59:53 Fangs joins (sid141280@hampstead.irccloud.com)
14:59:54 aristid joins (sid1599@uxbridge.irccloud.com)
14:59:54 × dy quits (sid3438@id-3438.helmsley.irccloud.com) (Changing host)
14:59:54 dy joins (sid3438@user/dy)
14:59:56 × integral quits (sid296274@id-296274.lymington.irccloud.com) (Changing host)
14:59:56 integral joins (sid296274@user/integral)
14:59:57 × skippy quits (sid26890@id-26890.lymington.irccloud.com) (Changing host)
14:59:57 skippy joins (sid26890@user/slice)
14:59:58 totbwf joins (sid402332@uxbridge.irccloud.com)
14:59:59 Guest3051 joins (sid1055@id-1055.tinside.irccloud.com)
14:59:59 × diagprov quits (sid348783@id-348783.hampstead.irccloud.com) (Changing host)
14:59:59 diagprov joins (sid348783@user/diagprov)
15:00:04 × jackdk quits (sid373013@id-373013.tinside.irccloud.com) (Changing host)
15:00:04 jackdk joins (sid373013@cssa/jackdk)
15:00:05 carter joins (sid14827@2a03:5180:f:1::39eb)
15:00:05 edmundnoble_ joins (sid229620@helmsley.irccloud.com)
15:00:13 × Fangs quits (sid141280@hampstead.irccloud.com) (Client Quit)
15:00:15 × ystael quits (~ystael@user/ystael) (Ping timeout: 255 seconds)
15:00:17 AndreasK joins (sid320732@id-320732.uxbridge.irccloud.com)
15:00:18 bw_ joins (sid2730@2a03:5180:f:3::aaa)
15:00:25 SethTisue joins (sid14912@id-14912.ilkley.irccloud.com)
15:00:26 haasn joins (sid579015@hampstead.irccloud.com)
15:00:26 edm joins (sid147314@hampstead.irccloud.com)
15:00:28 meinside joins (uid24933@helmsley.irccloud.com)
15:00:29 <EvanR> have to have instances*
15:00:30 b20n joins (sid115913@uxbridge.irccloud.com)
15:00:36 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
15:00:44 lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com)
15:00:45 lightandlight joins (sid135476@id-135476.helmsley.irccloud.com)
15:00:45 Fangs joins (sid141280@2a03:5180:f:4::2:27e0)
15:00:46 taktoa[c] joins (sid282096@tinside.irccloud.com)
15:00:47 <samlamamma> Yup, you guys are entirely correct!
15:00:47 chessai joins (sid225296@id-225296.lymington.irccloud.com)
15:00:47 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
15:00:48 dsal joins (sid13060@id-13060.lymington.irccloud.com)
15:00:49 yandere joins (sid467876@id-467876.ilkley.irccloud.com)
15:00:49 mustafa joins (sid502723@id-502723.hampstead.irccloud.com)
15:00:50 christiaanb joins (sid84827@id-84827.lymington.irccloud.com)
15:00:51 bjs joins (sid190364@helmsley.irccloud.com)
15:00:51 acertain_ joins (sid470584@id-470584.hampstead.irccloud.com)
15:00:53 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
15:00:53 hongminhee joins (sid295@id-295.tinside.irccloud.com)
15:00:54 gmg_ is now known as gmg
15:00:54 shawwwn joins (sid6132@id-6132.helmsley.irccloud.com)
15:00:54 delyan_ joins (sid523379@id-523379.hampstead.irccloud.com)
15:00:55 gaze___ joins (sid387101@id-387101.helmsley.irccloud.com)
15:00:56 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
15:00:58 SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com)
15:00:59 yvan-sraka joins (sid419690@id-419690.lymington.irccloud.com)
15:01:00 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
15:01:01 astra joins (sid289983@id-289983.hampstead.irccloud.com)
15:01:02 lally joins (sid388228@id-388228.uxbridge.irccloud.com)
15:01:02 joel135 joins (sid136450@id-136450.hampstead.irccloud.com)
15:01:04 gmc joins (sid58314@id-58314.ilkley.irccloud.com)
15:01:04 jakesyl____ joins (sid56879@id-56879.hampstead.irccloud.com)
15:01:06 Boarders___ joins (sid425905@id-425905.lymington.irccloud.com)
15:01:06 × bjs quits (sid190364@helmsley.irccloud.com) (Changing host)
15:01:06 bjs joins (sid190364@user/bjs)
15:01:15 hook54321 joins (sid149355@user/hook54321)
15:01:17 × mustafa quits (sid502723@id-502723.hampstead.irccloud.com) (Changing host)
15:01:17 mustafa joins (sid502723@rockylinux/releng/mustafa)
15:01:17 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
15:01:17 SrPx joins (sid108780@uxbridge.irccloud.com)
15:01:21 <danse-nr3> in #linux they say it was irccloud, i did not know it had that many users
15:01:25 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
15:01:38 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
15:02:07 pavonia joins (~user@user/siracusa)
15:02:14 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Client Quit)
15:02:23 <EvanR> samlamamma, a deep dive into type classes which is at least good for deleting any preconceived notions of how type classes work https://www.youtube.com/watch?v=hIZxTQP1ifo
15:03:04 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
15:03:55 <samlamamma> Oooh you know what? I'm on vacation, I should print out some research papers
15:04:17 <geekosaur> yeh, irccloud just reset for some reason
15:08:25 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
15:09:27 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
15:11:50 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
15:12:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:18:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
15:19:17 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
15:19:48 × chomwitt quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
15:20:30 ystael joins (~ystael@user/ystael)
15:20:50 powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com)
15:21:05 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:21:49 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
15:21:51 × Square quits (~Square@user/square) (Ping timeout: 255 seconds)
15:23:48 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
15:25:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:28:45 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.4)
15:30:25 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
15:30:43 Simikando joins (~Simikando@bband-dyn237.95-103-149.t-com.sk)
15:31:59 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
15:35:27 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
15:36:02 <ddellacosta> EvanR: I love that talk
15:36:51 <EvanR> oops, the link description is Edward Kmett - Type Classes vs. the World (Boston Haskell)
15:37:09 × Simikando quits (~Simikando@bband-dyn237.95-103-149.t-com.sk) (Ping timeout: 245 seconds)
15:37:54 <ddellacosta> it really helped me understand how distinctly modules solve certain problems and what tradeoffs that gives you
15:42:27 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
15:46:30 <yin> what's the canonical way of showing a record with indentation?
15:46:34 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
15:46:49 <yin> is there a showPretty somewhere?
15:47:03 <EvanR> I like pretty-simple package
15:47:42 <yin> EvanR: ty
15:51:43 × danse-nr3 quits (~francesco@151.35.231.127) (Ping timeout: 240 seconds)
15:52:08 <EvanR> I changed my mind. To make the output reasonable you need to pass outputOptionsCompact = True
15:52:16 <EvanR> cool but not simple at all!
15:54:13 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
15:54:47 × phma quits (phma@2001:5b0:210b:c008:bd31:491b:c236:df4b) (Read error: Connection reset by peer)
15:55:15 <EvanR> ddellacosta, and from that video I just learned ghci command :bro (:browse) xD
15:55:25 phma joins (~phma@host-67-44-208-16.hnremote.net)
15:56:37 notzmv joins (~zmv@user/notzmv)
15:57:48 × ripspin quits (~chatzilla@1.145.159.142) (Remote host closed the connection)
15:59:08 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 248 seconds)
15:59:17 danse-nr3 joins (~francesco@151.35.231.127)
16:01:08 Sgeo joins (~Sgeo@user/sgeo)
16:01:45 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 252 seconds)
16:02:42 caryhartline joins (~caryhartl@168.182.58.169)
16:04:46 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
16:07:39 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:08:07 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:08:12 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:09:39 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
16:11:56 × ystael quits (~ystael@user/ystael) (Ping timeout: 248 seconds)
16:13:06 <EvanR> samlamamma, great screenshot from the talk which sums up what I was remembering about it in relation to the question about diamond dependencies, https://i.imgur.com/A0Xvs9a.png
16:13:10 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
16:13:26 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 255 seconds)
16:14:19 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
16:14:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
16:14:59 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:15:11 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
16:16:23 mc47 joins (~mc47@xmonad/TheMC47)
16:17:05 × fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection)
16:17:29 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
16:19:56 caryhartline joins (~caryhartl@168.182.58.169)
16:22:09 <ddellacosta> EvanR: haha a useful shortcut indeed
16:23:25 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
16:24:29 danse-nr3_ joins (~francesco@151.54.19.188)
16:25:48 × danse-nr3 quits (~francesco@151.35.231.127) (Ping timeout: 240 seconds)
16:31:43 × tomboy64 quits (~tomboy64@user/tomboy64) (Server closed connection)
16:32:05 tomboy64 joins (~tomboy64@user/tomboy64)
16:33:22 jmdaemon joins (~jmdaemon@user/jmdaemon)
16:35:12 Simikando joins (~Simikando@bband-dyn237.95-103-149.t-com.sk)
16:35:43 Ellenor is now known as MelanieMalik
16:35:50 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
16:35:51 × nyr quits (~nyr@user/nyr) (Ping timeout: 252 seconds)
16:36:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
16:36:47 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
16:37:00 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:37:27 × powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Quit: Client closed)
16:37:39 powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com)
16:41:39 hugo- joins (znc@verdigris.lysator.liu.se)
16:41:43 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
16:43:51 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
16:45:00 × Simikando quits (~Simikando@bband-dyn237.95-103-149.t-com.sk) (Ping timeout: 248 seconds)
16:45:40 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
16:48:13 codaraxis joins (~codaraxis@user/codaraxis)
16:48:15 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
16:50:53 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
16:54:17 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
16:54:27 shapr joins (~user@2600:1700:c640:3100:1053:3e08:b8d2:1dcd)
16:55:33 Simikando joins (~Simikando@bband-dyn237.95-103-149.t-com.sk)
16:57:01 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
16:59:38 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
17:03:23 × Square2 quits (~Square4@user/square) (Ping timeout: 246 seconds)
17:08:26 ystael joins (~ystael@user/ystael)
17:11:19 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
17:12:14 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
17:14:46 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
17:17:08 × powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Quit: Client closed)
17:18:00 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
17:19:14 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 246 seconds)
17:19:43 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:21:06 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
17:24:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:29:19 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
17:29:35 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
17:30:33 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
17:33:04 × Simikando quits (~Simikando@bband-dyn237.95-103-149.t-com.sk) (Quit: Leaving)
17:34:07 justsomeguy joins (~justsomeg@user/justsomeguy)
17:37:37 Square joins (~Square@user/square)
17:37:55 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
17:38:39 <Square> I watched a video on mu-haskell the other day. Among other things they had disabled Existential Types, GADTs and recursion. Just curious why GADTs would be considered dubious?
17:39:57 <erisco> Disabled recursion? Not sure what it is about but sounds like they're maybe trying to guarantee totality?
17:42:42 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
17:48:05 <[exa]> Square: any video or written note on the reasons there?
17:48:47 qqq joins (~qqq@92.43.167.61)
17:48:54 <Square> [exa], https://www.youtube.com/watch?v=8Xe0ujcThxg
17:49:11 <EvanR> disabled recursion in datatypes or code
17:49:38 <[exa]> Square: time?
17:50:11 <EvanR> I know higher order algebraic datatypes in HoTT can get pretty wild fast
17:50:29 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
17:50:45 <[exa]> oh what, the slides there literally say "but we didn't want to lose C++ and Excel interoperability"
17:52:14 <Square> EvanR, Code is my understanding. "You rarely need recursion" he said. *shrug* =D
17:52:18 × danse-nr3_ quits (~francesco@151.54.19.188) (Ping timeout: 246 seconds)
17:52:20 <EvanR> lol
17:52:22 <EvanR> ok
17:53:22 <EvanR> in a DSL you can rely on primitive combinators which do specific things like map and reduce, which were verified using recursion correctly (if at all)
17:53:34 <[exa]> looks a bit like they wanted cobol
17:55:20 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
17:59:09 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
17:59:58 connrs joins (~connrs@user/connrs)
18:01:24 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
18:02:20 <tomsmeding> turn haskell into cobol?
18:02:22 tomsmeding confused
18:02:35 <tomsmeding> it's easier to turn python into cobol
18:04:08 nyr joins (~nyr@user/nyr)
18:04:36 × connrs quits (~connrs@user/connrs) (Read error: Connection reset by peer)
18:05:27 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
18:05:57 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
18:06:10 connrs joins (~connrs@user/connrs)
18:07:42 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
18:08:10 × tomjaguarpaw quits (~tom@172.104.25.182) (Server closed connection)
18:08:22 tomjaguarpaw joins (~tom@172-104-25-182.ip.linodeusercontent.com)
18:11:19 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
18:15:32 <haskellbridge> <s​m> Square: that looked good.. worth watching ?
18:16:11 × nyr quits (~nyr@user/nyr) (Ping timeout: 246 seconds)
18:17:16 <Square> sm: I watched a bit by accident. It's not so much about Haskell/FP but how they use it on Standard Chartered bank. More interesting than it sounds tbh. =D
18:17:31 <haskellbridge> <s​m> 👍️
18:17:52 × [_________] quits (~oos95GWG@user/oos95GWG) (Server closed connection)
18:18:11 [_________] joins (~oos95GWG@user/oos95GWG)
18:19:02 <EvanR> but it's easier to turn comonad into cobalnad, the inevitable name of such a library implementing the cobol comonad
18:22:27 <tomsmeding> EvanR: lowest sum of edit distances seems to be achieved for 'comon' -- 2 to comonad and 2 to cobol
18:22:44 <tomsmeding> (assuming you allow mutations as edits)
18:23:04 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
18:23:24 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
18:24:33 <EvanR> c'monbal
18:24:59 danza joins (~francesco@151.43.248.148)
18:25:17 <tomsmeding> adding 'bal' makes it funnier
18:28:06 todi1 joins (~todi@p5dca5734.dip0.t-ipconnect.de)
18:28:13 × todi quits (~todi@p5dca5c94.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
18:28:27 <EvanR> shoot that's a misspell
18:28:56 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
18:31:13 ft joins (~ft@p3e9bc52b.dip0.t-ipconnect.de)
18:41:29 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
18:42:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
18:43:36 × leah2 quits (~leah@vuxu.org) (Server closed connection)
18:44:47 leah2 joins (~leah@vuxu.org)
18:45:12 todi1 is now known as todi
18:45:54 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
18:47:13 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
18:49:43 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
18:49:57 caryhartline joins (~caryhartl@168.182.58.169)
18:53:18 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
18:57:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Remote host closed the connection)
18:58:52 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
19:00:26 drewjose0 joins (~drewjose@129.154.40.88)
19:00:30 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
19:01:03 × drewjose quits (~drewjose@129.154.40.88) (Ping timeout: 252 seconds)
19:01:03 drewjose0 is now known as drewjose
19:01:51 <monochrom> You can recover existential types with GADT. So if someone seriously wants to ban existential types, they need to also ban GADT.
19:02:38 <monochrom> Furthermore, you can recover all of the above plus most recursive types with RankNTypes. So the someone should have also banned that.
19:02:54 × ncf quits (~n@monade.li) (Server closed connection)
19:03:13 ncf joins (~n@monade.li)
19:03:29 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
19:03:42 <monochrom> OK actually I haven't done recovering GADT from RankNTypes. But RankNTypes can definitely let you recover existentials and most recursive types.
19:04:11 aa joins (~Username@104.28.200.197)
19:04:43 × aa quits (~Username@104.28.200.197) (Excess Flood)
19:05:11 <monochrom> Oh, recursion in code? You can use recursive data types to recover recursion in code.
19:08:04 privacy joins (~privacy@47.219.84.6)
19:09:41 powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com)
19:11:24 <dolio> Isn't the point in Standard Chartered to write libraries used by people who are domain experts, but not Haskell experts?
19:12:02 <dolio> So, you don't want to have to teach them about the rules for existential type or gadts and such.
19:15:47 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
19:20:11 × privacy quits (~privacy@47.219.84.6) (Ping timeout: 255 seconds)
19:22:35 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
19:22:45 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:24:41 Sciencentistguy2 joins (~sciencent@hacksoc/ordinary-member)
19:26:45 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:27:18 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
19:27:19 Sciencentistguy2 is now known as Sciencentistguy
19:30:18 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
19:31:51 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Server closed connection)
19:32:06 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
19:32:57 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
19:34:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5) (Ping timeout: 246 seconds)
19:35:24 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 240 seconds)
19:35:29 × Square quits (~Square@user/square) (Ping timeout: 255 seconds)
19:37:00 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
19:41:13 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
19:42:25 <exarkun> When the ghc rts is multithreaded, when are the threads created?
19:51:01 Square joins (~Square@user/square)
19:51:30 aaronv joins (~aaronv@user/aaronv)
19:52:40 chomwitt joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
19:53:49 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
19:54:10 <monochrom> My http://www.vex.net/~trebla/haskell/ghc-conc-ffi.xhtml may not answer that question as stated, but may come close, or even answer the real question.
19:54:13 Batzy joins (~quassel@user/batzy)
19:56:12 <EvanR> need the rts thread creation myth
19:56:26 <monochrom> There is also https://github.com/takenobu-hs/haskell-ghc-illustrated which you should bookmark for future reference.
19:57:42 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:58:28 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
19:59:23 <exarkun> monochrom: nice, thanks
20:06:14 × michalz quits (~michalz@185.246.207.201) (Remote host closed the connection)
20:06:26 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:09:36 nyr joins (~nyr@user/nyr)
20:10:54 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
20:12:36 mokrates joins (~user@2a04:4540:7105:1700:badc:5789:6bf6:5936)
20:13:46 <mokrates> hi, I am currently reading "real world haskell" to get an intro, but I am already curious:
20:16:04 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:16:08 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:16:14 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
20:16:53 × natto quits (~natto@129.154.243.159) (Server closed connection)
20:16:57 mokrates parts (~user@2a04:4540:7105:1700:badc:5789:6bf6:5936) ()
20:17:01 mokrates joins (~user@2a04:4540:7105:1700:badc:5789:6bf6:5936)
20:17:15 <mokrates> this data declaration: data Foo a b = a `Foo` b
20:17:17 natto joins (~natto@129.154.243.159)
20:17:40 <mokrates> sorry: data Foo a b = a `Foo` b deriving Show
20:17:53 <mokrates> a = 5 `Foo` 6
20:17:55 <mokrates> a
20:18:00 <mokrates> 5 `Foo` 6
20:18:04 <mokrates> ok, then
20:18:09 <mokrates> b = Foo 5 6
20:18:11 <mokrates> b
20:18:19 <mokrates> -> 5 `Foo` 6
20:18:24 <mauke> oh, it does that?
20:18:35 <mauke> @let data Foo a b = a `Foo` b deriving Show
20:18:37 <lambdabot> Defined.
20:18:40 <mokrates> how does Show know the "fixity"? do Constructors even have a fixity?
20:18:40 <mauke> > Foo 5 6
20:18:42 <lambdabot> 5 `Foo` 6
20:19:03 <mauke> there's a default fixity for operators if you don't explicitly define one
20:19:17 <mokrates> I didn't define any more than that
20:19:24 <mokrates> as you see with the bot
20:19:42 <mokrates> :i doesn't say anything either
20:20:04 <mokrates> and does a constructor Foo count as a operator?
20:20:36 <shapr> good afternoon?
20:20:47 <mokrates> evening ;)
20:21:00 <shapr> good evening mokrates
20:21:12 <mauke> "Any operator lacking a fixity declaration is assumed to be infixl 9"
20:21:26 <mauke> Foo doesn't, but `Foo` does
20:21:53 <mauke> https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-820004.4.2
20:22:28 <mokrates> thank you very much
20:22:41 <glguy> there are two kinds of operators, symbols that aren't surrounded by ()s and identifiers that are surrounded by ``s
20:23:27 <mauke> the standard library defines custom fixities for `div`, `mod`, `elem`, and others
20:23:37 ubert1 joins (~Thunderbi@91.141.49.150.wireless.dyn.drei.com)
20:24:39 × ubert quits (~Thunderbi@178.165.200.97.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
20:24:39 ubert1 is now known as ubert
20:25:24 <mokrates> interesting... but how would I see those? Where would a show display `div`, `mod` or `elem`?
20:25:52 <[exa]> mokrates: re "how does show know fixity", there's showsPrec which should handle that
20:25:53 <mokrates> ok, I am currently at a slow computer, I just check that page
20:26:30 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
20:27:04 caryhartline joins (~caryhartl@168.182.58.169)
20:27:18 <[exa]> actually I'm not really sure about what happens if you set the fixity after the Show instance is derived
20:27:25 <mauke> you wouldn't see `div` or other functions from show
20:28:05 <mokrates> aaah, I get it. the fixity declaration for `div` &al is just defining the precedence
20:28:07 <mauke> but ':i elem' in ghc will tell you infix 4 `elem`
20:28:23 <mauke> ghci doesn't show default fixities, though
20:28:39 <mokrates> whereas my `Foo`-definition tagged some "this-is-infix" information on to the constructor
20:28:58 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 258 seconds)
20:29:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:242f:a39f:e332:2dc5)
20:29:11 <mauke> well, 'deriving Show' is compiler magic
20:29:32 <mokrates> Yeah, I was disappointed when I read that
20:29:39 <mauke> the compiler has to generate an implementation of 'show' based on the type you wrote, and the compiler knows whether you used infix syntax for your data constructors
20:29:54 <mauke> so it mimics that
20:30:12 <c_wraith> well. it's magic, but it's not mysterious.
20:30:19 <mokrates> I really am like on page 70 and didn't know any haskell like 2 weeks ago
20:30:25 <c_wraith> It follows simple rules and generates code that you could write yourself
20:30:33 <mokrates> (apart from, idk, that it can pattern match and stuff)
20:31:16 <mauke> https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/deriving.html we do have more advanced magic, though
20:31:20 <mokrates> The disappointing thing is that you can't define classes which can be derived (w/o using some compiler-dependent magic modules)
20:31:36 <mokrates> (or is this old info?)
20:32:10 <mauke> oh, and Template Haskell
20:32:22 <mokrates> yeah, c'mon, slowly
20:32:34 <mauke> which can generate instances as well (/me waves at lens)
20:32:37 <mokrates> I mean: EVERY book starts with "ok, here's hello world!"
20:32:39 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
20:32:49 <c_wraith> It's sort of half true. You can use compiler extensions to get access to tools that let you get closer and closer to GHC's built-in behavior for deriving.
20:33:04 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
20:33:06 <c_wraith> But in the base language, the deriveable classes aren't something you can hook into
20:33:12 <mokrates> real world haskell is like: "ok, we don't have any side effects. no really! we don't! hello world, and printing on the screen? chapter SEVEN"
20:33:28 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
20:33:33 <mokrates> (real world haskell -- the book)
20:33:47 <mauke> main = putStr "Hello, world!\n" -- done
20:33:49 <c_wraith> to be pedantic, IO isn't *side* effects. It's not something that happens incidentally on the side. It's a type specifically for describing effects.
20:34:04 <c_wraith> I'm not sure how valuable that pedantry is
20:34:10 × jackneill__ quits (~Jackneill@20014C4E1E101A0048EACD7D3B494F2B.dsl.pool.telekom.hu) (Ping timeout: 252 seconds)
20:34:11 <c_wraith> But it's sort of defensible
20:34:11 <mokrates> yeah yeah... I already know. But still. You guys are serious ;)
20:34:39 <mokrates> I like pedantry
20:35:00 <mokrates> And I already got a liiiittle bit of a, say, feeling for it
20:35:41 <mokrates> like for continuations (which I still don't really get my head around)
20:36:03 <mokrates> (did some lisp stuff, b/c you know: fun)
20:36:49 privacy joins (~privacy@47.219.84.6)
20:36:51 <mokrates> Did you know that common lisp doesn't have recursive types? I was as surprised as you are!
20:37:43 <mauke> I didn't know CL had types in the first place
20:38:09 <mokrates> It does. But it's weirdly tacked on
20:38:26 <mokrates> (as everything is weirdly tacked together)
20:39:00 <mokrates> ... *tacked together weirdly (is better english, I think)
20:39:08 <mauke> > sum [0.2, 0.2, 0.2, 0.2, 0.2] :: Rational -- I know CL can't do this one
20:39:09 <lambdabot> 1 % 1
20:39:22 <glguy> afaik CL has "types" as much as Python has them
20:39:55 <mokrates> per standard, yes, but sbcl actually does type inference
20:41:03 zmt01 joins (~zmt00@user/zmt00)
20:41:28 <mokrates> and compiles to really concise code. And you *can* declare them, and then, depending on what you declare, and what your compiler offers, can have them checked or just optimized for (if you just optimize and disobey, you get interesting segfaults)
20:41:43 justsomeguy joins (~justsomeg@user/justsomeguy)
20:42:09 <mauke> all I remember is "type declarations" that are actually promises to the compiler: "I swear this variable will only contain fixed-width integers, so please generate optimized code that produces garbage if this assumption is violated"
20:42:33 × danza quits (~francesco@151.43.248.148) (Read error: Connection reset by peer)
20:42:56 <mokrates> but with classes and generic methods it has to use types to choose the correct method, similar to haskell has to find the right 'null' in the []-type or the e.g. Maybe-type
20:43:18 danza joins (~francesco@151.47.227.251)
20:43:32 <mauke> no, that's all runtime dispatch
20:43:40 <glguy> It only makes sense to call those types when you don't have types otherwise, though. That's runtime value dispatch, not type dispatch
20:43:42 <mokrates> mauke: sbcl will actually throw compiler errors at you if the inferred types don't match up
20:44:01 <glguy> if sbcl some some extensions, that's not Common Lisp having it
20:44:21 <mauke> some
20:44:22 <mokrates> CL permits it.
20:44:31 <mauke> yeah, by making it undefined behavior
20:44:48 × swamp_ quits (~zmt00@user/zmt00) (Ping timeout: 258 seconds)
20:44:52 <mokrates> yeah, a bit like pragmas in C but still in the standard
20:45:02 <mokrates> which is CL weirdness
20:45:54 <mokrates> mauke: is it all runtime dispatch in haskell? wouldn't that be slow if the type is known at compile time?
20:46:06 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 252 seconds)
20:46:10 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
20:46:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:46:51 <mokrates> ok, "in haskell" is probably the wrong question: in GHC would be more appropriate. (In Hugs it's probably all runtime..., I would think)
20:47:22 <glguy> Hugs isn't a compiler, so it can't talk about compile time
20:47:27 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
20:47:29 <mauke> ghc does resolve/inline class dictionaries at compile time when it can
20:47:39 <mokrates> glguy: fair enough
20:48:20 <monochrom> Using runghc to convert compile-time errors to run-time errors. >:D
20:48:25 <monochrom> s/Using/Use/
20:48:26 <int-e> but then it does an indirect jump for every unevaluated thunk
20:48:30 <mokrates> as does sbcl with methods
20:48:32 <mauke> there are places where that's not possible, like class-generic operations with separate compilation, or runtime-generated types
20:48:49 <mokrates> monochrom: lol
20:48:50 <monochrom> But the serious answer is this:
20:49:09 <mauke> -fdefer-type-errors
20:49:17 <int-e> (I'm not sure how much utility the notion of "dispatch" has in implementations of Haskell.)
20:49:25 <mokrates> mauke: of course
20:49:32 <monochrom> Static type means that "if True then False else 34" is rejected, even if "obviously" the 34 is irrelevant. Dynamic typing means that it is accepted.
20:50:17 <monochrom> So for example, even runghc rejects that code, despite my joke.
20:50:28 <c_wraith> monochrom: I'm pretty sure you can make that one valid with sufficiently complex dependent types
20:50:35 <monochrom> In fact, even -fdefer-type-errors rejects that, IIRC.
20:50:40 <mokrates> It means that I can have a function which takes an Ord and uses < on it. But the implementation could be whatever...
20:50:43 <mauke> monochrom: only if you don't define a Num Bool instance
20:51:17 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
20:51:24 <mokrates> monochrom: yeah, it probably would reject that, b/c that looks like it can't be compiled
20:52:12 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
20:52:36 Square2 joins (~Square4@user/square)
20:53:10 <monochrom> @quote monochrom poor.*dependent
20:53:10 <lambdabot> monochrom says: dynamic type is poor man's dependent type, they are so poor they can't buy a theorem prover.
20:54:10 <mokrates> damn! you slammed my limo interpreter. I was so proud of it!
20:54:43 <mokrates> (my lisp dialect... who learns lisp without building one, amiright?)
20:54:54 <mokrates> ok. back to mr. curry.
20:54:57 <monochrom> I did.
20:55:11 × Square quits (~Square@user/square) (Ping timeout: 246 seconds)
20:55:12 <mauke> if nil evaluates to itself and (eq nil 'nil), then why is (if 'nil nil 34) 34?
20:55:27 <mauke> oh, because I'm dumb
20:55:41 <mauke> please erase all memories of what I just said
20:55:43 <monochrom> (if 'nil 34 nil) is better. :)
20:55:59 <erisco> known as lemma M4
20:56:09 <monochrom> Actually, let's erase "if" and learn "unless" instead. >:D
20:56:21 <mokrates> what?
20:56:36 <monochrom> (unless 'nil nil 34) is more intuitive. >:)
20:56:36 <mokrates> so you're asking why (if 'nil 34 nil) -> 34?
20:56:59 <mauke> I actually wrote (IF 'NIL ...) in the repl
20:57:09 <mauke> I always uppercase my symbols out of respect
20:57:30 <mokrates> uppercase is the way from a more civilized time
20:57:41 emmanuelux joins (~emmanuelu@user/emmanuelux)
20:57:44 <mauke> WHEN PEOPLE WERE SHOUTING AT EACH OTHER ALL THE TIME
20:57:52 <mokrates> λimo > (if 'nil 34 nil)
20:57:58 <monochrom> I always lowercase because of the exciting "w00t finally a computer that supports lowercase, I should actually use it!"
20:57:59 <mokrates> -> 34
20:57:59 × ubert quits (~Thunderbi@91.141.49.150.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
20:58:07 <monochrom> s/exciting/excitement/
20:58:16 <mokrates> oh... what?
20:58:23 pavonia joins (~user@user/siracusa)
20:58:45 <mauke> did you redefine nil, javascript style?
20:58:45 <mokrates> ah, yes, of course
20:58:56 <mokrates> a sec
20:59:01 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
20:59:24 <geekosaur> or ruby style, I used that productively once
20:59:59 <mokrates> in limo "nil" is just a variable conaining ()
21:00:00 <mokrates> and
21:00:15 <mokrates> λimo > (if '() 'true 'false) -> FALSE
21:00:36 <monochrom> Is it re-assignable?
21:00:51 <mokrates> so 'nil evaluates (in limo) to the symbol nil which is not () but a symbol. so -> true
21:00:57 <monochrom> Someone was obsessed with re-assigning a few days ago.
21:01:07 <mokrates> CL should may do it differently
21:01:35 <mokrates> CL-USER> (if 'nil 'true 'false) -> FALSE
21:01:46 <mauke> '|a||b| ; string concatenation (under quote) in common lisp
21:02:06 <mokrates> that works. nil is directly translated by the reader in this case
21:02:49 <mauke> more like, () evalutes to the symbol NIL, which is falsy
21:03:27 <mokrates> also, this is weird:
21:03:28 × acidjnk quits (~acidjnk@p200300d6e7072f94d84002b8d460e75b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
21:03:50 <mokrates> (symbolp nil) -> T
21:03:51 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
21:04:01 <mokrates> (symbolp 'nil) -> T
21:04:12 <mokrates> (symbolp ()) -> T
21:04:49 <mauke> yeah, that matches what I said
21:05:04 <mokrates> why is it a symbol?
21:05:14 <mokrates> λimo > (SYMBOLP 'nil) -> :T
21:05:35 <mokrates> λimo > (SYMBOLP nil) -> ()
21:05:49 <mauke> because CL is weird
21:05:50 <mokrates> (which is reasonable!)
21:06:03 <mokrates> yeah, cl is weird
21:06:34 <mauke> since it is a self-evaluating symbol, maybe it should've been called :NIL
21:06:54 × ystael quits (~ystael@user/ystael) (Ping timeout: 246 seconds)
21:07:05 <mokrates> mauke: '|a||b| is not a string ;)
21:07:26 <mauke> then why does it quack (concatenate) like one?
21:07:52 <mokrates> I use :t for my true-value, b/c why define some special symbol for it?
21:08:03 <mokrates> mauke: it's a symbol
21:08:34 <mauke> :|not nil|
21:08:56 <mokrates> absolutely standard ;)
21:08:59 <mauke> actually, to maximize evil, you should probably call it :|nil|
21:09:32 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
21:09:32 <mokrates> but I didn't know that was possible with the ||-concatenation
21:09:41 <mokrates> CL-USER> '|foo|bar -> |fooBAR|
21:10:10 <mauke> oh, it's very shell-like
21:10:10 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
21:10:48 <mokrates> but you have to admit: to be able to redefine your reader mid-program is mind melting yet powerful
21:12:14 <mokrates> λimo > (import "simplejson.limo")
21:12:21 <mokrates> λimo > (setq fromjson #j{"foo": [1, 2, 3]} )
21:12:27 <mokrates> -> #<dict: (("foo" 1 2 3))>
21:13:33 <mauke> oh, like quasiquoting
21:13:54 <mokrates> I got knots in my head.
21:14:36 <mauke> here's a better canonical true value: (|FUNCTION| (lambda (|t| |f|) |t|))
21:14:38 <mokrates> Seriously. I implemented ',', ',@' and '`' in the reader just as syntactic sugar
21:14:42 <mauke> now compatible with lambda calculus!
21:15:05 <mokrates> like `(,x) just translates to a list (quasiquote (comma x)). that's it
21:15:12 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
21:15:12 <mokrates> and then i defined a macro quasiquote
21:17:59 <mokrates> https://github.com/mokrates/limo/blob/master/limo-code/std.limo#L221C1-L221C1
21:18:56 <mokrates> it's just a soup of cons and list and car and recursive calls
21:19:36 × powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Quit: Client closed)
21:20:25 <mauke> soupcons of lists
21:20:36 <mokrates> mauke: about that lambda calculus... haskell has lazy eval... why does it have 'if'?
21:20:42 <mokrates> why isn't if just
21:20:53 <mokrates> if True x y = x
21:20:57 <mokrates> if False x y = y
21:20:58 <mokrates> ?
21:21:03 <sshine> :t if'
21:21:04 <lambdabot> error:
21:21:04 <lambdabot> • Variable not in scope: if'
21:21:04 <lambdabot> • Perhaps you meant ‘f'’ (imported from Debug.SimpleReflect)
21:21:04 <geekosaur> :t bool
21:21:05 <lambdabot> a -> a -> Bool -> a
21:21:06 <mauke> tradition?
21:21:44 <geekosaur> but `if` is actually syntax sugar for `case () of () | condition -> true | otherwise -> false`
21:21:54 <mauke> I mean, that is how the 'if' syntax behaves. and with RebindableSyntax you can make it explicit
21:22:59 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
21:24:36 <mokrates> hm... I would have thought it nicer to just have it as a function. Like in Clean
21:25:10 <mokrates> but ok. doesn't really change anything, I think
21:26:18 <geekosaur> iirc we've had trouble tracking down the folks involved with the original Haskell Report who made these kinds of decisions
21:26:41 <sshine> mokrates, you get some indentation rules that are nice with dedicated syntax
21:27:00 <mokrates> hm, ok
21:27:12 <sshine> mokrates, but judging from the backlog, I suppose you might say that macros can give that, too ;-)
21:27:22 <dolio> The natural answer is that the if-then-else syntax is way better than a function for many common if-then-else uses.
21:27:53 <mokrates> but in the end it's just cosmetics, right?
21:28:02 <dolio> Cosmetics matter.
21:28:05 <mokrates> or is there a semantic difference, too?
21:28:15 <mokrates> dolio: they absolutely do
21:29:24 <mokrates> But I learn faster if there's not tons of syntax all doing their own shit ;)
21:29:28 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
21:32:42 <EvanR> there is no semantic difference
21:33:09 <EvanR> so all you've got to worry about is the cosmetics!
21:33:23 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds)
21:33:45 <EvanR> mokrates, you could write all your code in core, which is very uniform and has no bells and whistles
21:35:47 × nyr quits (~nyr@user/nyr) (Ping timeout: 246 seconds)
21:38:33 <mokrates> yeah, of course not. expressiveness and cosmetics are relevant. to bother the lisp example again: I like when the core is slim and the whistles are all in macros which have certain constraints themselves and an implementation you can look at
21:39:25 <mokrates> thanks everybody :)
21:41:33 × mokrates quits (~user@2a04:4540:7105:1700:badc:5789:6bf6:5936) (Remote host closed the connection)
21:42:06 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
21:43:29 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:43:57 mokrates joins (~user@2a04:4540:7105:1700:badc:5789:6bf6:5936)
21:46:45 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:47:00 mokrates2 joins (~user@2a04:4540:7105:1700:ccd1:ab0:40b8:b3a0)
21:47:19 × bontaq quits (~user@ool-45707d2c.dyn.optonline.net) (Ping timeout: 252 seconds)
21:48:14 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
21:52:36 Pickchea joins (~private@user/pickchea)
21:54:02 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
21:54:02 acidjnk joins (~acidjnk@p200300d6e7072f496ceee41d277bee3f.dip0.t-ipconnect.de)
21:56:58 powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com)
21:58:31 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds)
22:00:09 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:00:50 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
22:01:14 × danza quits (~francesco@151.47.227.251) (Read error: Connection reset by peer)
22:01:18 danza_ joins (~francesco@151.57.185.241)
22:05:40 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
22:06:12 aliosablack joins (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1)
22:06:30 × chomwitt quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
22:07:06 × bionade24 quits (~bionade24@2a03:4000:33:45b::1) (Read error: Connection reset by peer)
22:07:19 bionade24 joins (~bionade24@server2.oscloud.info)
22:07:46 × it_ quits (~quassel@v2202212189510211193.supersrv.de) (Quit: No Ping reply in 180 seconds.)
22:08:14 × dcoutts_ quits (~duncan@82-69-94-207.dsl.in-addr.zen.co.uk) (Read error: Connection reset by peer)
22:08:26 dcoutts_ joins (~duncan@82-69-94-207.dsl.in-addr.zen.co.uk)
22:08:55 it_ joins (~quassel@v2202212189510211193.supersrv.de)
22:12:36 × aliosablack quits (~chomwitt@2a02:587:7a15:5600:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
22:14:59 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:17:26 × privacy quits (~privacy@47.219.84.6) (Quit: Leaving)
22:17:59 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 245 seconds)
22:18:06 Inst joins (~Inst@120.244.192.250)
22:22:09 × drlkf quits (~drlkf@192.184.163.34.bc.googleusercontent.com) (Quit: drlkf)
22:24:35 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
22:26:41 drlkf joins (~drlkf@192.184.163.34.bc.googleusercontent.com)
22:28:24 × troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds)
22:32:36 × califax quits (~califax@user/califx) (Ping timeout: 246 seconds)
22:32:37 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 250 seconds)
22:32:46 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:33:22 califax joins (~califax@user/califx)
22:34:43 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
22:37:00 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
22:41:46 wroathe joins (~wroathe@user/wroathe)
22:42:49 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
22:47:00 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
22:51:10 × drlkf quits (~drlkf@192.184.163.34.bc.googleusercontent.com) (Quit: drlkf)
22:51:33 drlkf joins (~drlkf@192.184.163.34.bc.googleusercontent.com)
22:53:17 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:54:55 × samlamamma quits (~user@h-46-59-69-159.A785.priv.bahnhof.se) (Remote host closed the connection)
22:55:27 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 255 seconds)
22:56:31 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
23:00:04 caryhartline joins (~caryhartl@168.182.58.169)
23:01:04 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
23:02:27 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
23:06:14 × Inst quits (~Inst@120.244.192.250) (Read error: Connection reset by peer)
23:08:05 Square3 joins (~Square4@user/square)
23:08:21 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
23:09:21 troydm joins (~troydm@user/troydm)
23:10:06 × xff0x quits (~xff0x@2405:6580:b080:900:820a:8b71:e207:7b95) (Ping timeout: 246 seconds)
23:10:22 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev)
23:10:29 xff0x joins (~xff0x@178.255.149.135)
23:10:35 × Square2 quits (~Square4@user/square) (Ping timeout: 255 seconds)
23:11:15 Inst joins (~Inst@120.244.192.250)
23:13:05 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
23:13:46 pavonia joins (~user@user/siracusa)
23:18:53 mysl joins (~mysl@user/mysl)
23:19:35 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
23:21:05 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 258 seconds)
23:21:48 × bionade24 quits (~bionade24@server2.oscloud.info) (Ping timeout: 240 seconds)
23:22:47 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 246 seconds)
23:23:11 stefan-__ joins (~cri@42dots.de)
23:23:46 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 258 seconds)
23:24:47 xff0x joins (~xff0x@2405:6580:b080:900:820a:8b71:e207:7b95)
23:26:49 × powderhorn quits (~powderhor@207-153-12-54.static.fttp.usinternet.com) (Quit: Client closed)
23:27:37 powderhorn joins (~powderhor@207-153-12-54.static.fttp.usinternet.com)
23:31:53 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
23:35:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
23:38:00 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
23:41:37 bionade24 joins (~bionade24@2a03:4000:33:45b::1)
23:48:52 × Inst quits (~Inst@120.244.192.250) (Remote host closed the connection)
23:49:12 Inst joins (~Inst@120.244.192.250)
23:50:05 × Carbon-lang quits (~Carbonlan@ip121.ip-149-56-160.net) (Ping timeout: 246 seconds)
23:56:15 Carbon-lang joins (~Carbonlan@ip121.ip-149-56-160.net)
23:57:14 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
23:57:18 smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net)
23:58:03 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
23:58:27 × smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit)
23:58:35 Lord_of_Life_ is now known as Lord_of_Life
23:59:14 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)

All times are in UTC on 2023-09-14.