Home freenode/#haskell: Logs Calendar

Logs on 2021-03-04 (freenode/#haskell)

00:05:38 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
00:06:29 × vk3wtf quits (~doc@115-64-102-158.tpgi.com.au) (Ping timeout: 260 seconds)
00:06:41 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
00:07:04 × puffnfresh quits (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 260 seconds)
00:07:13 × xff0x quits (~xff0x@2001:1a81:53fc:b400:9e6f:7ec7:a06c:c48c) (Ping timeout: 258 seconds)
00:07:26 hendursa1 parts (~weechat@gateway/tor-sasl/hendursaga) ()
00:07:55 xff0x joins (~xff0x@2001:1a81:53fc:b400:1709:f370:e50:9a12)
00:08:27 pair joins (~fruitsale@192-0-213-82.cpe.teksavvy.com)
00:08:32 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
00:09:16 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 276 seconds)
00:10:14 pair parts (~fruitsale@192-0-213-82.cpe.teksavvy.com) ()
00:11:15 × wmacmil quits (~wmacmil@c83-252-138-144.bredband.comhem.se) (Ping timeout: 256 seconds)
00:14:13 wmacmil joins (~wmacmil@c83-252-138-144.bredband.comhem.se)
00:14:31 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
00:14:57 × mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 264 seconds)
00:15:28 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 245 seconds)
00:16:59 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
00:19:38 nbloomf joins (~nbloomf@2600:1700:ad14:3020:48a4:c618:6af2:de72)
00:20:38 puffnfresh joins (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
00:21:23 vk3wtf joins (~doc@115-64-102-158.tpgi.com.au)
00:21:32 Tario joins (~Tario@200.119.187.14)
00:22:11 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
00:22:44 JASTH joins (~Android@78-68-99-187-no2810.tbcn.telia.com)
00:22:53 × goepsilongo quits (~goepsilon@2603-7000-ab00-62ed-0000-0000-0000-0c67.res6.spectrum.com) (Quit: WeeChat 3.0)
00:26:46 × chenshen quits (~chenshen@2620:10d:c090:400::5:9f47) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
00:27:40 viluon joins (uid453725@gateway/web/irccloud.com/x-ztatnfztaowajlyf)
00:28:55 × JASTH quits (~Android@78-68-99-187-no2810.tbcn.telia.com) (Read error: Connection reset by peer)
00:32:38 rajivr joins (uid269651@gateway/web/irccloud.com/x-ztiomawifornmkpr)
00:35:57 × Tario quits (~Tario@200.119.187.14) (Ping timeout: 264 seconds)
00:36:02 gitgoood joins (~gitgood@82-132-217-228.dab.02.net)
00:36:55 heatsink joins (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d)
00:37:16 chenshen joins (~chenshen@2620:10d:c090:400::5:9f47)
00:39:04 × gitgood quits (~gitgood@82-132-216-44.dab.02.net) (Read error: Connection reset by peer)
00:39:18 romesrf joins (~romesrf@44.190.189.46.rev.vodafone.pt)
00:39:20 emmanuel_erc joins (~user@cpe-74-71-106-64.nyc.res.rr.com)
00:40:14 <romesrf> hey, i'm trying to write a function sort of "satisfyPredicate"
00:40:20 <romesrf> satisfyPredicate predicate x = if predicate x then x else satisfyPredicate predicate (x+1)
00:40:50 <romesrf> this works, for example, if i call satisfyPredicate (>200) 1, i'll get 201
00:41:41 Tario joins (~Tario@201.192.165.173)
00:41:51 <romesrf> however, i'm not sure passing an accumulator value to the function is a clean haskell practice... feels kind of off
00:42:27 <romesrf> what would be a correct way to get this function "satisfyPredicate" to receive a predicate only, and to output the first natural number to satisfy it
00:42:32 <romesrf> ?
00:43:49 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
00:44:37 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:44:55 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
00:45:38 conal joins (~conal@64.71.133.70)
00:45:49 <monochrom> It is alright, I don't think there is anything bad about it.
00:46:56 × conal quits (~conal@64.71.133.70) (Client Quit)
00:47:14 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:48a4:c618:6af2:de72) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:47:59 <monochrom> Another style is: head (filter (>200) [0..]). But don't worry about it too much, either is fine. Learn both.
00:48:26 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
00:48:55 conal joins (~conal@64.71.133.70)
00:49:47 × conal quits (~conal@64.71.133.70) (Client Quit)
00:49:58 <xsperry> as a general recommendation, when you want to avoid passing initial value, one option is to make a helper function (usually within the function that calls it)
00:52:34 × m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 245 seconds)
00:54:46 × redmp quits (~redmp@172.58.35.249) (Ping timeout: 276 seconds)
00:55:34 Tario joins (~Tario@201.192.165.173)
00:56:33 <xsperry> I like being able to pass initial value in this case though. and you can make the function more general by accepting Enum and not Num. ie:
00:56:53 <xsperry> > let satisfyPredicate2 f init = head $ filter f [init..] in satisfyPredicate2 isAlpha '\0'
00:56:56 <lambdabot> 'A'
00:57:53 JASTH joins (~Android@78-68-99-187-no2810.tbcn.telia.com)
00:58:24 × yahb quits (xsbot@haskell/bot/yahb) (Ping timeout: 260 seconds)
00:58:52 × JASTH quits (~Android@78-68-99-187-no2810.tbcn.telia.com) (Read error: Connection reset by peer)
01:00:50 × Wuzzy quits (~Wuzzy@p5b0df7c2.dip0.t-ipconnect.de) (Remote host closed the connection)
01:02:28 conal joins (~conal@64.71.133.70)
01:03:19 × conal quits (~conal@64.71.133.70) (Client Quit)
01:04:23 <romesrf> monochrom: oh, thank you vmuch
01:04:34 jacks2 joins (~bc8134e3@217.29.117.252)
01:05:07 <romesrf> xsperry: interesting, i'm not sure i understand but i'll save this message for when i do :)
01:05:14 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
01:05:35 × mniip quits (mniip@freenode/staff/mniip) (Ping timeout: 600 seconds)
01:06:30 <xsperry> rom1504, [..] is syntax sugar for enumFrom/enumFromTo. that's where the Enum constraint comes from
01:06:34 <xsperry> romesrf*
01:07:13 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
01:07:17 <xsperry> > enumFrom 1
01:07:19 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
01:07:22 <xsperry> > enumFrom 'a'
01:07:24 <lambdabot> "abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137\...
01:07:31 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d) (Remote host closed the connection)
01:08:45 <ephemient> > enumFromBy 'A' 'a'
01:08:47 <lambdabot> error:
01:08:48 <lambdabot> • Variable not in scope: enumFromBy :: Char -> Char -> t
01:08:48 <lambdabot> • Perhaps you meant one of these:
01:08:49 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
01:08:52 <ephemient> > enumFromThen 'A' 'a'
01:08:54 <lambdabot> "Aa\129\161\193\225\257\289\321\353\385\417\449\481\513\545\577\609\641\673\...
01:09:07 <ephemient> oh right Char is bigger than Byte
01:09:59 redmp joins (~redmp@172.58.35.249)
01:11:17 conal joins (~conal@64.71.133.70)
01:11:28 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
01:11:29 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
01:11:48 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
01:12:50 × conal quits (~conal@64.71.133.70) (Client Quit)
01:13:35 ryanbooker joins (uid4340@gateway/web/irccloud.com/x-tduhrfkkobkcibnm)
01:15:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:16:33 × ryanbooker quits (uid4340@gateway/web/irccloud.com/x-tduhrfkkobkcibnm) (Client Quit)
01:17:39 ryanbooker joins (uid4340@gateway/web/irccloud.com/x-rnkpnanajeurascu)
01:18:33 × stree quits (~stree@68.36.8.116) (Ping timeout: 264 seconds)
01:19:28 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
01:20:14 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
01:20:38 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
01:22:35 inkbottle joins (~inkbottle@aaubervilliers-654-1-112-176.w86-198.abo.wanadoo.fr)
01:22:51 SupaYoshi joins (~supayoshi@213.10.140.13)
01:23:16 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Client Quit)
01:23:49 × zebrag quits (~inkbottle@aaubervilliers-654-1-83-46.w86-212.abo.wanadoo.fr) (Ping timeout: 245 seconds)
01:24:37 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
01:25:19 × puffnfresh quits (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 276 seconds)
01:25:59 puffnfresh joins (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
01:26:07 romesrf_ joins (~romesrf@44.190.189.46.rev.vodafone.pt)
01:28:24 × romesrf quits (~romesrf@44.190.189.46.rev.vodafone.pt) (Ping timeout: 245 seconds)
01:28:40 × _Alleria quits (~AllahuAkb@2603-7000-3040-0000-6cee-2fa2-b3ba-fa1a.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
01:30:12 × Zivert quits (~Zivert@90.200.185.163) (K-Lined)
01:30:31 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 276 seconds)
01:30:51 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
01:31:04 × redmp quits (~redmp@172.58.35.249) (Ping timeout: 260 seconds)
01:31:28 stree joins (~stree@68.36.8.116)
01:36:26 Stanley00 joins (~stanley00@unaffiliated/stanley00)
01:37:11 conal joins (~conal@198.8.81.74)
01:37:29 × gitgoood quits (~gitgood@82-132-217-228.dab.02.net) (Read error: Connection reset by peer)
01:41:47 × conal quits (~conal@198.8.81.74) (Quit: Computer has gone to sleep.)
01:43:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
01:44:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d)
01:45:45 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 246 seconds)
01:47:34 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
01:48:15 × Kneiva quits (kneiva@raah.fi) (Ping timeout: 265 seconds)
01:48:53 Kneiva joins (kneiva@raah.fi)
01:49:13 <romesrf_> xsperry: ty, got it
01:49:23 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
01:49:29 <jacks2> this looks interesting. anyone tried using it? "TabNine Haskell Autocompletion with deep learning" https://www.reddit.com/r/haskell/comments/dbvuq1/tabnine_haskell_autocompletion_with_deep_learning/
01:49:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
01:50:40 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
01:52:56 Stanley00 joins (~stanley00@unaffiliated/stanley00)
01:56:26 conal joins (~conal@198.8.81.74)
01:57:51 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-e0ce-a923-ba93-469f.res6.spectrum.com)
02:00:27 DTZUZU joins (~DTZUZU@205.ip-149-56-132.net)
02:01:37 × hiroaki_ quits (~hiroaki@2a02:8108:8c40:2bb8:92d3:a4a2:1db6:e0dd) (Ping timeout: 272 seconds)
02:01:39 × romesrf_ quits (~romesrf@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.0.1)
02:02:18 vgtw_ joins (~vgtw@gateway/tor-sasl/vgtw)
02:03:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:04:01 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
02:04:02 vgtw_ is now known as vgtw
02:04:05 × ArsenArsen quits (~Arsen@fsf/member/ArsenArsen) (Ping timeout: 260 seconds)
02:04:26 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 240 seconds)
02:04:45 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds)
02:05:51 qih joins (~pi@210-54-120-166.adsl.xtra.co.nz)
02:09:55 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
02:10:15 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
02:14:41 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
02:15:35 ArsenArsen joins (~Arsen@fsf/member/ArsenArsen)
02:16:12 forgottenone joins (~forgotten@176.88.30.190)
02:16:40 drbean_ joins (~drbean@TC210-63-209-53.static.apol.com.tw)
02:17:03 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
02:17:12 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
02:17:12 × conal quits (~conal@198.8.81.74) (Quit: Computer has gone to sleep.)
02:17:12 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
02:18:35 nbloomf joins (~nbloomf@2600:1700:ad14:3020:dc1b:a75f:4664:5af2)
02:20:33 DataComputist joins (~lumeng@50.43.26.251)
02:21:27 <ezzieyguywuf> do you add your .ghcid to your git repo?
02:22:05 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
02:24:08 refusenick joins (~user@2601:644:8502:d700::9c98)
02:24:42 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
02:25:35 <glguy> It's not a bad idea; the defaults for ghcid don't seem that good
02:26:02 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
02:26:14 <ezzieyguywuf> I was just wondering if there was any rule-of-thumb that considered it poor practice
02:27:25 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:28:35 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
02:29:59 slack1256 joins (~slack1256@45.4.2.52)
02:30:24 nineonine joins (~nineonine@50.216.62.2)
02:33:01 × nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
02:33:10 × average quits (uid473595@gateway/web/irccloud.com/x-ooapnrdetvogzxir) (Quit: Connection closed for inactivity)
02:33:18 augnun joins (~augnun@2804:14c:658b:41bb:6e95:e9d6:334a:6db9)
02:33:27 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
02:33:29 × pharaun quits (~pharaun@static.88-198-62-245.clients.your-server.de) (Ping timeout: 256 seconds)
02:33:37 × Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 268 seconds)
02:33:57 × xwvvvvwx quits (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Ping timeout: 260 seconds)
02:33:59 × int-e quits (~noone@int-e.eu) (Ping timeout: 256 seconds)
02:34:45 × nek0 quits (~nek0@mail.nek0.eu) (Ping timeout: 264 seconds)
02:35:35 Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
02:36:49 <koz_> ezzieyguywuf: I dunno. For a personal project, it's primarily for your convenience.
02:36:51 <koz_> So I wouldn't worry.
02:38:46 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 276 seconds)
02:40:40 × Sigyn quits (sigyn@freenode/utility-bot/sigyn) (*.net *.split)
02:41:46 <ezzieyguywuf> fair point
02:42:02 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
02:42:11 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:dc1b:a75f:4664:5af2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:42:17 <ezzieyguywuf> is there a less confusing way to do `either (Left . doSomething) Right (getAnEitherFrom someData)`
02:42:19 × DataComputist quits (~lumeng@50.43.26.251) (Remote host closed the connection)
02:42:35 <ezzieyguywuf> in other words, if getAnEitherFrom returns a Left, then we want to propogate the Left but transform it
02:42:45 <koz_> ezzieyguywuf: first from Data.Bifunctor?
02:42:58 <ezzieyguywuf> specifically I'm using this with megaparsecs parse, which returns an ErrorBundlePretty but I want just a Text
02:43:26 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
02:43:45 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
02:43:45 Lord_of_Life_ is now known as Lord_of_Life
02:44:12 pharaun joins (~pharaun@static.88-198-62-245.clients.your-server.de)
02:44:14 xwvvvvwx joins (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx)
02:44:18 nek0 joins (~nek0@mail.nek0.eu)
02:45:39 int-e joins (~noone@int-e.eu)
02:46:11 __minoru__shirae joins (~shiraeesh@46.34.206.213)
02:46:38 <koz_> % :t first
02:46:57 <koz_> Is yahb dead again?
02:48:07 Sigyn joins (sigyn@freenode/utility-bot/sigyn)
02:48:07 rothfuss.freenode.net sets mode +o Sigyn
02:48:08 nbloomf joins (~nbloomf@2600:1700:ad14:3020:2015:9fa2:bf0b:7f16)
02:48:47 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
02:49:27 × lkurusa_ quits (~lkurusa@209.250.237.122) (Ping timeout: 246 seconds)
02:56:30 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:2015:9fa2:bf0b:7f16) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:56:48 DataComputist joins (~lumeng@50.43.26.251)
02:56:49 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 260 seconds)
02:56:56 × xff0x quits (~xff0x@2001:1a81:53fc:b400:1709:f370:e50:9a12) (Ping timeout: 240 seconds)
02:57:49 justan0theruser joins (~justanoth@unaffiliated/justanotheruser)
02:58:23 nbloomf joins (~nbloomf@2600:1700:ad14:3020:2015:9fa2:bf0b:7f16)
02:59:08 xff0x joins (~xff0x@2001:1a81:5237:bb00:afc3:f953:e68b:99a6)
02:59:15 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
02:59:44 average joins (uid473595@gateway/web/irccloud.com/x-eenzrwxaxysearfe)
03:00:13 × urodna_ quits (~urodna@unaffiliated/urodna) (Quit: urodna_)
03:03:24 × alx741 quits (~alx741@186.178.108.117) (Quit: alx741)
03:03:53 lkurusa joins (~lkurusa@fedora/Levex)
03:04:28 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 268 seconds)
03:06:54 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
03:07:34 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Quit: Leaving)
03:08:35 <MarcelineVQ> was it ever really alive
03:15:07 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:15:08 finn_elija is now known as Guest69399
03:15:08 FinnElija is now known as finn_elija
03:16:05 berberman_ joins (~berberman@unaffiliated/berberman)
03:16:33 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
03:17:37 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
03:19:09 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 264 seconds)
03:19:16 × Guest69399 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
03:19:25 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
03:19:35 oafs is now known as oats
03:20:38 × DataComputist quits (~lumeng@50.43.26.251) (Remote host closed the connection)
03:21:15 DataComputist joins (~lumeng@50.43.26.251)
03:22:15 <ephemient> @hoogle (a -> b) -> Either a c -> Either b c
03:22:16 <lambdabot> Data.Either.Combinators mapLeft :: (a -> c) -> Either a b -> Either c b
03:22:16 <lambdabot> Data.Either.Extra mapLeft :: (a -> c) -> Either a b -> Either c b
03:22:16 <lambdabot> Extra mapLeft :: (a -> c) -> Either a b -> Either c b
03:23:12 <jackdk> % first @Either
03:23:24 <jackdk> % :t first @Either
03:23:37 <jackdk> > :t first @Either
03:23:38 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
03:23:39 <ephemient> yahb isn't here :(
03:24:16 <jackdk> `first @Either :: (a -> b) -> Either a c -> Either b c`
03:24:42 <jackdk> that's Data.Bifunctor.first
03:25:05 <ephemient> and not Control.Arrow.first
03:25:59 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 260 seconds)
03:26:07 <ephemient> I wonder if lambdabot has either of those in scope
03:26:09 <ephemient> :t first
03:26:11 <lambdabot> Arrow a => a b c -> a (b, d) (c, d)
03:26:59 <ephemient> :t Data.Bifunctor.first
03:27:01 <lambdabot> Bifunctor p => (a -> b) -> p a c -> p b c
03:28:18 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
03:28:26 × chenshen quits (~chenshen@2620:10d:c090:400::5:9f47) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
03:32:57 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
03:34:09 × obiwahn quits (~obiwahn@pdpc/supporter/student/obiwahn) (Ping timeout: 264 seconds)
03:34:15 × blissful quits (~blissful@unaffiliated/azuline) (Ping timeout: 246 seconds)
03:34:36 × augnun quits (~augnun@2804:14c:658b:41bb:6e95:e9d6:334a:6db9) (Quit: WeeChat 3.0.1)
03:34:43 × jakalx quits (~jakalx@base.jakalx.net) (Ping timeout: 260 seconds)
03:34:44 <heck-to-the-gnom> Is hoogle down for anyone else?
03:35:00 deviantfero joins (~deviantfe@190.150.27.58)
03:35:48 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
03:35:52 <jackdk> works for me, heck-to-the-gnom
03:36:48 <heck-to-the-gnom> Weird, it seems somewhere along the supply chain hoogle.haskell.org & haskell.org/hoogle was blocked
03:36:51 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
03:36:59 <heck-to-the-gnom> (for me, anyway)
03:37:36 <heck-to-the-gnom> I have sent a large number of requests to them lately, not as spam, but during an actual programming session
03:38:40 koz joins (~koz@2404:4408:4342:2a00:1958:92dc:60f3:680b)
03:39:38 × koz_ quits (~koz@2404:4408:4342:2a00:1958:92dc:60f3:680b) (Ping timeout: 264 seconds)
03:39:52 × stree quits (~stree@68.36.8.116) (Ping timeout: 276 seconds)
03:42:16 <heck-to-the-gnom> Aand, just like that the issue disappeared. Weird
03:42:34 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
03:43:21 × theDon quits (~td@muedsl-82-207-238-151.citykom.de) (Ping timeout: 246 seconds)
03:44:10 blissful joins (~blissful@unaffiliated/azuline)
03:44:24 obiwahn joins (~obiwahn@pdpc/supporter/student/obiwahn)
03:45:17 theDon joins (~td@94.134.91.49)
03:45:25 DataComputist joins (~lumeng@50.43.26.251)
03:46:12 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
03:46:17 koz is now known as koz_
03:50:37 raym joins (~ray@45.64.220.3)
03:52:19 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-ywkwdxdlophboxsa) ()
03:52:27 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
03:52:41 Tario joins (~Tario@201.192.165.173)
03:52:46 stree joins (~stree@68.36.8.116)
03:54:11 <koz_> Hoogle does this periodically.
03:54:28 polyrain joins (~polyrain@2001:8003:e4d8:4101:6ceb:5781:5054:5a4)
03:54:56 conal joins (~conal@64.71.133.70)
03:55:10 × conal quits (~conal@64.71.133.70) (Client Quit)
03:55:35 × Gunni1 quits (~Gunni@139.28.218.148) (Remote host closed the connection)
03:58:22 × polyrain quits (~polyrain@2001:8003:e4d8:4101:6ceb:5781:5054:5a4) (Client Quit)
03:58:32 conal_ joins (~conal@64.71.133.70)
03:58:42 × conal_ quits (~conal@64.71.133.70) (Client Quit)
04:02:25 × barnowl quits (~barnowl@gateway/tor-sasl/barnowl) (Remote host closed the connection)
04:02:34 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
04:02:52 conal joins (~conal@64.71.133.70)
04:02:52 × conal quits (~conal@64.71.133.70) (Client Quit)
04:03:05 barnowl joins (~barnowl@gateway/tor-sasl/barnowl)
04:03:14 jpds joins (~jpds@gateway/tor-sasl/jpds)
04:04:04 × dxld quits (~dxld@rush.pub.dxld.at) (Ping timeout: 240 seconds)
04:04:53 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
04:06:23 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
04:06:24 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:07:50 dxld joins (~dxld@80-109-136-248.cable.dynamic.surfer.at)
04:08:36 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
04:08:57 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
04:09:38 × pjb quits (~t@2a01cb04063ec5009154a4e157e0cbac.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
04:10:58 lunaphyte_ joins (~lunaphyte@217.146.82.202)
04:11:28 × howdoi quits (uid224@gateway/web/irccloud.com/x-kijbwunaxvivrehm) (Quit: Connection closed for inactivity)
04:11:43 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 276 seconds)
04:11:54 chenshen joins (~chenshen@2620:10d:c090:400::5:9f47)
04:12:00 Rudd0 joins (~Rudd0@185.189.115.103)
04:12:00 <Axman6> Sometimes is just needs a nap.
04:12:52 <Axman6> I wonder if it's like B&H in the US, which shuts down their website during the sabbath because it's run by authodox Jews
04:14:06 <koz_> B&H?
04:14:22 <Axman6> big photography store in the US
04:14:44 <Axman6> uh, and Orthodox - I thought it looked weird!
04:15:05 <koz_> Authodox sounds like a DDOS prevention service.
04:15:24 <qih> Hi all, what is a good book for a Haskell n00b to purchase? I notice there are quite a few around with pages at 600 +. Am after a concise but practical intro to the lang and FP.
04:15:26 <Axman6> Apparently it's an NZ company for document management, haha
04:16:07 <qih> koz_: Authodox <= great name for a new library 8-)
04:16:18 <koz_> Axman6: Roflll.
04:16:42 <Axman6> yeah I was thinking it would be a good name for a library for authentication
04:16:42 <koz_> qih: Well, until said NZ company for document management decides to break out lawyers over a name disagreement.
04:16:50 koz_ looks at the left-pad author.
04:16:52 plutoniix joins (~q@184.82.201.211)
04:17:16 <qih> Haha, I have never heard of it, not that that means much.
04:17:32 qih googles "authodox + nz"
04:18:03 <Axman6> turned out that half the NPM ecosystem relied on the left-pad package, which literally just had a single function for left padding strings, and the author deleted it and tyhe whole universe imploded
04:18:23 × softwarm quits (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds)
04:18:32 <qih> Oh haha whoops.
04:18:32 <Axman6> it was a pretty fun time - it'd be like Ed deleting lens and someone deleting bytestring and text
04:18:33 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 264 seconds)
04:18:49 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
04:19:00 <koz_> qih: The slightly longer answer is this. Said person made an NPM package called 'kik'.
04:19:12 <koz_> Then the company with the same name went 'either hand over the name or we lawyer up'.
04:19:23 <qih> Well authodox.co.nz should get their website digital cert re-issued. Amateurs.
04:19:29 <koz_> (no really, they went from 'asking' to 'lawyers' in about 10 seconds)
04:19:29 <heck-to-the-gnom> I'd like to think other infrastructures are more solid than NPM
04:19:33 <koz_> qih: I'm not even surprised.
04:19:35 <heck-to-the-gnom> That might be wishful thinking
04:19:42 <qih> Oh.
04:19:45 <koz_> NZ, for all its many qualities, is the land of 'ehh, it'll do'.
04:20:00 <qih> koz_: Clearly you are in NZ also?
04:20:04 <koz_> qih: Yep!
04:20:10 <koz_> I am not originally from here though.
04:20:24 <qih> koz_: Great.
04:21:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
04:21:22 <qih> Sigh, I'll email them about their lame CA lapse.
04:21:54 <Axman6> ANZACs represent
04:22:02 <Axman6> -AC I guess
04:22:03 <koz_> qih: You are a better person than me. :P
04:22:04 <qih> Right on digger
04:22:15 <qih> Axman6: Hahaha
04:22:48 <Axman6> ANZLC - Australian and New Zealand Lambda Corps
04:22:52 <qih> koz_: Ah it takes a few minutes, can educate them too.
04:22:59 <Axman6> not too different from ANZLIC I guess
04:23:12 <qih> Axman6: Haha yeah not a lot of the ANZAC spirit lately, right?
04:23:18 <koz_> Lol.
04:23:21 <qih> ANZLIC <= sounds tacky
04:23:27 <koz_> Australia and NZ are fairly different as places IMHO.
04:23:31 <qih> 8-)
04:23:40 <qih> koz_: Yes & No.
04:23:45 <koz_> We get lumped together a lot, but it's a bit odd to me.
04:24:01 <Axman6> Y'all keep making us look good by having a competent, trustworthy government
04:24:04 <Axman6> )uh, bad*
04:24:12 <koz_> Axman6: Lol.
04:24:24 <qih> Well we are both ex-GB colonies at the bottom of the world on the edge of Asia, kinda link cousins.
04:24:25 <koz_> Yeah, we're in lockdown for the second time in a 4-week period.
04:24:35 <koz_> (we're _hopefully_ due to exit in a day or two)
04:24:54 <qih> koz_: One can hope.
04:25:08 × carlomagno1 quits (~cararell@148.87.23.6) (Quit: Leaving.)
04:25:20 <qih> So recommendations for a Haskell book? Or should I just stick with LYAH for the time being?
04:25:44 <koz_> qih: I found the Haskell Wikibook useful personally.
04:25:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:26:18 <qih> K, ta, will check that out.
04:26:31 <shapr> qih: Graham Hutton's Programming in Haskell is shorter than most, and I like the 2nd edition
04:27:01 <slack1256> 1+ for Graham Hutton
04:27:27 <slack1256> Well you can read on the side what ever introduction you like. I read LYAH until the monads part as it didn't make sense.
04:27:43 <slack1256> you can do multi book drifting etc
04:27:49 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds)
04:27:56 <heck-to-the-gnom> I'm just winging it, lol, perhaps not the best Idea seeing as I'm struggling with simple things, but I'll learn.
04:28:11 slack1256 sends a gambare!
04:28:27 <koz_> Good things take time, so I hear.
04:29:53 slack1256 would have sent a "tatakae!" but that has gotten bad rep lately...
04:30:09 <qih> shapr: Thanks, looking.
04:30:18 <MarcelineVQ> slack1256: yamero!
04:31:20 <Axman6> I learned Haskell at university, and Hutton's book was what we used, though I didn't use the book much. Having read it after that I would definitely recommend it though - I would also strongly recommend sticking around in this channel and asking for help, because finding answers and understanding them can be hard without someone to prod you in the right direction
04:31:44 <Axman6> And if you're in NZ, there's plenty of us collonials around to help in your timezone
04:32:07 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
04:34:08 <slack1256> MarcelineVQ: hai hai ;_;.
04:34:20 <MarcelineVQ> come back in ten years
04:34:33 <koz_> Yep, you'll find me around here for sure if you overlap with my awake times.
04:35:19 <qih> Axman6: Thanks noted, will do.
04:35:20 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:35:21 Axman6 guesses that koz_basically lives in AEST anyway
04:35:24 × inkbottle quits (~inkbottle@aaubervilliers-654-1-112-176.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
04:35:54 <MarcelineVQ> koz_ time is amorphous, protozoic possibly
04:36:00 Tario joins (~Tario@201.192.165.173)
04:36:00 <qih> koz_: I rang Authodox and told them about their expired CA ... gawd what a pleb 8-)
04:36:08 <Axman6> haha
04:38:58 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:43:24 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
04:43:55 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds)
04:46:17 redmp joins (~redmp@172.58.38.160)
04:48:43 <Axman6> BTW, if anyone is looking for a job in .au, Bellroy are hiring an Elm front end dev and a Haskell/Ruby/other things dev at the moment: https://bellroy.com/careers
04:48:52 <qih> Is Haskell capable in the way of System Programming or maintenance? I've used Python to do a *lot* of things on my OSes over the years. I'd like to pretend I am grown up and move away from Bash.
04:49:05 <Axman6> There's some pretty cool people who work there (at least one is a regular here but I won't dob him in)
04:50:00 <qih> Axman6: Nice post. I read about Elm today on the DAML forum. Seems capable and sane, unlike ES6 et al.
04:50:55 <Axman6> qih: The answer is definitely "yes", but it's a bit of a difficult question to answer too. I feel like Xmonad is a good example of how to interract with other parts of the system. There's also turtle for shell scripting like things
04:51:13 <Axman6> DAML eh? There's _definitely_ people in here writing DAML every day :)
04:51:50 <koz_> qih: It can be done, but in terms of available libraries, it's probably not to Python's level.
04:52:13 <koz_> Ecosystem deficiencies are what limits it the most in that kind of task I think.
04:52:34 <Axman6> yeah the answer mostly depends on the specifics
04:52:42 <qih> Axman6: Oh that is great news. I know most of you younger peoples *love* Slack etc, so was not sure ifI'd find any DAMLers on #IRC.
04:53:01 <qih> koz_: Thanks for the tip.
04:54:05 <koz_> #haskell is pretty active as IRC channels go.
04:54:16 <Axman6> yeah I don't know many other DAMLers on here, we seems to push people towards the forum so answers to questions are searchable
04:54:42 <qih> K, good to see. Plenty of peeps in channel is a good sign, like #Debian and #Python +1
04:54:44 <Axman6> For a loing time #haskell was one of the biggest channels on freenode, bigger than #python. not sure these days
04:55:13 <koz_> Axman6: Probably still true?
04:55:29 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 245 seconds)
04:55:52 <qih> Axman6: Good point re forum and searchable content, although most #IRC is logged *somewhere*, the forum format is easier to search and read.
04:56:00 <Axman6> ¯\_(ツ)_/¯
04:56:24 <Axman6> yeah the forum make sit easier to categorise things and identify questions
04:56:47 <qih> koz_: I'd run a list check, search and word count but it'd probably kill this RPi
04:57:16 qih is using a RPiv3 as a Desktop while waiting for a new motherboard 8-(
04:58:02 <Axman6> looks like we're about 1k, #python is 1.6k
04:58:11 <qih> https://hackage.haskell.org/package/turtle <= excellent.
04:58:42 <Axman6> How's that going? I always found an RPi just always felt slow, doesn't really matter what it was doing. I une my Unifi controller on mine and that's about it
04:58:45 <qih> Now just have to work out how to load it ... 8-)
04:59:32 <qih> As a Desktop it is like using a 686 running Win98SE, works but too much load, it runs out of SWAP and MEM, then jams.
04:59:35 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
04:59:49 yahb joins (xsbot@178.219.36.155)
04:59:49 × yahb quits (xsbot@178.219.36.155) (Changing host)
04:59:49 yahb joins (xsbot@haskell/bot/yahb)
05:00:05 <koz_> I used some RPi2ish level boards as microservers for a while.
05:00:09 <koz_> I even ported Gentoo to one!
05:00:10 <qih> So a Terminal, some server connections through that, a Chromium browser with 4 tabs, works OK.
05:00:21 <koz_> It _works_, but it's definitely restrictive and annoying.
05:00:44 <qih> koz_: Haha cool. I'd hate to see an 'emerge world' on an RPi o_0
05:00:48 mniip joins (mniip@freenode/staff/mniip)
05:00:55 <qih> Agree. It works.
05:01:00 <koz_> It was definitely a time-consuming endeavour.
05:01:04 <koz_> Kinda fun in its own way though.
05:01:18 <koz_> I've since decomissioned them and instead use an old Eee-PC.
05:01:32 <Axman6> Always felt like IO was the limiting factor to me
05:01:33 <qih> I compliled OpenCV 4 at Xmas as I was running some cameras and that took about 10 hours.
05:02:24 <heck-to-the-gnom> My python brain, when you did `_works_` thought a private method/variable (or as close as you can get with that in python anyway) and I interpreted that as "it works, but if I touch it AT ALL, it won't". Which, given that you probably meant italics, that's basically the same thing
05:02:40 <qih> Anyway, the RPi is great for running *lang microservices, servers, testing clients, networks, etc.
05:02:53 <koz_> Yeah, I'd say it's good for this.
05:02:59 <Axman6> heck-to-the-gnom: ha, sounds pretty accurate
05:03:05 <koz_> ARM boards are great as microservers, because they have quite low power use.
05:03:16 <koz_> So you can actually ride out power outages entirely on a UPS.
05:03:20 <koz_> (I've done this before)
05:03:27 <koz_> (power is a tad spotty where I am)
05:03:54 <Axman6> The machine I have this IRC client running on is a Zen2 machine with 24TB storage, so wanted a little more drunt for things like video transcoding via Plex
05:04:36 <heck-to-the-gnom> 24TB... Dang. Thou art lucky &/or rich.
05:05:24 <qih> Axman6: Nice!
05:05:47 <qih> Or he's SSH'd into some Enterprise beast ...
05:06:36 <koz_> Yeah... I have a NAS, but it packs considerably less than that.
05:07:08 <qih> "These features make Haskell ideal for scripting, particularly for replacing large and unwieldy Bash scripts." <= finally, someone said it 8-/
05:07:33 <Axman6> It's something the size of an old HP Microserver. The other specs are pretty modest, 16GB. It had 4 3TB drives for like 6 years but for the last few one had constant read errors, so bit the bullet and replaced them all with 8TB ones. Having ZFS being able to expand into the new space when they were all replaced was very nice
05:08:59 <qih> Makes sense with those specs.
05:09:41 Axman6 is resisting the urge to find an old school /specs script for glirc
05:09:50 × forgottenone quits (~forgotten@176.88.30.190) (Quit: Konversation terminated!)
05:10:03 <glguy> Axman6, find? like in the glirc script archive?
05:10:42 <Axman6> ... there is one? :o
05:10:47 <Axman6> I never looked!
05:11:05 × cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection)
05:11:41 <glguy> Of course not :-p
05:11:54 <Axman6> I feel you've already got ops ready to go to ban me if I used one though
05:11:55 <qih> The Turtle Library must have been named by an Australian, no-one else would call a lightweight, fast library ... Turtle.
05:12:02 polyrain joins (~polyrain@2001:8003:e4d8:4101:6ceb:5781:5054:5a4)
05:12:14 <glguy> "ready"? the client ops you as needed, you should know that :)
05:12:21 <Axman6> Like naming a ranger Blue?
05:12:26 <jle`> qih: it's a pun heh
05:12:38 <Axman6> ranga*
05:13:01 <koz_> It is the rule in the Haskell ecosystem that you must name your libraries as references.
05:13:05 <koz_> The more obscure the better.
05:13:08 <qih> Axman6: Yep. And the Lib Gov, competent ... you get the drift 8-)
05:13:24 <koz_> Ideal choice is basically a fifteen-layer reference about three people get total.
05:13:33 <qih> Haha
05:13:38 <Axman6> No one would make that mistake, particularly this week
05:13:49 <koz_> Bonus points for any of: wordplay, category theory references, featuring puns on 'Haskell', 'Curry', 'Church' or 'Hoare'.
05:14:06 <jle`> iirc turtle is a pun on 'shell'
05:14:08 cheater joins (~user@unaffiliated/cheater)
05:14:08 <qih> o_0
05:14:14 <Axman6> I have for years wanted to write an Accelerate backend for Grenade called RPG but alas, I have no idea what I'm doing
05:14:15 <koz_> jle`: Deep lore.
05:14:21 <koz_> Axman6: Rofl.
05:14:24 <qih> jle`: Ohhhhhh, me.dense
05:14:57 <koz_> I don't follow this rule with any of my libraries sadly.
05:15:06 <koz_> (even my most recent one is very boringly and descriptively named)
05:15:25 qih installs Stack
05:15:37 <Axman6> RIP your RAM
05:15:49 <heck-to-the-gnom> I just realized you can do things like `isn'tFloating wn = ` *Hoare* in haskell. Niche thing, but I like.
05:15:57 <qih> koz_: I look at some of the libs on updates and weird package installs, you are not alone.
05:16:06 <Axman6> actually, it';s pretty good these days, it used to be worse than Chrome but they put in a lot of work (and emailed me to tell me they had months after I complained about it to them!)
05:16:27 <koz_> Someone had an excellent quote in lambdabot.
05:16:28 <koz_> Something like
05:16:37 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
05:16:43 <koz_> "You would get more attention if you titled it 'Church isn't just for Hoare's'."
05:16:46 <Axman6> iShouldn't'veDoneThat = error
05:17:00 <koz_> Axman6: I use it for naming constructors for error types all the time.
05:17:18 <boxscape> @quote Church.isn't
05:17:18 <lambdabot> No quotes match. Are you on drugs?
05:17:23 <qih> Oh no, no Stack for ARM-based Linux 8-(
05:17:26 <koz_> data FuckyWucky = Didn'tValidateProperly | Couldn'tRunThings | ...
05:17:34 <Axman6> data Error = UhWtf'IOError | UhWtf'DBError | ...
05:17:44 <boxscape> @quote Church.is.not
05:17:44 <lambdabot> procyon says: emk: You might get a wider audience with "Church is not just for Hoare's"
05:17:48 <koz_> That one!
05:17:54 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
05:17:55 <qih> Ah well, I'll just RTFM etc.
05:18:04 <Axman6> ok that's much better than mine. Need to use data FukkyWukky more often
05:18:08 <qih> Haha nice quote
05:18:12 <koz_> boxscape: Do you know the context of that quote?
05:18:34 <boxscape> no clue, I stumbled across it a couple days ago when exploring @quote Church though
05:18:46 <koz_> LOL
05:18:58 <koz_> I really wanna know the series of circumstances that prompted this.
05:19:05 <koz_> (the quote, not your exploring)
05:19:30 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:19:33 <koz_> Axman6: I would be much more clever in Real Job's codebase naming.
05:19:35 <boxscape> well, there are logs for #haskell, you just need to come up with a convenient way to grep them ;)
05:19:47 <qih> I like the Haskell/Turtle syntax much better than Bash.
05:19:50 <koz_> Except that I suspect my colleagues don't share my rather specific taste in humour.
05:19:59 <Axman6> qih: and there's types!
05:20:15 Tario joins (~Tario@201.192.165.173)
05:20:22 <qih> Available in scripting? gedthefugouttahere!
05:20:47 <Axman6> Technically, bash has type
05:20:52 <qih> koz_: Frack'em if they can't take a joke.
05:21:03 <Axman6> I guess string and arrays of string are different types
05:21:09 <qih> True.
05:21:31 <koz_> qih: I don't think they have much shale oil inside.
05:21:43 <qih> Bash/ZSH etc are fine, even awesome *but* it is hard work sometimes to do clever things, well.
05:22:20 <qih> Snicker, I see what ya did there. Just didn't know if f**k would be OK here. Some channels are a little *tightly* wound.
05:22:24 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
05:22:30 <koz_> qih: Generally speaking discouraged here.
05:22:37 <qih> K noted.
05:23:11 <koz_> The closest to humour I managed in work codebases was naming a JSON schematization library 'medea'.
05:23:17 <koz_> And like... _one_ person got that joke.
05:23:21 <koz_> s/joke/reference/
05:23:23 <qih> boxscape: Trawling #IRC for tech gems is hard.
05:23:39 <qih> koz_: Hahaha
05:24:13 <qih> boxscape: Edit => Trawling #IRC logs for tech gems is hard.
05:24:30 <boxscape> hm
05:24:33 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
05:25:10 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 276 seconds)
05:25:35 <boxscape> actually I'm not even sure if there's continuous publicly available logs before 2018, although I'm sure they exist somewhere (though possibly not publicly available)
05:26:14 <boxscape> oh never mind the linked logs go back to at least 2013 if you go to the old/ directory
05:26:34 <Axman6> I probably have them somewhere...
05:26:55 <Axman6> not sure about my irssi logs
05:27:19 <qih> Right, enjoy. That'll be some awesome awk|sed|cut|bash funnery
05:27:40 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:2015:9fa2:bf0b:7f16) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:28:11 <boxscape> just need to `grep -rn 'Church is not just for Hoare'`
05:28:34 <koz_> Alonzo Church has given us endless pun-fodder.
05:29:14 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 245 seconds)
05:29:34 <qih> boxscape: Well there is always that then ...
05:30:49 <heck-to-the-gnom> Anyone up for solving my mess of XMonad type mismatching? https://p.bsd-unix.net/view/6ff2b32f
05:30:49 <edwardk> The first time I heard about Hoare triples it took me more time than I'd like to admit to disambiguate the sentence.
05:31:03 <Axman6> ;)
05:31:26 <Axman6> Want some help with that post-condition big boy?
05:31:32 <heck-to-the-gnom> I'm trying to sort filter for floating & non-floating windows in xmonad when modifying the stack directly
05:31:56 <edwardk> Sorry, your precondition seems a little too weak.
05:32:09 × jrqc quits (~rofl@96.78.87.197) (Ping timeout: 245 seconds)
05:33:08 <koz_> edwardk: Rofl.
05:33:27 <koz_> Is this an appropriate venue and time to make a certain stripe of joke? :P
05:33:27 <heck-to-the-gnom> OK, well I'm logging off for today, but I'm using matrix, so everything's logged. Feel free to work on that, (if anyone wants to help anyway, my Haskell skills are extremely sub-par).
05:33:30 <Axman6> How I prove you wrong for $300
05:33:40 <Axman6> about*
05:34:52 jrqc joins (~rofl@96.78.87.197)
05:35:15 nineonine joins (~nineonine@50.216.62.2)
05:36:27 <boxscape> if you give me a command I'll make sure your post-condition is satisfied ;)
05:37:09 <Axman6> Ooo, are you also into Big Data SQL Management?
05:38:05 koz_ points at the term 'Hoare triples' and giggles like a dork.
05:40:14 <edwardk> koz_: probably not. only mentioned it because of the off-color Church/Hoare line right before brought it to mind.
05:40:19 <koz_> edwardk: Fair.
05:41:03 × slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 256 seconds)
05:43:02 <qih> SHall I assume that Haskell has hooks for WXWidgets or is there a native, lightweight GUI lib?
05:43:16 <koz_> qih: I _believe_ the best bindings are for GTK.
05:43:24 <qih> K ta.
05:43:26 <koz_> However, that comes with all the caveats of GTK.
05:43:37 <Axman6> there is, but I don't know many people who've used it. there's another even more lightweight one whose name I can't remember.. fltk)?
05:43:37 <koz_> And also the added caveats that I've never used them.
05:43:47 <koz_> Axman6: Yeah, deech's thing.
05:44:16 <qih> FLTK, ta. Checking.
05:45:26 <Axman6> I love that on duckduckgo, searching for "haskell fltk" comes up a photo of deech as the first result
05:45:28 <qih> https://github.com/deech/fltkhs <= interesting
05:45:33 <koz_> How does one pronounce 'FLTK'? Eff-Ell-Tee-Kay?
05:45:39 <Axman6> yeah
05:45:46 <qih> Fancy that ...
05:45:52 <koz_> You never know.
05:45:56 <qih> Indeed.
05:46:03 <koz_> Half the time, you get libraries named fhutagjpor that are pronounced 'Orange'.
05:46:22 <boxscape> it's pronounced fulltick according to wiki
05:46:28 <koz_> boxscape: TIL.
05:46:55 <qih> Using Firefox-ESR on Riv3, the browser must be detecting mobile device-like headers, so the google page and search are rendered in that appalling Mobile format, bleh <= thought I'd whine.
05:46:55 <koz_> So thus there must exist the pessimist version MTTK.
05:47:04 <boxscape> hah
05:47:08 <qih> boxscape: Fulltick, nice
05:48:10 <koz_> And the centrist HFTK?
05:48:37 <qih> https://github.com/deech/fltkhs/blob/master/images/tree-complex-windows.png That is nowhere as ugly as I feared, not bad at all.
05:49:03 <jackdk> there's also a haskell-gi lib that uses GObject introspection to do gtk
05:49:29 <boxscape> wow some throwbacks to the last millenium
05:49:29 <jackdk> upon which https://github.com/owickstrom/gi-gtk-declarative is built
05:50:15 <jackdk> https://owickstrom.github.io/declarative-gtk-programming-in-haskell/ may be a helpful getting-started
05:50:41 <jackdk> qih: that's beautiful! I can see exactly which things are controls, and know what to click where
05:50:59 <Axman6> http://hackage.haskell.org/package/fltkhs-0.8.0.3/docs/Graphics-UI-FLTK-LowLevel-FLTKHS.html#g:3 is worth taking note of
05:51:41 <koz_> I always wonder at the term 'look and feel' for GUIs.
05:51:42 <Axman6> https://github.com/deech/fltkhs-themes-demo
05:51:55 <koz_> Like, last I checked, GUI didn't have the term 'tactile' in it.
05:52:24 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
05:52:42 <qih> jackdk: I know right! He's done a really solid job of making that UI 10/10
05:52:47 <Axman6> Wouldn't be surprised of FLTK has a braille interface :P
05:52:50 <boxscape> koz_ it might refer to how it responds to inputs
05:53:03 <koz_> boxscape: Yeah, makes sense, I'm just nitpicking. :P
05:53:27 <Axman6> jackdk: excuse me who doesn't like a hamburger button as interface interface?
05:53:32 <boxscape> (Though I suspect people have also been using "look and feel" for static sites)
05:53:35 <qih> Axman6: Ctrl-D'd for sure.
05:54:56 <jackdk> Axman6: I prefer programs where all operations are behind the `M-x` button, like a civilised person
05:55:04 <Axman6> to me, that means close stdin
05:55:15 <qih> boxscape: 'Look & Feel' ... marketing leet speak of little merit.
05:56:51 <jackdk> Axman6: technically it sends the contents of the tty buffer without waiting for EOL
05:57:09 <jackdk> qih: m4rk3ting sp33k?
05:57:23 <qih> I want to make some simple Haskell-UI widgets to run on a bunch of machines, to simulate agents for a DAML. Hence the interest in Lightweight UI.
05:57:29 <qih> jackdk: Snicker.
05:57:29 <Axman6> jackdk: whatever, nerd 8)
05:59:13 <qih> I might ask that as a question on the DAML forum, about simulations of agents from an almost RT perspective. I 'spose someone will tell me there is already a lib for that ...
05:59:32 Axman6 awaits jackdk recommending Reflex
06:00:21 <Axman6> qih: have you done the tutorial which creates a web ui? I was very impressed with the real-time nature of it
06:01:09 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
06:02:01 <Axman6> DAML + Reflex would be quite cool actually
06:02:08 <qih> Axman6: Ah the 'social media' one?
06:02:37 × polyrain quits (~polyrain@2001:8003:e4d8:4101:6ceb:5781:5054:5a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:02:45 <Axman6> I think it was just a chat app, but maybe
06:03:27 <qih> Yes that's it. I have, had all the DAML stuff in, was working through the tutorials then the motherboard died.
06:04:08 <koz_> qih: That bodes well. :P
06:04:37 <qih> That was really cool. The instant nature of the network comms was not unlike Erlang's GEN_Server ... I was hooked 8-)
06:07:17 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
06:07:29 <koz_> Wow, my tiny MR has now had comments from both Simon and Edward.
06:11:39 × wmacmil quits (~wmacmil@c83-252-138-144.bredband.comhem.se) (Ping timeout: 260 seconds)
06:11:50 <qih> Oh, on the DAML Core Team?
06:12:48 <koz_> qih: No, on GHC.
06:12:49 × kam1 quits (~kam1@5.125.82.63) (Ping timeout: 260 seconds)
06:13:15 × xff0x quits (~xff0x@2001:1a81:5237:bb00:afc3:f953:e68b:99a6) (Ping timeout: 240 seconds)
06:13:37 <qih> OK, still, congrats
06:14:00 stree joins (~stree@68.36.8.116)
06:14:18 xff0x joins (~xff0x@2001:1a81:5237:bb00:987e:1ed6:ef8c:3d12)
06:14:30 <koz_> qih: Thanks!
06:14:53 <koz_> Axman6: DAML + Reflex = DAMLflex?
06:16:22 <Axman6> ReflAML
06:17:07 × lunaphyte_ quits (~lunaphyte@217.146.82.202) (Remote host closed the connection)
06:17:29 <qih> Sounds like a fancy pharmaceutical ... Reflamil.
06:17:41 Page43 joins (debe8e1e@222.190.142.30)
06:17:49 <koz_> qih: Take it to resolve all your IRL async issues.
06:17:54 <qih> I smell a C&D letter coming on.
06:18:06 <qih> Haha excellent, thanks.
06:19:34 <qih> Async I am hungry.
06:20:42 <koz_> Async that pun was ungodly.
06:20:44 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
06:21:34 × Page43 quits (debe8e1e@222.190.142.30) (Client Quit)
06:22:02 <qih> Haha, no, it was *awesome*
06:28:28 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
06:30:28 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 245 seconds)
06:31:05 Tops2 joins (~Tobias@dyndsl-095-033-090-077.ewe-ip-backbone.de)
06:32:08 × qih quits (~pi@210-54-120-166.adsl.xtra.co.nz) (Read error: Connection reset by peer)
06:32:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:32:58 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
06:33:35 ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net)
06:34:01 qih__ joins (~pi@210-54-120-166.adsl.xtra.co.nz)
06:34:33 Trasp joins (~Trasp@195.140.213.38)
06:34:47 <qih__> Well that was fun.
06:39:33 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 264 seconds)
06:42:42 × ryanbooker quits (uid4340@gateway/web/irccloud.com/x-rnkpnanajeurascu) (Quit: Connection closed for inactivity)
06:43:20 bahamas joins (~lucian@unaffiliated/bahamas)
06:45:52 forgottenone joins (~forgotten@176.88.30.190)
06:48:37 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
06:48:56 × _bin quits (~bin@2600:1700:10a1:38d0:922b:34ff:fe99:1283) (Ping timeout: 240 seconds)
06:49:11 graf_blutwurst joins (~user@2001:171b:226e:adc0:441d:c551:5138:50ac)
06:53:10 × average quits (uid473595@gateway/web/irccloud.com/x-eenzrwxaxysearfe) (Quit: Connection closed for inactivity)
06:54:20 mirrorbird joins (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519)
06:56:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:58:59 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:00:16 _bin joins (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net)
07:02:59 × mirrorbird quits (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519) (Read error: Connection reset by peer)
07:03:01 mirrorbird_ joins (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519)
07:05:16 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
07:06:35 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
07:08:23 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
07:08:48 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
07:10:09 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 265 seconds)
07:10:28 cfricke joins (~cfricke@unaffiliated/cfricke)
07:10:57 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:13:23 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
07:13:42 × jacks2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
07:24:46 × redmp quits (~redmp@172.58.38.160) (Ping timeout: 276 seconds)
07:25:51 denisse_ joins (~spaceCat@gateway/tor-sasl/alephzer0)
07:26:31 <bahamas> what would need to change for this error to be clearer?
07:26:32 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds)
07:26:33 <bahamas> [Just 4, Nothing, Just 'a']
07:26:46 <bahamas> No instance for (Num Char) arising from the literal ‘4’
07:27:17 mananamenos joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net)
07:27:31 denisse_ is now known as denisse
07:28:35 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
07:29:32 kam1 joins (~kam1@5.125.82.63)
07:29:48 × drbean_ quits (~drbean@TC210-63-209-53.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
07:31:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
07:31:56 <koz_> bahamas: It's because you have Just 4 first, so GHC assumes you have (Num a) => [a] there.
07:32:01 __minoru__shirae joins (~shiraeesh@46.34.206.213)
07:32:05 <koz_> So it's going 'wait, Char isn't a Num, plz explain'.
07:32:28 <koz_> Sorry, (Num a) => [Maybe a]
07:33:55 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
07:34:22 nineonine joins (~nineonine@50.216.62.2)
07:34:27 kam1` joins (~user@5.125.82.63)
07:36:24 knupfer joins (~Thunderbi@200116b82c5bbe004d84b8705240f899.dip.versatel-1u1.de)
07:37:24 freeman42x[m]_ joins (uid387759@gateway/web/irccloud.com/x-tmamqfkiqylunzfs)
07:37:55 raichoo joins (~raichoo@dslb-092-073-221-030.092.073.pools.vodafone-ip.de)
07:38:03 <[exa]> bahamas: even very minor explicit typing helps a lot with type errors, try e.g. [Just4, Just 'a', Nothing::Maybe Int]
07:39:47 × kam1 quits (~kam1@5.125.82.63) (Quit: Quit)
07:40:03 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
07:41:16 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
07:42:21 <qih__> Does Haskell have a Readline equiv? For user input into a script?
07:42:49 <koz_> qih__: Haskeline.
07:43:35 <qih__> Haha really? Thanks.
07:44:31 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
07:44:34 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
07:44:38 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:49:30 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
07:52:59 × gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0)
07:54:09 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
07:56:14 malumore joins (~alecs@151.62.127.36)
07:57:15 bobiusbillius joins (~bobiusbil@2a00:23c7:9909:5b01:909a:85aa:703a:457c)
07:57:57 Varis joins (~Tadas@unaffiliated/varis)
07:58:14 olferino joins (~olferino@host-79-37-103-102.retail.telecomitalia.it)
07:58:14 × olferino quits (~olferino@host-79-37-103-102.retail.telecomitalia.it) (Excess Flood)
07:59:21 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
07:59:22 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
07:59:22 mouseghost joins (~draco@wikipedia/desperek)
08:00:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:03:38 olferino joins (~olferino@host-79-37-103-102.retail.telecomitalia.it)
08:03:38 × olferino quits (~olferino@host-79-37-103-102.retail.telecomitalia.it) (Excess Flood)
08:06:35 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:07:53 fendor joins (~fendor@77.119.128.81.wireless.dyn.drei.com)
08:08:58 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 276 seconds)
08:09:17 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
08:10:13 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
08:10:35 jespada joins (~jespada@90.254.243.187)
08:11:02 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
08:11:32 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
08:11:54 × qih__ quits (~pi@210-54-120-166.adsl.xtra.co.nz) (Read error: Connection reset by peer)
08:13:51 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
08:15:25 × Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Read error: Connection reset by peer)
08:15:39 <bahamas> koz_: that makes sense, but why does it complain about the 4 and not about `Just 'a'`?
08:16:03 <koz_> bahamas: A good question.
08:16:22 <mouseghost> ?:
08:16:22 <lambdabot> Maybe you meant: v @ ? .
08:16:52 jakalx joins (~jakalx@base.jakalx.net)
08:16:58 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
08:18:47 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
08:19:09 × kam1` quits (~user@5.125.82.63) (Ping timeout: 264 seconds)
08:19:45 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:20:04 wmacmil joins (~wmacmil@c83-252-138-144.bredband.comhem.se)
08:22:10 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
08:22:20 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:8c46:2884:8ca1:7346)
08:22:25 Benzi-Junior joins (~BenziJuni@88-149-67-143.du.xdsl.is)
08:25:24 nineonin_ joins (~nineonine@2604:3d08:7785:9600:2076:7626:28f5:58b2)
08:26:25 __minoru__shirae joins (~shiraeesh@46.34.206.213)
08:28:58 ssedov joins (~stas@2a00:13c0:63:7195::beef)
08:29:05 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
08:29:10 jiribenes_ joins (~jiribenes@rosa.jiribenes.com)
08:29:35 whez_ joins (sid470288@gateway/web/irccloud.com/x-pthafhujofirezkd)
08:29:37 Nascha_ joins (sid212230@gateway/web/irccloud.com/x-qczetniwqeazgilv)
08:29:37 mcfilib_ joins (sid302703@gateway/web/irccloud.com/x-ownjkwkezqcygkve)
08:29:38 caasih_ joins (sid13241@gateway/web/irccloud.com/x-qijdxufzyweqhywy)
08:29:38 benkolera_ joins (sid285671@gateway/web/irccloud.com/x-sxotikxkrteyeims)
08:29:38 alexknvl_ joins (sid259568@gateway/web/irccloud.com/x-aicokisyczvigycz)
08:29:39 parseval_ joins (sid239098@gateway/web/irccloud.com/x-umgugjvykfxjuxhz)
08:29:39 m-renaud_ joins (sid333785@gateway/web/irccloud.com/x-bkrbrcredfckpflf)
08:29:39 tnks_ joins (sid412124@gateway/web/irccloud.com/x-ofaeezfkxpltipls)
08:29:40 ajmcmiddlin_ joins (sid284402@gateway/web/irccloud.com/x-vfnugzfwoucjmsyx)
08:29:40 Tritlo_ joins (sid58727@gateway/web/irccloud.com/x-wbzdtjqdjxocddky)
08:29:40 wildsebastian_ joins (sid324688@gateway/web/irccloud.com/x-lebzerklkyeltgpg)
08:29:41 mpickering_ joins (sid78412@gateway/web/irccloud.com/x-xcaymlyqrctfybyu)
08:29:41 edwardk_ joins (sid47016@haskell/developer/edwardk)
08:29:48 Kronic_ joins (sid480486@gateway/web/irccloud.com/x-nxsfkkgroattssdp)
08:29:49 atriq joins (~Taneb@runciman.hacksoc.org)
08:29:51 bjs_ joins (sid190364@gateway/web/irccloud.com/x-orptgfjwvvatppsz)
08:29:51 tomsmeding_ joins (~tomsmedin@2a03:b0c0:0:1010::767:3001)
08:29:52 gOOgler_ joins (uid125351@gateway/web/irccloud.com/x-xqfkukcjcgrzokzf)
08:29:53 ocharles_ joins (sid30093@musicbrainz/user/ocharles)
08:29:53 jonrh_ joins (sid5185@gateway/web/irccloud.com/x-edynkmjkttfouabi)
08:29:54 typetetris_ joins (sid275937@gateway/web/irccloud.com/x-slhwzzrziatkashc)
08:29:54 dgpratt_ joins (sid193493@gateway/web/irccloud.com/x-ciamvfkocjxmyaoq)
08:29:59 billstclair_ joins (sid77830@gateway/web/irccloud.com/x-scbeoiqvbygvcgod)
08:30:03 dequbed joins (~dequbed@yanduxian.paranoidlabs.org)
08:30:04 Kamuela_ joins (sid111576@gateway/web/irccloud.com/x-rawlogsccanndxab)
08:30:05 npgm_ joins (sid42623@gateway/web/irccloud.com/x-kuowlapmdjoqcdvp)
08:30:06 affinespaces_ joins (sid327561@gateway/web/irccloud.com/x-ggonmcpljdasmoht)
08:30:07 infinisi1 joins (~infinisil@NixOS/user/infinisil)
08:30:08 stylewarning_ joins (stylewarni@gateway/web/irccloud.com/x-gonmnbqftdyxklpu)
08:30:14 higherorder__ joins (sid185221@gateway/web/irccloud.com/x-ulsufjwffnavwfuo)
08:30:14 betawaffle_ joins (sid2730@gateway/web/irccloud.com/x-bxkcemrjdfeodlht)
08:30:19 Adeon_ joins (sid418992@gateway/web/irccloud.com/x-ofglsdimpdtebsds)
08:30:38 amatecha____ joins (sid10006@gateway/web/irccloud.com/x-uvfkrdnmulqvmuhf)
08:30:55 vjok1 joins (vjoki@2a00:d880:3:1::fea1:9ae)
08:31:02 lisq_ joins (~quassel@lis.moe)
08:31:17 beaky_ joins (~beaky@2a03:b0c0:0:1010::17cf:7003)
08:31:19 riasue joins (~quassel@2001:310:6000:f::5198:1)
08:31:56 xnyhps_ joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
08:32:02 bwe_ joins (~bwe@2a01:4f8:1c1c:4878::2)
08:32:06 bjobjo_ joins (~bjobjo@2a01:79c:cebf:d688::9e6)
08:32:07 Ferdiran1 joins (~max@2001:4c78:2012:5000::2)
08:32:10 tomjagua1paw joins (~tom@li367-225.members.linode.com)
08:32:15 ixian8 joins (~mgold@terra.bitplane.org)
08:32:23 weechat3 joins (~mingc@2400:8902::f03c:91ff:feb7:8e82)
08:32:35 bcmiller_ joins (~bm3719@66.42.95.185)
08:32:42 ubert1 joins (~Thunderbi@p200300ecdf25d9e2e6b318fffe838f33.dip0.t-ipconnect.de)
08:32:44 holo2 joins (~holo@nikky.moe)
08:32:45 × tomsmeding quits (~tomsmedin@2a03:b0c0:0:1010::767:3001) (Disconnected by services)
08:32:56 nikola joins (~nikola@2a03:b0c0:2:d0::dc2:c001)
08:32:57 copypasteque joins (~copypaste@2001:41d0:8:b325::1)
08:32:58 thonkpod_ joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
08:32:58 krjt joins (~krjst@2604:a880:800:c1::16b:8001)
08:33:01 tomsmeding_ is now known as tomsmeding
08:33:03 walt joins (~ggVGc@a.lowtech.earth)
08:33:16 dexter joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
08:33:30 entropyga1n joins (levitate@unaffiliated/entropygain)
08:33:43 agrif- joins (agrif@rakeri.net)
08:33:44 sim642_ joins (~simmo@unaffiliated/sim642)
08:33:47 tabaqui1 joins (~tabaqui@2604:a880:800:c1::21b:3001)
08:33:48 a3f joins (~a3f@chimeria.ext.pengutronix.de)
08:33:54 PHO__ joins (~pho@akari.cielonegro.org)
08:34:04 nemesit|znc_ joins (~nemesit@myriadvisuals.com)
08:34:04 ego_ joins (~ego@2604:a880:800:a1::1b:b001)
08:34:18 jeffcasavant[m]1 joins (jeffcasava@gateway/shell/matrix.org/x-zocdvhbwqljgjspp)
08:34:18 rawles_ joins (~r@unaffiliated/rawles)
08:34:19 hexagoxe- joins (~hexagoxel@2a01:4f8:c0c:e::2)
08:34:20 tekmaster joins (~tekacs@178.79.131.8)
08:34:22 exferenc- joins (~exference@hexagoxel.de)
08:34:27 sis7_ joins (~user@2001:15e8:110:473e::1)
08:34:29 freeman42x[m]1 joins (freeman42x@gateway/shell/matrix.org/x-qxkxelsgcvmbsqlb)
08:34:40 martin02_ joins (silas@hund.fs.lmu.de)
08:34:54 × edwardk quits (sid47016@haskell/developer/edwardk) (Disconnected by services)
08:34:58 edwardk_ is now known as edwardk
08:35:00 PHO__ is now known as PHO
08:35:13 stree joins (~stree@68.36.8.116)
08:35:20 _flow__ joins (~none@salem.informatik.uni-erlangen.de)
08:35:41 Aleksejs_Home joins (~Aleksejs@haskell.lv)
08:35:49 cawfee joins (chiya@2406:3003:2077:2341::babe)
08:36:03 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
08:36:49 × bobiusbillius quits (~bobiusbil@2a00:23c7:9909:5b01:909a:85aa:703a:457c) (Ping timeout: 272 seconds)
08:37:22 michalz joins (~user@185.246.204.47)
08:37:28 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
08:43:12 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:43:31 × freeman42x[m] quits (freeman42x@gateway/shell/matrix.org/x-swjzfvecjjmfxmen) (*.net *.split)
08:43:31 × jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-komviiuaffxezunv) (*.net *.split)
08:43:31 × vjoki quits (vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
08:43:31 × jess quits (jess@freenode/staff/jess) (*.net *.split)
08:43:31 × martin02 quits (silas@hund.fs.lmu.de) (*.net *.split)
08:43:31 × mcfilib quits (sid302703@gateway/web/irccloud.com/x-hnldclqivbijvpbm) (*.net *.split)
08:43:31 × bwe quits (~bwe@unaffiliated/bwe) (*.net *.split)
08:43:31 × a3f_ quits (~a3f@chimeria.ext.pengutronix.de) (*.net *.split)
08:43:31 × parseval quits (sid239098@gateway/web/irccloud.com/x-xtgzvtrnthigcynq) (*.net *.split)
08:43:31 × amatecha___ quits (sid10006@gateway/web/irccloud.com/x-hfdlvklywzlniuqc) (*.net *.split)
08:43:31 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-fkangvxpurzqruey) (*.net *.split)
08:43:31 × Kamuela quits (sid111576@gateway/web/irccloud.com/x-nqaokwfckextdaiq) (*.net *.split)
08:43:31 × lisq quits (~quassel@lis.moe) (*.net *.split)
08:43:31 × dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split)
08:43:31 × higherorder_ quits (sid185221@gateway/web/irccloud.com/x-uismvhlimcfebiyq) (*.net *.split)
08:43:31 × stass quits (~stas@2a00:13c0:63:7195::beef) (*.net *.split)
08:43:31 × copypasteque_ quits (~copypaste@2001:41d0:8:b325::1) (*.net *.split)
08:43:31 × nikola4 quits (~nikola@2a03:b0c0:2:d0::dc2:c001) (*.net *.split)
08:43:31 × holo1 quits (~holo@nikky.moe) (*.net *.split)
08:43:31 × riatre quits (~quassel@2001:310:6000:f::5198:1) (*.net *.split)
08:43:31 × dequbed_ quits (~dequbed@2001:bc8:3f24:100::1) (*.net *.split)
08:43:31 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split)
08:43:31 × infinisil quits (~infinisil@NixOS/user/infinisil) (*.net *.split)
08:43:31 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (*.net *.split)
08:43:31 × Kronic quits (sid480486@gateway/web/irccloud.com/x-bynyulwltgynltmc) (*.net *.split)
08:43:31 × thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (*.net *.split)
08:43:31 × dale quits (dale@unaffiliated/dale) (*.net *.split)
08:43:31 × ajmcmiddlin quits (sid284402@gateway/web/irccloud.com/x-envrayjafctqomyi) (*.net *.split)
08:43:31 × whez quits (sid470288@gateway/web/irccloud.com/x-rgticdwlpxuwtxmt) (*.net *.split)
08:43:31 × typetetris quits (sid275937@gateway/web/irccloud.com/x-stkqjtnjlxzqnxsl) (*.net *.split)
08:43:31 × m-renaud quits (sid333785@gateway/web/irccloud.com/x-cahbetqlwgcicebd) (*.net *.split)
08:43:31 × ocharles quits (sid30093@musicbrainz/user/ocharles) (*.net *.split)
08:43:31 × ixian quits (~mgold@terra.bitplane.org) (*.net *.split)
08:43:31 × benkolera quits (sid285671@gateway/web/irccloud.com/x-twzfcwapzvlcxrpj) (*.net *.split)
08:43:31 × gOOgler quits (uid125351@gateway/web/irccloud.com/x-rrpkpkuuapidsyfn) (*.net *.split)
08:43:31 × billstclair quits (sid77830@gateway/web/irccloud.com/x-oesooeymiowzuzns) (*.net *.split)
08:43:31 × Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split)
08:43:31 × tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (*.net *.split)
08:43:31 × tekacs quits (tekacs@2a01:7e00::f03c:91ff:fe93:43aa) (*.net *.split)
08:43:31 × nemesit|znc quits (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (*.net *.split)
08:43:31 × npgm quits (sid42623@gateway/web/irccloud.com/x-epxqkdszurzloaos) (*.net *.split)
08:43:31 × mpickering quits (sid78412@gateway/web/irccloud.com/x-ullosshavaeyawfg) (*.net *.split)
08:43:31 × affinespaces quits (sid327561@gateway/web/irccloud.com/x-dkkclnjlpoudblgz) (*.net *.split)
08:43:31 × Tritlo quits (sid58727@gateway/web/irccloud.com/x-elrrgxjqxqvbsxaj) (*.net *.split)
08:43:31 × stylewarning quits (stylewarni@gateway/web/irccloud.com/x-xytuvgxkxgyavseq) (*.net *.split)
08:43:31 × tnks quits (sid412124@gateway/web/irccloud.com/x-aeixbyffiogfyzax) (*.net *.split)
08:43:31 × dgpratt quits (sid193493@gateway/web/irccloud.com/x-xzzvvqtrbrrriqqy) (*.net *.split)
08:43:31 × rawles quits (~r@unaffiliated/rawles) (*.net *.split)
08:43:31 × _flow_ quits (~none@salem.informatik.uni-erlangen.de) (*.net *.split)
08:43:31 × myme quits (~myme@li1406-121.members.linode.com) (*.net *.split)
08:43:31 × hexagoxel quits (~hexagoxel@2a01:4f8:c0c:e::2) (*.net *.split)
08:43:31 × wildsebastian quits (sid324688@gateway/web/irccloud.com/x-yyzqmmxbyqmuqkuw) (*.net *.split)
08:43:31 × jonrh quits (sid5185@gateway/web/irccloud.com/x-izunjptqnvnhhsic) (*.net *.split)
08:43:31 × caasih quits (sid13241@gateway/web/irccloud.com/x-qinujoqnjozgosio) (*.net *.split)
08:43:31 × alexknvl quits (sid259568@gateway/web/irccloud.com/x-thwkgdxraegelnxg) (*.net *.split)
08:43:31 × Adeon quits (sid418992@gateway/web/irccloud.com/x-ckgjqpmuzmiriaco) (*.net *.split)
08:43:31 × bjs quits (sid190364@gateway/web/irccloud.com/x-bdnfguocwopyqbcq) (*.net *.split)
08:43:31 × Nascha quits (sid212230@gateway/web/irccloud.com/x-kpyhouvkzkznjbww) (*.net *.split)
08:43:31 × bcmiller quits (~bm3719@66.42.95.185) (*.net *.split)
08:43:31 × sis7 quits (~user@2001:15e8:110:473e::1) (*.net *.split)
08:43:31 × pong quits (chiya@2406:3003:2077:2341::babe) (*.net *.split)
08:43:31 × exferenceBot quits (~exference@2a01:4f8:c0c:e::2) (*.net *.split)
08:43:31 × beaky quits (~beaky@2a03:b0c0:0:1010::17cf:7003) (*.net *.split)
08:43:31 × ggVGc quits (~ggVGc@unaffiliated/walt) (*.net *.split)
08:43:31 × agrif quits (agrif@overviewer/dev/agrif) (*.net *.split)
08:43:31 × bjobjo quits (~bjobjo@2a01:79c:cebf:d688::9e6) (*.net *.split)
08:43:31 × weechat_1 quits (~mingc@2400:8902::f03c:91ff:feb7:8e82) (*.net *.split)
08:43:31 × entropygain quits (levitate@unaffiliated/entropygain) (*.net *.split)
08:43:31 × krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split)
08:43:31 × Ferdirand quits (~max@2001:4c78:2012:5000::2) (*.net *.split)
08:43:31 × ego quits (~ego@parallaxcorporation.xyz) (*.net *.split)
08:43:31 × PHO_ quits (~pho@akari.cielonegro.org) (*.net *.split)
08:43:31 × solarus quits (~solarus@2a03:b0c0:2:d0::48:7001) (*.net *.split)
08:43:31 × sim642 quits (~simmo@unaffiliated/sim642) (*.net *.split)
08:43:31 × xnyhps quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
08:43:31 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split)
08:43:32 bcmiller_ is now known as bcmiller
08:43:32 exferenc- is now known as exferenceBot
08:43:32 mcfilib_ is now known as mcfilib
08:43:33 agrif- is now known as agrif
08:43:33 hexagoxe- is now known as hexagoxel
08:43:33 × agrif quits (agrif@rakeri.net) (Changing host)
08:43:33 agrif joins (agrif@overviewer/dev/agrif)
08:43:35 parseval_ is now known as parseval
08:43:35 benkolera_ is now known as benkolera
08:43:36 whez_ is now known as whez
08:43:37 freeman42x[m]_ is now known as freeman42x[m]
08:43:37 vjok1 is now known as vjoki
08:43:38 m-renaud_ is now known as m-renaud
08:43:38 mpickering_ is now known as mpickering
08:43:39 Tritlo_ is now known as Tritlo
08:43:39 Kronic_ is now known as Kronic
08:43:39 sim642_ is now known as sim642
08:43:41 ajmcmiddlin_ is now known as ajmcmiddlin
08:43:41 caasih_ is now known as caasih
08:43:44 jonrh_ is now known as jonrh
08:43:44 Kamuela_ is now known as Kamuela
08:43:44 affinespaces_ is now known as affinespaces
08:43:44 alexknvl_ is now known as alexknvl
08:43:45 typetetris_ is now known as typetetris
08:43:45 ocharles_ is now known as ocharles
08:43:45 Adeon_ is now known as Adeon
08:43:45 tnks_ is now known as tnks
08:43:46 wildsebastian_ is now known as wildsebastian
08:43:46 billstclair_ is now known as billstclair
08:43:49 dgpratt_ is now known as dgpratt
08:43:51 npgm_ is now known as npgm
08:43:52 stylewarning_ is now known as stylewarning
08:43:52 Nascha_ is now known as Nascha
08:43:54 bjs_ is now known as bjs
08:43:54 lisq_ is now known as lisq
08:44:22 dale joins (dale@unaffiliated/dale)
08:45:34 myme joins (~myme@li1406-121.members.linode.com)
08:46:09 × jdt quits (~jdt@208.85.233.130) (Ping timeout: 264 seconds)
08:46:19 × stree quits (~stree@68.36.8.116) (Excess Flood)
08:46:45 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 264 seconds)
08:46:46 stree joins (~stree@68.36.8.116)
08:48:27 × ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection)
08:48:39 jdt joins (~jdt@208.85.233.130)
08:50:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
08:54:13 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 256 seconds)
08:55:17 Boomerang joins (~Boomerang@2a05:f6c7:2179:0:64:db14:2c3a:3ba3)
08:59:36 atriq is now known as Taneb
09:01:35 beaky_ is now known as beaky
09:04:02 × fendor quits (~fendor@77.119.128.81.wireless.dyn.drei.com) (Remote host closed the connection)
09:04:20 fendor joins (~fendor@77.119.128.81.wireless.dyn.drei.com)
09:06:24 ixlun joins (~user@213.205.241.12)
09:07:19 entropyga1n is now known as entropygain
09:08:12 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
09:11:03 × nineonin_ quits (~nineonine@2604:3d08:7785:9600:2076:7626:28f5:58b2) (Remote host closed the connection)
09:11:56 fendor_ joins (~fendor@77.119.128.81.wireless.dyn.drei.com)
09:12:48 kuribas joins (~user@ptr-25vy0iacstgp10erojf.18120a2.ip6.access.telenet.be)
09:12:49 nineonine joins (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net)
09:13:39 × fendor quits (~fendor@77.119.128.81.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
09:17:44 × nineonine quits (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) (Ping timeout: 260 seconds)
09:18:55 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
09:20:45 <Unhammer> https://hackage.haskell.org/package/fuzzcheck missed opportunity to name a package "hirsuite" (test suite made of fuzz)
09:20:54 jess joins (jess@freenode/staff/jess)
09:21:03 <mouseghost> fursuite, Unhammer
09:23:45 beardhatcode joins (robbertbea@gateway/shell/matrix.org/x-gbhtxxezlpitjror)
09:24:38 berberman joins (~berberman@unaffiliated/berberman)
09:25:35 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
09:29:15 × xff0x quits (~xff0x@2001:1a81:5237:bb00:987e:1ed6:ef8c:3d12) (Remote host closed the connection)
09:29:34 xff0x joins (~xff0x@2001:1a81:5237:bb00:76ab:515a:5e02:6571)
09:35:46 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
09:36:35 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
09:36:59 jpds joins (~jpds@gateway/tor-sasl/jpds)
09:39:07 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
09:40:14 notzmv joins (~zmv@unaffiliated/zmv)
09:42:06 × chenshen quits (~chenshen@2620:10d:c090:400::5:9f47) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:43:00 boxscape joins (86ab2c0d@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.13)
09:43:27 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-czcoxqegzsrqhure) (Quit: Connection closed for inactivity)
09:43:30 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
09:43:55 × mapperr quits (~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection)
09:44:59 × vchlup_ quits (~vchlup@nat.brnet.cz) (Remote host closed the connection)
09:45:11 mapperr joins (~mapperr@vmi389916.contaboserver.net)
09:45:23 vchlup_ joins (~vchlup@nat.brnet.cz)
09:47:09 jakalx parts (~jakalx@base.jakalx.net) ()
09:47:22 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
09:48:03 toorevitimirp joins (~tooreviti@117.182.182.60)
09:48:06 <Unhammer> weell, that one sounds a bit too much like a costume
09:51:52 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
09:54:02 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 264 seconds)
09:54:59 makergrl joins (~ident@29.201.4.46.bc.googleusercontent.com)
09:56:12 × freeman42x[m] quits (uid387759@gateway/web/irccloud.com/x-tmamqfkiqylunzfs) (Quit: Connection closed for inactivity)
09:57:32 ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net)
09:57:32 × ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host)
09:57:32 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
10:03:35 × knupfer quits (~Thunderbi@200116b82c5bbe004d84b8705240f899.dip.versatel-1u1.de) (Remote host closed the connection)
10:03:44 knupfer joins (~Thunderbi@200116b82c5bbe00c174e65d57f6f6eb.dip.versatel-1u1.de)
10:04:18 Rudd0 joins (~Rudd0@185.189.115.103)
10:07:46 m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
10:13:08 × boxscape quits (86ab2c0d@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.13) (Quit: Connection closed)
10:13:15 × aarvar quits (~foewfoiew@2601:602:a080:fa0:176:cad2:9667:c008) (Ping timeout: 240 seconds)
10:14:33 gehmehgeh joins (~ircuser1@unaffiliated/gehmehgeh)
10:14:34 × gehmehgeh quits (~ircuser1@unaffiliated/gehmehgeh) (Changing host)
10:14:34 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:14:41 × gienah quits (~mwright@gentoo/developer/gienah) (Quit: Lost terminal)
10:16:19 × tomsmeding quits (~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in)
10:16:39 × dsrt^ quits (dsrt@ip98-184-89-2.mc.at.cox.net) (Ping timeout: 260 seconds)
10:17:14 tomsmeding joins (~tomsmedin@tomsmeding.com)
10:17:20 dsrt^ joins (nehsou@ip98-184-89-2.mc.at.cox.net)
10:23:01 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
10:24:55 JASTH joins (~Android@78-68-99-187-no2810.tbcn.telia.com)
10:27:15 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 240 seconds)
10:30:48 × mapperr quits (~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection)
10:31:17 pjb joins (~t@2a01cb04063ec5007ce20f826557de89.ipv6.abo.wanadoo.fr)
10:31:53 mapperr joins (~mapperr@vmi389916.contaboserver.net)
10:32:48 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d) (Remote host closed the connection)
10:35:43 × hrdl quits (~ef24a0e6@unaffiliated/hrdl) (Remote host closed the connection)
10:36:22 alecs joins (~alecs@151.62.127.36)
10:36:29 × alecs quits (~alecs@151.62.127.36) (Client Quit)
10:37:04 alecs joins (~alecs@151.62.127.36)
10:37:07 × alecs quits (~alecs@151.62.127.36) (Remote host closed the connection)
10:38:12 mananamenos_ joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net)
10:38:22 kowodo joins (~kowodo@p57b33e73.dip0.t-ipconnect.de)
10:38:48 × mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 245 seconds)
10:41:41 thc202 joins (~thc202@unaffiliated/thc202)
10:44:10 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
10:44:21 × seanparsons quits (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Ping timeout: 264 seconds)
10:45:32 seanparsons joins (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net)
10:47:01 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
10:48:40 gienah joins (~mwright@gentoo/developer/gienah)
10:49:49 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
10:51:19 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 245 seconds)
10:54:21 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
10:55:09 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
10:57:00 jakalx joins (~jakalx@base.jakalx.net)
10:59:13 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
10:59:36 × Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Quit: Leaving)
11:03:12 betawaffle_ is now known as betawaffle
11:08:03 stree joins (~stree@68.36.8.116)
11:11:56 jiribenes_ is now known as jiribenes
11:12:29 <nshepperd2> I keep finding myself reaching for something like (Seq a, Map a Int), where the Map lets you look up the position of each element and can be efficiently updated on all Seq operations (insert/delete/split/concatenate), but of course with a naive Map that's impossible to do better than O(n)
11:14:37 <nshepperd2> edwardk: ^^ do you know any datastructure like this with good asymptotics? I think i vaguely remember seeing a talk from you that mentioned this but can't remember when
11:15:22 × dexterlb_ quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
11:16:04 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
11:16:24 <mniip> nshepperd2, segment/fenwick trees might help
11:16:37 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
11:16:49 <mniip> you can do monoidal range update in log time
11:17:36 bahamas joins (~lucian@unaffiliated/bahamas)
11:18:20 <nshepperd2> interesting
11:18:34 <nshepperd2> that does look relevant
11:19:48 × walt quits (~ggVGc@a.lowtech.earth) (Changing host)
11:19:48 walt joins (~ggVGc@unaffiliated/walt)
11:19:53 walt is now known as ggVGc
11:21:39 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
11:22:09 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 245 seconds)
11:24:05 <mniip> I guess the FP analog would be a map that stores a monoid element in every node
11:24:19 <mniip> and the value in the leaf is the concatenation of the elements along the path
11:24:31 <mniip> so you can update an entire subtree in O(1)
11:26:11 dexterlb_ joins (~dexterlb@2a01:9e40:2:2::2)
11:28:27 <nshepperd2> so far what i've been able to come up with on my own is: 1. use a linked list (fwd :: Map a a, bwd :: Map a a) which is efficient but doesn't support everything Seq does; or 2. Bimap Key a where Key is some datatype that is dense like the real numbers (eg. [Int]) which degrades in performance if you repeatedly insert between two elements
11:29:00 × JASTH quits (~Android@78-68-99-187-no2810.tbcn.telia.com) (Read error: Connection reset by peer)
11:29:22 bjobjo_ is now known as bjobjo
11:33:12 heatsink joins (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d)
11:33:25 average joins (uid473595@gateway/web/irccloud.com/x-xflnwfcmhqvolkuk)
11:35:10 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
11:35:19 <siraben> nshepperd2: would finger trees work?
11:35:38 <siraben> (it's what Seq uses internally but it works over an custom monoid)
11:35:43 drbean joins (~drbean@TC210-63-209-31.static.apol.com.tw)
11:36:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:36:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:37:50 <arahael> How do I read a string into an xml document? I'm using hxt and have tried: runX $ readString [ withValidate no ] $ unpack $ decodeUtf8 xml
11:38:49 <arahael> The problem is that I have a 'fatal error: HTTP handler not configured', there is further instructions I could follow to eg, use the 'withHTTP' option, but how can i *just* parse this xml and not also fetch DTD's and stuff like that?
11:40:04 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
11:40:43 usr25 joins (~usr25@unaffiliated/usr25)
11:42:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:42:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:48:04 × wmacmil quits (~wmacmil@c83-252-138-144.bredband.comhem.se) (Quit: Leaving)
11:48:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:48:38 <nshepperd2> siraben: FingerTree (Set a) a works 'in principle' -- you can find an element in O(log(n)^2) by following the branches that have your element, but the concatenation performance is terrible (O(n log (m)^2) or so)
11:49:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:49:42 <arahael> Found the answer at https://stackoverflow.com/a/22858640/52273 - apparently I had to use `withSubstDTDEntities no`
11:50:13 <nshepperd2> maybe a less ridiculous monoid in a fingertree would work, i don't know what though
11:50:29 × jrqc quits (~rofl@96.78.87.197) (Ping timeout: 245 seconds)
11:53:21 × mananamenos_ quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 264 seconds)
11:53:37 jrqc joins (~rofl@96.78.87.197)
11:54:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
11:55:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:59:05 alx741 joins (~alx741@186.178.108.117)
11:59:41 JASTH joins (~Android@78-68-99-187-no2810.tbcn.telia.com)
12:01:55 bobiusbillius joins (~bobiusbil@2a00:23c7:9909:5b01:1037:bcdb:7c3:6458)
12:05:31 Wuzzy joins (~Wuzzy@p5b0df7c2.dip0.t-ipconnect.de)
12:05:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
12:06:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d) (Ping timeout: 264 seconds)
12:06:51 × JASTH quits (~Android@78-68-99-187-no2810.tbcn.telia.com) (Read error: Connection reset by peer)
12:06:51 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Read error: Connection reset by peer)
12:07:18 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
12:07:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:08:15 × refusenick quits (~user@2601:644:8502:d700::9c98) (Ping timeout: 240 seconds)
12:11:08 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Read error: Connection reset by peer)
12:12:19 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
12:12:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
12:13:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:13:17 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 268 seconds)
12:13:33 Deide joins (~Deide@217.155.19.23)
12:15:38 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
12:15:44 bahamas joins (~lucian@unaffiliated/bahamas)
12:16:01 LKoen joins (~LKoen@185.61.176.203)
12:16:56 cgadski_ joins (~textual@87.196.80.116)
12:16:59 JASTH joins (~Android@78-68-99-187-no2810.tbcn.telia.com)
12:20:18 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
12:20:19 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 260 seconds)
12:20:27 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
12:21:09 cgadski_ is now known as cgadski
12:21:19 × LKoen quits (~LKoen@185.61.176.203) (Remote host closed the connection)
12:23:43 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
12:24:32 × JASTH quits (~Android@78-68-99-187-no2810.tbcn.telia.com) (Read error: Connection reset by peer)
12:25:42 × plutoniix quits (~q@184.82.201.211) (Quit: Leaving)
12:28:12 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 258 seconds)
12:40:39 sqrt2_ is now known as sqrt2
12:43:16 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
12:43:23 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
12:46:19 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:46:38 × Dykam quits (Dykam@dykam.nl) (Quit: Dykam)
12:46:52 Dykam joins (Dykam@dykam.nl)
12:47:11 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 256 seconds)
12:47:15 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
12:48:45 × bobiusbillius quits (~bobiusbil@2a00:23c7:9909:5b01:1037:bcdb:7c3:6458) (Read error: Connection reset by peer)
12:48:57 bobiusbillius joins (~bobiusbil@host109-153-130-34.range109-153.btcentralplus.com)
12:52:54 notzmv joins (~zmv@unaffiliated/zmv)
12:53:22 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
12:54:09 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
12:58:20 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
13:00:45 <absence> is there something strange about higher rank functions and function composition? "\a -> hoist (f (g a))" compiles, but not "hoist . f . g". the type of hoist is (MFunctor t, Monad m) => (forall a. m a -> n a) -> t m b -> t n b
13:00:56 <absence> is this for the same reason that the $ operator is magical?
13:02:03 <merijn> Sorta
13:02:18 <merijn> Basically (.) does *not* have the hack that $ does
13:02:21 <{abby}> hopefully not for long
13:02:35 <{abby}> i mean hopefully ($) won't have a hack for long
13:02:43 <merijn> absence: Parentheses are not affected because those are syntactical, not functions
13:03:16 <merijn> {abby}: More importantly, we'll be able to tell whether ImpredicativeTypes works :p
13:03:22 <absence> so once $ doesn't have the hack, . will also work?
13:03:45 <merijn> absence: Pretty sure that {abby} is referring to the work on sane ImpredicativeTypes
13:03:53 <{abby}> absence: i think the plan is to get rid of the hack in ($) when quick look lands but i'm... not actually sure
13:04:47 urodna joins (~urodna@unaffiliated/urodna)
13:05:07 <{abby}> but yes, once GHC has a proper story for inferring impredicative instantiations, hopefully in the next release, "hoist . f . g" will compile as it should
13:06:12 <Lycurgus> https://www.microsoft.com/en-us/research/publication/a-quick-look-at-impredicativity/ that quick look?
13:06:37 <merijn> Yeah
13:06:37 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:06:48 <absence> good to hear. i've run into impredicative types in other situations, but didn't join the dots that it also occurs during composition. is it ideally for 9.2?
13:07:06 <merijn> I think quick look is planned for 9.2, yeah
13:07:35 geekosaur joins (82650c7a@130.101.12.122)
13:07:50 <absence> thanks!
13:10:14 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
13:10:42 × smerdyakov quits (~dan@5.146.194.90) (Read error: Connection reset by peer)
13:11:01 hc_ is now known as hc
13:11:22 LKoen joins (~LKoen@185.61.176.203)
13:11:25 smerdyakov joins (~dan@5.146.194.90)
13:12:15 Tario joins (~Tario@201.192.165.173)
13:15:54 × stree quits (~stree@68.36.8.116) (Ping timeout: 245 seconds)
13:18:59 zebrag joins (~inkbottle@aaubervilliers-654-1-112-176.w86-198.abo.wanadoo.fr)
13:21:13 carlomagno joins (~cararell@148.87.23.4)
13:23:22 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
13:23:47 × danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 258 seconds)
13:25:53 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
13:26:13 danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
13:28:28 stree joins (~stree@68.36.8.116)
13:30:15 nbloomf joins (~nbloomf@2600:1700:ad14:3020:41d3:e796:cd7:d5b3)
13:35:43 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
13:36:56 × omnitrogen quits (~omnitroge@vps-c9700282.vps.ovh.net) (Read error: Connection reset by peer)
13:37:05 <ezzieyguywuf> how come if ghcid fails to build the first time it is called, it bails out, but if it fails to build after it has already succesfully launched, in just keep trucking?
13:37:10 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds)
13:37:10 omnitrogen joins (~omnitroge@vps-c9700282.vps.ovh.net)
13:37:37 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
13:37:43 Tario joins (~Tario@201.192.165.173)
13:39:52 graf_blu` joins (~user@adsl-178-38-234-220.adslplus.ch)
13:40:25 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:40:28 × graf_blutwurst quits (~user@2001:171b:226e:adc0:441d:c551:5138:50ac) (Remote host closed the connection)
13:43:37 chisui joins (58829809@88.130.152.9)
13:44:48 <merijn> Inconsistent program logic? :p
13:48:09 <ezzieyguywuf> lol probs
13:48:26 <ezzieyguywuf> also even though I set --reload=app in .ghcid, it doesn't reload when app/Main.hs changes
13:48:30 <ezzieyguywuf> :(
13:48:59 <ezzieyguywuf> oh wait, now it...does?
13:49:01 <ezzieyguywuf> *shrug*
13:49:08 <ezzieyguywuf> lol, excetp it's hung
13:49:52 × toorevitimirp quits (~tooreviti@117.182.182.60) (Ping timeout: 265 seconds)
13:50:50 × drbean quits (~drbean@TC210-63-209-31.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
13:51:12 geekosaur joins (82650c7a@130.101.12.122)
13:51:19 <ezzieyguywuf> changing to --restart helps, but what the heck
13:51:30 <ezzieyguywuf> reload works for me on some projects, but this teeny tiny one and nah
13:58:34 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 265 seconds)
13:59:25 sh9 joins (~sh9@softbank060116136158.bbtec.net)
13:59:28 writenix joins (~quassel@193.126.143.50)
13:59:28 × danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds)
13:59:41 jespada joins (~jespada@90.254.243.187)
14:00:27 Sheilong joins (uid293653@gateway/web/irccloud.com/x-uuniqtfysevxnvsh)
14:00:38 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
14:01:45 × vchlup_ quits (~vchlup@nat.brnet.cz) (Ping timeout: 264 seconds)
14:02:27 heatsink joins (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d)
14:02:48 danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
14:03:35 × mirrorbird_ quits (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519) (Quit: Leaving)
14:05:38 × LKoen quits (~LKoen@185.61.176.203) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
14:07:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d) (Ping timeout: 264 seconds)
14:10:51 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
14:11:00 × writenix quits (~quassel@193.126.143.50) (Remote host closed the connection)
14:13:52 × notzmv quits (~zmv@unaffiliated/zmv) (Read error: Connection reset by peer)
14:15:30 Guest44840 joins (~zmv@unaffiliated/zmv)
14:15:48 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
14:16:18 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
14:18:34 × Guest44840 quits (~zmv@unaffiliated/zmv) (Remote host closed the connection)
14:18:49 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 245 seconds)
14:18:49 × kowodo quits (~kowodo@p57b33e73.dip0.t-ipconnect.de) (Quit: rcirc on GNU Emacs 28.0.50)
14:19:38 notzmv- joins (~zmv@unaffiliated/zmv)
14:21:45 × egp__ quits (~egp_@2.95.74.168) (Quit: EXIT)
14:22:09 egp_ joins (~egp_@2.95.74.168)
14:22:50 deviantfero joins (~deviantfe@190.150.27.58)
14:25:06 × egp_ quits (~egp_@2.95.74.168) (Client Quit)
14:25:28 JokerAscensionEx joins (~egp_@2.95.74.168)
14:26:19 × JokerAscensionEx quits (~egp_@2.95.74.168) (Remote host closed the connection)
14:26:37 JokerAscensionEx joins (~egp_@2.95.74.168)
14:27:17 × chisui quits (58829809@88.130.152.9) (Quit: Connection closed)
14:27:41 notzmv- is now known as notzmv
14:31:33 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
14:33:59 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
14:34:20 × raym quits (~ray@45.64.220.3) (Quit: leaving)
14:37:13 gitgood joins (~gitgood@82-132-225-188.dab.02.net)
14:37:23 × danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds)
14:38:16 danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
14:41:25 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:41d3:e796:cd7:d5b3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:41:36 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
14:42:11 biomed joins (~biomed@subs01-103-10-64-18.three.co.id)
14:42:47 Pickchea joins (~private@unaffiliated/pickchea)
14:46:03 zceejkr joins (~wintermut@cpe-62-84-236-30.dynamic.amis.net)
14:46:42 × biomed quits (~biomed@subs01-103-10-64-18.three.co.id) (Quit: Leaving)
14:46:48 fendor_ is now known as fendor
14:47:44 × rcdilorenzo quits (~rcdiloren@cpe-76-182-83-26.nc.res.rr.com) (Remote host closed the connection)
14:48:11 <infinisi1> Argh, I'm supposed to write an Arbitrary instance for an uninhabited type
14:48:20 infinisi1 is now known as infinisil
14:48:26 <infinisil> I guess I'll just `error`?
14:49:08 <infinisil> The test suite will probably fail then though
14:51:22 pyx joins (~pyx@unaffiliated/pyx)
14:51:29 × pyx quits (~pyx@unaffiliated/pyx) (Client Quit)
14:52:34 ph88 joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
14:52:59 romesrf joins (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae)
14:54:44 <ezzieyguywuf> how can I set -Wall for every target in the cabal file?
14:54:50 <ezzieyguywuf> do I have to do ghc-options in each stanza?
14:55:16 <merijn> ezzieyguywuf: You can have common stanzas in cabal >2.0 (iirc, maybe it's 2.4?)
14:55:54 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:55:56 <merijn> ezzieyguywuf: See: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/benchmark-analysis.cabal#L34-L62
14:56:01 <merijn> ezzieyguywuf: ANd then used here: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/benchmark-analysis.cabal#L80
14:56:17 <ezzieyguywuf> merijn: I"ll check it out thanks
14:56:18 <merijn> For just one flag it's not that useful, but if you have a bunch it helps
14:56:31 <ezzieyguywuf> *shrug* just would rather learn the easier way to do it now
14:56:34 <merijn> I'm using cabal-version 2.2 so it's available since *at least* then :)
14:56:34 <ezzieyguywuf> so I know it when I need it later
14:57:30 <ezzieyguywuf> lol, I have my min version at 3.0 so I should be good
14:58:04 <int-e> infinisil: wouldn't it be saner to not define that instance then
14:58:20 ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net)
14:58:34 <ski> i guess it's needed as a parameter
14:58:53 nbloomf joins (~nbloomf@2600:1700:ad14:3020:41d3:e796:cd7:d5b3)
14:58:57 <ski> i wonder how one could design the generation so that that would work more nicely
14:59:08 <int-e> I guess this also comes up when you have Foo a b = A a | B b and somebody decides they don't need the A alternative...
14:59:13 <ski> say generating `Either Void Bool's, compositionally
14:59:23 <int-e> right
14:59:43 <dolio> Writing an Arbitrary instance for the empty type means your other instances are wrong somehow.
14:59:51 <ski> yea. or `Tree Void', for trees without leaves
14:59:53 vchlup joins (~vchlup@nat.brnet.cz)
15:00:14 <int-e> Well, it doesn't fit with how QuickCheck works; Either's Arbitrary instance will pick a constructor first, with no way to take it back.
15:00:18 × ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host)
15:00:18 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
15:00:41 <ski> the idea, i guess, would be to have some way to signal that you're trying to do something impossible, and so it should abandom the current attempt, and try another .. hm
15:03:29 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
15:04:02 <int-e> But I guess the solution is to have a better QuickCheck that can signal emptiness in the Arbitrary type class somehow; providing a clearly broken Arbitrary instance for Void instead seems insane.
15:04:07 <dolio> You write a generator that takes an optional generator for one of the parameterized types.
15:04:19 <dolio> Then for the empty type, you pass Nothing.
15:04:28 <ski> hm
15:04:35 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Remote host closed the connection)
15:04:38 <dolio> And you don't try to use type classes for the whole thing.
15:04:48 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
15:04:55 <ski> @dice 1d0
15:04:55 <lambdabot> unexpected 'd': expecting digit, operator or end of input
15:05:07 <ski> (that used to give `1', i think ?)
15:05:31 <maralorn> ghc-pkg list shows me two different directories. I have a library in both directories. When I build my package the library version from the wrong dir is being used. How can I change the precedence of the two directories?
15:06:24 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:41d3:e796:cd7:d5b3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:06:39 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Remote host closed the connection)
15:07:23 × Trasp quits (~Trasp@195.140.213.38) (Remote host closed the connection)
15:09:11 <int-e> dolio: that would fit into typeclasses, if you'd change `arbitrary` to return a Maybe
15:09:26 <dolio> It doesn't.
15:10:27 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
15:10:55 <int-e> I think it does. The instances would have to do more work though... check which alternatives are impossible before choosing a constructor. So it's a nontrivial change.
15:11:19 <dolio> No, I mean, you can't change the Arbitrary class to be that way. It's too late.
15:11:31 <int-e> Sure
15:13:48 <dolio> It would also mean that something having an Arbitrary instance doesn't mean you can generate them for tests, so it's probably better if it's a different class.
15:14:35 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 240 seconds)
15:14:43 <dolio> Or just not a class.
15:15:27 <int-e> What I had in mind would be a new, QuickCheck-like package. *Maybe* with a newtype wrapper that has a QuickCheck Arbitrary instance based on the new class(es).
15:16:41 <merijn> hedgehog?
15:16:46 <int-e> (Can we capture emptiness in a constraint? Probably?)
15:16:48 <merijn> That uses explicit generators
15:17:06 ski . o O ( `newtype Arb a = MkArb (Maybe a)' )
15:18:27 <int-e> ski: Yeah but I don't like the idea of generating Nothings... if you use Void a lot that will end up wasting a lot of resources before you get a usable value.
15:19:01 <int-e> ski: So I'd prefer to capture emptiness of types statically. But that is a bigger change.
15:19:57 <int-e> "statically"
15:20:35 × drupol quits (sid117588@gateway/web/irccloud.com/x-rzrwwjpiqonmqeqo) ()
15:20:51 drupol joins (sid117588@gateway/web/irccloud.com/x-ceggwpmvzndzubky)
15:21:14 <dolio> Like, why do you need to track that compound types don't have a generator? Is that a real use case? or is the use case that `Foo Void` is the 'closed' Foos, and you only need to handle that one case?
15:21:28 <dolio> Because the latter is what I've encountered.
15:21:35 <int-e> ski: you don't have to go crazy for this to become problematic, just consider [Either Void Int]
15:22:00 <dolio> And redesigning everything is not desirable for that.
15:23:17 Wolfy87 joins (~Wolfy87@178.239.168.171)
15:24:10 <dolio> E.G. generating `Either Void Bool` automatically is not a real example.
15:24:27 <int-e> dolio: But it would be a proper solution. Yes, it's quite possible that the proper solution is too costly to be worthwhile because it breaks a lot of existing tooling.
15:25:32 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
15:26:01 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:26:23 <ski> int-e : yea, i meant being able to check it, before generation, if possible
15:27:00 <ski> int-e : well, you said "*Maybe* with a newtype wrapper"
15:27:16 <ski> (so i was wondering if you meant something like such an `Arb')
15:28:09 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
15:29:01 <int-e> ski: Ah. I see. In my mind I didn't have the Maybe, but rather instance (NonEmpty a, NewArbitrary a) => Arbitrary (Arb a)
15:29:44 <dolio> I don't agree that a solution is 'proper' if it's just solving corner cases that people don't actually want to use at the expense of making the cases they do want more work.
15:31:56 <int-e> ski: But it's quite possible that I can't get such a neat NonEmpty constraint without terrible things (overlapping instances)
15:35:55 <infinisil> I'll see if I can dig into the code that requires this arbitrary instance
15:36:31 kiweun joins (~kiweun@dsl-173-206-6-91.tor.primus.ca)
15:36:41 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
15:37:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
15:38:11 kw joins (d4662d5d@212.102.45.93)
15:39:00 × kw quits (d4662d5d@212.102.45.93) (Client Quit)
15:44:38 aggin joins (~ecm@103.88.87.27)
15:44:38 __minoru__shirae joins (~shiraeesh@46.34.206.213)
15:44:47 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
15:46:07 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Remote host closed the connection)
15:46:58 × aggin quits (~ecm@103.88.87.27) (Client Quit)
15:47:07 nineonine joins (~nineonine@2604:3d08:7785:9600:2076:7626:28f5:58b2)
15:48:08 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
15:49:47 stree joins (~stree@68.36.8.116)
15:50:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
15:50:53 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
15:50:59 × xff0x quits (~xff0x@2001:1a81:5237:bb00:76ab:515a:5e02:6571) (Ping timeout: 258 seconds)
15:51:15 × nineonine quits (~nineonine@2604:3d08:7785:9600:2076:7626:28f5:58b2) (Ping timeout: 240 seconds)
15:51:48 xff0x joins (~xff0x@2001:1a81:5237:bb00:c7c4:8fca:bda7:8993)
15:53:00 <infinisil> It's using ` (Arbitrary a, Show a, Testable prop) => Testable (a -> prop) ` in the end
15:53:12 <infinisil> With `testProperty :: Testable a => TestName -> a -> TestTree`
15:53:29 <infinisil> Where the `a` in `a -> prop` is the uninhabited type
15:53:56 <infinisil> Maybe there should be an instance `Testable (Void -> b)`
15:56:10 <infinisil> https://hackage.haskell.org/package/tasty-quickcheck-0.10.1.2/docs/Test-Tasty-QuickCheck.html#v:testProperty
15:56:58 ggole joins (~ggole@2001:8003:8119:7200:9a:455d:b816:c3c6)
15:57:58 <infinisil> (though it would be bothersome to have to replace all `Arbitrary a` constraints with `Testable (a -> Property)` then
15:58:32 <ij> what's the haskell equivalent to scala's FunctorK? (i.e. mapping the higher order type – F a -> G a)
15:58:50 <infinisil> Oh interesting: https://hackage.haskell.org/package/quickcheck-instances-0.3.25.2/docs/Test-QuickCheck-Instances-Void.html
15:59:01 <infinisil> There's a `CoArbitrary Void` instance
16:00:07 × mentaal[m] quits (mentaalmat@gateway/shell/matrix.org/x-cldzerqnoqwflcto) (Quit: Idle for 30+ days)
16:00:44 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
16:01:30 <infinisil> And there's `Fun` with this instance: (Function a, CoArbitrary a, Arbitrary b) => Arbitrary (Fun a b)
16:01:41 <infinisil> That would work, maybe tasty should be using that instead
16:01:48 <infinisil> tasty-quickcheck*
16:01:55 <shapr> ij: I don't understand what FunctorK does?
16:02:15 <infinisil> Or rather, the code that tests this
16:02:21 jhaxim joins (c036de94@192.54.222.148)
16:02:29 <jhaxim> why are queues in haskell implemented as 2 lists?
16:02:58 <dolio> Some are implemented with 3 lists.
16:03:09 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 260 seconds)
16:03:16 <jhaxim> how do you do it with 3?
16:03:29 <jhaxim> what's the added benefit
16:04:12 <dolio> It spreads out the cost of reversing one of the lists.
16:04:45 <jhaxim> how does it work?
16:05:56 <infinisil> Okay I'm thinking that tasty-quickchecks `(Arbitrary a, Show a, Testable prop) => Testable (a -> prop)` instance should really use `CoArbitrary a` instead now
16:06:33 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-sggshpbcjtfntjhq)
16:06:49 <ski> infinisil ?
16:07:02 <infinisil> Hm?
16:07:45 <ski> i guess `Testable (Void -> b)' would always succeed, after zero tests ..
16:07:46 <dolio> jhaxim: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
16:08:07 <dolio> The 3 list one is explained in the "Real-Time Queues" section I think.
16:08:11 <infinisil> ski: Yeah
16:08:35 <ski> `CoArbitrary Void' is for being able to derive `Arbitrary (Void -> a)', from `Arbitrary `a'
16:08:52 <ski> @where okasaki
16:08:52 <lambdabot> http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
16:09:03 <ski> @where PFDS
16:09:04 <lambdabot> http://www.amazon.com/Purely-Functional-Structures-Chris-Okasaki/dp/0521663504
16:09:20 <dolio> Yeah, the book might be more readable than the thesis, I'm not sure.
16:09:29 <ski> the book is quite nice
16:09:41 <dolio> I've only read the book in detail.
16:09:43 <jhaxim> o nice
16:10:19 <infinisil> ski: It seems that CoArbitrary is for generating inputs, Arbitrary for outputs. And tasty-quickchecks `Testable (a -> prop)` instance is a function that takes a as an input
16:10:24 chenshen joins (~chenshen@2620:10d:c090:400::5:dc3c)
16:10:34 <infinisil> Therefore it seems that it should use `CoArbitrary a`, instead of what it currently does, `Arbitrary a`
16:10:43 <infinisil> Does that makes sense?
16:10:45 __minoru__shirae joins (~shiraeesh@46.34.206.213)
16:11:00 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 265 seconds)
16:11:16 <infinisil> Oh Testable is part of quickcheck itself
16:11:46 <infinisil> Hmm..
16:12:07 kunsttyv joins (~kunsttyv@ti0005q162-5102.bb.online.no)
16:12:47 agander joins (~agander@193.46.28.55)
16:12:49 <shapr> jhaxim: did you have a particular queue in mind?
16:13:17 <jhaxim> yeah, i was just wondering why you can't just implement it as a linked list?
16:13:23 <jhaxim> the one i had in mind was the one with 2 lists
16:14:03 × kiweun quits (~kiweun@dsl-173-206-6-91.tor.primus.ca) (Remote host closed the connection)
16:14:18 <dolio> Lists in Haskell only allow fast access to one side, but queues are expected to have fast access to certain operations on both sides.
16:14:21 <int-e> infinisil: The 'a' is an argument for which test cases are to be generated... which is what Arbitrary is for
16:14:41 <jhaxim> yeah, why doesn't haskell have something like linked lists?
16:14:46 <jhaxim> where you can keep pointers to both ends?
16:15:27 <dolio> Haskell lists are linked lists. But they're not made with mutable pointers.
16:16:07 <infinisil> I may be confused a bit
16:16:14 <infinisil> int-e: What is CoArbitrary for?
16:16:22 agander_ joins (~agander@193.46.28.55)
16:16:23 <jhaxim> why does only being able to expand on one end change anything?
16:16:24 <int-e> @check \(x :: Int) -> odd x || even x -- here, a = Int, prop = Bool.
16:16:25 <lambdabot> <unknown>.hs:1:13:ScopedTypeVariables language extension is not enabled. Ple...
16:16:25 hiroaki_ joins (~hiroaki@2a02:8108:8c40:2bb8:4bed:da7a:2692:1300)
16:16:26 <jhaxim> i'm a little confused
16:16:34 <int-e> oh.
16:16:44 × malumore quits (~alecs@151.62.127.36) (Ping timeout: 245 seconds)
16:16:48 <int-e> @check \x -> odd x || even (x :: Int)
16:16:50 <lambdabot> +++ OK, passed 100 tests.
16:16:59 peasynt joins (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net)
16:17:30 aggin joins (~ecm@103.88.87.27)
16:18:12 <int-e> jhaxim: operationally, Coarbitrary is for retrieving entropy from function arguments, so you can have Arbitrary instances for functions a -> b that aren't constant.
16:18:20 × aggin quits (~ecm@103.88.87.27) (Client Quit)
16:18:25 kibo joins (~kibo@51-171-46-249-dynamic.agg2.ens.lmk-pgs.eircom.net)
16:18:27 × DustyDingo quits (~nonamen@v2202001112302107134.ultrasrv.de) (Quit: leaving)
16:18:35 DustyDingo joins (~nonamen@v2202001112302107134.ultrasrv.de)
16:18:55 × graf_blu` quits (~user@adsl-178-38-234-220.adslplus.ch) (Remote host closed the connection)
16:19:11 kiweun joins (~kiweun@dsl-173-206-6-91.tor.primus.ca)
16:19:23 <infinisil> (I guess that was meant for me)
16:19:30 <int-e> hence instance (Coarbitrary a, Arbitrary b) => Arbitrary (a -> b)
16:19:45 <int-e> infinisil: yes, sorry...
16:19:49 <infinisil> What are "functions that aren't constant"?
16:19:58 quackrabbit joins (~aeline@129-2-180-100.wireless.umd.edu)
16:20:03 <infinisil> Function that change the `b` depending on the `a`?
16:20:14 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
16:20:30 <int-e> instance Arbitrary b => Arbitrary (a -> b) would not be able to do anything with the 'a', hence all the functions it could produce would be constantr
16:20:39 <int-e> so yes, that
16:20:41 <infinisil> Ah I see
16:22:18 <dolio> jhaxim: If you use a single list, then either the front of the list is the output or the input. If it's the input, then dequeue has to rebuild the list and get an element from the far end, which takes O(n) time to get the value. If it's the output, then enqueue has to rebuild the whole list, which costs O(n) each time in the long run.
16:22:40 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
16:23:18 <infinisil> So CoArbitrary is really only for generating functions
16:23:28 Varis joins (~Tadas@unaffiliated/varis)
16:23:54 <dolio> So using two lists lets you access both ends fast, and only pay the linear rebuilding cost every so often.
16:24:04 × kiweun quits (~kiweun@dsl-173-206-6-91.tor.primus.ca) (Read error: Connection reset by peer)
16:24:29 malumore joins (~malumore@151.62.127.36)
16:24:33 kiweun joins (~kiweun@dsl-173-206-6-91.tor.primus.ca)
16:25:17 <int-e> infinisil: yup
16:26:42 <dolio> The three lists version duplicates one of the lists when you perform the reversal and incrementally forces it on every operation to spread out the cost.
16:27:09 × ph88 quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Quit: Leaving)
16:27:38 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
16:28:12 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Remote host closed the connection)
16:28:28 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
16:29:18 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
16:30:15 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Remote host closed the connection)
16:31:28 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
16:32:09 × agander_ quits (~agander@193.46.28.55) (Quit: Leaving)
16:32:18 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
16:32:20 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
16:32:42 vicfred joins (vicfred@gateway/vpn/mullvad/vicfred)
16:33:57 heatsink joins (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d)
16:36:00 pavonia joins (~user@unaffiliated/siracusa)
16:36:23 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 260 seconds)
16:36:41 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
16:38:46 teardown joins (~user@gateway/tor-sasl/mrush)
16:39:05 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1)
16:40:57 × chenshen quits (~chenshen@2620:10d:c090:400::5:dc3c) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
16:42:14 chenshen joins (~chenshen@2620:10d:c090:400::5:dc3c)
16:43:14 × Boomerang quits (~Boomerang@2a05:f6c7:2179:0:64:db14:2c3a:3ba3) (Ping timeout: 264 seconds)
16:44:36 <ezzieyguywuf> i'm using megaparsec, and I have two parsers written 'parseFront :: Parser Text', and 'parseLast :: Parser Text'. how would I go about consuming as many 'parseFront' as possible until 'parseLast' succeeds?
16:46:11 kritzefitz joins (~kritzefit@212.86.56.80)
16:49:08 <c_wraith> ezzieyguywuf: https://hackage.haskell.org/package/parser-combinators-1.2.1/docs/Control-Monad-Combinators.html#v:manyTill_
16:49:18 <c_wraith> note that megaparsec re-exports that for you
16:50:25 <ezzieyguywuf> c_wraith: dope tahnks
16:51:53 mayleesia joins (4d0b2c7f@dynamic-077-011-044-127.77.11.pool.telefonica.de)
16:52:41 aarvar joins (~foewfoiew@2601:602:a080:fa0:176:cad2:9667:c008)
16:53:15 jamm_ joins (~jamm@unaffiliated/jamm)
16:53:43 × jhaxim quits (c036de94@192.54.222.148) (Ping timeout: 240 seconds)
16:55:25 × romesrf quits (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae) (Quit: WeeChat 3.0.1)
16:58:32 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:00:59 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
17:01:03 × knupfer quits (~Thunderbi@200116b82c5bbe00c174e65d57f6f6eb.dip.versatel-1u1.de) (Remote host closed the connection)
17:01:12 knupfer joins (~Thunderbi@200116b82c5bbe00a021592bb6d1a408.dip.versatel-1u1.de)
17:01:13 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:02:13 geekosaur joins (82650c7a@130.101.12.122)
17:04:01 romesrf joins (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae)
17:04:09 × romesrf quits (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae) (Client Quit)
17:04:43 <ij> shapr, converts the higher order type from one to another. It's something you'd use to go from scala's Future to IO, I think
17:05:12 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
17:05:23 romesrf joins (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae)
17:06:00 × romesrf quits (~romesrf@2001:818:dcef:c700:d53a:4836:b1c5:f3ae) (Client Quit)
17:07:51 jakalx joins (~jakalx@base.jakalx.net)
17:08:01 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
17:08:25 redmp joins (~redmp@172.58.35.111)
17:08:44 Varis joins (~Tadas@unaffiliated/varis)
17:12:56 × agander quits (~agander@193.46.28.55) (Quit: Leaving)
17:13:15 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 240 seconds)
17:14:39 agander joins (~agander@193.46.28.55)
17:15:02 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
17:15:37 × peasynt quits (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:15:50 ukari joins (~ukari@unaffiliated/ukari)
17:16:20 eoyath_ joins (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net)
17:16:27 × eoyath_ quits (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net) (Client Quit)
17:17:14 eoyath_ joins (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net)
17:17:14 × eoyath_ quits (~AdminUser@pool-173-76-103-124.bstnma.fios.verizon.net) (Client Quit)
17:18:12 × kuribas quits (~user@ptr-25vy0iacstgp10erojf.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:18:56 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:18:58 agander_ joins (~agander@193.46.28.55)
17:19:24 × agander quits (~agander@193.46.28.55) (Client Quit)
17:22:25 emmanuel_erc parts (~user@cpe-74-71-106-64.nyc.res.rr.com) ("ERC (IRC client for Emacs 27.1)")
17:23:33 × agander_ quits (~agander@193.46.28.55) (Client Quit)
17:23:44 sgibber2018 joins (d055ed90@208.85.237.144)
17:24:17 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 256 seconds)
17:27:16 agander joins (~agander@193.46.28.55)
17:27:17 ADG1089__ joins (~aditya@122.163.141.18)
17:27:58 <ADG1089__> I have 206 files in a folder, I want all of them to be declared as executables in cabal, how can i write a for loop/glob pattern?
17:28:12 <ADG1089__> I will keep adding more to it
17:28:29 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dd5f:6f4f:a50:215d) (Remote host closed the connection)
17:30:14 <sm[m]> woah
17:30:25 <sm[m]> you'll have to generate the cabal file I expect
17:32:28 tinhatcat joins (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net)
17:32:38 eoyath_ joins (~quassel@pool-173-76-103-124.bstnma.fios.verizon.net)
17:32:38 × eoyath_ quits (~quassel@pool-173-76-103-124.bstnma.fios.verizon.net) (Client Quit)
17:32:39 × tinhatcat quits (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) (Client Quit)
17:33:09 peasynt joins (~quassel@pool-173-76-103-124.bstnma.fios.verizon.net)
17:35:53 nbloomf joins (~nbloomf@2600:1700:ad14:3020:31cc:7f5d:4d57:b77)
17:37:15 deviantfero joins (~deviantfe@190.150.27.58)
17:37:27 × zar quits (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving)
17:38:35 agander_ joins (~agander@185.94.193.150)
17:40:37 <ADG1089__> what are some relvant pages on haskellwiki that give guidance on profiling to improve performance of code?
17:40:53 <ADG1089__> I'm trying to improve from 30-90s runtime to <1s
17:40:54 × agander quits (~agander@193.46.28.55) (Ping timeout: 246 seconds)
17:43:29 × kiweun quits (~kiweun@dsl-173-206-6-91.tor.primus.ca) (Remote host closed the connection)
17:44:08 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
17:45:43 nineonine joins (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639)
17:47:46 AndChat-33024 joins (~AndChat33@148.252.129.66)
17:48:31 <sm[m]> ADG1089__: have you seen the GHC user guide performance chapter ?
17:49:16 <ADG1089__> I am reading https://wiki.haskell.org/Performance/GHC to start
17:51:11 × iteratee quits (~kyle@162.218.222.107) (Remote host closed the connection)
17:51:35 __minoru__shirae joins (~shiraeesh@46.34.206.213)
17:52:33 agander joins (~agander@185.94.193.150)
17:53:00 <ADG1089__> I am getting: MUT time 25.356s ( 25.751s elapsed) GC time 14.781s ( 15.251s elapsed)
17:53:22 × knupfer quits (~Thunderbi@200116b82c5bbe00a021592bb6d1a408.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
17:53:31 × feepo quits (sid28508@gateway/web/irccloud.com/x-wcewznnvlbknipja) (Ping timeout: 272 seconds)
17:53:37 <ADG1089__> so 37% time in GC, shall I focus GC or core logic first if I am aiming <1s total runtim
17:53:44 <ADG1089__> its 40 sec now
17:53:45 tomjagua1paw is now known as tomjaguarpaw
17:54:13 crobbins_ joins (~crobbins@2601:2c1:200:ec50:c89a:1f93:5201:6c0c)
17:54:23 × ggole quits (~ggole@2001:8003:8119:7200:9a:455d:b816:c3c6) (Quit: Leaving)
17:54:33 × agander_ quits (~agander@185.94.193.150) (Ping timeout: 260 seconds)
17:54:51 ADG1089 joins (~adg1089@171.76.172.3)
17:55:02 <ADG1089> .
17:55:10 × ADG1089__ quits (~aditya@122.163.141.18) (Remote host closed the connection)
17:55:30 Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas)
17:55:36 feepo joins (sid28508@gateway/web/irccloud.com/x-gkqhrcmhiiphbogr)
17:56:35 × crobbins quits (~crobbins@2601:2c1:200:ec50:c32:8193:5ae6:63eb) (Ping timeout: 240 seconds)
17:56:38 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
17:58:09 × stree quits (~stree@68.36.8.116) (Ping timeout: 264 seconds)
17:58:14 psutcliffe joins (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519)
17:58:35 × crobbins_ quits (~crobbins@2601:2c1:200:ec50:c89a:1f93:5201:6c0c) (Ping timeout: 240 seconds)
18:00:59 × __minoru__shirae quits (~shiraeesh@46.34.206.213) (Ping timeout: 260 seconds)
18:03:37 drakonis parts (drakonis@unaffiliated/drakonis) ("WeeChat 3.0.1")
18:04:30 chisui joins (58829809@88.130.152.9)
18:05:57 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
18:07:21 × rajivr quits (uid269651@gateway/web/irccloud.com/x-ztiomawifornmkpr) (Quit: Connection closed for inactivity)
18:09:02 <sm[m]> ADG1089: it sounds like a lot of GC, try to reduce your memory usage
18:09:06 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
18:09:53 <sm[m]> an easy first thing to look for in a profile is very high entry counts, things you're calling more often than necessary
18:10:31 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
18:10:32 <sm[m]> you can paste it somewhere if you like
18:11:02 stree joins (~stree@68.36.8.116)
18:11:38 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
18:12:04 nak joins (~user@S0106889e681ad145.gv.shawcable.net)
18:12:48 jakalx joins (~jakalx@base.jakalx.net)
18:15:12 nineonin_ joins (~nineonine@50.216.62.2)
18:15:17 malumore_ joins (~malumore@151.62.127.36)
18:15:21 × statusfailed quits (~statusfai@statusfailed.com) (Remote host closed the connection)
18:17:01 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
18:18:04 conal joins (~conal@64.71.133.70)
18:18:08 knupfer joins (~Thunderbi@mue-88-130-61-019.dsl.tropolys.de)
18:18:28 × nineonine quits (~nineonine@2604:3d08:7785:9600:d6d:9e4a:ef90:7639) (Ping timeout: 260 seconds)
18:20:37 × kunsttyv quits (~kunsttyv@ti0005q162-5102.bb.online.no) (Ping timeout: 276 seconds)
18:21:48 × malumore quits (~malumore@151.62.127.36) (Quit: Leaving)
18:23:01 × malumore_ quits (~malumore@151.62.127.36) (Quit: Leaving)
18:23:23 malumore joins (~malumore@151.62.127.36)
18:23:39 statusfailed joins (~statusfai@statusfailed.com)
18:23:48 dcoutts_ is now known as dcoutts
18:24:06 crobbins joins (~crobbins@2600:1700:48eb:8490:9416:7f26:bb22:cc55)
18:24:15 × chenshen quits (~chenshen@2620:10d:c090:400::5:dc3c) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:28:46 <psutcliffe> what's the syntax for referring to something you matched? like this:(Foo x y) this = (Foo x y)
18:28:52 <psutcliffe> not able to google it
18:28:57 kunsttyv joins (~kunsttyv@ti0005q162-5102.bb.online.no)
18:29:04 chenshen joins (~chenshen@2620:10d:c090:400::5:dc3c)
18:29:12 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
18:29:21 <monochrom> this@(Foo x y)
18:29:22 Pickchea joins (~private@unaffiliated/pickchea)
18:29:34 <psutcliffe> @ sign, ok thanks
18:30:04 <geekosaur> "as-pattern"
18:30:42 <monochrom> In SML, it's "this as (Foo x y)". Haskell did s/as/@/
18:31:08 <psutcliffe> thanks :)
18:32:07 jamm_ joins (~jamm@unaffiliated/jamm)
18:32:12 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
18:32:22 jamm_ joins (~jamm@unaffiliated/jamm)
18:32:40 kiweun joins (~kiweun@dsl-173-206-6-91.tor.primus.ca)
18:32:51 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
18:33:15 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708) (Ping timeout: 240 seconds)
18:33:52 × gitgood quits (~gitgood@82-132-225-188.dab.02.net) (Read error: Connection reset by peer)
18:33:58 cheater joins (~user@unaffiliated/cheater)
18:36:13 × ADG1089 quits (~adg1089@171.76.172.3) (Ping timeout: 276 seconds)
18:39:33 × kiweun quits (~kiweun@dsl-173-206-6-91.tor.primus.ca) (Remote host closed the connection)
18:40:59 × Forkk quits (forkk@2600:3c00::f03c:91ff:fe84:de4d) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
18:43:17 Forkk joins (forkk@2600:3c00::f03c:91ff:fe84:de4d)
18:43:38 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
18:48:14 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:48:25 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
18:49:13 × quackrabbit quits (~aeline@129-2-180-100.wireless.umd.edu) (Ping timeout: 245 seconds)
18:53:43 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
18:54:51 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds)
18:58:55 Boomerang joins (~Boomerang@2a05:f6c7:2179:0:64:db14:2c3a:3ba3)
18:59:53 × chisui quits (58829809@88.130.152.9) (Quit: Connection closed)
18:59:59 × raichoo quits (~raichoo@dslb-092-073-221-030.092.073.pools.vodafone-ip.de) (Quit: Lost terminal)
19:01:46 × DavidEichmann quits (~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
19:02:16 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
19:03:27 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
19:03:30 berberman_ joins (~berberman@unaffiliated/berberman)
19:03:56 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
19:06:07 × sgibber2018 quits (d055ed90@208.85.237.144) (Quit: Connection closed)
19:06:23 × berberman_ quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded)
19:07:16 berberman joins (~berberman@unaffiliated/berberman)
19:08:11 conal joins (~conal@64.71.133.70)
19:13:19 geekosaur joins (82650c7a@130.101.12.122)
19:16:22 × bobiusbillius quits (~bobiusbil@host109-153-130-34.range109-153.btcentralplus.com) (Read error: Connection reset by peer)
19:16:38 bobiusbillius joins (~bobiusbil@2a00:23c7:9909:5b01:1037:bcdb:7c3:6458)
19:18:10 deviantfero joins (~deviantfe@190.150.27.58)
19:18:32 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 265 seconds)
19:20:54 × mayleesia quits (4d0b2c7f@dynamic-077-011-044-127.77.11.pool.telefonica.de) (Quit: Connection closed)
19:22:49 × hiroaki_ quits (~hiroaki@2a02:8108:8c40:2bb8:4bed:da7a:2692:1300) (Ping timeout: 272 seconds)
19:25:00 <d34df00d> monochrom: just in case you were wondering, I rewrote my yesterday strings mangling with ST, and it's 20 times faster.
19:25:18 <d34df00d> Ended up with this abomination:
19:25:21 <d34df00d> https://bpaste.net/SJAQ
19:25:32 <d34df00d> (V is Data.Vector.Unboxed)
19:27:22 <d34df00d> Now I desperately need to rewrite this in C++ to see how fast can I get this to be in a language whose performance model I understand better.
19:29:07 <monochrom> This one should be easy in C or C++. Easier in C. Too much infrastructure in C++.
19:30:33 <d34df00d> but muh templates
19:30:49 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
19:31:37 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
19:34:53 hiroaki_ joins (~hiroaki@2a02:8108:8c40:2bb8:73f8:36f6:d6d6:24a)
19:35:58 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
19:39:41 Nahra joins (~Nahra@unaffiliated/nahra)
19:43:49 <rednaZ[m]> I have written a sentence that is too long. Would anyone here enjoy showing me how to split this up?
19:43:55 <rednaZ[m]> Library authors should allow library users to access unsafe functions explicitly because the library author should assume that, using these unsafe functions, with discipline safe code can be written that achieves something that could not have been achieved with the safe functions only, even if the library author cannot see an opportunity for that themselves.
19:45:03 <koz_> Library authors should allow users to access unsafe functions explicitly. The author should assume that, with discipline, we can achieve something otherwise not possible (or efficient) with these unsafe functions.
19:46:39 × knupfer quits (~Thunderbi@mue-88-130-61-019.dsl.tropolys.de) (Remote host closed the connection)
19:47:24 <tomsmeding> With discipline, library users can [often?] combine unsafe functions [interfaces?] into safe code that accomplishes things that could not have been achieved with safe library functions only. Therefore, library authors should expose such [internal?] unsafe functions for use by library users.
19:48:10 <tomsmeding> oh, your ", even if the library author ... themselves." can go instead of my final "." rednaZ[m]
19:48:30 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 265 seconds)
19:49:14 <monochrom> This may evolve into a telephone game. >:)
19:49:29 <maerwald> too much english for me, I find all versions confusing
19:49:34 <dmj`> library (ab)users
19:49:51 ransom joins (~c4264035@undergraduate-jvossen-9690.mines.edu)
19:49:54 <tomsmeding> maerwald: I challenge you to read a research paper
19:50:10 <maerwald> "a"?
19:50:18 <tomsmeding> okay fair the really good ones are very readable
19:50:27 <tomsmeding> an average one, then :p
19:50:43 <d34df00d> Read this one: https://cdn.paperpile.com/blog/img/lander-1966-700x394.png?v=38
19:51:01 <monochrom> Read a Bird paper for fewer words, more formulas.
19:51:13 <monochrom> A formula is worth a thousand pictures.
19:51:27 <maerwald> oh yes, I want to read pictures
19:51:39 <d34df00d> Neural nets to the rescue!
19:51:46 <maerwald> rednaZ[m]: can you draw pictures instead?
19:51:53 cheater joins (~user@unaffiliated/cheater)
19:52:01 <rednaZ[m]> xD
19:52:05 <d34df00d> Draw a commutative diagram of users and libraries.
19:52:16 <koz_> Category theory for UX.
19:52:30 × kunsttyv quits (~kunsttyv@ti0005q162-5102.bb.online.no) (Ping timeout: 246 seconds)
19:52:51 <rednaZ[m]> I can replace all identifiers and operators in my code with unicode characters. Does that make my code count as a picture?
19:53:04 <tomsmeding> 👍
19:53:04 <maerwald> rednaZ[m]: https://hackage.haskell.org/package/streamly-0.7.2 basically does what you are saying in exposing those things via Streamly.Internal.XXX
19:53:05 <d34df00d> Nope, but you can pretend you're doing smart things in agda.
19:53:16 <monochrom> Most unicode characters are not pictures.
19:53:30 <tomsmeding> 🖼
19:53:36 <monochrom> Most unicode characters are, in fact, CJK.
19:54:27 <monochrom> But you could argue that CJK evolved from pictures.
19:54:59 × chenshen quits (~chenshen@2620:10d:c090:400::5:dc3c) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:55:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
19:57:21 × pfurla_ quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
19:57:51 bodisiw joins (~bodiskw@cpe-74-138-114-237.kya.res.rr.com)
20:00:30 chenshen joins (~chenshen@2620:10d:c090:400::5:dc3c)
20:01:09 × Boomerang quits (~Boomerang@2a05:f6c7:2179:0:64:db14:2c3a:3ba3) (Remote host closed the connection)
20:02:48 <rednaZ[m]> Thanks koz_ and tomsmeding . Interesting how you treat the "because". tomsmeding switches the order so he can make to sentences using "Therefore" which is allowed to start a sentence while "because" is apparently not, which is weird, is it not? koz_ simply drops "because".
20:03:33 <koz_> The thing is, the whole 'never start a sentence with because' is a pointless rule.
20:03:36 <tomsmeding> rednaZ[m]: "Because of that, ..."
20:03:40 <koz_> In this case, however, you need no conjunction anyway.
20:03:42 <dolio> You can start a sentence with, "because," but it means something different than, "therefore."
20:03:45 × bodisiw quits (~bodiskw@cpe-74-138-114-237.kya.res.rr.com) (Quit: Leaving)
20:03:50 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:03:51 <koz_> Because it's rather clear what the connection between those sentences is.
20:04:17 <rednaZ[m]> tomsmeding: That is just another way of saying "Therefore".
20:04:20 <rednaZ[m]> xD
20:04:28 <tomsmeding> of course :p
20:05:19 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
20:05:21 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 264 seconds)
20:05:38 <dolio> Basically, if you start a sentence with, "because," you are just switching the order of conjoined clauses in the sentence.
20:05:45 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
20:06:30 pera joins (~pera@unaffiliated/pera)
20:06:58 kiweun joins (~kiweun@dsl-173-206-6-91.tor.primus.ca)
20:07:07 petersen joins (~petersen@redhat/juhp)
20:07:16 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1)
20:07:40 howdoi joins (uid224@gateway/web/irccloud.com/x-bgmkvjlbzdbxvlqi)
20:10:10 <rednaZ[m]> koz_: I think, you have got a good point.
20:10:41 gitgood joins (~gitgood@82-132-217-85.dab.02.net)
20:11:00 <d34df00d> Interestingly, the C(++) version of the above is slower.
20:12:06 <average> the old Haskell oneup / oneupmanship / lifesmanship trick ? "The C++ version is slower than our Haskell version"
20:12:55 <average> "In Haskell, we have faster linear algebra routines than those of Kazushige Gotō hand-optimized in assembly"
20:12:57 <d34df00d> Ah, because I return an std::pair, so the vector gets copied...
20:13:16 <d34df00d> But I'm not sure how to avoid that without making the code non-idiomatic.
20:13:28 <tomsmeding> d34df00d: std::move() ?
20:13:47 <average> "Our Haskell programs are faster on a regular computer than the same versions optimized for Quantum computers"
20:13:50 <d34df00d> For some reason it actually pessimizes code with my clang.
20:13:59 <tomsmeding> show code?
20:14:51 <d34df00d> Ah, hold on, I've put my timing thing in the wrong place. Now it's about the same speed (as expected).
20:15:09 <d34df00d> Although still a bit worse with gcc than with clang, but whatever.
20:15:50 <dolio> People are forced to try to beat C and C++ in Haskell, because other people claim they can't use anything with 'less perfromance' than C++ for anything. Then if you do beat it, the second group reveals they were lying about that being a reason for not using Haskell.
20:16:13 <edwardk> dolio++
20:16:20 <d34df00d> eww mutation
20:16:22 <tomsmeding> d34df00d: interesting you see a difference between the two, usually it's hard to find programs where they don't perform roughly equally
20:16:24 × m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.7.1)
20:16:38 <edwardk> to be fair most of the my haskell beats your c examples take ridiculously tuned haskell and run it against unoptimized c
20:16:40 <d34df00d> tomsmeding: I mean, I was forced to rewrite my Haskell implementation in ST.
20:17:06 <d34df00d> But yea, experience shows that ST is usually about the same speed as the equivalent C++ version.
20:17:29 <d34df00d> Unless the compiler can take opportunity of SIMD (say, with -march=native), which never worked for me in haskell even with -fllvm for some reason.
20:17:30 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
20:17:39 <monochrom> d34df00d: I would use simply C and start with simply "int dropNoise(const char *in, int n, char *out)"
20:17:45 <d34df00d> Maybe I'm just passing the parameters to the llvm optimizer/compiler worng.
20:17:47 kritzefitz joins (~kritzefit@212.86.56.80)
20:18:11 <monochrom> And it's what I mean by "C is easier, C++ has too much infrastruture"
20:18:41 <maerwald> optimizing haskell is a zic-zac game :)
20:18:51 bahamas joins (~lucian@unaffiliated/bahamas)
20:19:22 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
20:19:31 <swarmcollective> Of course, runtime performance matters, but I worry more about the ability for team members to produce code that is easily reasoned, easily maintained, and contains as few defects as possible. For that, it seems that Haskell works well.
20:19:33 <d34df00d> Dang, I just noticed I can replace byte >= 0xd0 && byte <= 0xd7 with byte.&. 0xd0 == 0xd0, but it has no effect on the performance :(
20:19:38 <d34df00d> So much for cunning bit tricks!
20:19:49 × bobiusbillius quits (~bobiusbil@2a00:23c7:9909:5b01:1037:bcdb:7c3:6458) (Ping timeout: 272 seconds)
20:20:18 <maerwald> swarmcollective: depends what you mean with reasoning
20:20:21 × agander quits (~agander@185.94.193.150) (Remote host closed the connection)
20:20:34 <monochrom> gcc beats ghc on contrived microbenchmarks like "compute x mod 7 for a million x's" but it's only because gcc replaces "mod 7" by a bit-shift-and-multiply trick.
20:20:41 <d34df00d> Yeah, I find it hard to reason with your average manager that it's as easy to find haskell folks as it is for c++ folks.
20:20:44 <heck-to-the-gnom> d34df00d: That's a good thing actually, that means that the compiler is optimizing things nicely
20:21:32 <tomsmeding> d34df00d: are you on linux? if so, you could try using 'perf stat' to determine whether your program is bottlenecked on memory IO or on execution units on the CPU
20:21:45 <monochrom> And if your alternate contrived microbenchmark is "for i=0 to N do nothing" gcc also beats ghc by replacing your loop with "i = N+1".
20:21:51 <tomsmeding> if memory, then saving one inner-loop instruction may not help :)
20:22:02 <average> monochrom: why doesn't GHC do that too ?
20:22:18 <monochrom> GHC has a real life and a real job.
20:22:20 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
20:22:26 <d34df00d> Well, I'm processing roughly gigabyte per sec (the test file is 16 megs, on tmpfs, mmapped in case of haskell, and it takes about 15 secs to process), so I guess it's CPU-bound. Also, there's no room for instruction-level parallelism really, I think.
20:22:31 <geekosaur> what it takes to write that loop to begin with tells ghc that it's needed
20:22:32 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
20:22:41 <geekosaur> so it believes you
20:22:44 <d34df00d> s/15 secs/15 msecs/
20:22:49 × AndChat-33024 quits (~AndChat33@148.252.129.66) (Ping timeout: 265 seconds)
20:22:54 bobiusbillius joins (~bobiusbil@92.40.176.1.threembb.co.uk)
20:23:11 <tomsmeding> d34df00d: makes sense
20:24:13 <d34df00d> Although I bet somebody will come up with some cunning broadword programming trick.
20:24:29 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
20:25:24 <monochrom> To be fair IMO strength reduction for "mod literal" is worthwhile because there are some real applications, though niche, that has it in hot spots.
20:25:30 × forgottenone quits (~forgotten@176.88.30.190) (Quit: Konversation terminated!)
20:25:34 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708) (Remote host closed the connection)
20:25:51 <d34df00d> The most examples I've seen of gcc beating anything (from ghc to clang) is on code that's very much tailored to the gcc's optimizer.
20:25:55 <monochrom> But "optimizing" no-op loops is just ivory tower thinking.
20:26:14 <monochrom> Either that, or cheating benchmarks.
20:26:26 <geekosaur> except when it breaks the linux kernel busy-waiting :)
20:26:31 <d34df00d> Most production code I wrote in C++ without caring about any single compiler performed better in clang than in gcc for the last maybe 4 or 5 years at least.
20:26:41 <dolio> I guess the question is why gcc does it, then. :)
20:26:49 <monochrom> And yes I get to say that some things gcc does is ivory tower irrelevancies. Bite me.
20:27:07 <d34df00d> Why, I agree.
20:28:46 jneira joins (501e6551@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.81)
20:29:33 drozdziak1 parts (~drozdziak@vps-520f86fd.vps.ovh.net) ("WeeChat 2.9")
20:30:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
20:31:06 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
20:32:00 stree joins (~stree@68.36.8.116)
20:32:14 × cgadski quits (~textual@87.196.80.116) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:33:38 bob23 joins (62940397@098-148-003-151.res.spectrum.com)
20:33:54 × bob23 quits (62940397@098-148-003-151.res.spectrum.com) (Client Quit)
20:34:49 jamm_ joins (~jamm@unaffiliated/jamm)
20:38:08 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
20:39:38 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
20:41:30 × ransom quits (~c4264035@undergraduate-jvossen-9690.mines.edu) (Quit: Textual IRC Client: www.textualapp.com)
20:42:19 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 276 seconds)
20:42:23 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:42:37 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
20:42:46 <heck-to-the-gnom> I heard that there's work underway to make the Linux kernel work on clang. Pretty cool...
20:43:28 conal joins (~conal@64.71.133.70)
20:44:13 slack1256 joins (~slack1256@45.4.2.52)
20:44:31 × slack1256 quits (~slack1256@45.4.2.52) (Remote host closed the connection)
20:45:03 <fendor> never heard gcc being accused of ivory tower irrelevancies
20:45:16 <monochrom> >:)
20:46:03 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
20:47:18 × conal quits (~conal@64.71.133.70) (Client Quit)
20:49:01 myShoggoth joins (~myShoggot@75.164.81.55)
20:49:24 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 256 seconds)
20:49:36 <myShoggoth> Going to read GHC garbage collector code on stream in a few: https://www.twitch.tv/myShoggoth
20:51:09 <swarmcollective> Ah, good myShoggoth I'll tune in.
20:51:33 × kibo quits (~kibo@51-171-46-249-dynamic.agg2.ens.lmk-pgs.eircom.net) (Ping timeout: 264 seconds)
20:52:26 × bobiusbillius quits (~bobiusbil@92.40.176.1.threembb.co.uk) (Read error: Connection reset by peer)
20:52:38 bobiusbillius joins (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458)
20:53:29 <heck-to-the-gnom> By read it, do you mean read through comments, &/or elaborate on the meanings? Or read through it line by line, unironically, just the source code?
20:54:33 Gurkenglas_ is now known as Gurkenglas
20:55:56 todda7 joins (~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2)
20:55:57 × chenshen quits (~chenshen@2620:10d:c090:400::5:dc3c) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:56:13 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
20:56:57 × tsaka__ quits (~torstein@athedsl-258913.home.otenet.gr) (Remote host closed the connection)
20:57:38 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Client Quit)
20:58:55 × bobiusbillius quits (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458) (Ping timeout: 240 seconds)
20:59:50 bobiusbillius joins (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458)
21:01:28 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
21:01:28 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
21:01:28 mouseghost joins (~draco@wikipedia/desperek)
21:03:11 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
21:03:45 ph88 joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
21:04:10 <ph88> how can i get an Int (rounded or truncated don't care) from Scientific ?
21:04:13 conal joins (~conal@64.71.133.70)
21:04:43 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
21:05:01 <glguy> using truncate or round
21:05:04 texasmynsted_ joins (~texasmyns@99.96.221.112)
21:05:42 × psutcliffe quits (~psutcliff@2a00:801:3f2:fa8e:16b2:2b3e:c801:a519) (Ping timeout: 258 seconds)
21:06:41 <ph88> oki thank you
21:07:36 <dmj`> man ... sure would be nice if haskell-mode could update your imports and module declarations automatically when files get moved around ...
21:07:39 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 260 seconds)
21:09:12 × bobiusbillius quits (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458) (Read error: Connection reset by peer)
21:09:24 bobiusbillius joins (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458)
21:09:29 erayo joins (c0ab6c77@119.108.171.192.pba.apn.pmt.pf)
21:10:18 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-tgakpwzpocvqwkje) (Quit: Connection closed for inactivity)
21:11:04 <erayo> I'm designing a library and want to hide some optional features behind feature flags, what's a good way to do this ?
21:11:12 <erayo> do I have to rely on CPP ?
21:11:33 <dolio> What does that mean? It sounds like something you probably shouldn't do.
21:12:08 <dolio> Because other packages can't depend on specific flag settings.
21:13:20 <erayo> maybe I'm approaching this the wrong way, I wanted to avoid long compilation time because each optional feature needs to pull a bunch of dependencies
21:14:34 <dolio> What is a "feature"? Does it make a difference in the functions/modules exposed in the package?
21:15:02 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
21:15:46 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
21:16:02 <erayo> yes, if a feature is disabled, I would like to avoid exposing the related modules, and avoid pulling all the dependencies specific to that feature
21:16:33 fendor_ joins (~fendor@91.141.0.22.wireless.dyn.drei.com)
21:16:53 bahamas joins (~lucian@unaffiliated/bahamas)
21:17:00 <dolio> Then it has the problem I mentioned. Things that depend on your package can't depend on a specific set of flags, so can't reliably use the things that are only visible if the right flags are enabled.
21:18:34 <dolio> Flags changing the API won't work, basically.
21:18:41 <erayo> I see, I was hoping for something similar to rust's feature flags, maybe there's no equivalent
21:19:13 <heck-to-the-gnom> I mean, modules, & submodules...
21:19:19 × fendor quits (~fendor@77.119.128.81.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
21:19:21 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:19:23 son0p joins (~son0p@181.136.122.143)
21:20:28 × ixlun quits (~user@213.205.241.12) (Remote host closed the connection)
21:21:01 <dolio> Cabal at least can have multiple libraries declared in a package, and at some point it's going to be possible to depend on specific libraries from another package. I'm not sure when that's going to be possible if it isn't already.
21:21:19 <dolio> That would be cabal-install only, I think.
21:21:53 cgadski joins (~textual@a95-95-106-208.cpe.netcabo.pt)
21:22:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
21:22:34 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 245 seconds)
21:22:43 <dolio> Multiple libraries in a package already worked for a long time, but only for use within a package, not across packages.
21:22:55 apache801 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
21:25:22 <dolio> Anyhow, I think that probably would be a decent way to have a single logical package with optional parts.
21:26:44 <dolio> Oh, you could make it work everywhere, I think, by having a 'main' library that just exposes all the optional libraries. It just wouldn't allow people to benefit from not compiling the 'optional' parts unless they can depend on individual libraries in a package.
21:26:56 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
21:28:31 pfurla joins (~pfurla@pool-108-6-43-243.nycmny.fios.verizon.net)
21:28:34 <erayo> I see, multiple libraries in the same package should do the trick for me
21:28:42 <erayo> ty dolio :)
21:29:06 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:32:08 × nak quits (~user@S0106889e681ad145.gv.shawcable.net) (Ping timeout: 245 seconds)
21:35:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:36:10 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
21:37:02 chenshen joins (~chenshen@2620:10d:c090:400::5:dc3c)
21:37:43 × bobiusbillius quits (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458) (Ping timeout: 272 seconds)
21:37:59 <jneira> i am starting to think that we should drop the hackage-index from cabal.project
21:38:03 <jneira> ops
21:38:27 <jneira> bad channel
21:40:28 bob17 joins (62940397@098-148-003-151.res.spectrum.com)
21:41:23 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:41:33 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
21:41:51 × bob17 quits (62940397@098-148-003-151.res.spectrum.com) (Client Quit)
21:43:50 slack1256 joins (~slack1256@45.4.2.52)
21:44:19 bobiusbillius joins (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458)
21:49:20 × alx741 quits (~alx741@186.178.108.117) (Ping timeout: 265 seconds)
21:50:27 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
21:52:05 bahamas joins (~lucian@unaffiliated/bahamas)
21:54:08 × Nahra quits (~Nahra@unaffiliated/nahra) (Quit: leaving)
21:56:15 × crobbins quits (~crobbins@2600:1700:48eb:8490:9416:7f26:bb22:cc55) (Ping timeout: 240 seconds)
21:56:32 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
21:57:04 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
21:57:34 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
21:57:34 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
21:57:34 neiluj joins (~jco@unaffiliated/neiluj)
21:58:49 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 245 seconds)
21:58:59 × bobiusbillius quits (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458) (Ping timeout: 258 seconds)
22:00:11 crobbins joins (~crobbins@2600:1700:48eb:8490:9416:7f26:bb22:cc55)
22:00:20 ollierees joins (~ollierees@2a02:c7f:a8a8:fb00:7bfd:a909:fc9a:92c6)
22:00:40 justan0theruser is now known as justanotheruser
22:01:20 <ollierees> :t mapM
22:01:21 <lambdabot> (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
22:01:46 alx741 joins (~alx741@186.178.108.237)
22:02:24 bobiusbillius joins (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458)
22:02:34 × malumore quits (~malumore@151.62.127.36) (Ping timeout: 245 seconds)
22:03:00 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:03:06 <ph88> how can i go from a list of [[(FieldName, DataValue)]] to [DataRow] ? https://hackage.haskell.org/package/hvega-0.11.0.0/docs/Graphics-Vega-VegaLite.html#v:dataRow i just get this function which i think i need to apply continiously
22:03:48 × kiweun quits (~kiweun@dsl-173-206-6-91.tor.primus.ca) (Remote host closed the connection)
22:05:13 <monochrom> Start with [] :: [DataRow] as your starter?
22:05:47 <ph88> yes sure
22:06:06 <monochrom> "What you add to Vega, stays in Vega". >:)
22:06:29 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
22:06:33 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
22:06:40 <ph88> but i can not call dataRow every time because i don't know how many times i would need to do that
22:06:48 <ph88> but i can't simply map it either
22:06:56 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
22:07:15 <ph88> if it was dataRow :: [(FieldName, DataValue)] -> [DataRow] i could just map and that's that
22:07:52 <ollierees> [DataRow] is just [[[(FieldName, DataValue)]] -> [DataRow] -> [DataRow]], where [] is the leaf of DataRow...
22:07:58 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:31cc:7f5d:4d57:b77) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:08:16 <monochrom> I'm sure you'll figure out you actually have many options.
22:08:17 <ph88> here in the example documentation they call dataRow manually for each element https://hackage.haskell.org/package/hvega-0.11.0.0/docs/Graphics-Vega-VegaLite.html#v:dataFromRows
22:08:42 <ph88> i guess the many options are confusing me o_O
22:08:46 <ph88> is there an idiomatic option ? like a short function or so
22:09:23 × bobiusbillius quits (~bobiusbil@2a02:c7d:51c4:7000:1037:bcdb:7c3:6458) (Ping timeout: 272 seconds)
22:09:46 <ph88> one thing that came to mind is foldr (. dataRow) id [..myList..] but it seems rather ugly
22:10:15 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
22:10:21 × lieven quits (~mal@unaffiliated/lieven) (Quit: WeeChat 1.6)
22:10:46 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
22:10:46 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708) (Remote host closed the connection)
22:10:50 <monochrom> OK here are the options off the top of my head.
22:11:13 usr25 joins (~usr25@unaffiliated/usr25)
22:11:35 <monochrom> map (\x -> dataRow x []) --- there you go, can't say "can't just map over", I just did
22:12:11 <monochrom> dataRow (xs ++ ys ++ zs) [] -- if xs, ys, zs :: [(FieldName, DataValue)]
22:12:47 <monochrom> dataRow zs (dataRow ys (dataRow xs [])) -- I don't know whether it's the right order by surely you can try
22:13:01 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 265 seconds)
22:13:05 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
22:13:19 <monochrom> I don't know which one does what you really need because I don't know what you really need.
22:13:35 <monochrom> But these are all counterexamples to refute all bold "can't" claims.
22:14:01 <monochrom> And these are all from just basic FP techniques.
22:14:32 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:16:37 <ph88> map (\x -> dataRow x []) this is not sufficient i think i would get [[DataRow]] but i need [DataRow] ??
22:17:43 <monochrom> There was a wise beginner who realized: "If not for IRC, I would have figured it out myself".
22:17:48 <ph88> [xs, ys, zs] :: [[(FieldName, DataValue)]]
22:17:50 <monochrom> I recommend you go that route.
22:17:55 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 240 seconds)
22:18:27 <ph88> dataRow zs (dataRow ys (dataRow xs [])) this doesn't work because i don't know in front how many ys, ys and ys i have ..
22:18:49 <ph88> zs, ys and xs i mean
22:18:59 <monochrom> It's just an example.
22:19:21 bobiusbillius joins (~bobiusbil@2.221.197.231)
22:19:23 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
22:19:36 × erayo quits (c0ab6c77@119.108.171.192.pba.apn.pmt.pf) (Quit: Connection closed)
22:19:54 kibo joins (~kibo@51-171-46-249-dynamic.agg2.ens.lmk-pgs.eircom.net)
22:20:22 jespada joins (~jespada@90.254.243.187)
22:21:15 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
22:21:57 lieven joins (~mal@unaffiliated/lieven)
22:22:56 × ubert1 quits (~Thunderbi@p200300ecdf25d9e2e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
22:24:04 × bobiusbillius quits (~bobiusbil@2.221.197.231) (Ping timeout: 260 seconds)
22:24:24 stampirl joins (~stampirl@195-154-112-77.rev.poneytelecom.eu)
22:24:25 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
22:24:33 aidecoe joins (~aidecoe@unaffiliated/aidecoe)
22:24:35 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
22:24:51 jpds joins (~jpds@gateway/tor-sasl/jpds)
22:25:14 × apache801 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 260 seconds)
22:25:16 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
22:25:24 jdwidari2 joins (~jdwidari@173.38.117.76)
22:25:37 <ph88> maybe i didn't explain the problem well enough
22:26:09 <myShoggoth> heck-to-the-gnom: Sorry, didn't see your question earlier. We read through the code trying to understand how it works, elaborate on what's going on, some kibitzing by experts, etc.
22:26:34 <myShoggoth> It is dense, we'll do it again at the same time next week.
22:26:57 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 264 seconds)
22:27:02 <myShoggoth> Video at https://www.twitch.tv/videos/936984769
22:27:42 bahamas joins (~lucian@unaffiliated/bahamas)
22:28:22 systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net)
22:28:50 qih joins (~pi@210-54-120-166.adsl.xtra.co.nz)
22:28:59 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
22:29:35 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
22:30:10 <qih> Morning o/
22:30:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:30:22 × jdwidari2 quits (~jdwidari@173.38.117.76) (Quit: WeeChat 3.0.1)
22:30:47 kiweun joins (~kiweun@2607:fea8:2a62:9600:8160:4d43:4a85:f4b8)
22:32:09 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 245 seconds)
22:34:07 × Tops2 quits (~Tobias@dyndsl-095-033-090-077.ewe-ip-backbone.de) (Read error: Connection reset by peer)
22:34:39 × systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Ping timeout: 245 seconds)
22:34:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
22:35:43 Tario joins (~Tario@201.192.165.173)
22:36:23 romesrf joins (~romesrf@44.190.189.46.rev.vodafone.pt)
22:40:34 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
22:41:46 <ph88> monochrom, i have this now let datas = (foldr (\a b -> b . (dataRow a)) id $ catMaybes $ map issueToDataRow issues) [] which seems to be ok ... but i have difficulties to read back my own code .. maybe there is a function to capture this behaviour ?
22:41:56 <swarmcollective> Hello qih
22:42:16 <qih> swarmcollective: Ey.
22:42:20 theelous3 joins (~theelous3@unaffiliated/theelous3)
22:44:16 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
22:44:21 conal joins (~conal@64.71.133.70)
22:46:18 × fendor_ quits (~fendor@91.141.0.22.wireless.dyn.drei.com) (Remote host closed the connection)
22:46:29 <monochrom> I don't understand why "map issueToDataRow issues []" is not the empty list.
22:46:40 <monochrom> Or if it is the empty list, what's the point of the rest.
22:47:57 <Axman6> what are there too many arguments
22:48:11 <Axman6> Hmm, that was a deeper question than I intended
22:48:36 <swarmcollective> Axman6: :D Good one.
22:49:37 × pera quits (~pera@unaffiliated/pera) (Quit: leaving)
22:49:54 <monochrom> I would agree with "deep trouble".
22:50:06 <monochrom> OK I misread.
22:51:12 <monochrom> dataRow (concat (catMaybes $ map issueToDataRow issues)) []
22:51:15 ByteEater joins (57cd846a@gateway/web/cgi-irc/kiwiirc.com/ip.87.205.132.106)
22:52:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:53:18 stree joins (~stree@68.36.8.116)
22:55:26 <shachaf> :t mapMaybe
22:55:27 <lambdabot> (a -> Maybe b) -> [a] -> [b]
22:55:39 <ByteEater> If qsort is the popular toy quicksort implementation in Haskell, does \l -> head $ drop (length l `div` 2) $ qsort l give the median of a non-empty list l in linear time for sure? Or does it depend on whether the implementation performs some optimization? Does GHC?
22:57:57 <shachaf> It certainly isn't for sure, since it might pick bad pivots.
22:58:18 ech joins (~user@gateway/tor-sasl/ech)
22:58:24 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:58:28 <ByteEater> shachaf, I'm counting on laziness
22:58:34 bahamas joins (~lucian@unaffiliated/bahamas)
22:58:49 <shachaf> What's the implementation of qsort here?
22:58:56 __minoru__shirae joins (~shiraeesh@109.166.56.118)
22:59:17 <ph88> monochrom, your solution does not work .. it would be equivelant to do the following in the example https://hackage.haskell.org/package/hvega-0.11.0.0/docs/Graphics-Vega-VegaLite.html#v:dataFromRows [ ( "Animal", Str "Fish" ), ( "Age", Number 28 ), ( "Year", Str "2010" ), ( "Animal", Str "Dog" ), ( "Age", Number 12 ), ( "Year", Str "2014" ), ( "Animal", Str "Cat" ), ( "Age", Number 6 ), ( "Year", Str "2015" ) ]]
22:59:24 <ByteEater> if I had e.g. take 5 instead, it'd be linear, the rest would just remain unevaluated, no recursive calls into unneeded partitions would be performed
22:59:29 <ph88> that leaves me with only 1 row where values overwrite each other
22:59:31 <monochrom> base's Data.List.sort does not use quicksort at all. Some kind of mergesort-style but novel algorithm someone wrote and benchmarked to be good.
22:59:58 Kaiepi joins (~Kaiepi@47.54.252.148)
23:00:19 <dolio> Laziness isn't going to save you from a worst case quicksort input.
23:00:48 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
23:01:29 <shachaf> To pick good pivots for sure, you need to be able to compute the median.
23:01:36 <ByteEater> shachaf, it's qsort l = if null l then [] else let (lo,hi) = partition (< head l) (tail l) in qsort lo ++ [head l] ++ qsort hi
23:01:39 <Axman6> ByteEater: the easiest way to confirm the answer is to step through the evaluation by hand. It definitely sounds like what you want is not possible though
23:02:19 <Axman6> if that list is already sorted you 're gonna have a bad time
23:02:23 <ByteEater> Axman6, so no fusion or rewrite rules would kick in and give me linear complexity?
23:02:29 <Axman6> no
23:02:37 <Axman6> I don't think linear median is even possible?
23:02:50 <shachaf> It is possible, but tricky.
23:02:57 <ByteEater> it is, all positional statistics are
23:03:24 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:04:06 <Axman6> so with Data.List's sort function, the bottom k elements can be found in O(n log k) IIRC, using take k . sort
23:04:11 <monochrom> Linear median is one of those things you never have the solution off the top of you head, you just always crack open CLRS again. :)
23:04:18 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
23:04:19 <ByteEater> shachaf, Axman6, pleas hear me out, I don't want the whole sorted list back, just 1 element of it; e.g. this is a known feat of laziness that the following gives the 5 lowest items in linear time: take 5 . qsort
23:04:44 <dolio> Not for qsort it isn't.
23:04:48 <Axman6> no one actually uses quicksort in Haskell
23:05:08 <Axman6> because lazy merge sort is basically better in every way
23:05:28 conal joins (~conal@64.71.133.70)
23:06:22 <monochrom> Laziness alone doesn't save you. You need to combine laziness with an algorithm that befriends that laziness.
23:06:24 <ByteEater> dolio, how so? I can visualize the call tree in my head with only 5 paths being fully evaluated, down to single elements, while most of the tree is hidden in unevaluated thunks
23:06:27 <dolio> Well, I guess it's techincally linear time, because 5*n is linear.
23:06:46 <ByteEater> yup, that's what I had in mind
23:06:48 <dolio> But if it's 'half way through the list', it's going to be n^2 worst case.
23:07:12 <infinisil> Axman6: Even for vectors/arrays?
23:07:44 <ByteEater> indeed, but can some fusion optimization or rewrite rule make the compiler see that I don't need the previous values, I'm dropping them?
23:07:53 <Axman6> O(1) access to elements changes things a lot
23:08:15 <ByteEater> well, O(log(n)), technically
23:08:44 <infinisil> Arrays/vectors are O(1)
23:08:53 <infinisil> Axman6: But yeah makes sense
23:08:56 <monochrom> All rewrite rules I've seen improve only constant multipliers.
23:08:59 <infinisil> Looking at https://hackage.haskell.org/package/vector-algorithms
23:09:26 <Axman6> yeah, vector-algorithms implementes lots of useful sorts, but they're not really relevant to the discussion of sorting lists
23:09:33 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
23:09:59 <dolio> Well, you can use them to sort lists by creating a temporary vector and sorting that, but it's going to sort the whole thing.
23:10:28 <monochrom> This would be one of those times you would hear me say again "you don't have enough hands-on experience to know what you're talking about regarding laziness or fusion or whatnot".
23:10:35 <Axman6> ByteEater: so in your quicksort implementation, don't forget that if youi pass it a sorted list, then the partition has to traverse the entire list before it can produce the [] for the lo side, and that happens in every recursive call
23:10:58 <monochrom> But last time I did that, people stoned me to death for "you're shutting them down".
23:11:03 <ByteEater> disregard what I wrote about vector, I forgot it only uses Int indices, not arbitrarily large
23:11:27 <dolio> Only enough to run a supercomputer out of memory.
23:11:29 <monochrom> So this time I won't shut it down, I'll just watch you people circle**** it to no end.
23:11:43 <infinisil> I guess since conversion to/from a vector is O(n), if you need to sort the whole list this might not be a terrible idea
23:11:56 Axman6 resists bringing up the discrimination package
23:12:13 × romesrf quits (~romesrf@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.0.1)
23:12:43 <infinisil> :o
23:13:28 <Axman6> Oops, too late
23:13:31 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708) (Remote host closed the connection)
23:13:36 <infinisil> Hm wait, what's the deal with discrimination?
23:13:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
23:13:40 <Axman6> Who needs linear time sorting anyway
23:13:41 <infinisil> Where's the catch?
23:13:49 infinisil should read more
23:13:57 <dolio> Bad constant factors?
23:14:06 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
23:14:15 madnificent_ joins (~madnifice@static.210.74.63.178.clients.your-server.de)
23:14:31 <ByteEater> "you don't have enough hands-on experience to know what you're talking about regarding laziness or fusion or whatnot" – well, somewhat true probably, that's why I'm asking and hoping to encounter people who know better ;D
23:14:33 <infinisil> Sorting is fundamentally O(n log n), which can't be O(n) with constant factors
23:14:37 <Axman6> yeah it's not as fast as I would like, but it's still useful for things. the Grouping stuff gets you a long way to writing MapReduce efficiently
23:14:58 <dolio> Comparison sorting is O(n log n).
23:15:05 <Axman6> infinisil: _comparison based sorting_ is O(n log n)
23:15:16 <dolio> There are many well known O(n) sorts.
23:15:18 <infinisil> Oh right
23:15:19 gurmble joins (~Thunderbi@freenode/staff/grumble)
23:15:28 <Axman6> if you have some sort of radix, then you can ge O(n) - and it turns out sum types give you a radix
23:15:29 × madnificent quits (~madnifice@static.210.74.63.178.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
23:15:29 × grumble quits (~Thunderbi@freenode/staff/grumble) (Quit: K-Lined)
23:15:51 gurmble is now known as grumble
23:16:41 swarmcollective wonders why sorting hasn't been moved to hardware level by now...
23:16:41 <Axman6> if if I hand you something of type Either (Word8, Char) (Maybe Bool), you have a finite set of buckets to pass those values into, and you know where they're going to end up a priori
23:17:08 <infinisil> Ah that makes sense
23:17:32 <infinisil> So as soon as you have infinite different values it won't work
23:18:00 <infinisil> (In O(n) with this approach)
23:18:06 <Axman6> The really cool thing to me about the discrimination package is the grouping, which allows you to take [a] and get back [[a]], where each [a] is productive - as soon as an element of the input is places into a group, you can process it
23:18:49 <Axman6> infinisil: yeah, and lots of useful types make this hard, like esoterric types such as String
23:18:50 <infinisil> Oh neat
23:18:54 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
23:18:56 <dolio> Radix sort doesn't have a bucket for every possible value.
23:19:12 <dolio> It has a bucket for every possible value of a chunk.
23:19:34 <ByteEater> I guess my question has the same answer as whether drop (length l) $ l ++ [x] can be evaluated (to [x]) in sublinear time – can drop instantly skip (thanks to some optimization) prefixes of known lengths
23:19:48 <Axman6> infinisil: probably a good idea to not look at the implementation of how grouping works, it's crazy low level, laziness reimplemented stuff. edwardk is a demon
23:19:55 × ollierees quits (~ollierees@2a02:c7f:a8a8:fb00:7bfd:a909:fc9a:92c6) (Quit: WeeChat 2.9)
23:20:04 <infinisil> It's..
23:20:05 <infinisil> Too late!
23:20:45 <monochrom> Hardware people are too busy adding https://developer.arm.com/documentation/dui0801/g/A64-Floating-point-Instructions/FJCVTZS to add sorting. :)
23:20:47 <Axman6> Good luck understanding it! I did once
23:21:09 <dolio> I suppose it's possible that with infinite values, you could arrange for an array of size n to require log n passes to successfully partition, though.
23:21:31 <infinisil> I think that's what discrimination actually does with at least Integer
23:21:46 <infinisil> https://hackage.haskell.org/package/discrimination-0.4.1/docs/src/Data.Discrimination.Internal.html#integerCases
23:22:02 <infinisil> Splits it into (Int, [Word])
23:22:14 <infinisil> Then probably groups by that
23:22:16 <Axman6> IIRC the Integer/Natural instance is less than optimal
23:23:35 <monochrom> "drop n xs", if xs is longer than n, takes n time. This can count as sublinear or exponential, depending on your perspective.
23:23:42 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:8c46:2884:8ca1:7346) (Ping timeout: 258 seconds)
23:23:43 <dolio> Anyhow, vector-algorithms also has a sort of radix sort that can sort strings.
23:24:07 <Axman6> monochrom: or this crap: https://en.wikipedia.org/wiki/X86_instruction_listings#SSE4.2
23:24:32 <monochrom> hehe
23:24:36 × cgadski quits (~textual@a95-95-106-208.cpe.netcabo.pt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:24:47 <Axman6> https://software.intel.com/content/www/us/en/develop/articles/schema-validation-with-intel-streaming-simd-extensions-4-intel-sse4.html just batshit crazy
23:25:21 <monochrom> Well, if strncmp() gets hardwarized, I think sort() has hope tomorrow.
23:26:10 × ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer)
23:26:56 <dolio> Good thing they added all that fancy stuff so they could get smoked by a RISC chip. :þ
23:27:23 ystael joins (~ystael@209.6.50.55)
23:27:40 <Axman6> ByteEater: you could add an optimisation that does that, or you also just not write that code in the first place, the compiler can only make up for your crappy code so far :) Also, what if l is infinite?
23:28:30 <Axman6> dolio: yeah the next few years of Apple hardware (and likely other ARM hardware) are going to be very interesting.
23:28:49 <koz_> I wonder how long till we get a WTFBBQ instruction.
23:28:56 <Axman6> Hey, looks like Intel invented Spongebob speak! "atomic CoMPare and eXCHanGe"
23:29:14 <monochrom> What should the WTFBBQ instruction do?
23:29:20 <koz_> Axman6: Hats off for PQLMULQDQ
23:29:21 × pfurla quits (~pfurla@pool-108-6-43-243.nycmny.fios.verizon.net) (Quit: gone to sleep. ZZZzzz…)
23:29:21 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
23:29:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:29:29 <dolio> I guess to be fair, part of the advantage is other on-board dedicated chips (just not direct CPU instructions maybe).
23:29:38 <koz_> monochrom: Judging by how the others are named? Whatever you feel like.
23:29:43 <koz_> You can always back-justify it.
23:30:08 <Axman6> With This Function Byte Broadcast Quadword
23:30:17 Axman6 sends in an application to Intel
23:30:19 <ByteEater> just checked experimentally (though probably not with all possible optimization flags) and indeed even drop (length xs) xs seems to take linear time to evaluate to []
23:30:31 <Axman6> of course it does
23:30:37 <koz_> That is wholly unsurprising.
23:30:45 <ByteEater> when xs is a small, unevaluated thunk initially
23:30:58 Tario joins (~Tario@201.192.165.173)
23:31:08 <Axman6> if I pass in [1..], I expect that function to take forever to never return []
23:31:12 <monochrom> "with this function" sounds like a higher-order function.
23:31:28 <Axman6> You;'re attributing much more magic to the compiler than it deserves
23:31:30 <monochrom> "WTFBBQ the first higher-order-function instruction"
23:31:31 <ByteEater> yes, with infinite lists there's no length, or median
23:31:41 <Axman6> monochrom: yeah it sure is
23:32:11 <shachaf> Axman6: Let me know when you can sort a list of reals in linear time.
23:32:16 <shachaf> Not that I'm even sure what that means exactly.
23:32:30 <ByteEater> I hoped there'd be some rewrite rule allowing drop to be optimized and reach only for the part that needs evaluating
23:32:42 <dolio> shachaf: Just use the axiom of choice.
23:32:47 <monochrom> hahaha
23:33:10 <Axman6> shachaf: that sounds... really hard =)
23:33:29 <shachaf> Well, you can write a program to sort computable reals.
23:33:34 <ByteEater> probably it can be written for such simple cases, but from its absence I fathom it wasn't found easily generalizable to non-trivial cases and thus forgone
23:33:55 <shachaf> I just don't know what it means to say how long it takes. I guess you can measure the size of a sorting network.
23:34:00 <int-e> shachaf: would you use a sorting network?
23:34:10 <monochrom> You can take almost forever sorting even two computable reals, so nevermind a list of them.
23:34:34 <int-e> monochrom: but you /can/ compute the minimum and the maximum of both
23:34:34 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
23:34:35 <shachaf> Well, \x y -> (min x y, max x y) doesn't take almost forever.
23:34:40 <int-e> monochrom: which is sorting them
23:34:45 × fissureman quits (~quassel@c-73-201-159-163.hsd1.dc.comcast.net) (Ping timeout: 246 seconds)
23:34:48 <ByteEater> on the other hand, if the type included length (that'd require dependent types), the optimization in general would seem quite straightforward
23:34:54 <monochrom> Oh, then I have to bump up to 3 computable reals.
23:35:03 <int-e> monochrom: now you use a sorting network
23:35:18 <int-e> to reduce to the case of sorting two values
23:35:37 <dolio> How long does it take to produce a sorting network for n values?
23:35:39 <monochrom> Isn't it fascinating? Most "k-Foo" problems have a great complexity divide when jumping from k=2 to k=3.
23:35:53 ukari joins (~ukari@unaffiliated/ukari)
23:36:10 <int-e> dolio: https://en.wikipedia.org/wiki/Batcher_odd%E2%80%93even_mergesort is very easy to compute
23:36:48 × kiweun quits (~kiweun@2607:fea8:2a62:9600:8160:4d43:4a85:f4b8) (Remote host closed the connection)
23:36:56 <koz_> ByteEater: This is very hard to do in general.
23:37:03 <koz_> It _might_ work if your Int argument is a constant.
23:37:14 <koz_> But it can be computed more-or-less however you feel like.
23:38:22 <monochrom> Dependent typing will not turn GHC into Lean+Mathematica.
23:38:51 <Axman6> not with that attitude it won't
23:39:12 <dolio> O(n (log n)^2) space usage suggests it's not linear to figure it out dynamically, I guess?
23:39:35 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:39:40 <shachaf> Well, a sorting network is a comparison sort, so it'll have more than linearly many comparisons.
23:40:03 <shachaf> (Or min-maxes in this case.)
23:40:07 <dolio> Right.
23:40:15 <monochrom> That is not an attitude. That is an observation of the people who work on GHC, what they're interested in and what they aren't.
23:40:59 <dolio> Your real numbers probably aren't going to be performing great afterward, either.
23:41:31 <Axman6> Would we be better off with hypothetical numbers?
23:41:42 <ByteEater> OK, now I understand it better, thanks
23:41:45 <monochrom> And even if I'm right for only the next 10 years and then I'll be wrong, that's still long enough time for most practical purposes.
23:43:39 conal_ joins (~conal@64.71.133.70)
23:44:07 curiousgay joins (~gay@178.217.208.8)
23:45:22 <heck-to-the-gnom> What's the difference between `<>` & `++`? Practically, anyway.
23:45:33 <monochrom> <> is more general.
23:45:34 <koz_> heck-to-the-gnom: <> is more general.
23:45:37 <koz_> Ninja'd.
23:45:40 <koz_> :t (<>)
23:45:41 <lambdabot> Semigroup a => a -> a -> a
23:45:45 <monochrom> There are pros and cons to being more general.
23:45:45 <koz_> :t (++)
23:45:47 <lambdabot> [a] -> [a] -> [a]
23:45:56 <koz_> heck-to-the-gnom: ^ is your difference
23:46:02 <shachaf> dolio: To be fair, they probably weren't that great before either.
23:46:02 <monochrom> But <> came later. Much later.
23:46:05 f-a joins (~f-a@151.68.209.64)
23:46:10 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
23:46:16 <shachaf> But they're certainly worse off after.
23:46:54 <f-a> I am getting `Could not deduce (Foldable t0) arising from a use of ‘elem’` errors while building Cabal (git). I suspect this is due to a GHC mismatch. Mine is 8.8.3, which one should I use?
23:47:24 <heck-to-the-gnom> I mean, I can see the type differences, but doesn't that just add the case for scenarios where you're not dealing with array-based types, but ones that can be conjoined? Perhaps like a queue type of some sort?
23:47:40 <koz_> heck-to-the-gnom: That doesn't even gel here.
23:47:44 <heck-to-the-gnom> So, support for non-list/array derived conjoables?
23:47:54 <heck-to-the-gnom> conjoinables**
23:47:54 <koz_> Semigroup is a mathematical concept.
23:48:05 <koz_> List concatenation is one example of a semigroup operation.
23:48:10 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
23:48:13 <koz_> There are _many, many, many_ others.
23:48:18 <koz_> (<>) works (theoretically) for all of them.
23:48:22 <koz_> (++) is specific to lists.
23:48:26 <koz_> WHich are not arrays.
23:48:40 koz_ sighs at argumentum ad serpentum rearing its head.
23:48:43 <ByteEater> on the dependent typing and "magical" optimization capabilities in a shorter time frame though, one more thing I imagine possible is for APIs based on gdp to become more popular and then if there's a proof (produced mostly by the functions down the data dependency graph, not tediously by the programmer) of stronger properties, paths with more
23:48:44 <ByteEater> optimizations become available for selection by functions like drop but gdp-aware, at compile time or runtime
23:49:16 <heck-to-the-gnom> depends on which language, I suppose, in python arrays/lists are synonyms, but I'll take your word for it in regards to haskell
23:49:32 <monochrom> Python is wrong. Python is poison in this regard.
23:49:49 <monochrom> But you're welcome to use <> pervasively if you like it more.
23:49:58 kiweun joins (~kiweun@2607:fea8:2a62:9600:a84d:3e6e:7692:7abe)
23:50:04 <monochrom> <> did not exist 20 years ago. ++ did.
23:50:13 <heck-to-the-gnom> It's quick & dirty, all that it's meant to be, simple scripts, nothing else, unless, you're werd AF
23:50:14 <koz_> heck-to-the-gnom: The problem is that array and list are not synonymous in literally any other context.
23:50:20 <heck-to-the-gnom> weird*
23:50:22 <koz_> And it basically confusing about a thousand issues.
23:50:28 <koz_> And leads to writing of really awful code.
23:50:48 <heck-to-the-gnom> OK, to me I've never seen another language where the distinction is made, I'll keep that in mind, however
23:51:06 <koz_> It's literally 'every other language'.
23:51:10 <koz_> As well as algorithm analysis.
23:51:20 <koz_> Python is alone is this bizarre conflation.
23:51:26 <koz_> s/is/in/
23:51:28 <monochrom> I don't doubt Python's value in other regards. But it is wrong, dishonest, and poisonous on the topic of lists and arrays.
23:51:48 <koz_> monochrom: It's wrong, dishonest and poisonous on a lot of other topics too, don't worry.
23:51:49 <ByteEater> many languages have it the Python way, e.g. JavaScript
23:51:56 <koz_> ByteEater: No they don't.
23:51:59 <heck-to-the-gnom> It's always been an array as a basic type, and I've never seen a list as a type, but the words have been synonymous to me until now
23:52:07 <koz_> In JavaScript, arrays have array-like behaviour and perf.
23:52:08 <heck-to-the-gnom> (in my experience)
23:52:19 <monochrom> It is the #1 cause of why many CS graduates can't tell the difference, cost-wise.
23:52:28 <koz_> heck-to-the-gnom: If you take nothing away from here, take this: lists are never, ever, ever, arrays.
23:52:34 <koz_> And anyone who tells you otherwise is a liar.
23:52:48 <heck-to-the-gnom> unless, in the context of python, got it
23:52:52 <koz_> s/nothing/nothing else/
23:52:57 <ByteEater> well, the API is similar, you can push and pop, shift and unshift, splice, and even delete
23:52:57 <koz_> Python can be wrong in its own bubble.
23:53:00 <heck-to-the-gnom> nice
23:53:06 <koz_> It coasts on its own popularity and hero-worship.
23:53:14 <ByteEater> there are optimizations, but if an array becomes sparse, most bets are off
23:53:18 <qih> koz_: Not a Python fan then? 8-) o/
23:53:26 <koz_> qih: I don't violently loathe it.
23:53:31 <koz_> Merely strongly disdain.
23:53:38 <qih> Hahaha
23:53:41 <heck-to-the-gnom> but, do tell me, what's the difference between an array & a list, you've gotten me curious
23:53:55 × kiweun quits (~kiweun@2607:fea8:2a62:9600:a84d:3e6e:7692:7abe) (Ping timeout: 240 seconds)
23:54:03 <qih> Good point re List v Array
23:54:06 <ByteEater> there's no fundamental reason the same couldn't be done in a Python implementation, it's just that there's just one that counts more than all the others
23:54:07 <koz_> heck-to-the-gnom: Arrays have O(1) random access, lists have O(n).
23:54:39 <monochrom> "array" = consecutive boxes. "list" = linked list, the pointer-to-next-node one.
23:54:40 <koz_> (I should have said Theta(1) and Theta(n) there)
23:55:13 <dolio> If you're going to get all passionate, shouldn't you say that arrays aren't really constant time, either?
23:55:27 <monochrom> They basically have opposite cost trade-offs.
23:55:29 <koz_> dolio: True. But the fact is, they don't have identical random access.
23:55:44 <koz_> But yeah, you are right, constant-time indexing is basically a lie in practice.
23:55:51 <ByteEater> heck-to-the-gnom, sticking with <> gives you also the ability to switch, if you wish some day, from String to something more tweaked like Data.Text without changing the operator in existing code
23:55:59 <heck-to-the-gnom> So, lists are more similar to queues, seeing as to get to the next one, you need to visit the previous?
23:56:08 <heck-to-the-gnom> Back to the original topic: Is there any noticeable performance gain or deficit to using `<>` rather than `++`?
23:56:09 <monochrom> Yes.
23:56:15 <koz_> There can be.
23:56:15 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708) (Remote host closed the connection)
23:56:16 <heck-to-the-gnom> Good point ByteEater.
23:56:56 <koz_> heck-to-the-gnom: Have you ever done any course(s) on data structures and algorithms?
23:56:57 <heck-to-the-gnom> In a very trivial use case, mind you
23:56:59 <koz_> If not, I advise it.
23:57:02 <koz_> It's quite enlightening.
23:57:12 <heck-to-the-gnom> I'll look into it
23:57:13 × Guest42328 quits (~textual@mskresolve-a.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com)
23:57:46 <koz_> FWIW I always use <>.
23:57:58 heatsink joins (~heatsink@2600:1700:bef1:5e10:b42a:6451:2211:3708)
23:58:08 <koz_> But that's mostly because I don't use lists all that often in situations where concatenation comes up a lot.
23:58:44 <heck-to-the-gnom> Man, if python uses a list under the hood instead of an array they just call a list, then I'm going to be mad at them.
23:58:54 <koz_> heck-to-the-gnom: They use a dynamic array.
23:59:07 <heck-to-the-gnom> ok, good
23:59:13 <koz_> Which is basically an array that self-resize.
23:59:19 <monochrom> On this April 1st, someone will impersonate Stroustrup and say "in retrospect, I should have named my language C<>".
23:59:19 <koz_> (and does periodically do so)
23:59:25 <koz_> monochrom: LOL
23:59:31 nbloomf joins (~nbloomf@2600:1700:ad14:3020:ad70:b790:2132:9c51)
23:59:35 <koz_> C-append?
23:59:35 <heck-to-the-gnom> HAH!
23:59:42 <koz_> C-semigroup-operation?
23:59:50 <monochrom> Observe the double pun.

All times are in UTC on 2021-03-04.