Home freenode/#haskell: Logs Calendar

Logs on 2020-10-27 (freenode/#haskell)

00:00:01 × unknown1 quits (~unknown@195.206.169.184) ()
00:00:04 <fresheyeball> hey
00:00:09 <fresheyeball> I have an api I need to query
00:00:20 <fresheyeball> that returns a gzip, and all I care about is the status code
00:00:27 <fresheyeball> is this doable with servant client?
00:00:43 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
00:01:14 akad joins (~akad@109107030050.radomsko.vectranet.pl)
00:02:55 × xff0x quits (~fox@2001:1a81:53e0:c700:623b:a273:9fc7:c0b1) (Ping timeout: 272 seconds)
00:03:26 xff0x joins (~fox@2001:1a81:53e0:c700:bc1e:f03e:962e:40cd)
00:07:05 × darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 240 seconds)
00:09:23 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:10:38 KhoN_2 joins (~KhoN@cm-84.208.147.132.getinternet.no)
00:10:43 darjeeling_ joins (~darjeelin@115.215.42.47)
00:11:02 × nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer)
00:11:02 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
00:12:10 × lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) (Quit: Bye)
00:12:22 nbloomf joins (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb)
00:13:28 × falafel_ quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 246 seconds)
00:14:00 × KhoN_1 quits (~KhoN@cm-84.208.147.132.getinternet.no) (Ping timeout: 256 seconds)
00:14:08 <dsal> :t foldMap (All .) -- Raito_Bezarius
00:14:09 <lambdabot> Foldable t => t (a -> Bool) -> a -> All
00:15:47 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
00:15:54 <dsal> > getAll . foldMap (All .) [even, (>5)] $ 4
00:15:56 <lambdabot> False
00:15:57 <dsal> > getAll . foldMap (All .) [even, (>5)] $ 6
00:15:59 <lambdabot> True
00:16:25 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds)
00:16:43 GyroW joins (~GyroW@d54c03e98.access.telenet.be)
00:16:43 × GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
00:16:43 GyroW joins (~GyroW@unaffiliated/gyrow)
00:17:01 oisdk joins (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1)
00:17:28 <dsal> > let isEvenAndBigEnough = getAll . foldMap (All .) [even, (>5)] in isEvenAndBigEnough <$> [4..7]
00:17:30 <lambdabot> [False,False,True,False]
00:19:57 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:9062:c31d:ffbb:9534) (Ping timeout: 260 seconds)
00:20:01 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
00:20:22 nyaomi joins (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89)
00:20:29 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:21:04 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:6857:8c0f:5834:bc03)
00:21:57 altoid joins (~altoid@154.13.1.56)
00:23:11 × alp quits (~alp@2a01:e0a:58b:4920:1c2f:db12:618d:602c) (Ping timeout: 272 seconds)
00:24:08 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
00:25:32 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 260 seconds)
00:25:37 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:27:43 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
00:30:17 × plutoniix quits (~q@ppp-27-55-68-183.revip3.asianet.co.th) (Quit: Leaving)
00:35:15 atondwal joins (~atondwal@ip68-107-107-53.sd.sd.cox.net)
00:35:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:37:42 vacm joins (~vacwm@70.23.92.191)
00:39:04 hekkaidekapus_ is now known as hekkaidekapus
00:39:39 <hekkaidekapus> > sortBy (comparing even <> comparing (> 5)) [4..7] -- dsal, let’s golf :)
00:39:40 <lambdabot> [5,7,4,6]
00:39:51 <hekkaidekapus> > sortBy (comparing even <> comparing (< 5)) [4..7]
00:39:53 <lambdabot> [5,7,6,4]
00:40:20 <hekkaidekapus> > sortBy (comparing odd <> comparing (> 5)) [4..7]
00:40:21 <lambdabot> [4,6,5,7]
00:41:03 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
00:43:40 jedws joins (~jedws@101.184.148.229)
00:44:35 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:45:37 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
00:48:54 × notnatebtw quits (~nate@125.161.130.165) (Ping timeout: 256 seconds)
00:50:06 <olligobber> :t even
00:50:07 <lambdabot> Integral a => a -> Bool
00:50:09 acidjnk_new joins (~acidjnk@p200300d0c723784541890f3c35543fb8.dip0.t-ipconnect.de)
00:50:39 <olligobber> what?
00:50:57 la-jesystani joins (~thorn@158.140.231.126)
00:51:08 notnatebtw joins (~nate@125.161.130.165)
00:51:09 <hekkaidekapus> olligobber, what did you expect?
00:51:45 <olligobber> I'm just confused by what comparing and <> are doing in your code
00:51:59 <dsal> :t comparing
00:52:00 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
00:52:14 <olligobber> oh I see
00:52:22 <hekkaidekapus> > sortBy (comparing even <> comparing (>5)) (reverse [1..11])
00:52:24 <lambdabot> [5,3,1,11,9,7,4,2,10,8,6]
00:52:31 <olligobber> wait, there's a <> instance for Ord?
00:52:31 <dsal> It's a sort thing to take two values and a function to build a shwartzian transform for sorting.
00:52:40 <dsal> Yeah, it's super useful.
00:52:45 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
00:52:47 <olligobber> *Ordering
00:52:55 × whald quits (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) (Remote host closed the connection)
00:52:55 whald_ joins (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b)
00:52:59 Lord_of_Life_ joins (~Lord@46.217.223.11)
00:53:00 <dsal> * Semigroup :)
00:53:04 <dsal> > LT <> GT
00:53:06 <lambdabot> LT
00:53:15 <hekkaidekapus> @where monoids -- olligobber, the monoid instance for functions is a superstar topic around here.
00:53:15 <lambdabot> comment on "Monoids? In my programming language?" by Cale in 2008 (or 2009 ?) at <http://www.reddit.com/r/programming/comments/7cf4r/monoids_in_my_programming_language/c06adnx> about a use of `
00:53:15 <lambdabot> instance Monoid a => Monoid (rho -> a)'
00:53:38 <olligobber> oh, I know about the monoid instance for functions
00:53:46 <olligobber> used it myself when golfing a quine
00:54:37 <dsal> > fold [EQ, EQ, LT, GT]
00:54:39 <lambdabot> LT
00:54:45 <dsal> > fold [EQ, EQ, GT, LT, GT]
00:54:46 <lambdabot> GT
00:54:53 <dsal> In practice, it does the thing you'd want.
00:55:04 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:55:22 conal joins (~conal@64.71.133.70)
00:55:22 <dsal> > mempty :: Comparing
00:55:25 <lambdabot> error:
00:55:25 <lambdabot> Not in scope: type constructor or class ‘Comparing’
00:55:31 <olligobber> it returns the first non-EQ thing?
00:55:32 <dsal> > mempty :: Ordering
00:55:33 <lambdabot> EQ
00:55:37 <dsal> *sigh* But yeah, it's a monoid as well.
00:55:40 <dsal> Yeah.
00:56:47 <olligobber> I still haven't used comparing enough to figure this code out
00:57:01 <olligobber> I'm starting to get it though
00:57:07 <MarcelineVQ> :t comparing even
00:57:08 <lambdabot> Integral a => a -> a -> Ordering
00:57:23 <olligobber> ok, I think I get it now
00:57:41 <dsal> The question Raito_Bezarius had was about combining `a -> Bool` functions, which means you have to ask what it means to combine bools. So there are two different monoids.
00:57:42 × mbomba quits (~mbomba@142.114.9.241) (Ping timeout: 260 seconds)
00:58:04 <dsal> even is a weird way to compare numbers.
00:58:44 <dsal> > comparing length "a long string" "x"
00:58:46 <lambdabot> GT
00:58:54 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
01:01:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:04:08 <la-jesystani> howdy, has anyone here built a program using nix flakes? id be really interested to hear about it
01:06:07 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
01:06:42 hexfive joins (~hexfive@50.35.90.193)
01:06:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
01:09:10 servo joins (~servo@41.92.79.35)
01:09:19 nbloomf joins (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb)
01:10:42 <servo> HELLO ALL MEMEBERS
01:11:18 <hekkaidekapus> Hi, servo.
01:11:44 <servo> what type of work her ? plz
01:12:44 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:13:04 <hekkaidekapus> servo, please ask a Haskell-related question?
01:13:20 × jespada quits (~jespada@90.254.243.98) (Ping timeout: 272 seconds)
01:15:06 <hekkaidekapus> dsal | “even is a weird way to compare numbers.” What else to use when comparing numbers without even being odd?
01:17:01 jespada joins (~jespada@90.254.243.98)
01:18:37 × m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
01:19:55 × hexfive quits (~hexfive@50.35.90.193) (Quit: i must go. my people need me.)
01:20:02 × acidjnk_new quits (~acidjnk@p200300d0c723784541890f3c35543fb8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
01:20:03 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
01:23:28 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
01:24:26 × akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 265 seconds)
01:24:49 × darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds)
01:26:09 darjeeling_ joins (~darjeelin@115.215.42.47)
01:27:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
01:33:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:36:16 nuncanada joins (~dude@179.235.160.168)
01:36:34 × tito_04 quits (~taurux@net-93-146-109-245.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
01:38:19 taurux joins (~taurux@net-188-152-14-58.cust.vodafonedsl.it)
01:39:29 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:41:40 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
01:47:11 nbloomf joins (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb)
01:47:57 hackage reanimate 1.1.2.0 - Animation library based on SVGs. https://hackage.haskell.org/package/reanimate-1.1.2.0 (DavidHimmelstrup)
01:54:50 × oisdk quits (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) (Quit: oisdk)
01:57:41 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
01:58:30 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:00:37 × solonarv quits (~solonarv@astrasbourg-552-1-23-6.w90-13.abo.wanadoo.fr) (Ping timeout: 260 seconds)
02:01:45 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:01:54 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:02:38 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds)
02:03:50 × nuncanada quits (~dude@179.235.160.168) (Quit: Leaving)
02:06:15 <simon> dsal, isn't xor a third candidate?
02:06:43 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
02:08:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
02:13:47 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
02:16:01 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:16:38 vacm joins (~vacwm@70.23.92.191)
02:17:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
02:19:04 × firstlove quits (~firstlove@58.246.122.242) (Remote host closed the connection)
02:20:10 firstlove joins (~firstlove@58.246.122.242)
02:22:37 × howdoi quits (uid224@gateway/web/irccloud.com/x-lyptkrhyywcfcsfh) (Quit: Connection closed for inactivity)
02:23:48 × notnatebtw quits (~nate@125.161.130.165) (Quit: WeeChat 2.9)
02:25:49 texasmynsted joins (~texasmyns@99.96.221.112)
02:27:11 × cebola quits (~cebola@2804:14d:149a:a093:35e4:2df:ca12:a86d) ()
02:29:18 toorevitimirp joins (~tooreviti@117.182.180.36)
02:29:36 mud joins (~mud@unaffiliated/kadoban)
02:29:48 <dsal> simon: not sure how that would work, but give it a shot! :)
02:33:07 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
02:33:20 <koz_> dsal: Bool is a monoid under xor and False.
02:33:37 <koz_> s/False/True/ argh
02:33:49 <koz_> Nope it was False, lol.
02:33:52 <koz_> I always get this wrong.
02:36:18 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
02:36:24 <dsal> You mean mempty is true? Where is this defined?
02:36:51 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:37:20 AndresFutur joins (~androirc@190.18.144.100)
02:37:39 AndresFutur parts (~androirc@190.18.144.100) ()
02:39:03 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
02:39:42 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
02:40:04 × lucasb quits (uid333435@gateway/web/irccloud.com/x-uadkacgdennrevsw) (Quit: Connection closed for inactivity)
02:40:30 × xff0x quits (~fox@2001:1a81:53e0:c700:bc1e:f03e:962e:40cd) (Remote host closed the connection)
02:40:38 texasmynsted joins (~texasmyns@99.96.221.112)
02:40:50 xff0x joins (~fox@2001:1a81:53e0:c700:5271:1170:9270:a56e)
02:40:55 <koz_> dsal: Nowhere presently.
02:41:12 <koz_> I did send a thing to the libraries ML a while ago for newtypes to this effect, but it attracted zero attention.
02:41:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:41:30 <koz_> (and it's False for xor)
02:41:56 <koz_> Because False `xor` False = False (because they're the same) and False `xor` True = True (because they're different).
02:42:32 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
02:44:01 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds)
02:45:08 × servo quits (~servo@41.92.79.35) (Ping timeout: 256 seconds)
02:46:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
02:47:17 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:49:03 justsomeguy joins (~justsomeg@216.186.218.241)
02:49:03 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
02:49:03 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
02:53:28 drbean joins (~drbean@TC210-63-209-87.static.apol.com.tw)
02:53:28 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
02:54:56 <int-e> > let xor = (/=) in xor <$> [False,True] <*> [False,True]
02:54:58 <lambdabot> [False,True,True,False]
02:57:15 efficiently joins (~user@209.58.189.165)
02:57:54 × polyrain quits (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:58:54 × entropyga1n quits (levitate@unaffiliated/entropygain) (Remote host closed the connection)
02:59:43 SeMas joins (uid32977@gateway/web/irccloud.com/x-rjkgugwtutnfvjwx)
03:00:02 × altoid quits (~altoid@154.13.1.56) ()
03:00:07 × xff0x quits (~fox@2001:1a81:53e0:c700:5271:1170:9270:a56e) (Ping timeout: 260 seconds)
03:00:39 entropygain joins (levitate@unaffiliated/entropygain)
03:02:09 xff0x joins (~fox@2001:1a81:5219:2300:4b1c:219b:a3ac:1af9)
03:02:15 texasmynsted joins (~texasmyns@99.96.221.112)
03:05:37 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
03:06:02 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
03:11:00 _Marcos joins (2db67ff5@45.182.127.245)
03:11:10 × la-jesystani quits (~thorn@158.140.231.126) (Ping timeout: 260 seconds)
03:11:16 _Marcos parts (2db67ff5@45.182.127.245) ()
03:11:39 × ericsagnes quits (~ericsagne@2405:6580:0:5100:4528:7514:3a09:f12e) (Ping timeout: 272 seconds)
03:12:37 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:13:56 lagothrix is now known as Guest43873
03:13:56 × Guest43873 quits (~lagothrix@unaffiliated/lagothrix) (Killed (rothfuss.freenode.net (Nickname regained by services)))
03:14:04 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
03:14:45 × Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 240 seconds)
03:15:13 × Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 264 seconds)
03:15:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:15:58 acidjnk_new joins (~acidjnk@p200300d0c7237845edac044e40ff5816.dip0.t-ipconnect.de)
03:20:13 × justHaunted quits (~justache@unaffiliated/justache) (Ping timeout: 260 seconds)
03:23:46 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:23:56 ericsagnes joins (~ericsagne@2405:6580:0:5100:6142:ab79:42d1:afc1)
03:30:20 × drbean quits (~drbean@TC210-63-209-87.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
03:32:31 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
03:34:14 × theDon quits (~td@94.134.91.49) (Ping timeout: 258 seconds)
03:36:04 theDon joins (~td@muedsl-82-207-238-193.citykom.de)
03:36:48 justHaunted joins (~justache@unaffiliated/justache)
03:36:51 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
03:37:22 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
03:37:22 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
03:37:22 GyroW joins (~GyroW@unaffiliated/gyrow)
03:39:28 justHaunted parts (~justache@unaffiliated/justache) ()
03:39:37 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
03:39:58 drbean joins (~drbean@TC210-63-209-18.static.apol.com.tw)
03:41:05 falafel_ joins (~falafel@71-34-132-121.clsp.qwest.net)
03:42:32 × andi- quits (~andi-@NixOS/user/andi-) (Remote host closed the connection)
03:45:02 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds)
03:47:01 andi- joins (~andi-@NixOS/user/andi-)
03:49:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
03:53:39 × falafel_ quits (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection)
03:54:16 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer)
03:55:40 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
03:56:01 × nkly quits (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
03:56:28 nkly joins (~nkly@ip5b405665.dynamic.kabel-deutschland.de)
03:56:39 superfly1 joins (~superfly@s91904426.blix.com)
03:57:09 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection)
03:58:00 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
03:58:29 × ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:59:27 hackage vulkan 3.6.11 - Bindings to the Vulkan graphics API. https://hackage.haskell.org/package/vulkan-3.6.11 (jophish)
04:00:32 Rudd0 joins (~Rudd0@185.189.115.98)
04:01:04 × nkly quits (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
04:02:58 nkly joins (~nkly@ip5b405665.dynamic.kabel-deutschland.de)
04:03:17 z0_ joins (~z0@bl15-160-182.dsl.telepac.pt)
04:04:17 × Nik05 quits (~Nik05@unaffiliated/nik05) (Read error: Connection reset by peer)
04:04:36 Stanley|00 joins (~stanley00@unaffiliated/stanley00)
04:06:18 × z0 quits (~z0@bl15-166-165.dsl.telepac.pt) (Ping timeout: 260 seconds)
04:07:10 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds)
04:07:25 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 264 seconds)
04:12:16 christo joins (~chris@81.96.113.213)
04:14:29 tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com)
04:14:38 × taurux quits (~taurux@net-188-152-14-58.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
04:15:00 taurux joins (~taurux@net-93-151-203-8.cust.dsl.teletu.it)
04:17:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:22:23 __skn- is now known as __skn
04:23:01 ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
04:23:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:24:49 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
04:27:17 × acidjnk_new quits (~acidjnk@p200300d0c7237845edac044e40ff5816.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:32:45 × nkly quits (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
04:36:03 plutoniix joins (~q@175.176.222.7)
04:39:01 nkly joins (~nkly@2a02:8109:9ac0:4a4c::baa2)
04:39:57 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
04:44:38 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
04:46:18 xiinotulp joins (~q@175.176.222.7)
04:46:52 × xiinotulp quits (~q@175.176.222.7) (Read error: Connection reset by peer)
04:48:31 × drbean quits (~drbean@TC210-63-209-18.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
04:50:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:52:58 tito_04 joins (~taurux@net-93-151-203-8.cust.dsl.teletu.it)
04:53:43 × taurux quits (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Ping timeout: 265 seconds)
04:54:16 × damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
04:57:32 Jonkimi727406120 joins (~Jonkimi@119.123.241.90)
05:02:17 servo joins (~servo@41.92.79.35)
05:02:20 × servo quits (~servo@41.92.79.35) (Remote host closed the connection)
05:02:26 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
05:08:11 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
05:08:32 × ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
05:14:25 × jchia__ quits (~jchia@58.32.37.146) (Ping timeout: 240 seconds)
05:15:35 xerox_ joins (~xerox@unaffiliated/xerox)
05:20:25 × danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
05:20:36 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
05:22:08 dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net)
05:22:21 drbean joins (~drbean@TC210-63-209-17.static.apol.com.tw)
05:23:16 × drbean quits (~drbean@TC210-63-209-17.static.apol.com.tw) (Client Quit)
05:24:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
05:24:50 day_ joins (~Unknown@unaffiliated/day)
05:28:34 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 272 seconds)
05:28:34 day_ is now known as day
05:35:38 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
05:38:14 × alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
05:38:37 alexelcu joins (~alexelcu@142.93.180.198)
05:40:48 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds)
05:44:15 × bgamari quits (~bgamari@72.65.102.81) (Ping timeout: 260 seconds)
05:44:34 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:44:44 bgamari joins (~bgamari@2001:470:e438::1)
05:44:55 × TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 256 seconds)
05:45:38 Sanchayan joins (~Sanchayan@106.201.124.173)
05:47:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
05:48:47 idhugo joins (~idhugo@563472ae.rev.stofanet.dk)
05:49:44 polyrain joins (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e)
05:50:22 mbomba joins (~mbomba@142.114.9.241)
05:52:25 × mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
05:53:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:57:07 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
05:58:24 × Tops22 quits (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) (Read error: Connection reset by peer)
05:58:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
05:59:31 bartemius joins (~bartemius@109.252.20.20)
06:00:02 × superfly1 quits (~superfly@s91904426.blix.com) ()
06:00:30 lpy joins (~nyd@unaffiliated/elysian)
06:01:57 TooDifficult joins (~TooDiffic@139.59.59.230)
06:03:37 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
06:15:49 × idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 264 seconds)
06:17:10 whatisRT joins (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1)
06:17:16 tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net)
06:17:35 × tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit)
06:21:12 GsC_RuL3Z joins (~GsC_RuL3Z@s91904426.blix.com)
06:21:41 × TooDifficult quits (~TooDiffic@139.59.59.230) (Quit: TooDifficult)
06:21:58 TooDifficult joins (~TooDiffic@139.59.59.230)
06:23:15 × DTZUZU quits (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Read error: Connection reset by peer)
06:25:08 × TooDifficult quits (~TooDiffic@139.59.59.230) (Client Quit)
06:25:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:26:23 × plutoniix quits (~q@175.176.222.7) (Quit: Leaving)
06:35:59 johnw joins (~johnw@haskell/developer/johnw)
06:38:58 hackage telegram-bot-simple 0.3.3 - Easy to use library for building Telegram bots. https://hackage.haskell.org/package/telegram-bot-simple-0.3.3 (swamp_agr)
06:40:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:41:22 Varis joins (~Tadas@unaffiliated/varis)
06:41:26 × lxsameer quits (lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 256 seconds)
06:43:58 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
06:46:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
06:47:14 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
06:48:27 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
06:50:48 tuple joins (~igloo@c-67-169-78-228.hsd1.ca.comcast.net)
06:51:36 × tuple quits (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit)
06:54:18 conal joins (~conal@64.71.133.70)
06:57:38 alp joins (~alp@2a01:e0a:58b:4920:487d:f3bf:e4da:7752)
06:58:06 chaosmasttter joins (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de)
06:58:12 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
06:59:17 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Ping timeout: 260 seconds)
06:59:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
07:06:13 asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be)
07:07:30 × MikeD quits (ad5822ca@cpe-173-88-34-202.columbus.res.rr.com) (Remote host closed the connection)
07:09:45 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Ping timeout: 240 seconds)
07:10:10 mmohammadi9812 joins (~mmohammad@5.115.65.59)
07:10:18 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
07:12:49 chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
07:16:48 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
07:18:01 × xsperry quits (~as@unaffiliated/xsperry) (Ping timeout: 246 seconds)
07:18:59 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:21:47 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
07:22:28 cfricke joins (~cfricke@unaffiliated/cfricke)
07:22:48 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
07:25:49 × sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
07:26:19 × cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit)
07:26:27 xsperry joins (~as@unaffiliated/xsperry)
07:26:37 × cgfbee quits (~bot@oc1.itim-cj.ro) (Ping timeout: 264 seconds)
07:29:21 × atondwal quits (~atondwal@ip68-107-107-53.sd.sd.cox.net) (Quit: Leaving.)
07:30:47 perry69420 joins (6ee39f85@110.227.159.133)
07:30:50 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
07:31:50 idhugo joins (~idhugo@users-1190.st.net.au.dk)
07:35:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:36:01 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
07:36:31 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
07:39:24 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Read error: Connection reset by peer)
07:40:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
07:41:05 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
07:44:48 wei2912 joins (~wei2912@unaffiliated/wei2912)
07:44:51 × jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:48:11 raichoo joins (~raichoo@213.240.178.58)
07:48:52 × hiroaki quits (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
07:53:12 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:53:19 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
07:53:19 DTZUZU joins (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net)
07:56:03 × mmohammadi9812 quits (~mmohammad@5.115.65.59) (Ping timeout: 258 seconds)
07:56:29 mmohammadi9812 joins (~mmohammad@5.238.178.31)
07:57:13 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
07:57:27 hackage ukrainian-phonetics-basic 0.1.5.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.5.0 (OleksandrZhabenko)
07:58:28 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
07:59:25 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
08:01:31 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
08:02:07 jedws joins (~jedws@101.184.148.229)
08:03:12 dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
08:06:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:06:38 × SeMas quits (uid32977@gateway/web/irccloud.com/x-rjkgugwtutnfvjwx) (Quit: Connection closed for inactivity)
08:07:44 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
08:07:58 hackage stack-clean-old 0.2 - Clean away old stack build artefacts https://hackage.haskell.org/package/stack-clean-old-0.2 (JensPetersen)
08:08:39 Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it)
08:09:07 × jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:09:35 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:10:01 × polyrain quits (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:12:05 cfricke joins (~cfricke@unaffiliated/cfricke)
08:12:32 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 258 seconds)
08:13:01 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
08:13:16 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
08:13:16 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
08:13:16 GyroW joins (~GyroW@unaffiliated/gyrow)
08:14:40 jedws joins (~jedws@101.184.148.229)
08:14:59 christo joins (~chris@81.96.113.213)
08:15:02 × jedws quits (~jedws@101.184.148.229) (Client Quit)
08:16:32 × ericsagnes quits (~ericsagne@2405:6580:0:5100:6142:ab79:42d1:afc1) (Ping timeout: 260 seconds)
08:16:56 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
08:18:01 vodkaInf1rno joins (~wormphleg@104.131.156.184)
08:18:14 × vodkaInferno quits (~wormphleg@104.131.156.184) (Read error: Connection reset by peer)
08:18:38 × styledash quits (~styledash@157.230.173.136) (Read error: Connection reset by peer)
08:18:46 styledash7 joins (~styledash@157.230.173.136)
08:19:11 × beka quits (~beka@gothdyke.mom) (Ping timeout: 260 seconds)
08:19:28 × christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds)
08:19:49 beka joins (~beka@gothdyke.mom)
08:19:50 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:20:24 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
08:20:59 tuple joins (~igloo@66.115.157.106)
08:21:58 SanchayanM joins (~Sanchayan@122.167.95.166)
08:23:05 × Sanchayan quits (~Sanchayan@106.201.124.173) (Ping timeout: 240 seconds)
08:24:15 × tuple quits (~igloo@66.115.157.106) (Client Quit)
08:24:30 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
08:28:41 tuple joins (~igloo@66.115.157.106)
08:28:57 ericsagnes joins (~ericsagne@2405:6580:0:5100:198:130b:ef87:cdda)
08:32:00 × tuple quits (~igloo@66.115.157.106) (Client Quit)
08:33:12 xsperry joins (~as@unaffiliated/xsperry)
08:37:07 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
08:40:32 texasmynsted joins (~texasmyns@99.96.221.112)
08:45:07 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 256 seconds)
08:49:14 Lord_of_Life_ is now known as Lord_of_Life
08:50:23 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
08:50:26 knupfer joins (~Thunderbi@200116b82cb7c400f4108508b0e1b154.dip.versatel-1u1.de)
08:53:05 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-slcbmpdbycbqjlou) (Quit: Connection closed for inactivity)
08:55:33 × alp quits (~alp@2a01:e0a:58b:4920:487d:f3bf:e4da:7752) (Ping timeout: 272 seconds)
08:55:42 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
08:57:15 alp joins (~alp@2a01:e0a:58b:4920:d873:f5b:1d39:8a1c)
08:59:05 × Jonkimi727406120 quits (~Jonkimi@119.123.241.90) (Ping timeout: 240 seconds)
08:59:37 __monty__ joins (~toonn@unaffiliated/toonn)
09:00:01 × GsC_RuL3Z quits (~GsC_RuL3Z@s91904426.blix.com) ()
09:02:06 jedws joins (~jedws@101.184.148.229)
09:05:57 hackage lorentz 0.7.0 - EDSL for the Michelson Language https://hackage.haskell.org/package/lorentz-0.7.0 (gromak)
09:06:58 hackage hie-compat 0.1.0.0 - HIE files for GHC 8.6 and other HIE file backports https://hackage.haskell.org/package/hie-compat-0.1.0.0 (wz1000)
09:08:58 <gentauro> with PRAGMAs like: `{-# Language DerivingVia #-}` taken from https://old.reddit.com/r/haskell/comments/jibgfe/validpreorder_ord_aa_bool/ga5jalm/ will that not make it more complicated for newcomers to understand how to code in Haskell?
09:10:15 <gentauro> and would such a PRAGMA be part of the GHC20xx (global) PRAGMA? https://github.com/ghc-proposals/ghc-proposals/pull/372
09:13:51 thc202 joins (~thc202@unaffiliated/thc202)
09:15:52 lxsameer joins (~lxsameer@unaffiliated/lxsameer)
09:20:44 smtx joins (~smtx@185.244.214.217)
09:21:06 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
09:21:52 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
09:22:12 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
09:23:30 × jedws quits (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:23:43 vcxvxvxcvcx joins (57cf5f18@87-207-95-24.dynamic.chello.pl)
09:24:06 vcxvxvxcvcx parts (57cf5f18@87-207-95-24.dynamic.chello.pl) ()
09:24:29 damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net)
09:24:51 fendor joins (~fendor@078132040188.public.t-mobile.at)
09:26:43 × bartemius quits (~bartemius@109.252.20.20) (Remote host closed the connection)
09:29:14 × damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
09:32:35 oisdk joins (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1)
09:37:24 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
09:38:10 Jonkimi727406120 joins (~Jonkimi@119.123.241.90)
09:42:08 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
09:46:21 rinwa joins (~rinwa@5.102.238.236)
09:48:40 × dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
09:48:46 Katarushisu joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
09:49:11 siggard joins (michalc@gateway/shell/xshellz/x-bewvahwmjpoxlmze)
09:49:23 polyrain joins (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e)
09:52:12 <siggard> Hello. I come to you from iOS dev world and started studing Haskell with book "Learn You a Haskell for Great Good!". Before that I played a bit with Scala and did that basic Scala course by Martin Odersky.
09:52:51 <siggard> There is no slack channel nor gitter for Haskell community, isn't it? :-)
09:53:15 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
09:53:42 × xff0x quits (~fox@2001:1a81:5219:2300:4b1c:219b:a3ac:1af9) (Ping timeout: 260 seconds)
09:54:18 xff0x joins (~fox@2001:1a81:5219:2300:9ba4:4fa:1a33:4ccd)
09:54:41 <merijn> I'm sure someone has made something like that at some point
09:55:00 <merijn> tbh, LYAH isn't a particularly great book
09:55:35 <Zetagon> there is a functional programming zulip
09:55:39 × raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal)
09:57:14 <siggard> merijn: What would you recommen for someone who has programmed in object oriented environment for last 10 years? :-)
09:58:22 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 272 seconds)
09:58:36 <Cale> siggard: I often recommend "Programming in Haskell" by Graham Hutton as a good intro.
09:58:36 <merijn> There's "Programming in Haskell" by Graham Hutton, "Thinking Functionally with Haskell" by Richard Bird and of course https://haskellbook.com/
09:59:04 <merijn> siggard: The problem with LYAH is: It's not greatly structured, glosses over some details, and has no exercises (and kinda dated)
09:59:18 <Rembane> It has cute images though
09:59:26 <merijn> So the end result is that LYAH is great at "showing you cool things", but not so great in preparing you to "write actual code that does something"
09:59:50 <merijn> LYAH is importance/relevance is mostly historical
10:00:05 <merijn> In that it came out when there wasn't that much written about Haskell that was accessible
10:00:21 <Zetagon> I like https://www.seas.upenn.edu/~cis194/spring13/lectures.html . I'm not sure how good the introduction is because I didn't read it, but I like the last few parts
10:00:42 <merijn> And helped start (well, fuel, maybe?) the semi-mainstream popularity of Haskell
10:01:26 <merijn> I remember it coming out and the only other text I could find was the infamous tutorial :p
10:01:39 <merijn> @quote Brend whoever.named
10:01:39 <lambdabot> No quotes match. Are you on drugs?
10:01:41 <merijn> aww
10:01:51 × efficiently quits (~user@209.58.189.165) (Ping timeout: 260 seconds)
10:02:02 <merijn> @quote Brend
10:02:02 <lambdabot> Brend says: Whoever chose the title "A Gentle Introduction to Haskell" is obviously accustomed to wrestling bears in piranha pits or something.
10:04:09 m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
10:04:14 cfricke joins (~cfricke@unaffiliated/cfricke)
10:05:05 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
10:05:18 × jbox quits (~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9)
10:05:41 akegalj joins (~akegalj@93-142-98-67.adsl.net.t-com.hr)
10:06:33 <siggard> Thanks people. I will take a look on your recommendations. :-) Zetagon thanks, it looks like this course is from 2013 but there are homeworks so maybe it'll be easier to follow. Thanks!
10:06:56 <siggard> merijn: "infamous tutorial"? ;-)
10:07:11 <Zetagon> siggard: I particularily like the functor homeworks
10:09:10 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
10:09:20 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
10:09:20 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
10:09:20 GyroW joins (~GyroW@unaffiliated/gyrow)
10:11:06 <siggard> Cale: looks like i have that Haskell Book in my emoyer's library. But it's in PDF only which makes it hard to read on Kindle. :D
10:11:19 <siggard> But you think it's worth it, right?
10:12:42 <merijn> siggard: See the above quote :p
10:13:01 <merijn> siggard: There's an e-reader PDF version too, iirc
10:14:47 × bliminse quits (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Quit: leaving)
10:15:17 × aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 260 seconds)
10:16:40 ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
10:17:16 bliminse joins (~bliminse@host109-158-26-29.range109-158.btcentralplus.com)
10:20:21 bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru)
10:21:30 × bliminse quits (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Client Quit)
10:21:41 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:22:52 <ulidtko> does Cabal's build-type: Simple support distributing custom files?
10:23:40 <dcoutts__> ulidtko: do you mean installing extra files, or just including extra files into the source tarball?
10:23:45 <ulidtko> I can see there're apis like installOrdinaryFile in Distribution.Simple.Utils, but not sure how to use that
10:23:54 <ulidtko> dcoutts__, the former, installing
10:24:22 <dcoutts__> ulidtko: no it just supports installing header files I think
10:24:40 <merijn> You can install data files
10:24:57 <merijn> So it depends exactly what these files are for
10:24:57 <dcoutts__> oh yes, and data files
10:25:05 dcoutts__ is now known as dcoutts
10:25:11 <ulidtko> exactly, data files is what i need
10:25:20 <ulidtko> any guide links?..
10:26:20 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:26:30 <merijn> ulidtko: https://cabal.readthedocs.io/en/latest/cabal-package.html#accessing-data-files-from-package-code
10:27:00 <ulidtko> merijn, thank you
10:27:18 <merijn> ulidtko: and https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-data-files
10:28:34 raichoo joins (~raichoo@213.240.178.58)
10:29:44 × Kolkrabe quits (~user@unaffiliated/siracusa) (Quit: Bye!)
10:32:06 bliminse joins (~bliminse@host109-158-129-241.range109-158.btcentralplus.com)
10:32:06 × Stanley|00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
10:36:00 × tito_04 quits (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Quit: ZNC 1.7.5 - https://znc.in)
10:39:52 invaser joins (~Thunderbi@31.148.23.125)
10:40:07 avn joins (~avn@78-56-108-78.static.zebra.lt)
10:42:00 son0p joins (~son0p@181.58.39.86)
10:44:58 × unlink2 quits (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) (Remote host closed the connection)
10:45:26 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
10:46:23 unlink2 joins (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de)
10:46:38 × knupfer quits (~Thunderbi@200116b82cb7c400f4108508b0e1b154.dip.versatel-1u1.de) (Quit: knupfer)
10:46:48 knupfer joins (~Thunderbi@200116b82cb7c400ed5464f4c167feaa.dip.versatel-1u1.de)
10:47:13 × knupfer quits (~Thunderbi@200116b82cb7c400ed5464f4c167feaa.dip.versatel-1u1.de) (Client Quit)
10:47:21 knupfer joins (~Thunderbi@200116b82cb7c400050f6fe9a7d2b159.dip.versatel-1u1.de)
10:47:57 × averell quits (~averell@unaffiliated/averell) (Quit: .)
10:50:17 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:50:33 GyroW_ joins (~GyroW@d54C03E98.access.telenet.be)
10:50:33 × GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
10:50:33 GyroW_ joins (~GyroW@unaffiliated/gyrow)
10:50:55 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
10:51:54 × Jonkimi727406120 quits (~Jonkimi@119.123.241.90) (Ping timeout: 256 seconds)
10:54:37 taurux joins (~taurux@net-93-151-203-8.cust.vodafonedsl.it)
10:54:55 × raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal)
10:56:04 × ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection)
10:57:22 ptrcmd joins (~ptrcmd@unaffiliated/petercommand)
10:58:04 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
10:58:19 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
10:58:46 GyroW joins (~GyroW@d54c03e98.access.telenet.be)
10:58:46 × GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
10:58:46 GyroW joins (~GyroW@unaffiliated/gyrow)
11:01:53 averell joins (~averell@unaffiliated/averell)
11:02:28 hackage reanimate 1.1.2.1 - Animation library based on SVGs. https://hackage.haskell.org/package/reanimate-1.1.2.1 (DavidHimmelstrup)
11:04:32 machinedgod joins (~machinedg@24.105.81.50)
11:05:50 is_null joins (~jpic@pdpc/supporter/professional/is-null)
11:06:07 × petersen quits (~petersen@redhat/juhp) (Quit: petersen)
11:08:23 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
11:08:33 × alp quits (~alp@2a01:e0a:58b:4920:d873:f5b:1d39:8a1c) (Ping timeout: 272 seconds)
11:08:57 × nkly quits (~nkly@2a02:8109:9ac0:4a4c::baa2) (Ping timeout: 260 seconds)
11:09:57 ndbopoi^ joins (ndbopoi@ip98-184-89-2.mc.at.cox.net)
11:10:55 × alx741 quits (~alx741@186.178.110.169) (Ping timeout: 260 seconds)
11:13:48 obihann joins (~jhann@156.34.160.69)
11:14:35 nkly joins (~nkly@2a02:8109:9ac0:4a4c::9b9d)
11:14:44 × ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Quit: leaving)
11:16:47 × chaosmasttter quits (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:16:54 × rprije quits (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 272 seconds)
11:17:28 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
11:18:55 × ericsagnes quits (~ericsagne@2405:6580:0:5100:198:130b:ef87:cdda) (Ping timeout: 240 seconds)
11:24:15 × nkly quits (~nkly@2a02:8109:9ac0:4a4c::9b9d) (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in)
11:25:05 nkly joins (~nkly@ip5f5bd51d.dynamic.kabel-deutschland.de)
11:25:07 plutoniix joins (~q@175.176.222.7)
11:25:24 alx741 joins (~alx741@186.178.110.246)
11:31:43 ericsagnes joins (~ericsagne@2405:6580:0:5100:dc8a:5173:1db7:7a54)
11:36:40 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
11:37:57 hackage morley 1.8.1 - Developer tools for the Michelson Language https://hackage.haskell.org/package/morley-1.8.1 (gromak)
11:38:02 <__monty__> I think arian was talking about the original issue, i.e., they don't exist after just building the expression.
11:38:15 <__monty__> Whoops, wrong chan.
11:39:28 hackage indigo 0.3.1 - Convenient imperative eDSL over Lorentz. https://hackage.haskell.org/package/indigo-0.3.1 (gromak)
11:40:22 alp joins (~alp@2a01:e0a:58b:4920:ecb1:3ebe:b736:8221)
11:41:22 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
11:41:22 <dminuoso> Are there QQs for ghc-lib-parser, to generate AST fragments from?
11:41:41 <dminuoso> (Say via TH Exp?)
11:43:29 × son0p quits (~son0p@181.58.39.86) (Quit: leaving)
11:46:53 drbean joins (~drbean@TC210-63-209-53.static.apol.com.tw)
11:52:24 chaosmasttter joins (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de)
11:54:05 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
11:57:15 jchia__ joins (~jchia@45.32.62.73)
11:58:17 × jchia__ quits (~jchia@45.32.62.73) (Remote host closed the connection)
11:58:45 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
11:59:15 jchia__ joins (~jchia@45.32.62.73)
12:00:02 × smtx quits (~smtx@185.244.214.217) ()
12:01:02 × jchia__ quits (~jchia@45.32.62.73) (Remote host closed the connection)
12:01:32 ptrcmd joins (~ptrcmd@unaffiliated/petercommand)
12:01:49 jchia__ joins (~jchia@58.32.37.146)
12:01:52 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
12:03:30 urodna joins (~urodna@unaffiliated/urodna)
12:08:09 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
12:09:58 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
12:11:54 raichoo joins (~raichoo@213.240.178.58)
12:13:47 × alp quits (~alp@2a01:e0a:58b:4920:ecb1:3ebe:b736:8221) (Ping timeout: 272 seconds)
12:14:34 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
12:17:45 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
12:18:45 × Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 240 seconds)
12:21:22 whatisRT joins (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1)
12:22:10 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
12:26:55 × knupfer quits (~Thunderbi@200116b82cb7c400050f6fe9a7d2b159.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
12:31:13 nbloomf joins (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88)
12:31:43 petersen joins (~petersen@redhat/juhp)
12:33:06 Stanley00 joins (~stanley00@unaffiliated/stanley00)
12:33:35 PlasmaStrike joins (~mattplasm@38.73.141.198)
12:34:05 akad joins (~akad@109107030050.radomsko.vectranet.pl)
12:37:20 × fendor quits (~fendor@078132040188.public.t-mobile.at) (Ping timeout: 272 seconds)
12:37:23 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Client Quit)
12:37:37 damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net)
12:37:46 PlasmaStrike joins (~mattplasm@38.73.141.198)
12:37:53 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds)
12:39:05 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
12:39:09 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 256 seconds)
12:40:15 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Client Quit)
12:40:29 PlasmaStrike joins (~mattplasm@38.73.141.198)
12:43:32 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Client Quit)
12:43:45 PlasmaStrike joins (~mattplasm@38.73.141.198)
12:44:45 <Raito_Bezarius> is it a good idea to use Alex & Megaparsec together?
12:45:25 <Raito_Bezarius> I'm trying to write a parser for programming language which requires to add automatically semicolon to the end of certain lexemes, I'm not sure megaparsec is built to handle this by itself
12:45:31 <dminuoso> It can be sensible, sure
12:46:13 kish` joins (~oracle@unaffiliated/oracle)
12:46:25 × xff0x quits (~fox@2001:1a81:5219:2300:9ba4:4fa:1a33:4ccd) (Ping timeout: 240 seconds)
12:46:31 <dminuoso> Raito_Bezarius: You can trivially do this yourself
12:46:53 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
12:47:00 <Raito_Bezarius> using megaparsec?
12:47:08 <dminuoso> Sure
12:47:17 <dminuoso> lexeme spc p = p <* spc
12:47:19 <Raito_Bezarius> Is there any pointer to where should I look in the megaparsec docs?
12:47:25 <dminuoso> lexemeSemi spc p = p <* semi <* spc
12:47:29 <dminuoso> Done
12:47:31 xff0x joins (~fox@2001:1a81:5219:2300:5d08:4351:f573:c6af)
12:47:35 <Raito_Bezarius> ha
12:48:05 <dminuoso> (Note that the first definition is already defined in megaparsec, I just included it for reference)
12:48:07 <Raito_Bezarius> well, I'll read more the docs until I understand why is it enough/trivial enough
12:48:13 <Raito_Bezarius> but like
12:48:20 <dminuoso> lexing and parsing are really the same thing. :)
12:48:20 <Raito_Bezarius> if I want to add a semicolon to a lexeme if only it's a certain lexeme
12:48:26 <Raito_Bezarius> I can just really chain lexeme & lexemeSemi ?
12:48:35 <dminuoso> Raito_Bezarius: Yes, that's why you use both lexeme and lexemeSemi
12:48:38 <dminuoso> For example:
12:48:55 cfricke joins (~cfricke@unaffiliated/cfricke)
12:49:05 × kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
12:49:13 <dminuoso> say you have:
12:49:23 <dminuoso> lexemeSemi = p <* semi <* spc
12:49:23 × carlomagno quits (~cararell@148.87.23.7) (Remote host closed the connection)
12:49:26 <dminuoso> Where spc is your space consumer
12:49:28 <dminuoso> Then you can define
12:49:39 <dminuoso> err
12:49:42 <dminuoso> lexemeSemi p = p <* semi <* spc
12:49:53 <dminuoso> foo = lexemeSemi (string "foo")
12:50:00 <dminuoso> which would lex `foo;` plus leading whitespace
12:50:05 <dminuoso> (or trailing I guess)
12:50:09 PlasmaStrike parts (~mattplasm@38.73.141.198) ("ERC (IRC client for Emacs 28.0.50)")
12:50:10 <Raito_Bezarius> yes
12:50:17 <Raito_Bezarius> now if I give foo; can I still get foo; without error?
12:50:28 <dminuoso> "get foo; without error"?
12:50:29 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds)
12:50:31 <Raito_Bezarius> sorry
12:50:36 <Raito_Bezarius> if I give as input `foo;`
12:50:36 × lpy quits (~nyd@unaffiliated/elysian) (Quit: lpy)
12:50:41 <Raito_Bezarius> can I still make it so it lex to `foo;`
12:50:44 <geekosaur> I think Raito_Bezarius wants the opposite of what you're providing
12:50:50 <Raito_Bezarius> I want both
12:50:51 PlasmaStrike joins (~mattplasm@38.73.141.198)
12:50:55 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:50:58 <Raito_Bezarius> I want semicolon to be automatically added when it's relevant
12:50:59 <geekosaur> insert a virtual semicolon after some lexemes, but allow it to be explicit as well
12:51:05 <dminuoso> ahh
12:51:11 <Raito_Bezarius> something like lexemeSemi (string "foo") <|> lexeme (string "foo;") or something like this
12:51:15 <dminuoso> Well, I'd just get rid of it in the parser
12:51:19 <dminuoso> or lexer
12:51:31 <dminuoso> I see
12:51:36 <dminuoso> You can make the semi optional
12:51:43 <dminuoso> lexemeSemi p = p <* optional semi <* spc
12:52:03 <Raito_Bezarius> but then, this separator won't always appear right?
12:52:12 <dminuoso> what do you mean by separator?
12:52:15 <Raito_Bezarius> the ;
12:52:18 <Raito_Bezarius> it will lex as foo or foo;
12:52:20 <Raito_Bezarius> right?
12:52:28 <dminuoso> Raito_Bezarius: What do you mean with "lex as"?
12:52:32 <dminuoso> It will *consume* both
12:52:57 <Raito_Bezarius> I mean, my grammar assumes that those semicolons always appear
12:53:32 <Raito_Bezarius> so the parser will expect semicolons for certain rules, but without automatically adding them explicitly, the rules will fail
12:53:43 <dminuoso> Im not quite sure what "adding" even means?
12:53:54 <dminuoso> We're in a parser, we dont generate a string, we consume it
12:53:56 <Raito_Bezarius> in this case, I'm looking at Julia
12:54:09 <Raito_Bezarius> if I have, `while foo end`
12:54:15 carlomagno joins (~cararell@148.87.23.12)
12:54:23 <Raito_Bezarius> it should appear as `while foo end;`
12:54:29 <dminuoso> what do you mean by "appear"?
12:54:56 <dminuoso> A parser usually transforms `while foo end;` into some concrete or abstract syntax tree
12:55:02 <Raito_Bezarius> Yes
12:55:08 <Raito_Bezarius> Hm, maybe I am creating a XY problem or something
12:55:54 Criggie1 joins (~Criggie@154.13.1.56)
12:56:16 <Raito_Bezarius> dminuoso: thanks for the ideas, I'll try to go for implementation first and expose the precise problem when I encounter it
12:56:19 <Raito_Bezarius> That was very helpful
12:56:20 <geekosaur> if you want to parse something and then prettyprint it, just have the prettyprinter always print the semicolons while rendering the AST back into text
12:56:34 <Raito_Bezarius> I'm not in the prettyprint phase though I plan to do so
12:56:42 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:56:46 <Raito_Bezarius> I was rather adapting a set of rules from a grammar into megaparsec parsing code
12:57:00 <Raito_Bezarius> and the set of rules expects semicolon because the lexical analysis suggests to automatically add them
12:57:02 <dminuoso> Raito_Bezarius: So this is where things can very very quickly become complicated.
12:57:16 <dminuoso> Do you need to preserve the exact input?
12:57:21 <Raito_Bezarius> No I do not need
12:57:34 × perry69420 quits (6ee39f85@110.227.159.133) (Ping timeout: 245 seconds)
12:57:39 <Raito_Bezarius> I didn't want to go for custom lexer code because I wanted to benefit from megaparsec source position stuff
12:57:48 <dminuoso> Raito_Bezarius: Okay. I think there may be some confusion here of what the output of a parser really is
12:57:58 <Raito_Bezarius> I want to output an AST right now
12:58:12 <Raito_Bezarius> I have an AST in terms of data
12:58:13 <dminuoso> Raito_Bezarius: Do you represent semicolons in that AST?
12:58:19 <Raito_Bezarius> No, so I can just discard them
12:58:32 <Raito_Bezarius> But I was afraid of stuff like ambiguous things in the grammar
13:00:59 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
13:01:31 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
13:03:45 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
13:04:27 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:05:09 <Raito_Bezarius> maybe stupid question, I'm trying to have "some digitChar" but I cannot because "Illegal equational constraint Token s ~ Char", should I just enable TypeFamilies or GADTs?
13:05:16 <Raito_Bezarius> or am I doing something wrong?
13:05:22 <Raito_Bezarius> integer = some digitChar <?> "an integer"
13:05:33 nbloomf joins (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88)
13:06:08 × plutoniix quits (~q@175.176.222.7) (Quit: Leaving)
13:07:09 <dminuoso> Raito_Bezarius: What's the type signature of integer?
13:07:33 <dminuoso> Or.. that error mmm
13:07:36 ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net)
13:07:36 × ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host)
13:07:36 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
13:07:38 <dminuoso> Which ghc are you using?
13:07:52 vacm joins (~vacwm@70.23.92.191)
13:07:53 <Raito_Bezarius> I want something like (MonadParsec m, …) => m [Char]
13:07:56 <Raito_Bezarius> GHC8 dminuoso
13:08:01 <Raito_Bezarius> 8.10
13:08:36 <Raito_Bezarius> enabling GADT made it work
13:09:05 xerox_ joins (~xerox@unaffiliated/xerox)
13:09:55 <dminuoso> It's possible this is due to some changes in 8.10
13:10:23 <dminuoso> "GHC now performs more validity checks on inferred type signatures."
13:10:27 <dminuoso> That's very non-descript.
13:10:34 <dminuoso> But Im guessing that's why
13:11:17 <geekosaur> this might be worth asking haskell-cafe about, if it's affecting random Megaparsec parsers then it might be surprising to a bunch of people
13:11:36 <geekosaur> lthough 8.10 has been out for a while now so it should have already caused an uproar, hm
13:12:12 danza joins (~francesco@151.53.87.185)
13:12:17 <Raito_Bezarius> Well, I'm okay with enabling type families or GADT meanwhile
13:13:29 <geekosaur> I'm kinda not so comfortable with it tbh. Megaparsec seems a strange place for a hidden dependency on GADTs to arise
13:14:14 <Raito_Bezarius> Could one of you verify in a REPL I'm not saying stupid things?
13:14:26 <Raito_Bezarius> I just imported a bunch of megaparsec classic things, everything is built-in
13:14:28 <dminuoso> Raito_Bezarius: Im very sure this is why.
13:14:31 <merijn> dminuoso: I think it's basically like before where GHC would infer types that required extensions that weren't enabled
13:14:47 <merijn> And then when it (correctly) demanded those extensions be enabled, stuff broke
13:14:50 <dminuoso> Raito_Bezarius: The release notes even lists a similar example, albeit with a different extension.
13:14:58 <Raito_Bezarius> Fair enough
13:15:09 <dminuoso> merijn: Oh because it affected the semantics of other code?
13:15:15 <dminuoso> Like ScopedTypeVariables?
13:15:17 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Read error: Connection reset by peer)
13:15:26 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
13:15:51 <merijn> dminuoso: No, stuff like, if you left out a type signature and GHC inferred one that used MultiParamTypeclasses, then it would allow the inferred type *even* if MPTC wasn't enabled
13:15:55 <merijn> Which is, of course, wrong
13:16:02 <dminuoso> (Say because you're doing something like `(\(e :: FooException) -> ...)`, then enabling ScopedTypeVariables could actually alter the meaning in other places where if you have ExplicitForAll
13:16:22 <dminuoso> mmm
13:16:40 <merijn> So it used to allow types with extensions that weren't enabled *iff* the types were inferred, which is a bug, but one you can accidentally rely on
13:16:43 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds)
13:16:49 × ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection)
13:17:12 xerox__ joins (~xerox@unaffiliated/xerox)
13:17:13 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
13:17:29 <dminuoso> merijn: I cant even fathom what kind of engineering complexity language extensions brings with them because you have precisely this kind of cross-module friction.
13:17:30 × Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Read error: Connection reset by peer)
13:17:47 Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it)
13:18:03 <merijn> So it looks like, in Raito_Bezarius's example is that due to the lack of type signature, the inferred type has megaparsec Token constraint, which uses type families, but type families isn't enabled in his code
13:18:10 <dminuoso> merijn: Right.
13:18:18 <merijn> So writing out a non-polymorphic type would *also* fix the issue
13:18:21 <dminuoso> merijn: Im just saying the release note could have explained this better
13:18:23 <Raito_Bezarius> merijn: I see
13:18:23 <dminuoso> I *assumed* what you said
13:18:54 <merijn> Raito_Bezarius: If you write out a specific type, then the constraint is already solved and the extension unneeded
13:18:54 <dminuoso> I sometimes wish, GHC would roll out such things with deprecation notices
13:18:56 <dminuoso> like
13:19:02 <dminuoso> "This is going to fail in a future GHC"
13:19:06 × PragCypher quits (~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in)
13:19:09 <merijn> dminuoso: Where do you draw the line, though?
13:19:09 ptrcmd joins (~ptrcmd@unaffiliated/petercommand)
13:19:20 <merijn> Does every bugfix need a deprecation warning?
13:19:20 PragCypher joins (~cypher@li1507-98.members.linode.com)
13:19:34 <merijn> dminuoso: See the endless discussion on the TH change I got temporarily rolled back in 8.10
13:19:40 <dminuoso> Which TH change?
13:20:12 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
13:20:49 <merijn> That typeclass constraint (incorrectly) are allowed to violate the staging/splicing rules
13:20:52 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
13:20:54 <merijn> https://gitlab.haskell.org/ghc/ghc/-/issues/17816
13:21:07 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
13:22:07 <dminuoso> merijn: Perhaps GHC releases should be tested against stackage.
13:22:12 <merijn> They are
13:22:17 <merijn> But once again
13:22:25 <merijn> Where's the line?
13:22:50 <merijn> The behaviour in that ticket is *clearly* a bug that violates the definition of TH as it is specified
13:22:51 <dminuoso> 1.73% breakage
13:24:02 <merijn> Is that including transitive dependencies?
13:24:02 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Read error: Connection reset by peer)
13:24:15 <merijn> Because then you probably will be unable to ever fix anything
13:24:32 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
13:24:56 xerox__ is now known as xerox_
13:25:04 <dminuoso> Unrelatedly
13:25:06 <dminuoso> Im sad now
13:25:08 <dminuoso> % % Just 'a' <**> (Just 'b' <&> (,))
13:25:08 <yahb> dminuoso: ; <interactive>:183:1: error: parse error on input `%'
13:25:13 <dminuoso> % Just 'a' <**> (Just 'b' <&> (,))
13:25:14 <yahb> dminuoso: Just ('b','a')
13:25:16 <dminuoso> % Just 'a' <**> Just 'b' <&> (,)
13:25:16 <yahb> dminuoso: ; <interactive>:185:15: error:; * Couldn't match type `Char' with `Char -> a'; Expected type: Maybe (Char -> a); Actual type: Maybe Char; * In the second argument of `(<**>)', namely Just 'b'; In the first argument of `(<&>)', namely Just 'a' <**> Just 'b'; In the expression: Just 'a' <**> Just 'b' <&> (,); * Relevant bindings include it :: Maybe (b -> (a, b)) (bound
13:25:21 <dminuoso> Why is the precedence all wrong here? :(
13:26:51 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:27:14 <dminuoso> merijn: But I see what you're getting at.
13:27:19 <dminuoso> I mean for bugfixes its hard
13:27:25 <dminuoso> But when you *know* you're making breaking changes
13:27:34 <dminuoso> Its not too much to ask for a deprecation notice one major release in advance
13:27:46 <merijn> dminuoso: -Wcompat exists
13:27:54 <merijn> But, sadly, not enabled by default
13:28:14 <dminuoso> merijn: Does -Wcompat work with *GHC* changes?
13:28:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:28:48 <merijn> for those added
13:28:48 <dminuoso> I mean only if they receive a particular warning for it
13:28:54 <dminuoso> Like, star-is-type
13:30:01 ggole joins (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7)
13:31:05 × jespada quits (~jespada@90.254.243.98) (Ping timeout: 240 seconds)
13:32:45 jespada joins (~jespada@90.254.243.98)
13:33:01 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
13:33:15 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
13:33:54 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-nwqswzdnuoofdofv) (Quit: Connection closed for inactivity)
13:34:25 knupfer joins (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de)
13:34:25 × knupfer quits (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) (Client Quit)
13:34:38 knupfer joins (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de)
13:36:22 gothnbass joins (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net)
13:36:35 <Raito_Bezarius> Let us suppose that I'd like to define a character literal as something which is an ASCII char which is not \ or " and accept the escaped versions as char literals
13:36:38 mimi_vx joins (~mimi@tulipan.habr.nat.praha12.net)
13:36:42 <Raito_Bezarius> charLiteral = satisfy (all isValidCharacter) <|> string "\̈ <|> string "̈" <?> "a character"
13:36:45 <Raito_Bezarius> something like this
13:36:58 <Raito_Bezarius> it would produce [Char] necessarily, right?
13:37:22 <Raito_Bezarius> is it a bad idea to have a charLiteral producing [Char]? Is it easy to build stringLiteral which (++) the many charLiteral (?)
13:38:34 <Raito_Bezarius> (also, it seems like that this charLiteral produces a type of (Foldable t) => m (t Char) rather than m [Char] which I can understand but I'm not sure how I can enforce the array version
13:39:11 vacm joins (~vacwm@70.23.92.191)
13:39:20 <geekosaur> list, not array; and you just ive that as the type signature instead of the more general inferred one
13:39:34 <geekosaur> inference always goes for the most general signature, which is not always what you want
13:39:46 <geekosaur> *give that
13:40:08 <Raito_Bezarius> right
13:40:17 <Raito_Bezarius> what I might not understand
13:40:28 <Raito_Bezarius> rather than having token of Char, I have now token of [Char]
13:40:34 <Raito_Bezarius> so parseTest cannot use such a parser looks like
13:40:48 <Raito_Bezarius> is there a way to keep Char token?
13:41:01 <Raito_Bezarius> charLiteral
13:41:04 <Raito_Bezarius> :: (MonadParsec e s m, Tokens s ~ [Char], Token s ~ [Char]) =>
13:41:06 <Raito_Bezarius> m [Char]
13:41:08 <Raito_Bezarius> here's the obtained type sig
13:41:45 <Raito_Bezarius> what I want is Token s ~ Char
13:42:15 perry69420 joins (6ee39f85@110.227.159.133)
13:42:59 <geekosaur> not if it returns more than one
13:43:13 <dminuoso> satisfy :: MonadParsec e s m => (Token s -> Bool) -> m (Token s)
13:43:14 <geekosaur> what makes you think parseTest can't work with [Char]?
13:43:44 <Raito_Bezarius> geekosaur: sorry, I meant rather that I would not be able to do parseTest myParser "a string" and would have to do parseTest myParser aListOfString
13:43:53 <Raito_Bezarius> so if I do, charLiteral = many (satisfy isValidCharacter) <|> string "\̈ <|> string "̈" <?> "a character"
13:44:19 × dmiles quits (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 256 seconds)
13:44:45 × drbean quits (~drbean@TC210-63-209-53.static.apol.com.tw) (Ping timeout: 240 seconds)
13:45:04 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
13:45:07 <Raito_Bezarius> but if I do, parseTest (charLiteral :: Parser [Char]) "abc"
13:45:18 <Raito_Bezarius> it fails with Couldn't match type ‘Text’ with ‘[Char]’
13:45:21 <Raito_Bezarius> arising from a use of ‘charLiteral’
13:46:19 <Raito_Bezarius> hm
13:46:33 <Raito_Bezarius> many will give: m [a]
13:46:52 <Raito_Bezarius> so many (satisfy X) should give m [Token s] right?
13:47:09 <Raito_Bezarius> at the same time, string will give m (Tokens s) rather than m [Token s], I suppose?
13:47:43 <Raito_Bezarius> but as, Tokens s ~ [Char] and Token s ~ Char, shouldn't it work fine?
13:49:49 × ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Quit: leaving)
13:49:57 × roconnor quits (~roconnor@host-23-91-186-59.dyn.295.ca) (Ping timeout: 260 seconds)
13:50:22 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 246 seconds)
13:50:56 dmiles joins (dmiles@c-73-67-179-188.hsd1.wa.comcast.net)
13:52:50 ptrcmd joins (~ptrcmd@unaffiliated/petercommand)
13:53:01 invaser joins (~Thunderbi@31.148.23.125)
13:53:06 <gothnbass> I've been looking into porting an existing Common Lisp codebase into Haskell, but it's possible I'm barking up the wrong AST. The application dynamically serialises/deserialises objects according to definitions that are stored in a database, and that cannot be known at compile-time. Is this feasible in Haskell, or am I running myself face-first into the type system?
13:53:46 ransom joins (~c4264035@2601:285:201:6720:b121:bf7e:316a:1ddf)
13:55:44 son0p joins (~son0p@181.136.122.143)
13:55:46 alp joins (~alp@2a01:e0a:58b:4920:aca7:fd95:ef08:3e24)
13:56:41 kish` is now known as kish
13:56:58 samlamamma joins (~user@c-8283e355.05-76-616c6b1.bbcust.telenor.se)
13:56:59 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds)
13:57:57 Amras joins (~Amras@unaffiliated/amras0000)
13:58:21 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
13:58:40 <dminuoso> gothnbass: That's absolutely feasible.
13:58:50 × knupfer quits (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) (Quit: knupfer)
13:59:33 <gothnbass> That's a relief. There's a lot to love about CL, but I got a taste of the type-system's assurances in Haskell, and I want more :)
14:00:45 <dminuoso> gothnbass: What do these definitions look like?
14:01:19 × damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
14:02:15 <gothnbass> They're stored in a Neo4j database, so a JSON object is pretty much their natural representation. I'd just use a Map, but they're heterogeneous.
14:04:07 <dminuoso> gothnbass: If they're already in JSON, you could keep that as JSON directly?
14:04:09 × invaser quits (~Thunderbi@31.148.23.125) (Remote host closed the connection)
14:04:31 <dminuoso> Well, `Value` for instance
14:04:32 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Remote host closed the connection)
14:04:38 <gothnbass> To be slightly less vague, the Haskell representation of one of them looks like `data Tag = Tag { uid :: String , createddate :: Int , original_uid :: String , description :: Maybe String } deriving (Show)`
14:05:48 × akegalj quits (~akegalj@93-142-98-67.adsl.net.t-com.hr) (Quit: Lost terminal)
14:06:06 roconnor joins (~roconnor@host-192.252-162-14.dyn.295.ca)
14:06:12 PlasmaStrike joins (~mattplasm@38.73.141.198)
14:06:57 knupfer joins (~Thunderbi@200116b82cb7c4008d74fd1dd144f3b4.dip.versatel-1u1.de)
14:08:46 <gothnbass> It's a 2-layer app, where the layer closes to the DB is basically an engine that dynamically constructs a REST API according to whatever the DB says is valid. I started with porting the webapp first, which receives JSON objects, and is expected to deal with them on the fly. It _can_ fetch the schema via the API, but of course that's also a runtime operation.
14:10:27 <gothnbass> But keeping them in JSON is an interesting idea. It hadn't occurred to me to parse them that far and no further. Thanks for the pointer!
14:10:53 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
14:11:08 <dminuoso> gothnbass: JSON/Value might not be an ideal format though.
14:11:20 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
14:11:31 Chi1thangoo joins (~Chi1thang@87.112.60.168)
14:13:00 <dminuoso> gothnbass: Maybe I misunderstood. Are the data in JSON, or the definitions?
14:13:02 ddellacosta joins (~dd@86.106.121.168)
14:13:23 <dminuoso> Also, can these things be nested? Can there be recursion?
14:13:35 <dminuoso> (That is, can the data be cyclic)
14:15:25 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
14:15:50 <gothnbass> dminuoso: JSON's just a representation format, but is a good fit. Absolutely they can be nested and there can be recursion; it's part of the idea, so you can chase assocations from one node to another.
14:17:33 invaser joins (~Thunderbi@31.148.23.125)
14:18:09 <gothnbass> dminuoso: Because of this, I'm using JSON as the format for returning data from the API, as well as for representing the schema when a client calls on that API to find out what's in there. What I'm actually trying to port right now is the webapp on top of the API, which receives JSON and constructs HTML accordingly.
14:18:48 <gothnbass> I'm basically putting a relational-inspired schema on top of a graph database, because you can't put one in there directly. This is the most practical (least impractical?) way I found of doing that.
14:19:13 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Ping timeout: 265 seconds)
14:19:42 <dminuoso> It's mildly amusing, that people go to great length to ignore 50 years of research in relational databases, put up unstructured databases, and then there's folks like you putting effort into figuring out how to specify a schema for that.
14:19:55 <gothnbass> I know, right? :)
14:20:30 <Raito_Bezarius> :D
14:20:40 texasmynsted joins (~texasmyns@99.96.221.112)
14:20:43 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
14:21:19 <dminuoso> gothnbass: My first instinct, is to not think about JSON here.
14:21:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:21:29 <gothnbass> I love relational databases, and have since I first administered a production one in '97, but there are problem-spaces for which they're just not a good fit. Graph DBs are a great fit for this space, but I've seen the mess that can result when the data definitions are scattered through the codebase, and nobody actually defined a clear data model.
14:21:31 <dminuoso> JSON seems like a bad fit for a few reasons
14:21:44 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
14:21:49 <dminuoso> If you want a graph, use proper graph data types.
14:22:07 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:22:18 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds)
14:22:36 ddellacosta joins (~dd@86.106.121.168)
14:22:41 <dminuoso> gothnbass: So far, any excuse I've heard for unstructured databases is just "We are too lazy/unprincipled/messy"
14:23:03 howdoi joins (uid224@gateway/web/irccloud.com/x-vkinnmkhoknarggj)
14:23:24 <gothnbass> dminuoso: also, "but properly updating the schema is haaard!" Well, yes, it often is.
14:23:49 FreeBirdLjj joins (~freebirdl@101.228.42.108)
14:23:49 <dminuoso> Yes. And all the engineering complexity you put into managing the schema *pales* in comparison to all the pain and effort you spend in working with completely unstructured data.
14:24:29 <gothnbass> Hence me wanting to put a structure onto it, complete with constraints on what kind of relationships you can make between what kinds of nodes.
14:24:39 <dminuoso> And it makes testing so much harder, data retrieval becomes complex, hard to optimize for, and very difficult to analyze with formal methods
14:24:45 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds)
14:24:56 <dminuoso> At any rate
14:25:17 <dminuoso> I have not solved that kind of problem, but I see absolutely no reason why haskell wouldn't be a prime candidate for this type of problem.
14:25:51 <gothnbass> Well, I already solved it in CL, so I'd hope it can do it :)
14:25:52 <dminuoso> Presumably you're doing something similar to OpenAPI?
14:26:37 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
14:27:36 <gothnbass> Will be, yes. At the moment the schema API basically returns a dump into JSON, which has been enough for debugging purposes. I plan to turn that into something OpenAPI-compliant.
14:30:19 texasmynsted joins (~texasmyns@99.96.221.112)
14:31:47 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
14:31:55 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:34:00 Stanley00 joins (~stanley00@unaffiliated/stanley00)
14:34:25 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds)
14:35:18 bitmapper joins (uid464869@gateway/web/irccloud.com/x-plvaooheqznjbhqg)
14:35:30 _vaibhavingale_ joins (~Adium@203.188.228.9)
14:38:34 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds)
14:38:57 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 260 seconds)
14:40:58 Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
14:41:17 PlasmaStrike joins (~mattplasm@38.73.141.198)
14:45:30 × debugloop quits (~danieln@unaffiliated/debugloop) (Quit: WeeChat 2.9)
14:50:13 × ransom quits (~c4264035@2601:285:201:6720:b121:bf7e:316a:1ddf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:54:46 × PlasmaStrike quits (~mattplasm@38.73.141.198) (Ping timeout: 272 seconds)
14:55:03 × bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
14:56:19 × cpape quits (~user@static.180.18.203.116.clients.your-server.de) (Remote host closed the connection)
14:56:30 cpape joins (~user@static.180.18.203.116.clients.your-server.de)
14:57:33 <dsal> Data.Aeson.Lens is pretty great for this kind of thing.
14:57:45 × idhugo quits (~idhugo@users-1190.st.net.au.dk) (Ping timeout: 240 seconds)
14:58:28 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
14:59:38 <gothnbass> OK. Lens is a feature I've heard about, but haven't yet gotten to exploring.
15:00:01 × Criggie1 quits (~Criggie@154.13.1.56) ()
15:00:45 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
15:01:31 clockboi joins (~clockboi@p200300ef8f0a9b00f86fc02b1cd4ca0a.dip0.t-ipconnect.de)
15:01:54 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
15:02:31 × Rembane quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 256 seconds)
15:02:39 Rembane joins (~Rembane@li346-36.members.linode.com)
15:02:51 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 260 seconds)
15:03:43 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
15:05:24 dme2 joins (~user@c-24-1-191-153.hsd1.il.comcast.net)
15:05:40 damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net)
15:05:46 <__monty__> Uhm, why does GHC 8.10 come with an older version of text than 8.4?
15:06:25 <Uniaika> I think it's a plain mistake
15:06:33 <Uniaika> __monty__: what's the status with 8.10.1?
15:06:59 <__monty__> Uniaika: Same for both 1.2.3.2.
15:07:19 <__monty__> And the 8.8 series came with 1.2.4.0
15:10:02 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
15:10:26 Tops2 joins (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de)
15:10:41 <Uniaika> __monty__: shit, indeed
15:10:42 × chaosmasttter quits (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
15:11:16 × polyrain quits (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:13:41 × Kaivo quits (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Quit: WeeChat 2.9)
15:14:46 Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
15:16:28 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
15:17:35 × toorevitimirp quits (~tooreviti@117.182.180.36) (Remote host closed the connection)
15:17:49 <Uniaika> __monty__: 8.10.1 should have indeed bundled 1.2.4.0 https://gitlab.haskell.org/ghc/ghc/-/issues/17214
15:18:12 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds)
15:18:23 × SanchayanM quits (~Sanchayan@122.167.95.166) (Quit: leaving)
15:19:32 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
15:19:48 <yushyin> https://github.com/haskell/text/issues/279
15:21:21 jedi1 joins (~jedi@185.204.1.185)
15:22:28 hackage byline 1.1.0.0 - Library for creating command-line interfaces (colors, menus, etc.) https://hackage.haskell.org/package/byline-1.1.0.0 (PeterJones)
15:22:46 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
15:22:50 <merijn> __monty__: Due to a miscoordination fuck up
15:22:57 <merijn> __monty__: THe older text is intentional (sadly)
15:23:07 acidjnk_new joins (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de)
15:23:31 <monsterchrom> Data is always structured. Even the most ardent user of "everything is string" has a much-more-rigorously-structured-than-string model. "unstructured" means there is a structure in someone's mind but they are too smug to spell it out.
15:24:01 <merijn> __monty__: https://github.com/haskell/text/issues/273
15:24:18 <monsterchrom> Err nevermind, late by an hour.
15:30:41 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:30:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
15:30:52 × bliminse quits (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) (Ping timeout: 260 seconds)
15:30:59 teardown joins (~user@unaffiliated/mrush)
15:31:00 <gothnbass> No matter: I agree with your point. There's always a structure somewhere in there; it's just a question of how it's communicated.
15:31:01 × teardown quits (~user@unaffiliated/mrush) (Client Quit)
15:31:46 bliminse joins (~bliminse@host109-158-129-241.range109-158.btcentralplus.com)
15:31:52 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:32:19 <gothnbass> Well, also whether it emanates from the minds of humans or Great Old Ones. I swear some structures aren't just non-relational, but outright non-Euclidean.
15:33:14 teardown joins (~user@unaffiliated/mrush)
15:36:13 × ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 264 seconds)
15:38:06 texasmynsted joins (~texasmyns@99.96.221.112)
15:40:26 ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf)
15:42:20 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
15:45:28 × whald_ quits (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) (Remote host closed the connection)
15:46:14 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
15:49:58 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-hxonwkkgkhrxlnbv)
15:52:09 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:54:43 ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
15:57:17 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Quit: birdd)
15:57:48 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
16:00:18 × knupfer quits (~Thunderbi@200116b82cb7c4008d74fd1dd144f3b4.dip.versatel-1u1.de) (Remote host closed the connection)
16:00:32 knupfer joins (~Thunderbi@200116b82cb7c400d8c9d953179e22c7.dip.versatel-1u1.de)
16:00:48 motherfsck joins (~motherfsc@unaffiliated/motherfsck)
16:01:01 kritzefitz joins (~kritzefit@212.86.56.80)
16:01:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:01:45 × damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
16:03:26 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
16:03:39 Abletai joins (~Lautris@p5df28535.dip0.t-ipconnect.de)
16:04:34 <Raito_Bezarius> is there a Text version of Read?
16:04:36 <Raito_Bezarius> read *
16:05:15 × Abletai quits (~Lautris@p5df28535.dip0.t-ipconnect.de) (Client Quit)
16:05:42 × Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 272 seconds)
16:06:18 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
16:07:21 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
16:07:28 hackage http-client-openssl 0.3.2.0 - http-client backend using the OpenSSL library. https://hackage.haskell.org/package/http-client-openssl-0.3.2.0 (MichaelSnoyman)
16:08:00 Rudd0 joins (~Rudd0@185.189.115.108)
16:08:59 kuribas joins (~user@ptr-25vy0i99c8o0gmravvh.18120a2.ip6.access.telenet.be)
16:09:09 kritzefitz joins (~kritzefit@212.86.56.80)
16:09:16 invaser joins (~Thunderbi@31.148.23.125)
16:10:45 <T0pH4t> so should this not be legal, I get that x is a rigid type if I try to invoke it with an instance of Show, but it should be legal... `data ShowW = forall x. Show x => ShowW (x -> String)`
16:10:52 <T0pH4t> i feel like i'm screwing up the type sig
16:11:38 <tomsmeding> T0pH4t: what is your intention with that data type?
16:12:07 <T0pH4t> its a simple example, but essentially `case w of ShowW f -> f (8 :: Int)`
16:12:11 <T0pH4t> for example ^
16:12:27 <tomsmeding> as it's written, that 'x' in 'forall x' is an existential variable
16:12:29 StoneToad_ joins (~StoneToad@199-167-119-149.ppp.storm.ca)
16:12:40 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
16:12:46 <tomsmeding> meaning that if you have a value ShowW f, then there _exists_ an x such that f is of type x -> String
16:13:17 <tomsmeding> since you can't know whether that x is Int, that application f (8 :: Int) won't typecheck
16:13:24 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
16:13:30 <T0pH4t> well x is an instance of Show..
16:13:33 × nitrix quits (~nitrix@haskell/developer/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
16:13:34 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
16:13:38 <tomsmeding> sure, but you don't know which one
16:13:42 <T0pH4t> the function should not care about x
16:13:43 <tomsmeding> might be Float
16:13:49 <T0pH4t> could be, should not care
16:13:55 <T0pH4t> all it cares is that x has show
16:13:57 <tomsmeding> but you're applying it to an Int!
16:14:13 <T0pH4t> right, but x is a Show instance
16:14:22 <tomsmeding> perhaps you wanted your declaration to mean: for _any_ x that is Show, f is a function that takes it
16:14:29 <tomsmeding> is that accurate?
16:14:30 <T0pH4t> yes
16:14:33 <tomsmeding> right
16:14:47 <T0pH4t> which is why i think my type sig is wrong :/
16:15:16 <tomsmeding> data ShowW = ShowW (forall x. Show x => x -> String)
16:15:21 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:15:22 <tomsmeding> now x is universally quantified
16:15:31 damianfral3 joins (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net)
16:15:38 <tomsmeding> so the _user_ of the ShowW can choose x
16:15:39 × StoneToad quits (~StoneToad@199-167-119-186.ppp.storm.ca) (Ping timeout: 260 seconds)
16:15:47 <T0pH4t> that was it! thx tomsmeding.
16:15:58 nitrix joins (~nitrix@haskell/developer/nitrix)
16:15:59 × dmwitch quits (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer)
16:16:04 <tomsmeding> as you wrote it, x was existentially quantified, so the _producer_ of the ShowW chooses x, and the caller has no idea which one was chosen
16:16:16 <T0pH4t> ok, make sense
16:16:37 <T0pH4t> odd that existentially would compile tho
16:16:43 <T0pH4t> i don't see how that could ever resolve
16:17:01 dmwit joins (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net)
16:17:06 <tomsmeding> well, consider the following type
16:17:31 <tomsmeding> data ToShow = forall x. Show x => ToShow (Int -> x)
16:17:54 <tomsmeding> then as the producer of a ToShow, you can insert any function from Int to something that implements Show
16:18:13 bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru)
16:18:13 <tomsmeding> as the user of a ToShow, you get a function Int -> x, where you have no idea what x is except that it implements Show
16:18:27 <tomsmeding> see: same situation as in your datatype, but suddenly you can actually use this
16:18:49 <tomsmeding> because if you have a ToShow f, then you can do 'show (f 42)', and you'll get a String :)
16:18:51 <T0pH4t> oh so it inverses
16:18:53 <T0pH4t> interesting
16:19:20 <T0pH4t> very cool, good to know. Thx!
16:19:34 <tomsmeding> https://wiki.haskell.org/Existential_type
16:19:38 <tomsmeding> this may or may not be a good explanation
16:20:09 <T0pH4t> haha as with many haskell wiki pages lol
16:20:40 <tomsmeding> do you know the use of GADTs for expression AST's?
16:20:48 <tomsmeding> (the typical motivating examples for GADTs)
16:21:21 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
16:21:24 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
16:21:34 <tomsmeding> like this one https://en.wikibooks.org/wiki/Haskell/GADT#GADTs
16:22:04 gxt joins (~gxt@gateway/tor-sasl/gxt)
16:22:08 <tomsmeding> sometimes it's useful to define the following: data SomeExpr = forall a. SomeExpr (Expr a)
16:22:34 <T0pH4t> yeah gdats i use fairly often
16:22:44 <T0pH4t> gadts*
16:22:55 × wraithm quits (~wraithm@unaffiliated/wraithm) (Excess Flood)
16:22:59 <tomsmeding> e.g. a parser function might have type signature: String -> Either ErrorMsg SomeExpr
16:23:10 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
16:23:20 <T0pH4t> right, infact i'm buidling a parser right now ;)
16:23:37 <tomsmeding> existentials are quite useful in some circumstances :)
16:24:12 <tomsmeding> the syntax where the exact placement of the 'forall' determines whether it's universal or existential can be very counter-intuitive however
16:24:15 <T0pH4t> for example `data Parser a = PNum (forall x. (GTLType x, Num x) => I.Expression x -> I.GTL a)`
16:24:18 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
16:24:33 <tomsmeding> yeah there 'x' is universal
16:24:43 <tomsmeding> unsure what GTL is though :)
16:24:57 <T0pH4t> yeah, my own monad for the language
16:25:01 wraithm joins (~wraithm@unaffiliated/wraithm)
16:25:25 <T0pH4t> but then you can have `parseToken :: Token -> Parser a -> I.GTL a`
16:25:34 <T0pH4t> such that you can do some really cool stuff
16:26:57 × chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Quit: Leaving)
16:26:57 conal joins (~conal@64.71.133.70)
16:27:34 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
16:27:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
16:29:46 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
16:30:11 teardown parts (~user@unaffiliated/mrush) ()
16:30:12 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:30:21 wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
16:30:52 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Client Quit)
16:30:58 × taurux quits (~taurux@net-93-151-203-8.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in)
16:31:10 wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
16:31:35 teardown joins (~user@unaffiliated/mrush)
16:34:16 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
16:34:58 Stanley00 joins (~stanley00@unaffiliated/stanley00)
16:36:40 <T0pH4t> so apparently this doesn't work :/ `parseToken t1 (PNum pure) >>= <blah>` assuming t1 contains an instance of Num such that Parser can be invoked.
16:36:57 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
16:37:42 christo joins (~chris@81.96.113.213)
16:38:40 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
16:38:49 conal joins (~conal@64.71.133.70)
16:39:41 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 258 seconds)
16:41:45 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
16:41:48 Varis joins (~Tadas@unaffiliated/varis)
16:42:34 × teardown quits (~user@unaffiliated/mrush) (Quit: leaving)
16:44:14 Narinas joins (~Narinas@189.223.113.190.dsl.dyn.telnor.net)
16:44:47 × dequbed quits (~dequbed@yanduxian.paranoidlabs.org) (Read error: Connection reset by peer)
16:46:47 × Narinas quits (~Narinas@189.223.113.190.dsl.dyn.telnor.net) (Client Quit)
16:48:22 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
16:49:53 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 260 seconds)
16:50:15 obihann joins (~jhann@156.34.160.69)
16:50:27 × acidjnk_new quits (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:50:49 <T0pH4t> tomsmending: is there a way to get both univeral and existential?
16:51:25 <T0pH4t> ie the producer sets a and invoke set x, `data Parser a where PNum :: (forall x. (GTLType x, Num x) => (I.Expression x -> I.GTL a)) -> Parser a`
16:52:42 nlhowell joins (~nlhowell@don28-11.ln.rinet.ru)
16:52:47 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:55:51 idhugo joins (~idhugo@185.45.22.133)
16:56:25 × samlamamma quits (~user@c-8283e355.05-76-616c6b1.bbcust.telenor.se) (Remote host closed the connection)
16:56:55 <monsterchrom> If you mean nesting and/or alternating, you can always do that, but you always have to define one more type for each quantifier.
16:57:03 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
16:58:11 × nitrix quits (~nitrix@haskell/developer/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
16:58:26 solonarv joins (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr)
16:58:31 nitrix joins (~nitrix@haskell/developer/nitrix)
17:01:49 <T0pH4t> mm not sure i get ur meaning monsterchrom, I'm basically want the producer to set the output type based on a consume setting the input type.
17:02:01 <T0pH4t> so in theory producer has context to chose how to convert w/e the consumer gives it
17:03:47 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
17:05:25 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
17:05:35 nick__ joins (~nick@pool-71-184-143-249.bstnma.fios.verizon.net)
17:06:03 × nick__ quits (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection)
17:08:20 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
17:08:29 <tomsmeding> T0pH4t: can you write your desired datatype using 'forall' and some hypothetical construct 'exists'?
17:08:51 thblt joins (~thblt@unaffiliated/thblt)
17:08:56 <monsterchrom> Oh then it's vanilla polymorphic function. For example, reverse :: [a] -> [a] means the caller decides that the input list should be [Int], so reverse spits out [Int] too.
17:09:29 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
17:09:46 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:10:20 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:10:58 <nlhowell> I am trying to write a typeclass instance for Compose F G where F and G are functors; is there any way I can avoid wrapping arguments with Compose { getCompose = ... } ?
17:11:10 <nlhowell> (without going point-free)
17:11:33 <T0pH4t> so evectively that parser example a few lines up. But actually even what i suggest won't work in the larger context since my Num types can't be guaranteed :/ So for now don't worry about it
17:11:37 <hyperisco> nlhowell, no
17:11:40 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
17:11:54 <hyperisco> nlhowell, you don't have to use record syntax though
17:11:56 <T0pH4t> tomsmending: thx for now!
17:12:27 <thblt> I have a function that produces multiple named files (a compiler of sorts), that I'd rather not write directly in IO, but I'm not sure of an idiomatic way to type this. I was thinking of `type Compiler = Layout -> [(FilePath, String)]`. Does it sound reasonable?
17:12:43 <nlhowell> hyperisco: oh? what can i use instead? I think Compose is defined using record syntax
17:13:25 <hyperisco> nlhowell, it doesn't matter if it is defined that way, there is still the constructor named Compose
17:13:46 <nlhowell> ah, just "Compose x"
17:13:48 <nlhowell> thanks!
17:13:56 <hyperisco> nlhowell, np
17:13:59 <nlhowell> that's at least a lot less typing :)
17:14:22 <hyperisco> newtype wrapping and unwrapping is a struggle
17:15:01 <nlhowell> i was hoping for some extension that does some auto-coerce or something
17:15:36 <nlhowell> but avoiding the record syntax with the wordy getCompose= is more than half the battle
17:17:04 × kuribas quits (~user@ptr-25vy0i99c8o0gmravvh.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:19:35 × dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 260 seconds)
17:23:08 LKoen joins (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr)
17:26:06 dequbed joins (~dequbed@2001:bc8:3f24:100::1)
17:26:53 × ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
17:26:55 FreeBird_ joins (~freebirdl@101.228.42.108)
17:27:11 × thunderrd quits (~thunderrd@183.182.115.32) (Ping timeout: 272 seconds)
17:28:13 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
17:30:03 debugloop joins (~danieln@unaffiliated/debugloop)
17:30:05 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
17:30:26 justsomeguy joins (~justsomeg@071-046-056-025.res.spectrum.com)
17:30:26 × justsomeguy quits (~justsomeg@071-046-056-025.res.spectrum.com) (Changing host)
17:30:26 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
17:33:36 × alx741 quits (~alx741@186.178.110.246) (Ping timeout: 256 seconds)
17:36:16 × motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Quit: quit)
17:38:07 _vaibhavingale_1 joins (~Adium@203.188.228.9)
17:39:36 christo joins (~chris@81.96.113.213)
17:39:38 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
17:40:04 akegalj joins (~akegalj@93-142-98-67.adsl.net.t-com.hr)
17:41:01 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Ping timeout: 264 seconds)
17:41:16 thunderrd joins (~thunderrd@183.182.111.47)
17:42:50 cfricke joins (~cfricke@unaffiliated/cfricke)
17:43:52 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 256 seconds)
17:45:52 × xff0x quits (~fox@2001:1a81:5219:2300:5d08:4351:f573:c6af) (Ping timeout: 260 seconds)
17:46:38 alx741 joins (~alx741@186.178.110.246)
17:46:46 xff0x joins (~fox@2001:1a81:5219:2300:d7e5:2604:caa8:802b)
17:49:08 shadowdao joins (~user@unaffiliated/shadowdaemon)
17:52:39 jakob_ joins (~jakob@p200300f49f162200916e30f6bddaa13c.dip0.t-ipconnect.de)
17:52:49 cylon007 joins (~user@173.225.251.134)
17:53:23 <cylon007> ls
17:54:08 × perry69420 quits (6ee39f85@110.227.159.133) (Remote host closed the connection)
17:54:23 × cylon007 quits (~user@173.225.251.134) (Client Quit)
17:57:12 × Tops2 quits (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
17:57:13 cylon007 joins (~user@173.225.251.134)
18:00:02 × jedi1 quits (~jedi@185.204.1.185) ()
18:00:13 × asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
18:01:13 cylon007 parts (~user@173.225.251.134) ()
18:01:21 × jakob_ quits (~jakob@p200300f49f162200916e30f6bddaa13c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:02:51 jakob_ joins (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de)
18:03:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:04:01 × alp quits (~alp@2a01:e0a:58b:4920:aca7:fd95:ef08:3e24) (Ping timeout: 272 seconds)
18:05:27 texasmynsted joins (~texasmyns@99.96.221.112)
18:06:03 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
18:06:12 <danza> texasmynsted, did you choose your library for shell scripting?
18:07:09 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
18:07:35 texasmynsted joins (~texasmyns@99.96.221.112)
18:07:44 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
18:08:52 texasmynsted joins (~texasmyns@99.96.221.112)
18:10:32 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
18:12:07 texasmynsted joins (~texasmyns@99.96.221.112)
18:15:40 × gothnbass quits (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
18:15:41 nuncanada joins (~dude@179.235.160.168)
18:16:00 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
18:17:05 phaul joins (~phaul@ruby/staff/phaul)
18:18:21 × danza quits (~francesco@151.53.87.185) (Quit: Leaving)
18:18:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:19:55 valli1 joins (~valli@185.244.214.217)
18:20:21 × concept2 quits (~concept2@unaffiliated/tubo) (Read error: Connection reset by peer)
18:20:35 concept2 joins (~concept2@unaffiliated/tubo)
18:20:36 × emmanuel_erc quits (~user@2604:2000:1382:ce03:6974:40c4:284f:7839) (Remote host closed the connection)
18:21:04 × bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
18:21:25 Chi1thangoo joins (~Chi1thang@87.112.60.168)
18:22:09 × jneira quits (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Quit: Connection closed)
18:23:32 av3games joins (6cfab89c@108-250-184-156.lightspeed.gnvlsc.sbcglobal.net)
18:23:36 <av3games> hello
18:23:38 <av3games> i need
18:23:41 <av3games> help
18:23:58 <av3games> i am new to haskell and idk what this is
18:24:16 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
18:24:22 <av3games> <interactive>:3:1: error: * Variable not in scope: main * Perhaps you meant `min' (imported from Prelude)
18:24:51 × Amras quits (~Amras@unaffiliated/amras0000) (Remote host closed the connection)
18:24:57 <av3games> here's my code:import Data.Listimport System.IO-- Int -2^63 - 2^63maxInt = maxBound :: Int
18:25:01 <av3games> import Data.Listimport System.IO-- Int -2^63 - 2^63maxInt = maxBound :: Int
18:25:05 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
18:25:10 <av3games> ...
18:25:19 <ghoulguy> av3games: What's your file named?
18:25:29 livvy joins (~livvy@gateway/tor-sasl/livvy)
18:25:31 <av3games> main.hs
18:25:36 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
18:25:38 <av3games> i am stupid
18:25:54 texasmynsted joins (~texasmyns@99.96.221.112)
18:25:56 <av3games> i am new to haskell
18:26:15 <ghoulguy> change the name to something like: Fun.hs
18:26:23 <ghoulguy> and then add this to the top of your file: module Fun where
18:26:30 <av3games> ok
18:26:32 <av3games> thx
18:26:35 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
18:26:54 <ghoulguy> av3games: By default, if you don't specify a 'module' line, you get this by default: module Main (main) where
18:27:03 <ghoulguy> which assumes you've defined a 'main' to export
18:27:08 <av3games> ok
18:27:32 <av3games> thanks ghoulguy
18:27:42 Amras joins (~Amras@unaffiliated/amras0000)
18:29:48 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) (Quit: Textual IRC Client: www.textualapp.com)
18:30:57 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
18:31:33 nbloomf joins (~nbloomf@2600:1700:ad14:3020:79dc:6e3d:1f6f:5c9)
18:31:38 Tops2 joins (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de)
18:31:47 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
18:32:17 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 260 seconds)
18:32:59 × av3games quits (6cfab89c@108-250-184-156.lightspeed.gnvlsc.sbcglobal.net) (Remote host closed the connection)
18:35:21 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
18:35:22 × _vaibhavingale_1 quits (~Adium@203.188.228.9) (Ping timeout: 256 seconds)
18:35:37 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
18:35:55 Stanley00 joins (~stanley00@unaffiliated/stanley00)
18:37:05 × idhugo quits (~idhugo@185.45.22.133) (Ping timeout: 240 seconds)
18:37:15 × Lord_of_Life quits (~Lord@46.217.223.11) (Changing host)
18:37:15 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
18:37:48 × jakob_ quits (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:37:58 jakob_ joins (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de)
18:38:35 × jakob_ quits (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:38:44 jakob_ joins (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de)
18:39:04 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:39:23 × jakob_ quits (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:39:27 × akegalj quits (~akegalj@93-142-98-67.adsl.net.t-com.hr) (Quit: leaving)
18:39:32 jakob_ joins (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de)
18:40:10 × jakob_ quits (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:40:19 jakob_ joins (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de)
18:40:25 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
18:40:27 nschoe joins (~quassel@2a01:e0a:3c4:c7b0:496b:6bb1:2a12:b6fe)
18:40:58 × jakob_ quits (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection)
18:41:36 fendor joins (~fendor@91.141.2.36.wireless.dyn.drei.com)
18:41:37 dmwit is now known as dmwitch
18:42:44 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
18:42:51 hyiltiz joins (~quassel@82.118.227.47)
18:42:51 × hyiltiz quits (~quassel@82.118.227.47) (Changing host)
18:42:51 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
18:44:51 cgfbee joins (~bot@oc1.itim-cj.ro)
18:47:42 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection)
18:48:45 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
18:49:09 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
18:52:14 × raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal)
18:53:31 × clockboi quits (~clockboi@p200300ef8f0a9b00f86fc02b1cd4ca0a.dip0.t-ipconnect.de) (Remote host closed the connection)
18:54:13 falsifian joins (~falsifian@cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca)
18:56:10 wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:56:45 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
18:57:15 chaosmasttter joins (~chaosmast@p200300c4a73c4601bdd32dc7d6289d04.dip0.t-ipconnect.de)
19:00:28 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds)
19:01:36 dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net)
19:01:52 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
19:01:52 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
19:01:52 GyroW_ joins (~GyroW@unaffiliated/gyrow)
19:02:25 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
19:02:40 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds)
19:03:09 × Tops2 quits (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) (Read error: Connection reset by peer)
19:03:15 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
19:03:25 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
19:03:35 berberman joins (~berberman@unaffiliated/berberman)
19:03:43 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:03:48 × z0_ quits (~z0@bl15-160-182.dsl.telepac.pt) (Read error: Connection reset by peer)
19:04:16 × kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds)
19:04:34 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
19:09:21 × ggole quits (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7) (Quit: Leaving)
19:09:39 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
19:09:54 aarvar joins (~foewfoiew@50.35.43.33)
19:11:02 <falsifian> I'm trying to understand how to work around the monomorphism restriction. If I write (in a .hs file) "x = let f = show in (f 1, f ())", I get an error, which matches my understanding ("No instance for (Num ()) arising from the literal ‘1’"). But what confuses me is that if I write "x = let f = show :: Show a => a -> String in (f 1, f ())" I get the same error. Can I not explicitly tell the compiler
19:11:08 <falsifian> the let-bound identifier f should be polymorphic?
19:12:42 <thblt> I *think* you need to be explicit about the type of 1, because number literals are polymorphic too.
19:13:05 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 265 seconds)
19:13:15 <geekosaur> > let f :: Show a => a -> String; f = show in (f 1, f ())
19:13:17 <lambdabot> ("1","()")
19:13:31 <falsifian> Replacing 1 with (1::Int) just changes the error to "Couldn't match expected type ‘Int’ with actual type ‘()’"
19:13:35 <geekosaur> you assigned a type to show, not to f
19:14:01 <merijn> falsifian: "write a type signature"? :)
19:14:39 <merijn> falsifian: "f y = show y" should also work
19:14:48 <merijn> iirc
19:14:49 × Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving)
19:15:20 <falsifian> geekosaur, merijn: Thanks. It hadn't occurred to me that I wasn't giving f a type signature.
19:15:45 <falsifian> Yes, "f x = show x" fixes it too.
19:17:38 <merijn> monomorphism only apply when something "looks like a value" (i.e. no arguments) *and* has no type signature *and* is typeclass polymorphic
19:18:45 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds)
19:20:25 justsomeguy joins (~justsomeg@216.186.218.241)
19:20:25 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
19:20:25 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
19:21:40 chenshen joins (~chenshen@2620:10d:c090:400::4:bbc)
19:22:02 × wroathe_ quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
19:22:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:23:51 thblt parts (~thblt@unaffiliated/thblt) ("ERC (IRC client for Emacs 27.1)")
19:24:27 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
19:24:54 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
19:24:59 acidjnk_new joins (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de)
19:27:52 _vaibhavingale_ joins (~Adium@42.106.218.208)
19:29:31 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:29:36 jlamothe joins (~jlamothe@198.251.55.207)
19:29:57 hackage aur 7.0.5 - Access metadata from the Arch Linux User Repository. https://hackage.haskell.org/package/aur-7.0.5 (fosskers)
19:30:28 jneira joins (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250)
19:30:57 hackage aura 3.2.0 - A secure package manager for Arch Linux and the AUR. https://hackage.haskell.org/package/aura-3.2.0 (fosskers)
19:31:30 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
19:34:37 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
19:34:52 teardown joins (~user@unaffiliated/mrush)
19:35:11 × teardown quits (~user@unaffiliated/mrush) (Client Quit)
19:37:17 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
19:38:56 × _vaibhavingale_ quits (~Adium@42.106.218.208) (Read error: Connection reset by peer)
19:39:17 fraktor joins (~walt@129.93.191.18)
19:39:59 <fraktor> :t foldr (&&) True . map
19:40:00 <lambdabot> error:
19:40:00 <lambdabot> • Couldn't match type ‘[b]’ with ‘Bool’
19:40:00 <lambdabot> Expected type: (a -> b) -> [a] -> Bool
19:40:08 <fraktor> I don't understand why this is happening.
19:40:57 <xerox_> map takes 2 arguments
19:41:08 <xerox_> :t (foldr (&&) True .) . map
19:41:09 <lambdabot> (a -> Bool) -> [a] -> Bool
19:41:21 <fraktor> Oh I see, it's a composition rule thing.
19:41:38 <fraktor> Why is the additional `.` required inside the parentheses?
19:41:44 alp joins (~alp@2a01:e0a:58b:4920:95e9:ca1e:6b04:cf54)
19:42:31 <tomsmeding> '(f . g) x' is equivalent to 'f (g x)', so '(foldr (&&) True . map) x' is equivalent to 'foldr (&&) True (map x)'
19:42:33 <tomsmeding> that won't work :)
19:42:58 <fraktor> I see. Thank you!
19:43:08 <xerox_> f . g = \x -> f (g x) so (foldr (&&) True .) . map = \f -> (foldr (&&) True .) (map f) = (foldr (&&) True) . (map f) = \xs -> foldr (&&) True (map f xs)
19:43:08 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
19:43:09 <fraktor> Also I know that `all` exists, I just wanted to see how I might implement it.
19:43:44 <tomsmeding> however, '(((foldr (&&) True .) . map) x) y' is equivalent to '((foldr (&&) True .) (map x)) y', which is '(foldr (&&) True . map x) y', which is 'foldr (&&) True (map x y)'
19:44:03 <tomsmeding> @src .
19:44:03 <lambdabot> (f . g) x = f (g x)
19:44:14 <tomsmeding> equational reasoning allows you to write it all out :)
19:44:45 <fraktor> I didn't know about the `src` thing, that's really cool! Is that lambdabot or ghci?
19:44:47 <fraktor> @src all
19:44:47 <lambdabot> all p = and . map p
19:44:53 <fraktor> :t all
19:44:54 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
19:44:59 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
19:45:02 <tomsmeding> that's lambdabot; it gives you an idealised definition
19:45:13 <tomsmeding> the real definition might be more complicated for performance or generality reasons
19:45:18 <fraktor> "Idealized"?
19:45:29 <fraktor> Like, someone went and wrote these, or it generates them?
19:45:36 <tomsmeding> someone wrote these :p
19:45:52 macrover joins (~macrover@ip70-189-231-35.lv.lv.cox.net)
19:45:53 <fraktor> I was going to say...
19:46:00 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
19:46:02 <fraktor> :t (and .) . map
19:46:03 <lambdabot> (a -> Bool) -> [a] -> Bool
19:46:19 <geekosaur> the actual definitions are often optimized or generalized
19:46:27 teardown joins (~user@unaffiliated/mrush)
19:46:35 <tomsmeding> for example, for (.) : https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-1443
19:47:21 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Read error: Connection reset by peer)
19:47:28 <tomsmeding> (the comment helpfully explains why it's not the intuitive definition; 'base' is generally well-written like that)
19:49:00 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:49:04 mmohammadi9812 joins (~mmohammad@5.238.178.31)
19:50:02 <merijn> fraktor: The definitions are lambdabot are mostly the ones copied from the Haskell Report
19:50:21 jakob_ joins (~textual@p57b0eae0.dip0.t-ipconnect.de)
19:50:30 <maerwald> tomsmeding: didn't you say ALE is good wrt LSP?
19:50:46 <tomsmeding> maerwald: in my very limited experience, yes
19:50:58 <merijn> maerwald: "works for me"
19:51:01 <maerwald> It does nothing here lol
19:51:14 christo joins (~chris@81.96.113.213)
19:51:17 <tomsmeding> you have to instruct it to use your language server probably
19:51:19 <merijn> maerwald: With which client?
19:51:24 <merijn> eh, server, I guess
19:52:10 <maerwald> https://paste.tomsmeding.com/EdTf9fLZ
19:52:12 × teardown quits (~user@unaffiliated/mrush) (Quit: leaving)
19:53:03 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
19:53:11 <maerwald> wait, now it does something... seems the build just took longer than expected
19:53:19 christo_ joins (~chris@81.96.113.213)
19:53:22 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
19:53:22 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
19:53:22 GyroW joins (~GyroW@unaffiliated/gyrow)
19:53:39 × christo quits (~chris@81.96.113.213) (Read error: Connection reset by peer)
19:53:42 <tomsmeding> in that case your cpu usage should've been an indicator that something was amiss :p
19:53:47 <maerwald> oh wow... a sensible default: only lint when saving
19:54:02 <maerwald> tomsmeding: not really, since hls often just gets stuck here and sticks to 100% cpu
19:54:13 <tomsmeding> interesting
19:54:23 <tomsmeding> have you tried plain ghcide?
19:54:53 <maerwald> and it behaves very funny when your project GHC is not the currently set ghc (the `ghc`)
19:55:36 <maerwald> https://user-images.githubusercontent.com/1241845/97086886-61c80980-1626-11eb-8874-5467c508d60e.png
19:55:38 <maerwald> then this happens
19:56:11 <tomsmeding> well at least you get some heating
19:56:19 rprije joins (~rprije@194-193-168-77.tpgi.com.au)
19:56:24 <tomsmeding> but I gather it works now? otherwise I can share my current setup
19:56:28 <maerwald> I don't get OOMed anymore since I bumped my ram, at least
19:56:42 <maerwald> how do you do stuff like goto definition and code actions?
19:56:42 <tomsmeding> yes with 16G you would've been out at this point :p
19:56:49 <tomsmeding> :ALEGoToDefinition
19:56:57 <tomsmeding> or map a key to <Plug>(ale_go_to_definition)
19:57:07 <tomsmeding> in general :ALE<tab> and their help sections
19:57:17 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
19:57:39 <tomsmeding> not sure how much support there is for code actions, I don't really use that myself
19:58:28 <maerwald> well, that doesn't do anything
19:58:46 <maerwald> with no error
19:59:09 <tomsmeding> has your cpu quieted down already?
19:59:12 <maerwald> seems not https://github.com/dense-analysis/ale/issues/1466
19:59:20 <tomsmeding> if not, might want to wait for that to happen
19:59:26 <maerwald> that seems quite limited
19:59:32 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
19:59:37 <maerwald> also, my RSI kicks in again, so I'll stop now
19:59:47 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
20:00:26 <maerwald> (the import code action is very useful)
20:00:46 <maerwald> (at least if your project forces you to use explicit import, which I find nonsensical for the record)
20:00:58 <maerwald> (you can quote me :p)
20:01:37 <tomsmeding> I kind of like the custom, since it reduces dependence on IDE-like integration to navigate through code
20:02:17 <tomsmeding> within measure, of course; if you start importing >10 symbols from a module it's not worth the bother anymore
20:02:46 × damianfral3 quits (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
20:03:01 <tomsmeding> but it's certainly a subjective point
20:04:03 conal joins (~conal@64.71.133.70)
20:04:49 falsifian parts (~falsifian@cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca) ()
20:05:39 taurux joins (~taurux@net-93-151-203-8.cust.dsl.teletu.it)
20:08:34 <hyperisco> any hints on how I can hash a dhall config (I am using dhall as a library)
20:09:20 <maerwald> output as json, convert to dense format with newlinet removed, make sure you don't have trailing newline
20:09:33 <maerwald> and sort the objects
20:09:35 <hyperisco> wait why?
20:09:56 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
20:10:03 <tomsmeding> or write a https://hackage.haskell.org/package/hashable-1.3.0.0/docs/Data-Hashable.html instance :p
20:10:07 × taurux quits (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Ping timeout: 246 seconds)
20:10:15 × dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
20:10:19 <hyperisco> dhall supports hashing configs
20:10:31 <maerwald> oh, why do you ask then? :D
20:10:32 taurux joins (~taurux@net-130-25-120-80.cust.vodafonedsl.it)
20:10:33 <hyperisco> the tutorial just doesn't seem to say how to do it using dhall as a library rather than by cli
20:11:00 <tomsmeding> https://hackage.haskell.org/package/dhall-1.36.0/docs/Dhall-Import.html#v:hashExpression ?
20:11:05 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
20:11:44 <maerwald> hashExpressionToCode looks cool too
20:12:09 <hyperisco> I am not sure... so I decode the file with input auto
20:12:25 <tomsmeding> what is the type of the thing you want to hash?
20:12:27 <hyperisco> that gives me a type I defined with a FromDhall instance, not an Expr Void Void
20:12:40 <tomsmeding> ah
20:13:16 <hyperisco> is there a way to break it apart so I can get both?
20:13:27 hackage byline 1.1.0.1 - Library for creating command-line interfaces (colors, menus, etc.) https://hackage.haskell.org/package/byline-1.1.0.1 (PeterJones)
20:13:31 juuandyy joins (~juuandyy@90.166.144.65)
20:13:56 <hyperisco> well whatever, I'll just use the file mod time then oO
20:15:12 × knupfer quits (~Thunderbi@200116b82cb7c400d8c9d953179e22c7.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
20:15:37 teardown joins (~user@unaffiliated/mrush)
20:17:25 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
20:17:46 Gujest_47 joins (584bba29@dslb-088-075-186-041.088.075.pools.vodafone-ip.de)
20:17:57 hackage themoviedb 1.2.0.1 - Haskell API bindings for http://themoviedb.org https://hackage.haskell.org/package/themoviedb-1.2.0.1 (PeterJones)
20:18:43 phaul joins (~phaul@ruby/staff/phaul)
20:18:54 knupfer joins (~Thunderbi@200116b82cb7c400e45e2cfffeea1a26.dip.versatel-1u1.de)
20:18:56 × knupfer quits (~Thunderbi@200116b82cb7c400e45e2cfffeea1a26.dip.versatel-1u1.de) (Client Quit)
20:19:08 knupfer joins (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de)
20:19:11 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:19:32 × Gujest_47 quits (584bba29@dslb-088-075-186-041.088.075.pools.vodafone-ip.de) (Remote host closed the connection)
20:21:15 <tomsmeding> hyperisco: what about inputExpr and rawInput from the Dhall module?
20:21:53 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
20:22:49 × nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer)
20:23:56 kritzefitz joins (~kritzefit@212.86.56.80)
20:24:32 × xff0x quits (~fox@2001:1a81:5219:2300:d7e5:2604:caa8:802b) (Ping timeout: 260 seconds)
20:24:57 xff0x joins (~fox@2001:1a81:5219:2300:29ba:4988:f159:6286)
20:27:13 × quaestor quits (~quaestor@griffith.christophrauch.de) (Ping timeout: 264 seconds)
20:27:55 nuncanada joins (~dude@179.235.160.168)
20:29:37 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 264 seconds)
20:30:04 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
20:31:49 <maerwald> I wanted to migrate an OpenAPI spec from yaml to dhall. I think that's a pretty good use case (e.g. abstracting and merging multiple types that represent sets of HTTP return codes)
20:31:59 <maerwald> yaml anchors don't really do merging
20:32:36 × teardown quits (~user@unaffiliated/mrush) (Quit: leaving)
20:36:02 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
20:36:55 Stanley00 joins (~stanley00@unaffiliated/stanley00)
20:37:09 hiroaki joins (~hiroaki@2a02:908:4b18:e20::e363)
20:38:03 × stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
20:38:21 stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
20:39:22 sfvm joins (~sfvm@37.228.215.148)
20:39:41 yianni joins (d8d049a0@216.208.73.160)
20:40:44 × nek0 quits (~nek0@mail.nek0.eu) (Remote host closed the connection)
20:41:21 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
20:41:37 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
20:41:41 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
20:41:51 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
20:41:51 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
20:41:51 GyroW joins (~GyroW@unaffiliated/gyrow)
20:43:05 lucasb joins (uid333435@gateway/web/irccloud.com/x-qizvrgxqojerddcd)
20:43:31 × juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
20:43:32 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
20:44:39 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
20:45:32 <Mrbuck> https://youtu.be/O9upVbGSBFo?t=3801 Hi why did this guy said it took a week to write some small program in haskell and then it run like a turtle?
20:45:33 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:47:05 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds)
20:47:34 <Uniaika> idk, never saw him around asking for help :P
20:47:44 <Athas> Mrbuck: I think he's exaggerating for effect, but Haskell is infamous for requiring more ceremony around IO.
20:48:16 <Athas> Regarding performance, it's possible he used one of the old interpreters (Hugs), or just had a space leak. Haskell is not generally a particularly slow or fast language.
20:48:28 hyiltiz joins (~quassel@82.118.227.47)
20:48:29 × hyiltiz quits (~quassel@82.118.227.47) (Changing host)
20:48:29 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
20:49:03 conal joins (~conal@64.71.133.70)
20:49:43 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:79dc:6e3d:1f6f:5c9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:50:10 jtobin joins (~jtobin@li1555-212.members.linode.com)
20:50:20 <maerwald> They do some nice js bashing later though
20:50:20 <Mrbuck> Athas: Thank you for the answer
20:51:56 <davean> Haskell can produce quite fast code but calling GHC an optimizing compiler is a little silly. I can beat C implimentations in Haskell but I have to do the work.
20:52:09 <davean> When i don't its several times slower by default usually.
20:52:23 <tomsmeding> davean: ghc is an optimising compiler; if it didn't optimise your code, it would run a _lot_ slower ;)
20:52:33 <tomsmeding> attestable by using -O0 with ghc
20:52:34 × yianni quits (d8d049a0@216.208.73.160) (Ping timeout: 245 seconds)
20:53:03 <davean> tomsmeding: I find the ASM GHC puts out to be pretty much the straight translation of my Haskell personally.
20:53:37 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
20:53:41 <tomsmeding> hm, perhaps most of the work is to strip away all the abstractions we like to make?
20:53:48 <tomsmeding> *most of the work it does
20:53:50 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
20:54:04 <davean> yes, thats most of the -O0 -O2 difference in many cases
20:54:10 <davean> directly refering to, and inlining things
20:54:16 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:54:16 <maerwald> I've never been able to beat C performance with haskell. That's an interesting statement
20:54:18 <davean> but the code its self is straight line either way
20:54:51 <tomsmeding> I wonder, ghc can use llvm as a backend, can't it? would that help?
20:54:54 <davean> maerwald: usually my benchmarks there are reasonable C programs that compitent people wrote but didn't care to spend time optimizing.
20:55:12 <davean> tomsmeding: LLVM doesn't help. Well it does, but only for heavy numerical portions of the code.
20:55:23 <tomsmeding> makes sense
20:55:27 <davean> for non-numerical codes, not using LLVM is faster
20:55:37 <maerwald> Ah, I thought you wrote both implementations
20:55:41 <tomsmeding> that may be the most interesting statement yet
20:55:55 <maerwald> Everything else isn't really representative imo
20:55:58 <tomsmeding> except if you mean _compilation_ is faster without llvm, which is unsurprising
20:56:07 × taurux quits (~taurux@net-130-25-120-80.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
20:56:12 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
20:56:15 <davean> maerwald: I'd say that isn't representative because that would be comparing how much effort and skill *I* had
20:56:19 <davean> tomsmeding: no
20:56:38 <davean> tomsmeding: I mean the generated program is faster without LLVM if its not generally numerical in nature.
20:56:45 <maerwald> Yes and yet it's the only useful comparison
20:56:53 <tomsmeding> that sounds like a huge failure of llvm then :p
20:56:57 × chenshen quits (~chenshen@2620:10d:c090:400::4:bbc) (Ping timeout: 260 seconds)
20:56:57 <tomsmeding> or of ghc's usage of it
20:57:14 yianni joins (18390fbe@d24-57-15-190.home.cgocable.net)
20:57:21 <davean> maerwald: I don't think thats true "This is the actual C code people put out as final products" vs. "This is how I can do it in Haskell given $X time" is perfectly useful.
20:57:35 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:57:40 <maerwald> As in: I want to know if anyone proficient with both languages managed to beat C
20:57:52 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
20:57:59 <maerwald> I wasn't able to
20:58:14 <davean> maerwald: but that just says you're more proficient at C optimization
20:58:20 <maerwald> No
20:58:32 <maerwald> You need more data points
20:58:40 × m-renaud quits (sid333785@gateway/web/irccloud.com/x-nlleieqxzwqsksor) (*.net *.split)
20:58:40 × albethere quits (sid457088@gateway/web/irccloud.com/x-jhhnyunwyziyizkz) (*.net *.split)
20:58:40 × liquorice quits (sid267884@gateway/web/irccloud.com/x-knalwnvbywyqzpnh) (*.net *.split)
20:58:40 × sis7_ quits (~user@2001:15e8:110:473e::1) (*.net *.split)
20:58:40 × ^[_ quits (sid43445@gateway/web/irccloud.com/x-gnsjjoiabatnywnb) (*.net *.split)
20:58:40 × J_Arcane quits (sid119274@gateway/web/irccloud.com/x-iytmbzigvgcxgusu) (*.net *.split)
20:58:40 × ocharles quits (sid30093@musicbrainz/user/ocharles) (*.net *.split)
20:58:40 × joshmeredith quits (sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv) (*.net *.split)
20:58:40 × pong quits (chiya@2406:3003:2077:2341::babe) (*.net *.split)
20:58:40 × nopf quits (~frosch@static.179.17.76.144.clients.your-server.de) (*.net *.split)
20:58:48 nopf joins (~frosch@static.179.17.76.144.clients.your-server.de)
20:58:50 liquorice joins (sid267884@gateway/web/irccloud.com/x-volnulzrerkaifsx)
20:58:51 m-renaud joins (sid333785@gateway/web/irccloud.com/x-jxglvjindagumsef)
20:58:52 J_Arcane joins (sid119274@gateway/web/irccloud.com/x-bqxivhzktyeyfmzj)
20:58:54 ocharles joins (sid30093@musicbrainz/user/ocharles)
20:58:54 joshmeredith joins (sid387798@gateway/web/irccloud.com/x-hdepxcnffbqdlwvu)
20:58:59 sis7_ joins (~user@2001:15e8:110:473e::1)
20:58:59 pong joins (chiya@2406:3003:2077:2341::babe)
20:59:00 albethere joins (sid457088@gateway/web/irccloud.com/x-fmchgsvxhdmjvieq)
20:59:16 ^[_ joins (sid43445@gateway/web/irccloud.com/x-iztepeaguyumtzta)
20:59:56 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 256 seconds)
21:00:02 × valli1 quits (~valli@185.244.214.217) ()
21:00:48 Majiir joins (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net)
21:00:49 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
21:01:00 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
21:01:46 feuerbach_ is now known as feuerbach
21:01:52 notnatebtw joins (~nate@125.161.130.165)
21:01:53 × conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds)
21:02:05 × feuerbach quits (~feuerbach@178.62.103.229) (Changing host)
21:02:05 feuerbach joins (~feuerbach@unaffiliated/feuerbach)
21:03:45 <Athas> It's a lot easier to write fast C than it is to write fast C.
21:04:00 <Athas> And fast C looks a lot more like idiomatic C than fast Haskell looks like idiomatic Haskell.
21:04:39 <Athas> Er: It's a lot easier to write fast C than it is to write fast Haskell.
21:04:39 × yianni quits (18390fbe@d24-57-15-190.home.cgocable.net) (Ping timeout: 245 seconds)
21:06:09 <davean> Hum. I'd say yes and no. In C it "looks" idiomatic sometimes because theres no representation at all that its different then a horrificly slower design. Most C programmers I know would accidently trample some massice optimizations because they didn't see they were there because the language has litterly zero representation of the optimization. That said, theres a lot of basic optimizaiton mistakes
21:06:11 <davean> people make in Haskell that don't look much different either. (Though some super important optimizations are directly not idiomatic Haskell and thats sad and GHC should improve because the ones I'm thinking of shouldn't have to be done by hand at all)
21:06:15 conal joins (~conal@198.8.81.89)
21:06:55 <davean> Also, more Haskell optimizations are actually optimizations than ways to trick the compiler into generating the code you want.
21:07:00 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
21:07:04 <davean> So they stay optimizations.
21:07:05 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
21:07:05 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
21:07:05 GyroW_ joins (~GyroW@unaffiliated/gyrow)
21:07:22 <tromp> It's also a lot easier to write correct Haskell than it is to write correct C :-)
21:07:30 <davean> Also C compilers are just *smarter*
21:07:49 <Athas> How are C compilers smarter?
21:08:03 <davean> Athas: Things like polygonal optimization for ASM instruction dependency breaking.
21:08:09 <davean> Athas: C compilers try to optimize code.
21:08:25 <davean> GHC translates what you write into ASM pretty directly.
21:08:26 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
21:08:48 <davean> GHC can't even unroll a fold against a CAF.
21:08:53 × conal quits (~conal@198.8.81.89) (Client Quit)
21:08:54 <Athas> For things like instruction scheduling and register allocation? When going through LLVM, GHC should benefit from the same optimisations.
21:09:03 <davean> Athas: incorrect.
21:09:11 teardown joins (~user@unaffiliated/mrush)
21:09:59 <Athas> Why not?
21:10:12 <davean> for a number of reasons, one LLVM doesn't have enough semantic representation left.
21:10:27 <davean> For another Haskell has more semantics defined.
21:10:38 <davean> which means that LLVM doesn't have the analysis capability
21:10:51 <davean> LLVM is fairly weak in understanding semantics, its too late for a number of things.
21:11:06 <Athas> Could you clarify what you mean by polygonal optimization? I'm not sure I've heard that term before (is it like polyhedral optimisation?), but my work is mostly in high-level optimisations.
21:11:14 <tomsmeding> why does it have that information then if it receives code from e.g. clang?
21:11:21 <davean> er, yes, sorry I got it autocorrected it seems.
21:11:46 <davean> tomsmeding: well for one they're designed for each other.
21:11:53 <tomsmeding> sure
21:12:03 <Athas> I'm not sure GCC or Clang does polyhedral optimisations by default, but I could be wrong.
21:12:10 <tomsmeding> but then it sounds to me like ghc is leaving some llvm attributes on the table
21:12:21 <Athas> Also, LLVM for sure only does polyhedral optimisations at the LLVM IR level (with Polly), and I'm not sure the C compiler helps.
21:12:31 <Athas> After all, LLVM barely even has loops - they are reconstructed on demand.
21:12:55 <davean> yes but based on the concept of how the C compiler works.
21:13:08 <davean> So GHC has things like boxing.
21:13:21 <Athas> Sure, LLVM shows its lineage as a C compiler backend, but I thought mostly in the area of nasty undefined behaviour semantics.
21:13:41 <davean> Athas: A) not only B) uh, don't you think thats the thing thats directly relivent here?
21:14:13 <Athas> By "undefined behaviour semantics", I mean things like LLVM removing some infinite loops, because they happen to be undefined in C.
21:14:25 <Athas> I'm not sure it matters much for the kinds of optimisations that would help GHC.
21:14:34 conal joins (~conal@198.8.81.89)
21:15:25 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
21:15:29 <Athas> Actually, I'm not really sure which optimisations would help GHC! Better automatic unboxing maybe?
21:15:30 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
21:16:27 <davean> Well yes, though thats not the sort of thing LLVM can reason about. Also just inlining certain things. There are a lot. I have further studies in it to do, but have been working on a bit of a search for which main ones its missing.
21:17:03 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
21:17:15 teardown_ joins (~user@unaffiliated/mrush)
21:17:17 <Athas> GHC does a lot of inlining, doesn't it? It's the enabler of all the other big GHC-level optimisations, like fusion, or anything else driven by simplification rules.
21:17:20 × teardown_ quits (~user@unaffiliated/mrush) (Client Quit)
21:17:24 <davean> You can't "just" got from boxed to unboxed sums for example, and returning stuff as an unboxed tuple can be pretty massive.
21:17:41 <davean> Athas: I mean fusion and such is some pretty basic code rewriting.
21:18:00 <davean> Athas: Its a moderate framework for code no one optimized at all.
21:18:32 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
21:18:37 <davean> These optimizations *are* semantic changing though I want to point out. Which means they're very hard to talk about
21:18:42 <davean> and they're also data representation changing.
21:18:43 <Athas> I think there is great value in optimisations that let us write modular code without overhead, which is exactly what fusion does (in ideal cases).
21:18:57 <davean> Athas: with *less* overhead
21:19:01 <Athas> An optimisation that changes semantics is simply wrong, in the nomenclature I'm familiar with.
21:19:14 × teardown quits (~user@unaffiliated/mrush) (Quit: leaving)
21:19:22 <davean> Athas: many change semantics locally but won't change them outside the function boundaries for example.
21:19:48 zq parts (~zq@xorshift.org) ()
21:20:50 <Athas> I'm still not sure I understand. Could you name an example of such an optimisation?
21:21:03 <davean> Athas: well, a bang pattern.
21:21:07 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
21:21:20 <davean> That line evaluates differently but the function probably doesn't if the bang is appropriate.
21:21:41 <Athas> Those are certainly semantics-changing in an observable way, at least in general.
21:21:57 <davean> in general yes, but in many specific cases no
21:22:04 <davean> Hence GHC's strictness analysis
21:22:07 <Athas> GHC only does the equivalent of adding bang patterns when the strictness analyser determines it can be done without any observable semantic effect.
21:22:21 <davean> Right, but define "observable" there
21:22:31 <davean> Where is the observer?
21:22:35 <Athas> With respect to Haskell's (unwritten...) operational semantics.
21:22:38 teardown joins (~user@unaffiliated/mrush)
21:22:46 <davean> that line *did* change but the function its in didn't usually is the answer
21:23:18 <monsterchrom> It doesn't look like this conversation is getting productive.
21:23:23 <davean> no it does not
21:23:34 × teardown quits (~user@unaffiliated/mrush) (Client Quit)
21:23:41 <davean> I've been looking for how to step away from it politely.
21:23:44 PlasmaStrike joins (~mattplasm@38.73.141.198)
21:24:01 <monsterchrom> I recommend "I need a drink" :)
21:24:26 <monsterchrom> I'm always fond of "computer science has become a bit too technical, let's go for a drink"
21:24:52 <monsterchrom> Jay Misra said that after a conference.
21:24:53 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 258 seconds)
21:25:24 <monsterchrom> And of all people, he wrote a super technical, hard-to-follow proof in a paper (though not for that conference).
21:26:00 teardown joins (~user@unaffiliated/mrush)
21:26:23 ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
21:26:36 × teardown quits (~user@unaffiliated/mrush) (Client Quit)
21:27:08 <monsterchrom> To be fair, his proof was merely operational semantics chasing. In the conference, some of the speakers inflicted monads on us.
21:27:17 × bob_twinkles quits (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
21:27:27 <davean> Monads are the definition of terrible, clearly.
21:27:28 <monsterchrom> (basically the monad for Hoare triples)
21:27:34 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:27:35 teardown joins (~user@gateway/tor-sasl/mrush)
21:27:37 bob_twinkles joins (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com)
21:27:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:27:44 <davean> Oh interesting
21:27:46 <dolio> Seems like the problem is Hoare logic, not monads.
21:27:51 <monsterchrom> :)
21:28:09 <davean> dolio: I liked monsterchrom's telling better.
21:28:11 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
21:28:18 <davean> dolio: Its not about the story, its about *how* you tell it.
21:29:56 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
21:31:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
21:32:19 × ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
21:34:28 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 246 seconds)
21:35:20 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:36:49 × ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:38:42 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
21:38:58 × chaosmasttter quits (~chaosmast@p200300c4a73c4601bdd32dc7d6289d04.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
21:39:23 knupfer1 joins (~Thunderbi@200116b82cb7c400d15b7230f52137ad.dip.versatel-1u1.de)
21:39:35 × knupfer1 quits (~Thunderbi@200116b82cb7c400d15b7230f52137ad.dip.versatel-1u1.de) (Client Quit)
21:41:22 × damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 258 seconds)
21:42:13 × knupfer quits (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) (Ping timeout: 264 seconds)
21:42:25 knupfer joins (~Thunderbi@200116b82cb7c4002ca4e42aeeb0ad5c.dip.versatel-1u1.de)
21:42:36 taurux joins (~taurux@net-130-25-120-80.cust.vodafonedsl.it)
21:42:38 × nschoe quits (~quassel@2a01:e0a:3c4:c7b0:496b:6bb1:2a12:b6fe) (Remote host closed the connection)
21:42:51 × knupfer quits (~Thunderbi@200116b82cb7c4002ca4e42aeeb0ad5c.dip.versatel-1u1.de) (Client Quit)
21:42:53 × teardown quits (~user@gateway/tor-sasl/mrush) (Quit: leaving)
21:43:01 knupfer joins (~Thunderbi@200116b82cb7c400415b2bb0b7a3fec7.dip.versatel-1u1.de)
21:44:10 knupfer1 joins (~Thunderbi@200116b82cb7c4002d58dadaff983f63.dip.versatel-1u1.de)
21:44:12 × knupfer quits (~Thunderbi@200116b82cb7c400415b2bb0b7a3fec7.dip.versatel-1u1.de) (Read error: Connection reset by peer)
21:44:14 knupfer1 is now known as knupfer
21:46:27 × knupfer quits (~Thunderbi@200116b82cb7c4002d58dadaff983f63.dip.versatel-1u1.de) (Read error: Connection reset by peer)
21:46:33 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds)
21:46:38 knupfer joins (~Thunderbi@200116b82cb7c400705675e554fd2851.dip.versatel-1u1.de)
21:47:51 × knupfer quits (~Thunderbi@200116b82cb7c400705675e554fd2851.dip.versatel-1u1.de) (Client Quit)
21:48:02 knupfer joins (~Thunderbi@200116b82cb7c4007db48986ca2bd4da.dip.versatel-1u1.de)
21:49:01 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
21:49:43 × taurux quits (~taurux@net-130-25-120-80.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
21:50:57 taurux joins (~taurux@net-188-216-37-152.cust.vodafonedsl.it)
21:52:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:55:40 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Remote host closed the connection)
21:56:08 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 260 seconds)
21:56:32 bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
21:57:02 obihann joins (~jhann@156.34.160.69)
21:57:44 mmohammadi9812 joins (~mmohammad@5.238.178.31)
21:57:57 nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
21:59:45 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
22:03:02 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Quit: Quit)
22:03:29 teardown joins (~user@gateway/tor-sasl/mrush)
22:03:42 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:04:25 × teardown quits (~user@gateway/tor-sasl/mrush) (Client Quit)
22:04:53 teardown joins (~user@gateway/tor-sasl/mrush)
22:08:23 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:08:29 mmohammadi9812 joins (~mmohammad@5.238.178.31)
22:08:48 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Client Quit)
22:09:27 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:09:29 mmohammadi9812 joins (~mmohammad@5.238.178.31)
22:10:46 × conal quits (~conal@198.8.81.89) (Quit: Computer has gone to sleep.)
22:11:34 conal joins (~conal@198.8.81.89)
22:11:53 × conal quits (~conal@198.8.81.89) (Client Quit)
22:12:37 conal joins (~conal@198.8.81.89)
22:12:37 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
22:12:40 × conal quits (~conal@198.8.81.89) (Client Quit)
22:13:00 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
22:15:07 damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
22:20:16 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
22:20:36 × nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer)
22:21:11 conal joins (~conal@64.71.133.70)
22:22:36 × christo_ quits (~chris@81.96.113.213) (Remote host closed the connection)
22:25:52 × knupfer quits (~Thunderbi@200116b82cb7c4007db48986ca2bd4da.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
22:27:11 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:27:24 Deide joins (~Deide@217.155.19.23)
22:27:29 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
22:28:45 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds)
22:28:49 Perlboy joins (~Perlboy@178.239.168.171)
22:29:41 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
22:30:03 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
22:31:52 mbomba joins (~mbomba@142.114.9.241)
22:31:55 × hiroaki quits (~hiroaki@2a02:908:4b18:e20::e363) (Ping timeout: 272 seconds)
22:31:55 <Squarism> Anyone heard of any library able to (de)serialize a subset of Traversal's (used by lens)?
22:32:33 <Rembane> Squarism: What's serialize in this context?
22:32:39 <Squarism> e e
22:33:16 × Tspoon quits (tlarjoma@hilla.kapsi.fi) (Ping timeout: 246 seconds)
22:33:20 <Squarism> Rembane, preferably something human readable. But any string would do I guess.
22:33:39 Tspoon joins (tlarjoma@hilla.kapsi.fi)
22:34:07 Stanley00 joins (~stanley00@unaffiliated/stanley00)
22:35:25 <Rembane> Squarism: Interesting, I've never seen one but perhaps someone else here has.
22:36:53 × DTZUZU quits (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Read error: Connection reset by peer)
22:38:39 <Squarism> I mean, it feels as if something like "field1 . ix 4 . fieldA . _Just" could have a textual representation. But maybe thats a naive conclusion
22:38:58 DTZUZU joins (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net)
22:39:18 <Rembane> Well, you need to go from a function to a textual representation and that's kinda tricky
22:39:18 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds)
22:39:52 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds)
22:40:24 Kolkrabe joins (~user@unaffiliated/siracusa)
22:40:34 <Uniaika> I can't see a way to have a straightforward, abitrary expression of a Traversal that would not need a heap of context for it to make sense
22:40:45 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
22:40:46 <Uniaika> hmm.
22:40:49 <Uniaika> that being said.
22:41:01 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 264 seconds)
22:41:22 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
22:41:22 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
22:41:22 GyroW joins (~GyroW@unaffiliated/gyrow)
22:41:27 <Uniaika> Squarism: have you read the Typed Tagless Final Interpreters paper? http://okmij.org/ftp/tagless-final/course/lecture.pdf
22:42:01 <Uniaika> the author shows a way to have multiple interpreters for an eDSL. One that would evaluate the functions, one that pretty-prints them, one that serialises them into a Tree, etc
22:42:16 <Uniaika> you may get some good stuff out of it
22:42:28 <Squarism> Maybe a start would be to just have deserialize and find other means to create the serialized "addresses".
22:42:32 tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com)
22:42:32 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
22:42:52 <Squarism> Uniaika, ah cool. Ill look into that
22:43:19 <Uniaika> 👍
22:43:25 × bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Quit: WeeChat 2.7.1)
22:43:29 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
22:43:43 <Uniaika> tell me if it helped you acquire some new techniques for your goal
22:43:52 <Uniaika> (or if it didn't)
22:43:54 <Squarism> I will
22:44:28 <Rembane> Squarism: Here's a related blog post that might be easier to digest than the paper: https://serokell.io/blog/tagless-final
22:44:44 <koz_> Tagless final doesn't help you here.
22:44:48 <Squarism> sounds like a good start. Thanks
22:44:52 <koz_> This isn't eDSL territory.
22:45:01 <koz_> Uniaika: We had a conversation on this topic already, I believe. :P
22:45:29 <Rembane> Uniaika: Have you perhaps found a new hammer? :)
22:45:39 <koz_> Rembane: Can confirm.
22:46:11 <Rembane> koz_: ^^
22:46:18 <Rembane> It is a very good hammer though.
22:46:58 <koz_> Yeah, but all hammers are, after all, hammers, not hammer-chisel-screwdriver-breadmaker-firearm-sketchpads.
22:47:02 <Rembane> Isn't there another representation of lenses called optics that's more like an initial encoding than a final encoding?
22:47:17 <Rembane> koz_: Are you talking about recursion schemes? :D
22:47:35 <koz_> Rembane: No, because you did you see any Ancient Greek there? :P
22:47:45 <koz_> Also yes, optics exist, but I don't think it helps here.
22:48:04 <Rembane> koz_: I see Ancient Greek everywhere! :D
22:48:20 <Rembane> koz_: It's like "I see dead people" but s/dead people/Ancient Greek/g
22:48:40 <Rembane> Squarism: What do you need the serialization for btw?
22:48:42 <koz_> Yep, both be dead, yo.
22:48:58 <Rembane> They have much in common.
22:49:02 <Rembane> Deadomorphisms
22:49:16 <koz_> Mortimorphisms?
22:49:24 <koz_> Thanamorphisms?
22:49:45 <koz_> Should be thanamorphisms, I think, since 'mort' is a Latin root.
22:49:51 nuncanada joins (~dude@179.235.160.168)
22:50:09 <Rembane> Yeah, mixing greek and latin always makes for good fun
22:50:40 <koz_> Rembane: It's how privately-educated English people amuse themselves, I've heard.
22:50:59 <mort> "mort" has no relation to "morph" afaik though?
22:51:30 <koz_> mort: No it does not, but that's beside the point here. The joke is that all recursion schemes are [some Greek root] + morphism.
22:51:44 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
22:51:47 <koz_> Such as 'anamorphism', 'catamorphism', 'hylomorphism', 'chronomorphism', etc.
22:51:56 <Rembane> Adnd you can combine them for even more fun
22:51:58 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
22:52:07 <Rembane> And to make sweet rhymes
22:52:11 <koz_> So if we wanna talk about 'dead-related recursion schemes', 'thanamorphism' appears to be the convention-following construction.
22:52:28 <Squarism> Rembane, i have a webapp that does addition and changes to some user defined type. So i was hoping to be able to produce "all addresses for addition of values" (Nothing, List-ends) "all modifiable addresses" (any leaf of some data type)
22:53:16 <mort> I see. Is thana- or thano- a root for dead in Greek then
22:53:28 <mort> this explains the name thanos at least
22:53:33 <Rembane> Squarism: I might be out on a limb here, but can you make another representation that can both be shown/serialized and turned into traversals?
22:53:47 <koz_> mort: Indeed.
22:53:49 <Rembane> mort: Who's Thanos?
22:54:02 ransom joins (~c4264035@2601:285:201:6720:a129:4845:9b41:4504)
22:54:08 <koz_> It's the root of words like 'thanatosis', although English doesn't lean on Greek much for words of that meaning.
22:54:09 <mort> the Marvel supervillain
22:54:15 <Squarism> Rembane, so the address needs to be sent over the wire. Also, the interface on the "server" is untyped as it only operates on a serialized version of the above mentioned user defined type.
22:54:25 <koz_> The 'cata' in 'catamorphism' means 'to collapse', like in 'catastrophe'.
22:54:57 <Squarism> Rembane, not a bad idea.
22:55:03 <koz_> But yes, the Thanos connection is indeed this.
22:55:17 <Squarism> Ill ponder that
22:55:44 <koz_> Usually we tend to use 'mort' or 'necro' in English for fancy death-related terms.
22:55:49 <Rembane> Crunchomorphism!
22:56:02 <koz_> (consider 'necrosis', 'necromancy', 'mortify', 'mortal', etc)
22:56:42 <Rembane> Squarism: Got it, untyped interface sounds exciting. :)
22:56:57 <Rembane> Necrofy, necrtal... hm...
22:57:08 × invaser quits (~Thunderbi@31.148.23.125) (Quit: invaser)
22:57:17 <mort> hydromorphism
22:57:42 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
22:57:43 <mort> oh, quadromorphism, the true Fourier transform which makes numbers four-ier
22:57:48 <koz_> mort: ROFL.
22:58:01 <Squarism> Rembane, i guess it doesnt. But web only knows text and json so yeah.
22:58:04 <Axman6> gold
22:58:15 <Rembane> mort: :D
22:58:21 <koz_> Axman6: Chrysomorphism?
22:58:32 <Rembane> Squarism: That doesn't stop you from type checking it when you deserialize it. :)
22:58:36 <koz_> (inb4 I finally get where the whole 'Christ' thing came from)
22:58:43 <Axman6> @quote+ mort quadromorphism, the true Fourier transform which makes numbers four-ier
22:58:43 <lambdabot> No quotes for this person. Your mind just hasn't been the same since the electro-shock, has it?
22:59:15 <Axman6> @remember mort quadromorphism, the true Fourier transform which makes numbers four-ier
22:59:15 <lambdabot> Done.
22:59:26 <Axman6> @quote four
22:59:26 <lambdabot> copumpkin says: I love: Warning: Due to a known bug, the default Linux document viewer evince prints N*N copies of a PDF file when N copies requested. As a workaround, use Adobe Reader acroread for
22:59:26 <lambdabot> printing multiple copies of PDF documents, or use the fact that every natural number is a sum of at most four squares.
22:59:57 <mort> @quote fourier
22:59:57 <lambdabot> mort says: quadromorphism, the true Fourier transform which makes numbers four-ier
23:00:24 <koz_> Although in retrospect, I think I've hit a false cognate (krysos versus kristos).
23:01:16 <mort> re: the evince thing; just ask for sqrt(n) copies to get n copies
23:01:29 <koz_> mort: I want 3 copies, wat do.
23:01:47 <Axman6> ask for one and one and one
23:01:58 <Rembane> Ask for sqrt 3 copies. *nods*
23:02:00 <koz_> Axman6: Unary counting, always good.
23:02:09 <mort> just print 1.7320508075688772 copies, yeah
23:02:23 <Rembane> "Noch einmal, bitte."
23:02:34 <Axman6> assume you'll fuck one up and ask for 2 copies
23:03:51 <Rembane> I have this book on folding paper planes, so I always become happy when the printer prints too many pages. You should get a book on paper planes too.
23:06:21 <MarcelineVQ> why would you fold a paper plane
23:06:28 jathan joins (~jathan@69.61.93.38)
23:06:36 <MarcelineVQ> it won't fly at all!
23:06:50 <koz_> MarcelineVQ: inb4 samsung joke
23:07:01 <hpc> if you fold paper, is it still a plane?
23:07:36 <MarcelineVQ> how can folding be real if our planes aren't real
23:07:53 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: ZNC 1.8.1 - https://znc.in)
23:07:53 hekkaidekapus_ is now known as hekkaidekapus
23:07:58 <Rembane> If you put a mark on the paper it can easily become a catastrophy when folded
23:08:11 <Rembane> MarcelineVQ: Fold along one dimension
23:08:26 <MarcelineVQ> I saw a movie about that one time
23:08:36 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:08:37 <mort> I mean with the "every number can be written as a sum of four squares" thing, any number N of pages can be printed with O(1) print instructions, it's not even that bad
23:08:43 <MarcelineVQ> some guy lost his eyes and morpheus had to beat him up
23:08:53 christo joins (~chris@81.96.113.213)
23:09:06 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:09:07 <Rembane> Sounds like Minority Report
23:09:31 <MarcelineVQ> the majority of people who see it enjoy it
23:09:49 × mimi_vx quits (~mimi@tulipan.habr.nat.praha12.net) (Ping timeout: 264 seconds)
23:10:53 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
23:11:15 <hekkaidekapus> Come on people, you can’t let a Latin/Greek conversation end without asking mort: ”Ets tu mort?” and requiring mort to think in French.
23:11:16 Varis joins (~Tadas@unaffiliated/varis)
23:11:28 hackage aura 3.2.1 - A secure package manager for Arch Linux and the AUR. https://hackage.haskell.org/package/aura-3.2.1 (fosskers)
23:11:45 <koz_> hekkaidekapus: Not all are so linguistically graced.
23:11:59 <hekkaidekapus> :)
23:12:12 <koz_> We can't all insist that it's actually 'la COVID-19'.
23:12:23 <mort> pardon, mais mon français n'est pas bonne
23:12:38 <hekkaidekapus> :D
23:13:02 <mort> mon français est mort
23:13:35 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:13:45 tolt_ is now known as tolt
23:13:54 <hekkaidekapus> At least we have dead-k :D
23:14:13 <mort> it's a bit sad, the "feel" for the language is there but the vocabulary isn't
23:14:18 christo joins (~chris@81.96.113.213)
23:14:33 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:14:39 <Rembane> Are linguistics some kind of human eating bovine?
23:14:49 <mort> probably?
23:15:23 <Axman6> it's called linguineistics if it's from Italy though
23:15:24 <mort> not sure if it has to be a bovine precisely
23:15:59 Varis joins (~Tadas@unaffiliated/varis)
23:16:04 <Rembane> Tasty!
23:18:06 <koz_> mort: Vocabulary is hard.
23:18:50 × LKoen quits (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
23:18:55 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
23:19:01 <mort> yes
23:19:34 ericsagn1 joins (~ericsagne@2405:6580:0:5100:2ef5:ab40:91d2:d4c8)
23:20:12 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: ZNC 1.8.1 - https://znc.in)
23:21:48 thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
23:22:00 teardown joins (~user@gateway/tor-sasl/mrush)
23:22:12 × ericsagnes quits (~ericsagne@2405:6580:0:5100:dc8a:5173:1db7:7a54) (Ping timeout: 260 seconds)
23:23:51 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
23:25:07 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
23:26:32 × thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:28:06 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
23:30:04 christo joins (~chris@81.96.113.213)
23:34:43 <koz_> :t foldM
23:34:45 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
23:34:46 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
23:35:00 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
23:35:10 mimi_vx joins (~mimi@2a01:490:16:1026:9954:a30:869a:297e)
23:35:18 × mmohammadi9812 quits (~mmohammad@5.238.178.31) (Ping timeout: 260 seconds)
23:35:55 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 256 seconds)
23:37:47 obihann joins (~jhann@156.34.160.69)
23:40:58 jedws joins (~jedws@101.184.193.144)
23:41:38 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
23:42:43 × obihann quits (~jhann@156.34.160.69) (Ping timeout: 260 seconds)
23:43:05 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
23:43:30 <Uniaika> 2~< koz_> Uniaika: We had a conversation on this topic already, I believe. :P // ah bloody hell I was persuaded it was
23:43:37 × revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
23:43:45 × dme2 quits (~user@c-24-1-191-153.hsd1.il.comcast.net) (Ping timeout: 240 seconds)
23:43:54 <Uniaika> lens functions do seem like a proper eDSL though
23:44:05 <koz_> Not if you're textualizing then reading them back.
23:44:20 <Axman6> lens is just just traverse with more steps, fight me
23:44:29 <koz_> Repeat after me: as soon as your input is arbitrary text from outside, you have a compiler, not an eDSL.
23:44:39 revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
23:45:32 <Uniaika> as soon as my input is arbitrary text from outside, I have a compiler, not an eDSL
23:48:59 <dmwitch> Seems like a category error.
23:49:14 <dmwitch> As soon as your input is arbitrary text from outside, you have a DSL or GPL, not an eDSL.
23:49:28 <koz_> dmwitch: That's a valid point.
23:49:54 <koz_> Also, I get your name is meant to call to mind a spellcasting woman, but I see the food consisting of a filling with bread either side.
23:50:32 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
23:50:49 dmwitch is now known as sandmwitch
23:50:56 <sandmwitch> ^_^
23:50:58 <koz_> PERFECT
23:51:00 whatisRT joins (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d)
23:51:17 <sandmwitch> conclusion: sanch = bread
23:51:39 <koz_> Two slices of, at that.
23:53:44 <hekkaidekapus> lol :P Are Halloween times like this every year?
23:54:06 <sandmwitch> This is the first year I've seen it. But I like it, and assign high probability to this becoming a tradition.
23:54:58 <hekkaidekapus> It merits a proposal so that it’s enforced in all community medium/media.
23:55:02 <sandmwitch> (Possibly related: people are turning to electronically-maintained relationships for their holiday celebrations more than usual this year.)
23:55:33 <hekkaidekapus> That, too.
23:55:56 DigitalKiwi /nick WitchKiwi
23:56:24 <DigitalKiwi> ya know what f it
23:56:26 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
23:56:29 DigitalKiwi is now known as WitchKiwi
23:56:55 hekkaidekapus rests my lungs :D
23:58:36 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 258 seconds)
23:59:51 sandmwitch proposes DevilKiwi

All times are in UTC on 2020-10-27.