Home freenode/#haskell: Logs Calendar

Logs on 2021-02-12 (freenode/#haskell)

00:00:51 irchaxwell joins (~IRCHaxwel@2a00:23a8:4382:a900:4d37:2faa:bfe1:2753)
00:01:25 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
00:02:16 bennofs_ joins (~quassel@dslb-094-222-091-116.094.222.pools.vodafone-ip.de)
00:03:36 × totte quits (~totte@chakra/totte) (Ping timeout: 256 seconds)
00:04:37 × denisse_ quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
00:05:00 denisse_ joins (~spaceCat@gateway/tor-sasl/alephzer0)
00:06:16 × bennofs__ quits (~quassel@dslb-188-103-038-242.188.103.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
00:08:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
00:15:02 × tremon quits (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
00:15:42 totte joins (~totte@chakra/totte)
00:16:11 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-144a-d72e-d888-983c.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
00:16:21 × jakob_ quits (~textual@p578f27b0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
00:17:00 × m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds)
00:18:30 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
00:18:59 × matryoshka` quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
00:24:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
00:25:10 × alx741 quits (~alx741@186.178.110.40) (Quit: alx741)
00:28:25 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 240 seconds)
00:30:20 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
00:30:38 tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com)
00:33:28 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
00:34:14 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
00:34:26 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
00:34:47 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
00:35:10 jakob_ joins (~textual@p200300f49f0a5500c1eecd74cb6c1047.dip0.t-ipconnect.de)
00:35:24 × isovector quits (~isovector@S010650395561ee49.gv.shawcable.net) (Ping timeout: 272 seconds)
00:37:27 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
00:38:50 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
00:39:18 × landonf quits (landonf@mac68k.info) (Excess Flood)
00:39:58 landonf joins (landonf@mac68k.info)
00:40:44 × jakob_ quits (~textual@p200300f49f0a5500c1eecd74cb6c1047.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
00:45:55 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
00:54:08 isovector joins (~isovector@172.103.216.166)
00:56:09 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
00:58:21 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
00:58:50 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
00:59:21 bennofs__ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
01:00:49 × Stuk quits (~Stuk@139.28.218.148) (Remote host closed the connection)
01:02:45 × bennofs_ quits (~quassel@dslb-094-222-091-116.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
01:03:03 × cgfbee quits (~bot@oc1.itim-cj.ro) (Ping timeout: 256 seconds)
01:06:27 cgfbee joins (~bot@oc1.itim-cj.ro)
01:06:32 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-2cec-d2c6-bc96-c9bd.res6.spectrum.com)
01:07:53 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
01:10:09 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 264 seconds)
01:11:01 rajivr joins (uid269651@gateway/web/irccloud.com/x-gpwnjnvfhvelcuhe)
01:15:14 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
01:22:38 CrazyPython joins (~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
01:26:12 charukiewicz[m] parts (charukiewi@gateway/shell/matrix.org/x-oommeswbtsisshqm) ("User left")
01:26:55 alx741 joins (~alx741@186.178.110.40)
01:27:29 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:28:53 Ishutin_ joins (~Ishutin@178-164-208-197.pool.digikabel.hu)
01:30:06 × Ishutin quits (~Ishutin@92-249-182-126.pool.digikabel.hu) (Read error: Connection reset by peer)
01:31:35 minoru_shiraeesh joins (~shiraeesh@77.94.25.210)
01:38:25 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
01:40:14 × borne quits (~fritjof@200116b864f7290069fc6bd724c60777.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
01:41:11 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
01:41:34 epicfail^ joins (~epicfail^@185.163.110.108)
01:42:46 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
01:45:54 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
01:46:24 jamm_ joins (~jamm@unaffiliated/jamm)
01:46:35 × stiell quits (~stian@fsf/member/stiell) (Quit: WeeChat 2.0.1)
01:46:48 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
01:47:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
01:47:25 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
01:47:43 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
01:48:13 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
01:49:48 × arahael quits (~arahael@121-44-10-207.tpgi.com.au) (Quit: WeeChat 2.7.1)
01:50:59 hexfive joins (~hexfive@50.35.83.177)
01:51:47 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:52:21 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
01:53:22 arahael joins (~arahael@121-44-10-207.tpgi.com.au)
01:53:45 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
02:00:21 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:00:56 × earthy quits (~arthurvl@deban2.xs4all.space) (Ping timeout: 240 seconds)
02:02:38 toorevitimirp joins (~tooreviti@117.182.180.8)
02:02:47 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
02:03:25 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Ping timeout: 272 seconds)
02:04:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:05:29 earthy joins (~arthurvl@deban2.xs4all.space)
02:06:40 shridhar123 joins (~shridhar9@183.83.38.71)
02:08:21 × xcmw quits (~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:12:30 × lemmih quits (~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b) (Remote host closed the connection)
02:12:33 mizu_no_oto joins (~textual@cpe-66-66-222-11.rochester.res.rr.com)
02:12:48 lemmih joins (~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b)
02:14:30 × lemmih quits (~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b) (Remote host closed the connection)
02:14:35 × viluon quits (uid453725@gateway/web/irccloud.com/x-xypldvhtsmepkmee) (Quit: Connection closed for inactivity)
02:14:48 lemmih joins (~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b)
02:15:10 pricly_yellow joins (~pricly_ye@static.90.189.158.212.sinor.ru)
02:16:08 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
02:16:23 × minoru_shiraeesh quits (~shiraeesh@77.94.25.210) (Ping timeout: 265 seconds)
02:16:49 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:17:05 Tario joins (~Tario@201.192.165.173)
02:17:05 × Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds)
02:17:25 × shridhar123 quits (~shridhar9@183.83.38.71) (Quit: Leaving)
02:19:14 jamm_ joins (~jamm@unaffiliated/jamm)
02:20:24 teej joins (uid154177@gateway/web/irccloud.com/x-vcedsdnwagtwbuul)
02:21:13 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
02:21:38 × xff0x quits (~xff0x@2001:1a81:5241:ba00:8e3f:649f:1f66:7cc2) (Ping timeout: 264 seconds)
02:23:02 × kw quits (d4662d5d@212.102.45.93) (Ping timeout: 240 seconds)
02:23:23 xff0x joins (~xff0x@2001:1a81:527e:8e00:8467:ecc0:1d06:b5e)
02:24:51 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
02:27:12 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
02:27:14 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:29:50 conal joins (~conal@64.71.133.70)
02:30:26 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
02:31:10 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
02:31:16 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
02:31:36 dmwit joins (~dmwit@pool-108-18-106-204.washdc.fios.verizon.net)
02:31:50 Lord_of_Life_ is now known as Lord_of_Life
02:32:09 jedws joins (~jedws@101.184.202.248)
02:33:26 xcmw joins (~textual@dyn-72-33-2-47.uwnet.wisc.edu)
02:34:13 <dmwit> So, the docs for formatTime say "%0ES: seconds of minute as two digits, with decimal point and <width> (default 12) decimal places".
02:34:22 <dmwit> % formatTime defaultTimeLocale "%03ES" (1.1 :: NominalDiffTime)
02:34:22 <yahb> dmwit: "01.100000000000"
02:34:47 <dmwit> I was expecting this to produce "01.100". Is this a bug in me or the library?
02:36:50 × mizu_no_oto quits (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
02:37:47 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
02:37:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
02:46:08 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:46:54 × carlomagno quits (~cararell@148.87.23.4) (Ping timeout: 246 seconds)
02:47:24 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
02:47:44 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
02:47:52 Tario joins (~Tario@201.192.165.173)
02:48:58 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
02:55:28 <glguy> dmwit, "An optional E character indicates an alternate formatting. Currently this only affects %Z and %z."
02:55:36 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-xvjuaqpzyyceggep) ()
02:55:41 <glguy> What are you reading about using it with %S?
02:55:50 <glguy> I'm guessing I'm looking at the wrong file
02:58:48 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
02:58:56 <glguy> OH, I see it below
02:59:23 polyinsecure joins (~personal@36.79.248.225)
02:59:45 polyinsecure parts (~personal@36.79.248.225) ()
03:00:36 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:01:39 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
03:02:11 carlomagno joins (~cararell@148.87.23.12)
03:02:42 DataComputist joins (~lumeng@50.43.26.251)
03:03:41 × alx741 quits (~alx741@186.178.110.40) (Quit: alx741)
03:04:31 <glguy> dmwit, I'd go with bug :)
03:06:36 × CrazyPython quits (~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) (Ping timeout: 240 seconds)
03:08:13 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
03:08:35 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
03:09:46 jamm_ joins (~jamm@unaffiliated/jamm)
03:09:58 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
03:10:02 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 265 seconds)
03:10:17 jamm_ joins (~jamm@unaffiliated/jamm)
03:10:41 juri_ joins (~juri@178.63.35.222)
03:14:11 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
03:14:32 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
03:15:00 mizu_no_oto joins (~textual@cpe-66-66-222-11.rochester.res.rr.com)
03:15:19 ukari joins (~ukari@unaffiliated/ukari)
03:16:14 jamm_ joins (~jamm@unaffiliated/jamm)
03:16:40 Guest_45 joins (493ffd08@c-73-63-253-8.hsd1.ca.comcast.net)
03:17:13 × Guest_45 quits (493ffd08@c-73-63-253-8.hsd1.ca.comcast.net) (Client Quit)
03:21:39 frozenErebus joins (~frozenEre@94.128.81.133)
03:25:38 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
03:26:05 × darjeeling_ quits (~darjeelin@39.185.119.195) (Ping timeout: 240 seconds)
03:29:24 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
03:31:00 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:31:32 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:31:32 finn_elija is now known as Guest60949
03:31:32 FinnElija is now known as finn_elija
03:35:06 × Guest60949 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
03:41:01 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
03:42:00 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
03:42:10 <dmwit> Oh, yeah, I should have specified that this was in the NominalDiffTime doc section.
03:42:20 polyinsecure joins (~personal@36.79.248.225)
03:42:24 <dmwit> Okay, thanks, I'll double-check it still happens in the git version and then report. ^_^
03:42:47 polyinsecure parts (~personal@36.79.248.225) ()
03:42:58 polyinsecure joins (~personal@36.79.248.225)
03:43:00 × raym quits (~ray@115.187.32.9) (Quit: leaving)
03:43:16 raym joins (~ray@45.64.220.98)
03:44:07 polyinsecure parts (~personal@36.79.248.225) ()
03:47:25 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
03:47:43 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
03:50:52 jamm_ joins (~jamm@unaffiliated/jamm)
03:51:09 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
03:53:59 jamm_ joins (~jamm@unaffiliated/jamm)
03:55:20 × mizu_no_oto quits (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
03:55:36 × jamm_ quits (~jamm@unaffiliated/jamm) (Read error: No route to host)
03:55:47 jedws joins (~jedws@101.184.202.248)
03:55:57 jamm_ joins (~jamm@unaffiliated/jamm)
03:56:56 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:01:07 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
04:01:34 _vaibhavingale_ joins (~Adium@203.188.228.9)
04:02:07 × theDon quits (~td@muedsl-82-207-238-072.citykom.de) (Ping timeout: 256 seconds)
04:04:02 theDon joins (~td@94.134.91.31)
04:05:21 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds)
04:06:06 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Ping timeout: 265 seconds)
04:08:27 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
04:09:42 polyrain joins (~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead)
04:15:49 knupfer joins (~Thunderbi@200116b82cdbcf00c04908ec8f79be9b.dip.versatel-1u1.de)
04:16:48 hololeap joins (~hololeap@unaffiliated/hololeap)
04:17:34 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
04:19:14 jamm_ joins (~jamm@unaffiliated/jamm)
04:19:17 × ubert quits (~Thunderbi@p200300ecdf25d901e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:19:20 ubert1 joins (~Thunderbi@p200300ecdf25d9b3e6b318fffe838f33.dip0.t-ipconnect.de)
04:21:40 ubert1 is now known as ubert
04:22:01 × Codaraxis__ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
04:24:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
04:24:30 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
04:25:02 conal joins (~conal@64.71.133.70)
04:27:06 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
04:29:22 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
04:31:18 Codaraxis joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
04:32:15 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
04:32:36 × polyrain quits (~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:32:54 plutoniix joins (~q@184.82.202.124)
04:34:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:34:39 Codaraxis_ joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
04:35:23 × xcmw quits (~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:36:56 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:37:13 Tario joins (~Tario@201.192.165.173)
04:37:45 × Codaraxis quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds)
04:37:51 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
04:39:33 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:40:33 polyrain joins (~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead)
04:41:53 × lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:dfce:d41e:8b36:8b28) (Ping timeout: 246 seconds)
04:47:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:47:48 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
04:50:11 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
04:50:31 × electricityZZZZ quits (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
04:53:55 × carlomagno quits (~cararell@148.87.23.12) (Remote host closed the connection)
04:54:24 lambda-11235 joins (~lambda-11@2600:1700:7c70:4600::3f)
04:55:44 carlomagno joins (~cararell@148.87.23.12)
04:56:05 × Wuzzy quits (~Wuzzy@p5790e290.dip0.t-ipconnect.de) (Remote host closed the connection)
04:57:44 <arahael> This has probably been pointed out endlessly here, but is there a response for https://frasertweedale.github.io/blog-fp/posts/2021-02-12-haskell-dependency-confusion.html ?
04:58:38 <isovector> art
04:58:41 isovector parts (~isovector@172.103.216.166) ("WeeChat 2.9")
05:00:57 <Axman6> I spoke to frase in another channel about it, I don't think there's one solution to it, there's quite a lot that would need to be done to be able to have more trust in haskell packages
05:02:31 <Axman6> stack tries to address some of the issues, by allowing developers to sign their releases (not sure if cabal/hackage support that these days?), and pinning versions by default, so you at least get to choose when a package gets updated, and therefore know when to be looking to suspicious changes. cabal lock files can do the same thing, I think?
05:03:19 <Axman6> the idea of specifying hackage servers is a good one, and could help make the haskell ecosystem a bit more distributed (but then things like ensuring that things are run securely is also distributed, which is less than ideal)
05:04:25 <Axman6> all eggs in one fortified, highly targeted basket or spread across multiple possibly less secure baskets? not sure which is a better trade off
05:06:54 nbloomf joins (~nbloomf@2600:1700:ad14:3020:59d6:7765:8e88:73ee)
05:08:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
05:14:33 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
05:16:44 xcmw joins (~textual@dyn-72-33-2-152.uwnet.wisc.edu)
05:17:01 johnjay joins (~pi@38.120.10.99)
05:17:36 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
05:18:58 <charukiewicz> nix can help mitigate this problem, since it forces you to specify sha256 hashes for most of the dependencies you pin. if you pin a package set, the underlying packages won't change out from under you. and if your internal dependencies are defined in terms of overlays, I believe they'll take precendence over the nixpkgs set.
05:19:08 × hiptobecubic quits (~john@unaffiliated/hiptobecubic) (Ping timeout: 272 seconds)
05:22:56 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
05:26:46 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
05:26:55 <charukiewicz> in fact, Nix is mentioned in the article (without much detail). So I think the specific nix features that prevent this issue from occuring is pinning package sets + internal dependencies defined in terms of overlays.
05:29:32 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Remote host closed the connection)
05:30:53 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-vpguxmddsrmujfdr)
05:32:43 ixaxaar joins (~ixaxaar@49.207.210.215)
05:33:00 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
05:35:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
05:36:13 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
05:36:26 × howdoi quits (uid224@gateway/web/irccloud.com/x-mpkeicsrzhkjjmag) (Quit: Connection closed for inactivity)
05:39:29 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:47:18 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
05:47:31 <sclv> Theres discussion on the reddit
05:52:26 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
05:52:43 _vaibhavingale_ joins (~Adium@203.188.228.9)
05:59:39 zaquest joins (~notzaques@5.128.210.178)
06:02:30 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
06:03:02 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:03:10 forgottenone joins (~forgotten@176.42.17.164)
06:06:02 × hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer)
06:10:01 <johnw> Axman6: one basket to rule them all
06:12:58 monochrom joins (trebla@216.138.220.146)
06:13:25 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
06:13:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
06:25:43 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:26:37 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:27:43 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
06:29:36 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:30:48 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
06:31:15 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
06:33:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:35:47 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
06:36:08 × ephemera__ quits (~E@122.34.1.187) (Quit: ephemera__)
06:37:23 <siraben> charukiewicz: one issue that came up on #nixos-dev was how GitHub lets the commit hash be a hash of any branch of any fork of that repo
06:37:42 <siraben> So a hash change could look like a version bump but in fact point to an outside repo
06:38:22 <siraben> Though SuperSandro2000 ran a script to check all GitHub hashes recently and only found a dozen or so instances of commits not belonging to any branch of that repo, probably caused by force-pushes
06:38:31 ephemera_ joins (~E@122.34.1.187)
06:38:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
06:39:31 <siraben> The problem of nominal dependencies was stated well in the Nix thesis, a package only needs to be named "hello" with the right version to satisfy a dependency spec "hello: ^1.0.0"
06:41:12 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:42:06 frozenErebus joins (~frozenEre@94.128.81.133)
06:45:11 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
06:45:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
06:46:12 bahamas joins (~lucian@188.27.48.99)
06:46:12 × bahamas quits (~lucian@188.27.48.99) (Changing host)
06:46:12 bahamas joins (~lucian@unaffiliated/bahamas)
06:46:18 <charukiewicz> siraben: I'm not sure I understand the security issue there. If you're specifying a commit hash on the GH repo NixOS/nixpkgs in your nixpkgs.json or however you pin your nixpkgs set, shouldn't you know that you're specfying a commit that is on one of the main branches (whether it be a release branch or unstable)?
06:47:01 <siraben> charukiewicz: that's the hash for NixOS/nixpkgs, what about the expressions within Nixpkgs?
06:47:01 <charukiewicz> I have seen issues where commits cease to exist, but yeah that seems to happen when you depend on the lastest commit in the unstable branch
06:47:03 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:47:28 <siraben> However because Nix makes the entire dep graph explicit a full automated audit is possible to check nothing fishing is going on
06:47:35 <siraben> s/fishing/fishy
06:48:45 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
06:49:17 <whataday> what's the point that use a data type to wrap functions?
06:50:12 <c_wraith> To.. not have a rule that you can't put functions in data types?
06:51:01 <c_wraith> Though it turns out nice when you want to pass behavior around without defunctionalizing it.
06:51:38 <whataday> and can it be implemented in OOP with class?
06:52:13 <whataday> runReader :: Reader r a -> (r -> a)
06:53:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
06:53:44 <Axman6> doing it in OOP probably uses some nonsense "pattern", I can't remember which one it would be
06:53:49 <Axman6> use*
06:54:21 <c_wraith> in some sense, sure. OOP uses objects of a common supertype in place of passing functions around.
06:54:35 <charukiewicz> siraben: At least in terms of Haskell, I'm thinking of it as a given commit on NixOS/nixpkgs has a given snapshot of the haskellPackages set, each of which have point to a specific hackage package defined by a version/sha256. Is there something else I'm not considering?
06:55:24 <siraben> c_wraith: classes with function members are common in OOP IIRC
06:55:48 <siraben> (at least in Dart)
06:56:06 <siraben> charukiewicz: ok yeah, in that case, assuming you trust the Nixpkgs commit, now you have to trust the maintainer of the haskellPackages set
06:56:29 <siraben> I'm not familiar with how hackage packages are specified, they can also point to GitHub repos right?
06:56:53 <siraben> Axman6: probably the "functor (function object)" pattern in C++
06:57:48 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
06:58:10 <c_wraith> But if you limit yourself to thinking of functions the way OOP textbooks talk about objects, you're going to miss a lot of useful patterns.
06:58:39 <siraben> definitely.
06:59:04 <lambdaclan> Hello everyone. I am Haskell beginner but an experienced developer in many other languages and have been looking for ways to improve my skills and stay motivated. Even though I am reading a few books and watching some video courses I am eager to get my hands dirty.
06:59:22 <lambdaclan> Anyone know any projects that welcome newbies like myself?
06:59:28 <whataday> wrap a function into a type, and use a function to extract that type, useful?
06:59:48 <Axman6> yes
07:00:13 <whataday> we can pass data type instead of functions?
07:00:34 <Axman6> the particular example you chose isn't particularly useful, because the useful things we do with Reader can also all be done with just functions s -> a
07:00:46 <Axman6> State is a more useful example:
07:00:48 <Axman6> :t runState
07:00:49 <lambdabot> State s a -> s -> (a, s)
07:01:37 <Axman6> State s a contains a function s -> (a,s), anf this forms a useful monad for modifying some state sequentially
07:02:26 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 264 seconds)
07:02:51 <whataday> useful to change State's "context"?
07:02:57 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
07:03:09 <charukiewicz> siraben: I just went to check to confirm, the main haskellPackages set is defined as a yaml file that is used to generate "hackage" expression that points only to hackage. From what I can tell, there are no haskellPackages that point to GitHub repos.
07:03:38 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:03:46 <whataday> without data type, could we still express monad with function form?
07:04:10 <whataday> or monad depends on data type?
07:04:16 × puke quits (~vroom@217.138.252.222) (Quit: puke)
07:04:23 <siraben> charukiewicz: Ok, hm. Then I'm not sure where dependency confusion would arise
07:04:41 michalz joins (~user@185.246.204.47)
07:04:57 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
07:05:16 <charukiewicz> Yeah, maybe I'm missing something, but as far as I can tell, if you're pointing at a given commit of NixOS/nixpkgs, you get a singular snapshot of hackage.
07:06:46 <Axman6> whataday: your questions aren't making much sense. In haskell, "Data" and "functions" are both values, neither is particularly special. data can contain functions, functions produce data, functions can accept data, functions can accept functions. they're all just values
07:07:02 <Axman6> :t map
07:07:03 <lambdabot> (a -> b) -> [a] -> [b]
07:07:22 <Axman6> a function which accepts a function, and a list, and applies that function to each element of the list
07:07:25 <Axman6> :t State
07:07:27 <lambdabot> error:
07:07:27 <lambdabot> • Data constructor not in scope: State
07:07:27 <lambdabot> • Perhaps you meant one of these:
07:08:01 <whataday> yeah, a data constructor is also a function
07:08:28 <Axman6> hmm, not sure what the constructor would be called in lambdabot, but State :: (s -> (a,s)) -> State s a; The State constructor takes a function and produces "data"
07:08:33 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
07:08:56 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
07:09:37 <c_wraith> lambdabot has the types from transformers. there is not State constructor because State is a type alias for StateT Identity
07:09:43 <c_wraith> :t state
07:09:45 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
07:09:47 <Axman6> right
07:09:48 <whataday> what's the point turn a value to another one?
07:10:08 <Axman6> I don't understand the question
07:10:32 <whataday> function s -> (a,s) is a value
07:10:43 <whataday> State s a is another value
07:11:04 m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
07:11:38 <whataday> turn a function value to a data type value, what's the point? it doesn't have a effect
07:11:46 <c_wraith> It makes it a different type
07:11:47 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:12:36 <c_wraith> that's important because it means you can attach new sets of instances to it
07:12:52 × polyrain quits (~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:13:01 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
07:13:20 <whataday> but functions do that too?
07:14:23 <c_wraith> You can only have one instance of Functor for functions.
07:14:35 <c_wraith> What do you do if you want different behaviors in different contexts?
07:15:14 × ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
07:16:09 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:16:11 <whataday> function overload?
07:17:50 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
07:18:00 <c_wraith> the only thing that functions even somewhat like that in Haskell is type classes.
07:18:43 <c_wraith> But they can't help you. Functor is intentionally blind to that sort of thing
07:19:30 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:20:09 thc202 joins (~thc202@unaffiliated/thc202)
07:20:16 <c_wraith> When you match up the kinds and types in Functor to (->), you get fmap :: (a -> b) -> (r -> a) -> (r -> b)
07:20:25 <siraben> If I linearize everything in my Haskell program, and assuming I'm working with mutable data structures, will there be no GC?
07:20:37 <siraben> Or rather, how can linear programs be written so that allocation and deallocation are explicit?
07:20:50 <c_wraith> that's it. Only one type is possible. And that type has only one possible implementation
07:21:16 <Uniaika> hello there
07:23:01 <dminuoso> So I have `ZonedTime` in a few data types, but I need Eq for these. I have the option of writing out an orphan instance on Eq (this is an exe component, so its not too worrysome), but is there something else that would allow me to generate `deriving` instances without an orphan instances?
07:23:05 poscat1 joins (~poscat@123.116.67.131)
07:23:10 <dminuoso> Writing out the eq instance would be tedious here
07:23:15 × poscat quits (~poscat@123.116.95.228) (Ping timeout: 272 seconds)
07:23:40 <c_wraith> you can create orphans with -XStandaloneDeriving....
07:24:13 <Uniaika> A group of volunteers and I (in the context of the HF Documentation Task Force) are looking at fixing pages of the Wiki. We've produced a list of pages with a desired course of action (deletion, translation, etc), but I'm looking for someone more senior than me to review them
07:24:19 <dminuoso> Oh, no the problem is not about the Eq instance on ZonedTime, but all the data types containing it.
07:24:31 <dminuoso> Ideally I'd like to inject a dictionary for `Eq ZonedTime` into a deriving mechanism
07:24:33 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
07:25:00 <c_wraith> you might be able to do some horrible thing with deriving via
07:25:08 <c_wraith> But that's so ugly
07:26:18 <dminuoso> Mmm, you mean something along the lines of having some `data Foo .. deriving Eq via InjectEq Foo '['(ZonedTime, Dict (Eq ZonedTime))] ?
07:26:51 <c_wraith> yes, something awful like that
07:27:04 <c_wraith> StandaloneDeriving would be a lot nicer
07:28:08 <dminuoso> Ah I guess the code snippet was really poor pseudo code, but anyway
07:28:19 <dminuoso> c_wraith: Yeah I suppose providing an orphan instance is the best option here.
07:29:49 jamm_ joins (~jamm@unaffiliated/jamm)
07:30:29 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:34:50 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
07:35:33 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:38:09 × Codaraxis_ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
07:38:31 Codaraxis_ joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
07:38:36 Sgeo_ joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
07:40:17 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
07:41:13 × quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
07:41:57 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 264 seconds)
07:43:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:43:53 seveg joins (~gabriel@188-167-252-202.dynamic.chello.sk)
07:45:34 quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
07:46:48 vilpan joins (~0@212.117.1.172)
07:47:57 × bennofs__ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
07:48:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
07:49:02 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
07:50:25 × quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Client Quit)
07:50:33 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
07:51:22 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
07:52:47 × xff0x quits (~xff0x@2001:1a81:527e:8e00:8467:ecc0:1d06:b5e) (Ping timeout: 260 seconds)
07:53:36 xff0x joins (~xff0x@2001:1a81:527e:8e00:a69b:cc8b:4a92:3035)
07:54:42 quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
07:55:50 × knupfer quits (~Thunderbi@200116b82cdbcf00c04908ec8f79be9b.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
07:55:57 × seveg quits (~gabriel@188-167-252-202.dynamic.chello.sk) (Ping timeout: 246 seconds)
07:56:10 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
07:56:47 × epicfail^ quits (~epicfail^@185.163.110.108) (Remote host closed the connection)
07:58:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:59:26 × xff0x quits (~xff0x@2001:1a81:527e:8e00:a69b:cc8b:4a92:3035) (Ping timeout: 264 seconds)
08:00:31 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
08:00:40 jamm_ joins (~jamm@unaffiliated/jamm)
08:01:16 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:59d6:7765:8e88:73ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:02:15 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
08:02:47 aggin joins (~ecm@103.88.87.92)
08:03:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
08:05:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
08:05:43 seveg joins (~gabriel@188-167-252-202.dynamic.chello.sk)
08:07:32 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:08:29 bitmagie joins (~Thunderbi@200116b806fb310044a1b05c24a8db83.dip.versatel-1u1.de)
08:08:49 Varis joins (~Tadas@unaffiliated/varis)
08:09:29 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
08:12:17 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
08:12:33 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
08:13:02 MidAutumnHotaru5 joins (~MidAutumn@unaffiliated/midautumnhotaru)
08:13:06 smtx joins (~smtx@195.140.213.38)
08:13:40 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
08:13:43 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
08:14:45 × MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Ping timeout: 240 seconds)
08:14:45 MidAutumnHotaru5 is now known as MidAutumnHotaru
08:14:57 × hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
08:15:27 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:15:55 kuribas joins (~user@ptr-25vy0i94cz0gl50t8i4.18120a2.ip6.access.telenet.be)
08:16:26 aramend joins (~aramend@5.186.115.107.cgn.fibianet.dk)
08:16:34 × aggin quits (~ecm@103.88.87.92) (Read error: Connection reset by peer)
08:16:45 × aramend quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Client Quit)
08:16:55 aramend joins (~aramend@5.186.115.107.cgn.fibianet.dk)
08:17:07 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 256 seconds)
08:19:18 xff0x joins (~xff0x@2001:1a81:527e:8e00:c5b0:5b02:bc7c:c0ba)
08:20:05 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
08:21:49 × notzmv quits (~user@unaffiliated/zmv) (Read error: Connection reset by peer)
08:22:22 notzmv` joins (~user@191.13.168.188)
08:24:14 dyeplexer joins (~lol@unaffiliated/terpin)
08:29:39 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
08:30:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:30:12 borne joins (~fritjof@200116b86438180069fc6bd724c60777.dip.versatel-1u1.de)
08:31:22 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:31:52 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:32:48 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
08:34:09 × vchlup_ quits (~vchlup@nat.brnet.cz) (Ping timeout: 264 seconds)
08:36:16 <whataday> could I say data type is class in OOP?
08:36:26 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
08:37:21 <dminuoso> whataday: *in Java-style OOP
08:37:27 <dminuoso> The comparison seems fair
08:37:45 <dminuoso> Although classes in Java-style OOP typically come with sub-typing
08:38:01 <whataday> why not Kotlin-style or python style?
08:39:00 <dminuoso> whataday: Sorry, I should have said Simula-style
08:39:08 <dminuoso> But sure, Kotlin/Python works too
08:40:26 <dminuoso> whataday: I just want to emphasize, that not all OOP languages either adopt the word "class", or that they have the concept of classes as "value templates" or "subtyping entitites" at all
08:40:36 <dminuoso> Consider something like Smalltalk
08:41:30 <dminuoso> Where things are really blurry
08:41:44 × bitmagie quits (~Thunderbi@200116b806fb310044a1b05c24a8db83.dip.versatel-1u1.de) (Quit: bitmagie)
08:43:29 <whataday> so the previous question what's the point to wrap a function into a data type? could to trans to what's the point using objects to instead of functions as parameters?
08:44:26 <dminuoso> whataday: Well, since functions are first-class values in Haskell, why forbid them as fields in a record?
08:45:07 <whataday> benefits?
08:45:48 <koz_> whataday: Underneath, type class dictionaries are exactly that - records of functions.
08:46:01 <koz_> And that's how dictionary passing implementation of type classes works.
08:46:09 <koz_> I'd say that's a good reason, no?
08:47:08 <whataday> but I'm asking about types not type class
08:47:19 <dminuoso> whataday: The point is, you could do this on the value level yourself
08:47:32 <koz_> Yep, exactly.
08:47:39 <dminuoso> whataday: Here's a simple example `data Logger = Logger { logDebug :: String -> IO (); logInfo :: String -> IO (); logLength :: IO Int }`
08:47:59 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
08:48:00 <dminuoso> Now, you can parametrize all your functions with `Logger`, and voila, you have logging facilities everywhere
08:48:59 <whataday> aha, just like class Logger has some methy
08:49:03 <whataday> methods
08:49:15 <dminuoso> Not quite
08:49:25 <dminuoso> methods correspond to *any* function taking a data type
08:50:23 × Sgeo_ quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:50:43 <whataday> so what's the proper way to decribe that?
08:50:51 <whataday> describe
08:51:08 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
08:51:09 <dminuoso> whataday: Consider something like..
08:51:12 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
08:51:50 Aquazi joins (uid312403@gateway/web/irccloud.com/x-etfcqaohweqrgnsm)
08:52:11 <dminuoso> `data Alg = Alg { name :: String; approx :: String -> Int }` where `approx` is some function that calculates something. And perhaps you have some function `improve :: P -> Alg -> Alg` that "modifies" the internal function,
08:52:36 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
08:52:43 <dminuoso> This you cannot describe with methods anymore
08:52:52 <dminuoso> Or well, you could encode it into them
08:53:36 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
08:54:34 <whataday> aha, what about data Alg' = Alg {...}?
08:54:37 ukari joins (~ukari@unaffiliated/ukari)
08:55:20 <whataday> use same name to type constructor and data constructor is not fair
08:55:31 <dminuoso> It is confusing, yeah
08:56:15 <whataday> that record type looks like a class constructor to me
08:56:40 <dminuoso> whataday: Sure, but `approx` is not a method, it's rather like an instance variable that contains a function
08:56:46 <dminuoso> As such you can change/replace it
08:56:53 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:2413:85cb:bba4:fb22)
08:57:02 <dminuoso> (With a method, you'd have to encode being able to change it with internal state, somehow)
08:57:22 <whataday> based on that record type, I can construct a class with String parameter, it has two methods name and approx
08:57:35 frozenErebus joins (~frozenEre@94.128.81.133)
08:58:24 <whataday> name needn't a parameter and return that class parameter
08:58:37 <whataday> a function without a parameter
08:58:50 <whataday> that's available in OOP
08:59:37 <whataday> but not available in Haskell, 'cause everyone function is an unary function in Haskell?
09:00:12 × svc0[m] quits (svc0matrix@gateway/shell/matrix.org/x-bpxqtevxuqyganbo) (Quit: Idle for 30+ days)
09:00:30 knupfer joins (~Thunderbi@i5E86B4CE.versanet.de)
09:02:02 <whataday> improve that can use new an instance of class Alg to implement?
09:02:14 Boomerang joins (~Boomerang@2a05:f6c7:2179:0:50ad:ccb:148c:6cba)
09:02:25 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
09:03:24 <dminuoso> whataday: Re "function without a parameter" - this comparison is flawed in that this is a confusion of terms.
09:03:42 <dminuoso> What a language like say Python calls "a function" is *not* the same thing that Haskell calls a function.
09:04:11 <whataday> you mean evaluate strategy?
09:04:13 <dminuoso> Let's call what C/C++/Python/much of the imperative programming world names functions "routines"
09:04:40 <dminuoso> A "routine is a sequence of actions" that are free to manipulate the world. For example doing IO
09:05:07 <dminuoso> A "function" otoh is just a mapping between values in the mathematical sense.
09:05:21 <dminuoso> Like the `sin` function
09:05:26 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:05:51 <whataday> hey, what about name :: _ -> String?
09:06:25 <dminuoso> So what say C calls a function, would be called an IO action in Haskell instead.
09:06:27 <dminuoso> e.g.
09:06:48 <dminuoso> When writing `int get_number(void);` in C, then the corresponding/matching type in Haskell would be `IO Int`
09:07:08 <whataday> right
09:07:24 <dminuoso> So you see, this "lack of arguments" in C because they're visually suggesting functions, but really just mean "routines/actions"
09:08:30 × charukiewicz quits (~charukiew@irouteince04.i.subnet.rcn.com) (Quit: charukiewicz)
09:08:30 <whataday> what about f = lambda _: return 3 in python?
09:08:33 <dminuoso> Ah!
09:08:43 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
09:08:44 <dminuoso> That's another trick to model lazy evaluation in Python!
09:08:45 <whataday> does this f is a action?
09:08:51 <dminuoso> Possibly
09:08:57 <dminuoso> Or an effect, depends on the situation
09:09:04 <dminuoso> LIke if you wrote `f = lambda _: print("foo")`
09:09:15 <whataday> but it's equal to f = 3?
09:09:24 <dminuoso> Not quite
09:09:28 <dminuoso> Consider something like
09:09:36 <whataday> print is an IO action
09:09:42 <whataday> but return 3 isn't
09:09:55 <dminuoso> Arguably it is
09:10:10 mouseghost joins (~draco@wikipedia/desperek)
09:10:27 pera joins (~pera@unaffiliated/pera)
09:10:28 <dminuoso> Python lacks the ability to be outside this effectful system
09:10:33 <whataday> that f equal to a constant variable f which is 3
09:10:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
09:11:16 <dminuoso> So in Python you can use lambdas to implement lazy evaluation, something like `f = lambda _: return expensive_computation`
09:11:26 <dminuoso> And then, if you ever need the value, you can evaluate it on-demand by "calling it"
09:11:43 <dminuoso> (But here, you're still using this routine/IO effect system to implement it)
09:12:03 <dminuoso> since python is not allowed to reorder effects freely
09:12:04 <whataday> fine...
09:12:24 <dminuoso> In Haskell we dont need this trick either, but if we had to
09:12:26 <dminuoso> we could do something like
09:12:46 <dminuoso> `f :: () -> Int` - which amusingly would look like `f ()` if one wanted the Int inside
09:12:48 ciwowic joins (uid472783@gateway/web/irccloud.com/x-qukqqlhkmcggcdaj)
09:13:04 <dminuoso> But that was assuming that, some hypothetical version of Haskell, was strict
09:13:15 frozenErebus joins (~frozenEre@94.128.81.133)
09:13:33 <dminuoso> But we dont even need that trick, since `f :: Int` already is lazy, so you dont even need to do that
09:13:49 <whataday> ok
09:16:21 <whataday> use OOP to think some monads would be ?
09:18:51 usr25 joins (~usr25@unaffiliated/usr25)
09:20:50 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
09:22:06 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:23:02 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:23:48 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 246 seconds)
09:28:33 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
09:30:15 × whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
09:30:39 × lambda-11235 quits (~lambda-11@2600:1700:7c70:4600::3f) (Quit: Bye)
09:31:20 jamm_ joins (~jamm@unaffiliated/jamm)
09:31:23 whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
09:33:31 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-wvvgdsbomferygig) (Quit: Connection closed for inactivity)
09:36:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
09:36:27 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
09:38:48 DavidEichmann joins (~david@234.109.45.217.dyn.plus.net)
09:40:05 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
09:40:16 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
09:40:27 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
09:40:32 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:41:20 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 272 seconds)
09:42:43 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
09:43:03 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
09:45:46 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
09:46:28 <kuribas> is there a strict "view" for lens?
09:46:33 <kuribas> :t view
09:46:34 <lambdabot> MonadReader s m => Getting a s a -> m a
09:46:45 <merijn> What does that even mean?
09:47:13 <kuribas> using a strict Const I guess?
09:47:37 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
09:48:35 danza joins (~francesco@151.53.65.193)
09:48:44 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:49:40 <kuribas> > view traverse [Sum 1, Sum 3, Sum 4, Sum 5]
09:49:42 <lambdabot> Sum {getSum = 13}
09:51:56 <Franciman> :t view
09:51:58 <lambdabot> MonadReader s m => Getting a s a -> m a
09:52:05 × dyeplexer quits (~lol@unaffiliated/terpin) (Read error: Connection reset by peer)
09:52:36 dyeplexer joins (~lol@unaffiliated/terpin)
09:52:41 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:53:21 × forgottenone quits (~forgotten@176.42.17.164) (Ping timeout: 264 seconds)
09:54:05 <kuribas> or it's already strict?
09:54:51 mauro^ joins (mauro@ip98-184-89-2.mc.at.cox.net)
09:54:59 <kuribas> but then, toListOf traverse is very inefficient?
09:55:25 × seveg quits (~gabriel@188-167-252-202.dynamic.chello.sk) (Ping timeout: 240 seconds)
09:55:42 <kuribas> because it will do a repeated append?
09:55:59 seveg joins (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk)
09:56:20 forgottenone joins (~forgotten@176.42.28.155)
09:56:43 × todda7 quits (~torstein@athedsl-258913.home.otenet.gr) (Quit: Konversation terminated!)
09:56:51 tsaka__ joins (~torstein@athedsl-258913.home.otenet.gr)
09:57:01 <kuribas> ah, it uses Endo, neat...
09:57:14 × MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
09:57:36 <kuribas> So in that case I suppose it is efficient to use view on a strict monoid...
09:57:53 MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru)
09:58:02 <idnar> view l = Reader.asks (getConst #. l Const); toListOf l = foldrOf l (:) []
09:58:45 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
09:58:55 <idnar> foldrOf l f z = flip appEndo z . foldMapOf l (Endo #. f)
09:59:10 <kuribas> then using view on a non-strict monoid is inefficient, right?
09:59:16 × plutoniix quits (~q@184.82.202.124) (Ping timeout: 240 seconds)
09:59:40 <Taneb> > views (const ()) [1..100000000]
09:59:41 <kuribas> > view (traverse . to (:[])) [1, 3, 4, 5]
09:59:41 <lambdabot> error:
09:59:41 <lambdabot> • Couldn't match type ‘()’ with ‘s0 -> Const r s0’
09:59:41 <lambdabot> Expected type: LensLike' (Const r) s0 a0
09:59:43 <lambdabot> [1,3,4,5]
10:00:04 <kuribas> :t views
10:00:05 <lambdabot> MonadReader s m => LensLike' (Const r) s a -> (a -> r) -> m r
10:00:10 <Taneb> > views traverse (const ()) [1..100000000]
10:00:12 <lambdabot> ()
10:00:50 <kuribas> > views traverse (:[]) [1, 3, 4, 5]
10:00:52 <lambdabot> [1,3,4,5]
10:01:59 <kuribas> > appEndo $ views (traverse . traverse) (Endo . (:[])) [Just 1, Nothing, 3, Nothing, 4, 5]
10:02:01 <lambdabot> error:
10:02:01 <lambdabot> • Couldn't match type ‘[a0]’ with ‘a -> a’
10:02:01 <lambdabot> Expected type: a0 -> a -> a
10:02:04 dhil joins (~dhil@80.208.56.181)
10:02:05 <Taneb> Seems approximately linear to me
10:02:06 <idnar> kuribas: it's ~the same as foldMap
10:02:17 <kuribas> idnar: foldMap' then?
10:02:42 <Taneb> > head $ views traverse (:[]) [1..100000000000000000000000000]
10:02:43 <lambdabot> 1
10:02:54 <Taneb> And seems lazy enough
10:03:01 <kuribas> hmm, indeed
10:03:27 <idnar> @hoogle foldMap'
10:03:28 <lambdabot> Data.Foldable foldMap' :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
10:03:28 <lambdabot> Relude.Foldable.Reexport foldMap' :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
10:03:28 <lambdabot> Data.RAVec.NonEmpty foldMap' :: Monoid m => (a -> m) -> NERAVec' n b a -> m
10:03:42 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
10:04:23 <idnar> what?
10:04:36 × tsaka__ quits (~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds)
10:05:06 <kuribas> Taneb: how does that work? Doesn't const evaluate from left to right?
10:05:47 <kuribas> liftA2 _ (Const x) (Const y) = Const (x `mappend` y)
10:06:30 <idnar> "Since: 4.13.0.0" ah
10:07:01 <kuribas> > traverse Const [a, b, c]
10:07:03 <lambdabot> Const (a <> b <> c <> mempty)
10:07:10 <Taneb> kuribas: yeah? So it ends up "head ([1] ++ ...)" = "head (1 : ...)" = "1"
10:07:24 <Taneb> Well, it evaluates the same way as the underlying monoid
10:07:40 <Taneb> It's traverse @List that matters here
10:12:20 <kuribas> Then it's inefficient for strict folds?
10:13:06 <merijn> Yes, no, maybe, it depends.
10:13:11 <merijn> ENOTENOUGHINFO
10:13:33 <Taneb> :t sumOf
10:13:34 <lambdabot> Num a => Getting (Endo (Endo a)) s a -> s -> a
10:13:46 <Taneb> kuribas: yes, that's why sumOf uses that type rather than Getting (Sum a) s a
10:14:18 <kuribas> Taneb: how do you fold my own monoid then?
10:14:56 <dminuoso> kuribas: The same way sumOf does. Use foldlOf' yourself?
10:14:57 <merijn> kuribas: "Endo mappend"?
10:15:09 <kuribas> :t foldlOf'
10:15:10 <lambdabot> Getting (Endo (Endo r)) s a -> (r -> a -> r) -> r -> s -> r
10:15:37 <kuribas> dminuoso: that's not very elegant
10:15:59 <kuribas> there should be view'
10:16:02 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:16:22 <dminuoso> What type would view' have exactly?
10:16:35 plutoniix joins (~q@184.82.202.124)
10:16:43 × plutoniix quits (~q@184.82.202.124) (Max SendQ exceeded)
10:16:45 <kuribas> :t \l -> foldlOf' l (<>) mempty
10:16:46 <lambdabot> Monoid r => Getting (Endo (Endo r)) s r -> s -> r
10:17:08 frozenErebus joins (~frozenEre@94.128.81.133)
10:17:09 plutoniix joins (~q@184.82.202.124)
10:17:21 <dminuoso> I dont think that one passes the Fairbairn threshold.
10:18:07 <dminuoso> And at the very best, Id name it `foldOf'`
10:18:27 <dminuoso> Or something akin to that, since that one needs a Fold
10:18:52 <kuribas> :t view
10:18:53 × plutoniix quits (~q@184.82.202.124) (Max SendQ exceeded)
10:18:53 <lambdabot> MonadReader s m => Getting a s a -> m a
10:19:21 plutoniix joins (~q@184.82.202.124)
10:19:33 <dminuoso> kuribas: The key is in Getting.
10:19:38 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
10:19:56 <dminuoso> Or.. Im not sure what else you can do with it
10:20:49 <kuribas> in fact, the foldOf example in lens is bad: foldOf (folded.folded) [[Sum 1,Sum 4],[Sum 8, Sum 8],[Sum 21]] => Sum {getSum = 42}
10:21:59 <kuribas> it will run in linear space
10:22:03 <kuribas> instead of constant
10:22:05 ph88 joins (~ph88@2a02:8109:9e00:7e5c:f87d:231f:92a3:5029)
10:25:50 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
10:26:11 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:90c5:cd54:af9d:fe90) (Ping timeout: 272 seconds)
10:26:27 <kuribas> dminuoso: foldOf ~= view
10:29:27 <kuribas> dminuoso: so then view' :: MonadReader s m => Getting (Endo (Endo a)) s a -> m a
10:30:17 fendor joins (~fendor@91.141.3.135.wireless.dyn.drei.com)
10:34:26 × plutoniix quits (~q@184.82.202.124) (Quit: Leaving)
10:38:22 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:40:41 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
10:41:57 × xsarnik0 quits (xsarnik@gateway/shell/fi.muni.cz/x-mtygofcqfiilprho) (Ping timeout: 264 seconds)
10:41:57 × Jajik quits (xchlup2@gateway/shell/fi.muni.cz/x-jsygcbuiktdwntcl) (Ping timeout: 264 seconds)
10:42:45 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
10:43:42 × seveg quits (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 260 seconds)
10:44:20 Jajik joins (xchlup2@gateway/shell/fi.muni.cz/x-wwrhdukwaxbktttf)
10:44:24 __monty__ joins (~toonn@unaffiliated/toonn)
10:45:21 xsarnik0 joins (xsarnik@gateway/shell/fi.muni.cz/x-jfjbrmgxfogbjeng)
10:46:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 260 seconds)
10:48:41 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
10:49:11 jb55 joins (~jb55@gateway/tor-sasl/jb55)
10:51:26 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
10:52:20 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Remote host closed the connection)
10:52:43 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
10:55:38 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
10:56:26 pavonia joins (~user@unaffiliated/siracusa)
10:57:54 fendor_ joins (~fendor@77.119.131.42.wireless.dyn.drei.com)
10:58:29 × xcmw quits (~textual@dyn-72-33-2-152.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:58:37 × ulidtko quits (~ulidtko@194.54.80.38) (Ping timeout: 256 seconds)
11:00:16 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
11:00:29 × vilpan quits (~0@212.117.1.172) (Ping timeout: 272 seconds)
11:01:08 × fendor quits (~fendor@91.141.3.135.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
11:02:16 × dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
11:03:09 jpds joins (~jpds@gateway/tor-sasl/jpds)
11:03:24 dyeplexer joins (~lol@unaffiliated/terpin)
11:11:44 vilpan joins (~0@212.117.1.172)
11:13:02 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
11:13:18 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
11:14:04 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:16:14 ulidtko joins (~ulidtko@31.133.98.210)
11:16:33 darjeeling_ joins (~darjeelin@39.185.119.195)
11:17:12 <Franciman> Hi, I am using persistent-sqlite library, but I don't understand how it deals with transactions
11:17:20 <Franciman> do you know where I can find info about this?
11:17:43 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
11:18:12 ulidtko|k joins (~ulidtko@194.54.80.38)
11:19:29 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
11:20:25 × ulidtko quits (~ulidtko@31.133.98.210) (Ping timeout: 240 seconds)
11:22:47 <mouseghost> as in internally or what
11:23:37 <Franciman> as in, I want to get the control of what happens
11:24:20 <__monty__> Franciman: merijn is probably intimately familiar and I also believe he'd recommend using sqlite-simple instead.
11:24:39 <Franciman> yup, I know, unfortunately I cannot choose
11:25:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:25:50 × borne quits (~fritjof@200116b86438180069fc6bd724c60777.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
11:26:09 borne joins (~fritjof@83.135.92.91)
11:26:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:26:45 <Franciman> IIUC persistent wants me to start a connection for each transaction
11:26:51 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
11:27:18 <__monty__> Possible. Sqlite-simple uses a connection for every query.
11:28:24 <kuribas> what does a connection mean in sqlite? Opening the file?
11:28:32 <kuribas> That seems very inefficient
11:30:01 <__monty__> Don't know, don't really care, doubt it.
11:30:04 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:31:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:31:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:32:11 bahamas joins (~lucian@unaffiliated/bahamas)
11:32:59 <Franciman> ah ok understood!
11:33:21 <Franciman> https://www.stackage.org/haddock/nightly-2021-02-12/persistent-2.11.0.2/Database-Persist-Sql.html#v:acquireSqlConn here is where transactions are run
11:33:33 <Franciman> started/committed*
11:35:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
11:37:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:37:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:38:33 vchlup joins (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
11:39:48 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
11:42:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:43:03 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
11:43:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:45:49 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
11:46:17 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
11:47:20 × ciwowic quits (uid472783@gateway/web/irccloud.com/x-qukqqlhkmcggcdaj) (Quit: Connection closed for inactivity)
11:47:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
11:48:16 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Remote host closed the connection)
11:48:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:49:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:50:56 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
11:50:57 × carlomagno quits (~cararell@148.87.23.12) (Remote host closed the connection)
11:51:00 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
11:51:08 carlomagno joins (~cararell@148.87.23.12)
11:51:38 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
11:53:27 seveg joins (~gabriel@188-167-252-202.dynamic.chello.sk)
11:53:28 Major_Biscuit joins (~Major_Bis@x065156.citg-m.tudelft.nl)
11:54:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:54:24 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
11:54:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:55:14 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
11:56:29 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
12:00:14 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-vpguxmddsrmujfdr) (Quit: Connection closed for inactivity)
12:00:16 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
12:00:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:00:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:03:09 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
12:03:10 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:06:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
12:06:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:07:05 × aramend quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Quit: aramend)
12:07:14 aramend joins (~aramend@5.186.115.107.cgn.fibianet.dk)
12:08:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
12:08:34 × glguy quits (x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer)
12:09:13 exasperr joins (bab72765@186.183.39.101)
12:10:22 glguy joins (x@freenode/staff/haskell.developer.glguy)
12:11:48 aramend_ joins (~aramend@5.186.115.107.cgn.fibianet.dk)
12:12:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
12:12:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:12:50 qwfpluy joins (3e605a22@62.96.90.34)
12:13:30 <qwfpluy> what's the best Haskell library for copying files onto an Azure VM?
12:13:36 cmcma20 joins (~cmcma20@l37-192-2-125.novotelecom.ru)
12:13:45 × aramend quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 264 seconds)
12:13:45 aramend_ is now known as aramend
12:18:00 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:18:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:18:27 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds)
12:19:10 irchazwell_ joins (~IRCHaxwel@2a00:23a8:4382:a900:8bf:2df2:112c:f379)
12:19:16 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
12:20:04 × forgottenone quits (~forgotten@176.42.28.155) (Ping timeout: 265 seconds)
12:20:17 × aramend quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Quit: aramend)
12:20:29 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:20:33 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
12:21:53 exasperr parts (bab72765@186.183.39.101) ()
12:22:02 <merijn> Franciman: The short answer is: Nowhere
12:22:41 × irchaxwell quits (~IRCHaxwel@2a00:23a8:4382:a900:4d37:2faa:bfe1:2753) (Ping timeout: 265 seconds)
12:22:55 <merijn> Franciman: And I can't really recommend using persistent-sqlite due to utter lack of documentation how to properly manage transactions correctly
12:23:22 <Franciman> thanks, I am going to report
12:23:30 × qwfpluy quits (3e605a22@62.96.90.34) (Quit: Connection closed)
12:23:59 aramend joins (~aramend@5.186.115.107.cgn.fibianet.dk)
12:24:03 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
12:24:04 <merijn> Franciman: I've got my own abstractions on top of it, but the odds of me *documenting* those to the extent that they're useful to others before the heat-death of the universe is roughly 0 :)
12:24:47 <merijn> Franciman: If you're sufficiently stubborn/masochistic you can try and figure things out from the code here: https://github.com/merijn/Belewitte/tree/master/benchmark-analysis/src/Sql
12:25:05 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
12:25:12 <merijn> Franciman: Although I'd probably recommend just using sqlite-simple instead
12:25:17 liyang joins (~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net)
12:25:54 pera joins (~pera@unaffiliated/pera)
12:25:58 <tdammers> my impression of persistent in general is that it gets you things that aren't very important, at the price of fairly brittle abstractions
12:26:03 _noblegas joins (uid91066@gateway/web/irccloud.com/x-rekqucmexfsrpwoo)
12:26:07 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
12:26:23 <merijn> tdammers: Oh, it's *much* worse
12:26:24 <Franciman> merijn, thanks
12:26:39 <tdammers> merijn: worse than brittle abstractions? I'm all ears.
12:26:40 <merijn> I don't think anyone who is not a persistent contributor can write safe code with it
12:27:08 <tdammers> because it's a brittle abstraction.
12:27:30 <merijn> tdammers: I meant more like "because half the API is unsafe in subtle ways"
12:27:51 <merijn> tdammers: There's lots of conduit APIs for streaming, great idea!
12:28:15 <merijn> Except, conduit at some point got rid of eager cleanup during early termination
12:28:45 <merijn> tdammers: Which means none of the functions returning conduit streams correctly finalize their queries if you don't process the whole stream, leaking resources
12:28:47 Tops2 joins (~Tobias@dyndsl-095-033-095-154.ewe-ip-backbone.de)
12:29:00 <tdammers> right, so a brittle abstraction :D
12:29:18 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
12:30:04 <Franciman> gosh
12:30:11 <Franciman> none of this is written in the docs
12:30:38 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 264 seconds)
12:31:56 <merijn> Franciman: I think that, at this point, I'm the largest contributor to persistent-sqlite, mostly because fixing/improving it was less work than migrating my code off of it...but yeah, like I said, I'd probably go with sqlite-simple on a new codebase
12:32:07 <Franciman> sad
12:32:08 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
12:32:09 <Franciman> thanks
12:32:12 <Franciman> I can not
12:32:37 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
12:33:12 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
12:33:15 <merijn> Franciman: the "MonadReader SqlBackend"/ReaderT SqlBackend things in persistent are, effectively, transaction scopes, so you don't want those readers stretching over your entire application
12:33:29 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
12:33:57 <merijn> I rolled my own Transaction monad in the directory I linked
12:35:00 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
12:36:15 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:37:12 urodna joins (~urodna@unaffiliated/urodna)
12:39:28 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Remote host closed the connection)
12:41:12 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
12:43:48 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
12:43:59 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
12:47:02 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
12:50:04 LKoen_ joins (~LKoen@252.248.88.92.rev.sfr.net)
12:50:12 × Boomerang quits (~Boomerang@2a05:f6c7:2179:0:50ad:ccb:148c:6cba) (Quit: Leaving)
12:50:45 × dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
12:51:59 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
12:52:34 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 256 seconds)
12:54:16 × Major_Biscuit quits (~Major_Bis@x065156.citg-m.tudelft.nl) (Ping timeout: 256 seconds)
12:55:31 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:56:59 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
12:57:06 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
12:57:40 tsaka__ joins (~torstein@athedsl-258913.home.otenet.gr)
12:58:50 <Athas> > signum (0/0)
12:58:52 <lambdabot> NaN
12:59:44 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
13:01:28 <merijn> :t signum
13:01:29 <lambdabot> Num a => a -> a
13:01:31 iye joins (~itai@87.70.56.140)
13:01:34 <liyang> > (<> " batman!") $ concatMap show $ replicate 16 $ signum (0/0)
13:01:36 <lambdabot> "NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN batman!"
13:01:57 <merijn> Athas: Not sure what you expected there :p
13:02:07 <iye> does anyone know who i should email to get cabal 3.4 to be available to download on haskell.org?
13:02:17 <iye> i'm having a bit of trouble finding the contact email
13:02:44 <Athas> merijn: I did expect that, I'm just confused because my interpreter doesn't give the right result, even though it ultimately boils down to Haskell's signum...
13:03:10 <liyang> > signum (negate 1 / 0)
13:03:13 <lambdabot> -1.0
13:03:54 <Ferdirand> > signum (negate 1 / negate 0)
13:03:56 <lambdabot> 1.0
13:04:30 <Athas> Oh, of course, I round-trip Floats through Rational... that's a no-no.
13:04:46 <merijn> Athas: I was about to say, are you sure it's double you're working with
13:04:57 <Ferdirand> > signum (negate 1 / fromInteger (negate 0))
13:04:58 <Athas> So before I'm off to Hoogle, what's a good way of converting between floating-point types in Haskell?
13:04:59 <lambdabot> -1.0
13:05:05 frozenErebus joins (~frozenEre@94.128.81.133)
13:05:13 <liyang> realToFrac
13:05:16 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 240 seconds)
13:05:19 <merijn> liyang: He said good :p
13:05:29 <merijn> Athas: That sounds like a cursed question :p
13:05:30 <liyang> oh
13:05:51 <merijn> > realToFrac (0/0 :: Double) :: Float -- hmm
13:05:52 <lambdabot> -Infinity
13:06:01 <merijn> That's at least somewhat reasonable
13:06:21 <mouseghost> pi = 3.14
13:06:31 <liyang> merijn: we can't stop here, this is IEEE-754 country.
13:06:46 <merijn> liyang: That's perfectly correct for IEEE-754
13:06:53 <Athas> Had the Haskell designers never heard about IEEE 754 when they wrote the report? I feel every year I find a new wart.
13:06:54 <merijn> oh, wait
13:06:57 <merijn> I take it back
13:07:12 <merijn> That's not reasonable, I was just not paying attention
13:07:25 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
13:07:29 <merijn> Athas: Of course not, IEEE-754 is for pragmatic people
13:07:41 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
13:07:43 <Athas> They should have left out Float and Double rather than half-assing them.
13:07:43 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:08:02 <Athas> You can't half-ass floats. You need both cheeks or it will hurt you eventually.
13:08:04 <merijn> I mean, Float/Double are fine, it's the conversions/classes the mess up
13:08:16 <Athas> It's the class instances that are messed up.
13:08:49 geekosaur joins (82650c7a@130.101.12.122)
13:09:05 <Athas> Well, I guess I would write custom code again.
13:09:41 × smtx quits (~smtx@195.140.213.38) ()
13:11:13 <merijn> Athas: Make a float-cast to match Herbert's int-cast :>
13:11:19 <Athas> What?
13:11:41 <merijn> @hackage int-cast
13:11:41 <lambdabot> https://hackage.haskell.org/package/int-cast
13:11:44 <Franciman> merijn, what do you think about `beam` ?
13:11:47 <Franciman> @hackage beam
13:11:47 <lambdabot> https://hackage.haskell.org/package/beam
13:11:59 × vchlup quits (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 265 seconds)
13:12:07 <merijn> Franciman: The beam API gives me nightmare
13:12:09 <merijn> +s
13:12:51 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
13:13:04 CrazyPython joins (~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
13:16:02 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 272 seconds)
13:16:42 son0p joins (~son0p@181.58.39.182)
13:17:50 × michalz quits (~user@185.246.204.47) (Remote host closed the connection)
13:20:39 Tario joins (~Tario@201.192.165.173)
13:20:48 × iye quits (~itai@87.70.56.140) (Remote host closed the connection)
13:23:32 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:23:59 vchlup joins (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
13:26:24 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
13:26:48 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 272 seconds)
13:27:05 × darjeeling_ quits (~darjeelin@39.185.119.195) (Ping timeout: 256 seconds)
13:28:06 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
13:29:29 dyeplexer joins (~lol@unaffiliated/terpin)
13:30:21 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Quit: Leaving.)
13:34:04 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:2413:85cb:bba4:fb22) (Ping timeout: 240 seconds)
13:34:04 <dminuoso> outerJoin_' :: forall s a b be db. (BeamSqlBackend be, BeamSqlBackendSupportsOuterJoin be, Projectible be a, Projectible be b, ThreadRewritable (QNested s) a, ThreadRewritable (QNested s) b, Retaggable (QExpr be s) (WithRewrittenThread (QNested s) s a), Retaggable (QExpr be s) (WithRewrittenThread (QNested s) s b)) => Q be db (QNested s) a -> Q be db (QNested s) b -> ((WithRewrittenThread (QNested
13:34:06 <dminuoso> s) s a, WithRewrittenThread (QNested s) s b) -> QExpr be s SqlBool) -> Q be db s (Retag Nullable (WithRewrittenThread (QNested s) s a), Retag Nullable (WithRewrittenThread (QNested s) s b))
13:34:12 <dminuoso> Good luck!
13:34:21 <merijn> dminuoso: But it's typesafe!
13:34:41 <merijn> I'd rather just write tests for my manual queries :p
13:34:59 <merijn> you know, if I wrote tests to begin with >.>
13:35:06 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:53e8:7f49:1e5f:691)
13:36:15 <dminuoso> Snoyman described it really well in one of his recent blog articles
13:36:24 jamm_ joins (~jamm@unaffiliated/jamm)
13:36:36 <dminuoso> https://www.snoyman.com/blog/2020/11/haskell-bad-parts-2/ down the section titled "Hubris"
13:37:23 jamm__ joins (~jamm@unaffiliated/jamm)
13:37:42 <Franciman> LOL
13:38:05 <Franciman> is snoyman the author of persistent too?
13:38:31 <dminuoso> Yeah, but I'd argue this fact is irrelevant here.
13:39:00 <Franciman> sure
13:39:02 <Franciman> why not
13:39:03 × irchazwell_ quits (~IRCHaxwel@2a00:23a8:4382:a900:8bf:2df2:112c:f379) (Ping timeout: 265 seconds)
13:39:08 <Franciman> yes it is irrelevant
13:39:10 <Franciman> just asking
13:39:17 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:39:18 <Franciman> I read his tutorial on persistent
13:40:23 <dminuoso> My point is just, burying something in the type system just for the sake of having it in the type system should not be the goal
13:40:50 <dminuoso> It usually comes at the cost of readability of code and sanity when deciphering complex compiler diagnostics.
13:41:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
13:41:36 <Franciman> I think that programming as a whole is essentially flawed
13:41:43 forgottenone joins (~forgotten@176.42.25.228)
13:41:46 <merijn> Snooyman is the original author of persistent
13:41:58 <merijn> He's basically not involved in current maintenance/development
13:42:09 pera joins (~pera@unaffiliated/pera)
13:42:28 <dminuoso> Having a type safe SQL language just means a *certain* class of bugs is absent. There's still an awful lot of ways for the code to do the wrong thing. beam cant help you with any of these:
13:42:38 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:53e8:7f49:1e5f:691) (Ping timeout: 264 seconds)
13:43:18 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:fdee:4ba2:d966:c97a)
13:43:38 <pjb> Franciman: yes, but we haven't found a replacement yet.
13:43:56 <dminuoso> I feel like Haskell programming is a constant juggling about how much I can encode into the type system without hindering code ergonomics and readability
13:44:07 Deide joins (~Deide@217.155.19.23)
13:44:10 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
13:44:16 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
13:44:21 <dminuoso> Encode a possible failure? Then `Maybe` has a good annoyance-to-performance ratio.
13:45:39 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
13:45:42 <dminuoso> Do I make a separate data type here? Maybe encode invariants as phantom type tags?
13:46:27 Major_Biscuit joins (~Major_Bis@x065156.citg-m.tudelft.nl)
13:47:15 <Franciman> <pjb> Franciman: yes, but we haven't found a replacement yet. <- to what?
13:48:43 <dminuoso> To programming.
13:49:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
13:49:15 <Franciman> oh
13:49:17 <Franciman> ehe
13:50:46 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
13:51:54 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 246 seconds)
13:55:42 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
13:55:50 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
13:57:28 Sheilong joins (uid293653@gateway/web/irccloud.com/x-csedumvwrelmlxyd)
13:59:40 <merijn> I don't suppose the Haskell Foundation page has a bugtracker somewhere?
14:00:49 <merijn> Because it's probably not intended to be *entirely* broken with cookies disabled >.>
14:01:31 × vchlup quits (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 272 seconds)
14:03:12 <Uniaika> > GET https://haskell.foundation/favicon.ico 404
14:03:13 <Uniaika> ah!
14:03:13 <lambdabot> error:
14:03:13 <lambdabot> • Data constructor not in scope: GET :: t1 -> t0
14:03:14 <lambdabot> • Perhaps you meant ‘GT’ (imported from Data.Ord)error: Variable not in ...
14:03:47 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
14:06:48 <merijn> Uniaika: http://files.inconsistent.nl/screenshot1.png
14:07:02 <Uniaika> bloody hell
14:07:06 <merijn> It can't even load images: http://files.inconsistent.nl/screenshot2.png
14:07:20 <Uniaika> send a screenshot of your browser console?
14:07:37 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:08:38 <hpc> needs https :P
14:08:38 × carlomagno quits (~cararell@148.87.23.12) (Remote host closed the connection)
14:08:52 carlomagno joins (~cararell@148.87.23.8)
14:09:00 <merijn> hpc: What does?
14:09:08 <hpc> files.inconsistent.nl
14:09:34 <Uniaika> it's hosted on user.fm
14:09:36 <merijn> hpc: That's just the free webspace offered by my mail provider
14:09:44 <hpc> ah
14:10:24 <merijn> Well, with a custom domain pointing at it, but I mainly use it as convenient personal pastebin/image host :p
14:10:43 <merijn> Uniaika: Looks like react is handling things...very gracefully: http://files.inconsistent.nl/screenshot3.png
14:10:54 usr25 joins (~J@93.red-83-43-59.dynamicip.rima-tde.net)
14:12:23 <Uniaika> merijn: oof, just activate localStorage mate :p
14:12:25 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
14:12:37 <merijn> tbh, the entire page looks like it could just be static html, so I don't understand why the insanity leading to this rendering is even necessary
14:12:42 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
14:14:07 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
14:14:12 <merijn> Uniaika: It's not disabled afaik/can see in the settins, just blocking all not whitelisted cookies
14:17:20 bahamas joins (~lucian@unaffiliated/bahamas)
14:20:05 vilpan parts (~0@212.117.1.172) ()
14:20:28 deviantfero joins (~deviantfe@190.150.27.58)
14:22:14 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
14:22:48 <Uniaika> merijn: it' not a cookie problem, it's localStorage
14:22:51 <Uniaika> another API
14:23:47 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:24:02 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
14:25:26 <merijn> Uniaika: Yes, but Chrome seems to block localStorage when cookies are blocked
14:26:04 <Uniaika> haha
14:26:10 <Uniaika> merijn: try with FF?
14:26:55 Wuzzy joins (~Wuzzy@p57a2e574.dip0.t-ipconnect.de)
14:27:03 aramend_ joins (~aramend@5.186.115.107.cgn.fibianet.dk)
14:27:29 <merijn> Uniaika: I mean, I can make it work by enabling cookies, but I don't actually care enough about their site to enable cookies for it
14:28:02 <merijn> I don't negotiate with terrorists^H^H^H^H^H^H^bad website builders
14:28:09 <hc> haha, true merijn
14:28:11 <Uniaika> topos: ^
14:28:16 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
14:28:33 <danza> about partial functions in Haskell, i changed perspective after reading the "denotational semantics" chapter of the wikibook. I started to think that partial functions can be idiomatically handled in Haskell, and refining a partial definition can be used as a development methodology
14:29:50 <liyang> oh yah half my functions are defined in terms of undefined
14:30:13 <danza> then i started using `undefined` and found it quite powerful
14:30:22 <Uniaika> it's quite powerful during development cycle
14:31:10 × aramend quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 256 seconds)
14:31:26 <danza> it's powerful and idiomatic and totally unsafe. Maybe some of my assumptions were wrong before getting to this
14:31:48 × aramend_ quits (~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 246 seconds)
14:31:52 <liyang> danza: are half of your typesigs `_` too?
14:32:11 <liyang> (Which admittedly is not quite the same as `undefined`.)
14:32:18 <danza> :D nope, yet it's handy once in a while
14:32:55 <merijn> Uniaika: Call me crazy, but my cookie allow list is probably <100 entries and I try and manually audit entries on there every so often, you better be offering some real value before I enable them :)
14:33:22 <merijn> danza: Why undefined, rather than typed holes?
14:33:29 <merijn> > (1 :: Int) + _
14:33:35 <lambdabot> error:
14:33:35 <lambdabot> • Found hole: _ :: Int
14:33:35 <lambdabot> • In the second argument of ‘(+)’, namely ‘_’
14:33:46 <merijn> _ is strictly better than undefined
14:33:57 <Uniaika> undefined compiles ;)
14:33:58 <liyang> keepin' it oldskool
14:34:03 <merijn> Uniaika: So does _
14:34:07 <merijn> Uniaika: -fdefer-typed-holes
14:34:17 <Uniaika> ah, didn't know that one
14:34:24 <merijn> Uniaika: Nobody seems too
14:34:36 <Uniaika> nope
14:34:42 <merijn> I didn't slave away on my first GHC patch a decade ago for my flag to go ignored >.<
14:34:51 <liyang> (But appreciated the reminder, merijn. :)
14:35:28 <liyang> `-fignore-defer-type-holes`
14:35:30 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
14:35:38 <merijn> Uniaika: Hell, if you use -fdefer-typed-holes the resulting crash will give you a source location, unlike undefined!
14:36:02 <merijn> liyang: type holes and typed holes, despite similar names are pretty much unrelated :p
14:36:45 <liyang> I noticed that and wondered if anyone else would, but figured s/type/&d/ wasn't worth the noise.
14:37:47 geekosaur joins (82650c7a@130.101.12.122)
14:37:59 vicfred joins (~vicfred@unaffiliated/vicfred)
14:38:09 mem3r[m] joins (mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx)
14:38:18 <danza> i just use `undefined` in my own experimental code. Typed holes seem indeed like a good alternative for safer code... my point was a different one though... that somehow Haskell embeds both easy bottom production and elimination, so maybe it's just a different way to look at the program where partial functions are still very common but somewhat less scary
14:38:57 <merijn> danza: I mean, GHC Haskell gives you about 2 dozen different unsafe ways to break purity
14:39:07 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
14:40:45 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:41:08 <swarmcollective> Are there safe ways to break purity? :)
14:41:47 <merijn> Depends on your definition of safe, way, break, and purity :p
14:41:56 mizu_no_oto joins (~textual@cpe-66-66-222-11.rochester.res.rr.com)
14:42:47 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
14:42:52 <swarmcollective> My first thought was s/break/escape, but that result seems somehow backwards.
14:43:35 bennofs__ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
14:43:42 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Read error: Connection reset by peer)
14:44:05 <geekosaur> depending on how you think about it, ST enables that.
14:44:16 <Feuermagier> swarmcollective, no. every time you break purity a child is sacrificed by an object orientated programmer
14:44:57 <merijn> I've murdered so many children, then...
14:45:34 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
14:45:53 swarmcollective can't stop laughing (and crying at the potential for that to be somewhat true)
14:45:58 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
14:47:01 <nshepperd2> to break purity safely: just don't mess up :p
14:47:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: http://files.inconsistent.nl/what-are-you-supposed-to-be.jpg)
14:51:45 × bennofs__ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
14:53:47 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
14:54:35 × l8star quits (~l8star@business-90-187-113-149.pool2.vodafone-ip.de) (Remote host closed the connection)
14:55:04 mem3r[m] is now known as mem3r
14:55:30 × mem3r quits (mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx) (Changing host)
14:55:30 mem3r joins (mem3rmatri@unaffiliated/svn)
14:55:30 × mem3r quits (mem3rmatri@unaffiliated/svn) (Changing host)
14:55:30 mem3r joins (mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx)
14:56:40 frozenErebus joins (~frozenEre@94.128.81.133)
14:56:47 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
14:57:54 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
14:58:04 × son0p quits (~son0p@181.58.39.182) (Ping timeout: 240 seconds)
14:58:19 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 256 seconds)
14:58:22 ezzieyguywuf is now known as atezzieyguywuf
14:58:37 <ulidtko|k> hmmmmm
14:58:41 ulidtko|k is now known as ulidtko
14:58:49 <ulidtko> this guy says: https://thma.github.io/posts/2021-01-30-How-QuickCheck-destroyed-my-favourite-theory.html
14:58:56 <ulidtko> > In abstract algebra, a monoid is a set equipped with an associative binary operation and an identity element.
14:58:57 <lambdabot> <hint>:1:20: error: <hint>:1:20: error: parse error on input ‘,’
14:59:18 <ulidtko> which gets me confused
14:59:28 <ulidtko> isn't this the same definition as a group?
14:59:37 DamienCassou joins (damiencass@gateway/shell/matrix.org/x-uynpprvpuvzncoug)
15:00:26 <yushyin> ulidtko: group also has an inverse element
15:00:59 <ulidtko> ahhhh. indeed!
15:01:25 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
15:01:42 × raym quits (~ray@45.64.220.98) (Quit: leaving)
15:01:58 raym joins (~ray@45.64.220.98)
15:02:01 <ulidtko> https://en.wikipedia.org/wiki/Semigroup#/media/File:Magma_to_group4.svg should print myself a sticker with this diagram
15:03:01 atezzieyguywuf is now known as ezzieyguywuf
15:03:04 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
15:06:12 Jd007 joins (~Jd007@162.156.11.151)
15:10:22 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:10:57 miuon joins (44ad48b1@cpe-68-173-72-177.nyc.res.rr.com)
15:11:04 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
15:11:07 × miuon quits (44ad48b1@cpe-68-173-72-177.nyc.res.rr.com) (Client Quit)
15:11:14 netsoundW1 joins (~netsoundW@185.163.110.108)
15:14:01 davama joins (~davama@static-72-89-161-13.nycmny.fios.verizon.net)
15:14:46 × mizu_no_oto quits (~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
15:14:51 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
15:17:00 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
15:17:33 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:17:40 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
15:20:08 juri_ joins (~juri@178.63.35.222)
15:21:36 × davama quits (~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Quit: Leaving)
15:23:07 renzhi joins (~renzhi@2607:fa49:6500:6f00::1e43)
15:27:04 vchlup joins (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
15:27:18 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:29:24 jneira joins (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64)
15:32:22 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
15:34:09 × conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds)
15:35:01 conal joins (~conal@107.181.166.164)
15:35:20 <hpc> that would make a neat physical object to have around too
15:35:55 <hpc> as a cube with some representative structures at each corner
15:36:39 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:37:21 whitten joins (c75a9d0b@199.90.157.11)
15:37:46 ulidtko|k joins (~ulidtko@31.133.98.210)
15:38:09 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
15:39:02 <whitten> hello #Haskell. I've been told that the programming language Haskell provides backtracking similarly to the Prolog programming language.   How would I find a discussion of this, and the limits of it ?
15:39:27 conal_ joins (~conal@64.71.133.70)
15:39:38 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 264 seconds)
15:40:08 thc202 joins (~thc202@unaffiliated/thc202)
15:40:10 × conal quits (~conal@107.181.166.164) (Ping timeout: 265 seconds)
15:40:43 × ulidtko quits (~ulidtko@194.54.80.38) (Read error: Connection reset by peer)
15:41:27 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
15:41:41 <whitten> I've also been told that Haskell can do backtracking but only by Haskell implementing a prolog interpreter
15:42:16 <whitten> Does anyone know about where to learn about Haskell backtracking ?
15:42:16 <lortabac> whitten: in Haskell you can emulate non-determinism with lists
15:43:01 <lortabac> but contrarily to Prolog, it's not built-in behavior
15:43:45 × ixaxaar quits (~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
15:44:08 <whitten> so if you have an emulation of non-determinism with a list, can you have a list which is lazy evaluated ?  Maybe with the end of the list containing a "future continuation" to calculate more answers if called ?
15:44:30 <lortabac> yes, laziness is what allows emulating non-determinism in Haskell
15:45:43 × Ishutin_ quits (~Ishutin@178-164-208-197.pool.digikabel.hu) (Remote host closed the connection)
15:45:45 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
15:45:52 <lortabac> whitten: this is an article that I wrote on my company's blog, you can find some examples there https://medium.com/vptech/a-practical-introduction-to-constraint-programming-2037c91833ba
15:46:09 <sclv> whitten: https://hackage.haskell.org/package/logict
15:51:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
15:51:43 <lortabac> whitten: that said, you cannot do logic programming easily in Haskell (unless you implement Prolog as a library, but that's the case for any language)
15:53:04 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
15:53:13 son0p joins (~son0p@181.58.39.182)
15:54:26 <whitten> Wow!   Thanks for the links (GRIN)
15:54:31 × Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Remote host closed the connection)
15:54:44 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
15:56:36 × borne quits (~fritjof@83.135.92.91) (Ping timeout: 265 seconds)
15:57:18 × usr25 quits (~J@93.red-83-43-59.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
15:57:23 ixaxaar joins (~ixaxaar@49.207.197.94)
15:58:10 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
15:58:16 minoru_shiraeesh joins (~shiraeesh@5.101.59.132)
16:00:11 × AmitLevy[m] quits (amitmostly@gateway/shell/matrix.org/x-nixsvyyufgklkpzb) (Quit: Idle for 30+ days)
16:00:32 Rudd0 joins (~Rudd0@185.189.115.103)
16:06:43 × kuribas quits (~user@ptr-25vy0i94cz0gl50t8i4.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
16:08:16 <whitten> so you don't have all the extra-logical things like CUT (!) as it interacts with backtracking ?
16:08:55 × pricly_yellow quits (~pricly_ye@static.90.189.158.212.sinor.ru) (Ping timeout: 272 seconds)
16:09:18 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:14:29 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
16:16:00 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
16:16:18 frozenErebus joins (~frozenEre@94.128.81.133)
16:16:20 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
16:16:43 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:17:06 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
16:19:23 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
16:20:42 aggin joins (~ecm@103.88.87.92)
16:21:33 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 264 seconds)
16:22:42 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
16:24:51 <pja> Haskell doesn’t have anything equivalent to cut built in to the language.
16:24:57 × CrazyPython quits (~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) (Remote host closed the connection)
16:25:02 <c_wraith> whitten: not within list. list is not the greatest form of non-determinism, though. Using it results in a depth-first search, which may be quite bad for your particular problem.
16:25:13 <pja> You’d have to write a Prolog style evaluator yourself.
16:26:42 <c_wraith> It looks like LogicT provides some related tools
16:26:54 davama joins (~davama@static-72-89-161-13.nycmny.fios.verizon.net)
16:27:15 <c_wraith> along with using a non-determinism strategy that is less depth-first
16:28:49 hiptobecubic joins (~john@unaffiliated/hiptobecubic)
16:28:58 <pja> There’s https://hackage.haskell.org/package/monoid-absorbing-0.1.0.4/docs/Data-List-Cut.html
16:30:05 × cmcma20 quits (~cmcma20@l37-192-2-125.novotelecom.ru) (Remote host closed the connection)
16:31:23 × davama quits (~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Client Quit)
16:31:29 <c_wraith> That package is pretty old - it predates the AMP
16:31:43 davama joins (~davama@static-72-89-161-13.nycmny.fios.verizon.net)
16:31:45 × minoru_shiraeesh quits (~shiraeesh@5.101.59.132) (Ping timeout: 264 seconds)
16:31:54 <c_wraith> and hasn't been updated since
16:32:30 <c_wraith> It has a (Functor m, Monad m) constraint listed in the docs!
16:32:59 <pja> Wow. That is old!
16:33:22 <pja> Even older: this paper from FLOPS95 :) https://www.cs.york.ac.uk/plasma/publications/pdf/MatsushitaRuncimanFLOPS95.pdf
16:33:51 <pja> on implementing Prolog features in Haskell; contains some discussion of various interpretations of Cut & how they show up in functional code.
16:33:59 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
16:36:05 juuandyy joins (~juuandyy@90.106.228.121)
16:36:21 aveltras joins (uid364989@gateway/web/irccloud.com/x-vsagpjpzhwerujij)
16:36:34 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:37:29 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
16:38:49 × jamm__ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:39:01 × aggin quits (~ecm@103.88.87.92) (Quit: WeeChat 3.0.1)
16:40:47 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
16:41:40 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-qvbndnpfxrzxkdhr)
16:42:26 saitamaplus joins (uid272474@gateway/web/irccloud.com/x-temxuccrtcofhywg)
16:43:19 revprez_stg joins (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
16:43:29 × revprez_stg quits (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Client Quit)
16:44:06 × vchlup quits (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Remote host closed the connection)
16:44:31 vchlup joins (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
16:46:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:49:08 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
16:51:21 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
16:55:16 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:56:37 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
16:56:38 xcmw joins (~textual@dyn-72-33-2-47.uwnet.wisc.edu)
16:57:57 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
16:59:59 × whitten quits (c75a9d0b@199.90.157.11) (Quit: Connection closed)
17:00:12 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
17:00:34 whitten joins (c75a9d0b@199.90.157.11)
17:02:40 geekosaur joins (42d52137@66.213.33.55)
17:03:28 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
17:03:30 × whitten quits (c75a9d0b@199.90.157.11) (Client Quit)
17:04:11 <geekosaur> isn't there a Haskell-like logic language, though? (Mercury I think?)
17:04:16 <Franciman> yes
17:04:21 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
17:06:10 alx741 joins (~alx741@186.178.110.40)
17:07:35 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:08:05 × lawid quits (~quassel@dslb-090-186-199-090.090.186.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
17:09:28 lawid joins (~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de)
17:09:38 electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
17:12:40 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
17:12:45 × LKoen_ quits (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
17:14:06 ania123 joins (5e89ad7c@94.137.173.124)
17:14:31 × ania123 quits (5e89ad7c@94.137.173.124) (Quit: Connection closed)
17:14:51 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:15:02 giogiogio joins (5e89ad7c@94.137.173.124)
17:15:45 <giogiogio> hi all
17:18:05 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
17:19:30 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
17:21:25 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer)
17:22:25 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
17:22:37 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
17:23:24 mem3r parts (mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx) ("User left")
17:24:58 <dolio> There was Curry, too, which was a sort of hybrid, I think.
17:25:20 <giogiogio> is Curry alive?
17:25:29 <dolio> Not that I know of.
17:25:39 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
17:26:03 <giogiogio> :)
17:26:08 <giogiogio> :(
17:26:34 <sclv> Haskell Brooks Curry (September 12, 1900 – September 1, 1982)
17:27:00 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
17:27:07 <sclv> oh lmao i didn't know birkhoff was his advisor!!
17:27:49 <sclv> birkhoff advised an entire freaking generation of basic mathematics
17:27:51 <sclv> stunning
17:28:00 × conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
17:29:15 × vchlup quits (~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 272 seconds)
17:30:25 × rajivr quits (uid269651@gateway/web/irccloud.com/x-gpwnjnvfhvelcuhe) (Quit: Connection closed for inactivity)
17:30:29 conal joins (~conal@64.71.133.70)
17:33:07 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
17:34:22 × tabemann quits (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 260 seconds)
17:41:02 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
17:46:41 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Remote host closed the connection)
17:46:55 frozenErebus joins (~frozenEre@94.128.81.133)
17:48:17 tremon joins (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl)
17:49:09 bahamas joins (~lucian@unaffiliated/bahamas)
17:51:33 × juuandyy quits (~juuandyy@90.106.228.121) (Ping timeout: 264 seconds)
17:51:45 minoru_shiraeesh joins (~shiraeesh@5.101.59.127)
17:52:09 × nckx quits (~nckx@tobias.gr) (Ping timeout: 264 seconds)
17:53:38 juuandyy joins (~juuandyy@90.106.228.121)
17:54:34 Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi)
17:57:36 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
17:59:28 × danza quits (~francesco@151.53.65.193) (Quit: Leaving)
18:05:34 Synthetica joins (uid199651@gateway/web/irccloud.com/x-lrtvuqebgbvyegmr)
18:06:27 × Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
18:07:09 × Major_Biscuit quits (~Major_Bis@x065156.citg-m.tudelft.nl) (Ping timeout: 264 seconds)
18:09:18 × bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving)
18:09:27 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
18:10:27 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
18:10:42 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
18:10:42 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:10:49 usr25 joins (~J@93.red-83-43-59.dynamicip.rima-tde.net)
18:12:43 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
18:15:07 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
18:17:17 × usr25 quits (~J@93.red-83-43-59.dynamicip.rima-tde.net) (Quit: Bye)
18:19:11 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
18:19:17 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:f87d:231f:92a3:5029) (Ping timeout: 272 seconds)
18:20:06 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
18:20:07 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
18:20:49 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Client Quit)
18:22:21 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
18:22:29 × hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
18:24:35 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 256 seconds)
18:26:16 <my_name_is_not_j> Hello, I wanted to check if my understanding of this syntax was correct; does `import Module.Name DataType(..)` just import all of the constructors of `DataType` or does it do something more/something else? I tried to google this using "import haskell two dots" but I didn't get any results..
18:26:42 <dminuoso> my_name_is_not_j: constructors, instances and fields
18:26:44 <my_name_is_not_j> * Hello, I wanted to check if my understanding of this syntax was correct; does `import Module.Name (DataType(..))` just import all of the constructors of `DataType` or does it do something more/something else? I tried to google this using "import haskell two dots" but I didn't get any results..
18:28:29 <my_name_is_not_j> By "instances", do you mean the type classes that the data type inherits from? So if I import a `data` that is a type instance of `Eq`, `Eq` is automatically imported too? (actually this might be a bad example since `Eq` is probably included in Prelude)
18:28:42 <lyxia> my_name_is_not_j: The Haskell Report has that kind of information https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-1010005.3
18:29:42 × giogiogio quits (5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
18:30:19 <dminuoso> my_name_is_not_j: All instances from the module.
18:30:32 <geekosaur> my_name_is_not_j, actually instances are imported regardless of qualification or listing. and that means any typeclass instances declared in the imported module
18:31:03 <my_name_is_not_j> But `(..)` does not automatically also import all the parent type classes? So I noticed if a type class implements `Default`, I had to import `def` separately. Is this unnecessary or did I do something wrong?
18:31:10 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
18:31:16 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 265 seconds)
18:31:27 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
18:31:39 hyiltiz joins (~quassel@31.220.5.250)
18:31:39 × hyiltiz quits (~quassel@31.220.5.250) (Changing host)
18:31:39 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
18:32:31 <my_name_is_not_j> I guess I'm just not entirely sure what the word "instances" means in this context. I thought it means parent type classes, but maybe I am using the wrong vocabulary
18:32:41 <my_name_is_not_j> * I guess I'm just not entirely sure what the word "instances" means in this context. I thought it meant parent type classes, but maybe I am using the wrong vocabulary
18:33:14 <geekosaur> typeclasses are not OO
18:33:16 shapr awakens
18:33:23 <dminuoso> my_name_is_not_j: A typeclass is "a bag of types", or "a protocol/interface"
18:33:47 shapr stuffs more types in his bag
18:33:55 <dminuoso> my_name_is_not_j: An `instance declaration` says that a particular type belongs to that class (think of the word class as "set" for which a type can belong to), or alternatively, it conforms to the said protocol/interface.
18:34:00 <koz_> shapr is sneaking out with a Santa sack of types.
18:34:34 <dminuoso> Under the hood, an instance in GHC is compiled into a record of functions/values. So importing instances amounts to bringing these records into scope.
18:35:15 <dminuoso> Say you want to compare two things `a` and `b` of type `T` for equality, then you need to have the `instance Eq T` in scope in order to use `a == b`
18:35:57 nckx joins (~nckx@tobias.gr)
18:37:41 l8star_ joins (~l8star@business-90-187-113-149.pool2.vodafone-ip.de)
18:39:28 jamm_ joins (~jamm@unaffiliated/jamm)
18:41:26 <my_name_is_not_j> Under the hood, these instances are records of functions/value, so in this case is it okay to think of it like Eq has one big record indicating which things it is an interface to, and once you import `T(..)`, this record is updated to add `T` to it?
18:42:28 <dminuoso> Yeah, that sounds adequate
18:42:33 <my_name_is_not_j> Maybe more like the "set" of types that `Eq` has been implemented with is added to?
18:42:36 <my_name_is_not_j> OK
18:42:43 <dminuoso> Yes! That last summary is spot on
18:43:03 <dminuoso> i.e. "Maybe more like the "set" of types that `Eq` has been implemented with is added to"
18:43:56 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
18:43:57 × renzhi quits (~renzhi@2607:fa49:6500:6f00::1e43) (Quit: WeeChat 2.3)
18:45:11 <my_name_is_not_j> OK, and when you said `T(..)` also imports all of its "fields", do you mean the getters for the Constructor? Usually from what I have seen, Constructors are like one giant record, and each named field acts as a getter. So does importing all the "fields" mean you are importing all the getters for the fields in the record?
18:45:33 × jneira quits (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Ping timeout: 264 seconds)
18:45:48 <my_name_is_not_j> I guess "getter" is more OOP terminology lol...
18:45:49 <dminuoso> my_name_is_not_j: Interesting bit, if we look at ZF set theory, then the term "class" is a sort of "synonym" to "set" (its used to so we can have "classes of sets", while forbidding sets to contain sets and classes to contain classes)
18:46:12 <dminuoso> And it's possible that `class` is used in a similar sense in Haskell
18:46:31 <koz_> dminuoso: Do Haskell types not form a set or something?
18:46:59 <koz_> I guess 'Type' is not disjoint from any of its members.
18:47:08 <dminuoso> In Hask, types are sets yeah
18:47:20 <dminuoso> (that is, Hask is a subcategory of Set)
18:47:26 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:47:31 <koz_> Yeah, but sets don't form a set.
18:47:37 <koz_> Something something Russel's Paradox.
18:47:45 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
18:47:51 <dminuoso> my_name_is_not_j: Yes, "the getters for the constructors". Note, we can also update records using fields, and we can construct them with fields too.
18:48:15 <dminuoso> koz_: Right. That's pretty much why ZF set theory was created.
18:48:29 <dminuoso> (Next to type theory, both designed to avoid russels paradox)
18:48:42 <boxscape> koz_ there is no set of all sets, but there may not be one type for every set, so there may yet be a set of all types
18:48:57 <koz_> boxscape: Figures.
18:49:03 <koz_> Russel's Paradox is why we can't have nice things.
18:49:10 <boxscape> (in particular, algebraic data types are only countably infinite)
18:49:18 <my_name_is_not_j> Oh nice, I've never heard of ZF set theory but I have done Peano arithmetic before (seems like PA is referenced in ZF's wikipedia article)
18:49:38 <my_name_is_not_j> ZF set theory sounds like a stronger version of PA
18:49:39 <dminuoso> my_name_is_not_j: For instance, if we have `data User = User { name :: Text, age :: Int }` then we can create a value using `f = User { name = "Robert", age = 17 }`
18:49:39 <boxscape> koz_ I imagine the whole `Type :: Type` thing breaks everything though anyway
18:50:42 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 240 seconds)
18:50:45 <koz_> boxscape: Yeah, that's what I meant when I said that Type is not disjoint from any of its elements.
18:50:52 <dminuoso> my_name_is_not_j: Or, alternatively, we can chance a records field like this: `f user = user{ age = 19 }`
18:50:53 <boxscape> ah, right, makes sense
18:50:58 <dminuoso> my_name_is_not_j: So, we call them "fields"
18:51:00 <koz_> Which breaks... some axiom of ZFC I can't be bothered to look up right now.
18:51:17 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
18:51:26 <dminuoso> boxscape: Well, its well known that TypeInType gives you an unsound logic.
18:51:38 <dminuoso> So all bets are off, anyway. :P
18:51:59 <boxscape> dminuoso I'm not sure anyone has actually proven that is the case *in haskell*, though I would certainly be very surprised if it wasn't
18:52:05 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
18:52:59 <boxscape> (and of course haskell is unsound in other ways as well)
18:53:37 <dminuoso> boxscape: Of course someone has.
18:53:46 <koz_> boxscape: The fact that Haskell is unsound in other ways is one of the reasons Type :: Type got adopted.
18:54:01 <koz_> (not the primary or exclusive one, but I recall hearing it as a counter-argument to its unsoundness)
18:54:07 <my_name_is_not_j> thanks dminuoso! I think I get it now :)
18:54:21 <boxscape> yeah, goldfire wrote that in his thesis I believe
18:54:29 swarmcollective is reminded of the misery encountered when trying to mistakenly reinvent pattern matching using the typeOf function.
18:54:40 <dminuoso> Well, he actually cited another publication that proved it
18:54:56 <dminuoso> ean-Yves Girard. Interprétation fonctionnelle et élimination des coupures del’arithmétique d’ordre supérieur. PhD thesis, Université Paris 7, 1972
18:55:56 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
18:55:58 <boxscape> dminuoso do you have the page number of the thesis handy where cites it?
18:56:09 <koz_> Of course it's Girard, who else.
18:59:15 fresheyeball joins (~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com)
18:59:44 hexagenic joins (~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815)
18:59:48 <boxscape> (main discussion is on page 63 apparently)
19:00:07 <boxscape> interestingly he also writes "Despite the questionable reputation of the Type:Type axiom, languages with this feature have been proved type-safe for some time."
19:00:22 <boxscape> (https://cs.brynmawr.edu/~rae/papers/2016/thesis/eisenberg-thesis.pdf)
19:00:43 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
19:01:42 hololeap joins (~hololeap@unaffiliated/hololeap)
19:01:51 <koz_> boxscape: Does that include dependently-typed ones?
19:01:55 × roconnor quits (~roconnor@host-104-157-194-235.dyn.295.ca) (Remote host closed the connection)
19:02:12 roconnor joins (~roconnor@host-104-157-194-235.dyn.295.ca)
19:02:19 <dminuoso> boxscape: "type safety" is something different entirely than an unsound logic
19:02:22 <boxscape> koz_ he cites "Luca Cardelli. A polymorphicλ-calculus with Type:Type.", which doesn't sound dependently typed I suppose
19:02:26 <boxscape> dminuoso ah, interesting
19:03:00 <minoru_shiraeesh> boxscape: what does "being proved for some time" mean? is something is proved, it is proved from that time till the eternity
19:03:04 <dminuoso> boxscape: Pierce defines type safety as progress + preservation, for instance.
19:03:27 <dminuoso> boxscape: So Id have to read the context first, what Eisenberg meant
19:03:33 berberman joins (~berberman@unaffiliated/berberman)
19:03:41 <minoru_shiraeesh> * if something is proved, it is proved from that time till the eternity
19:03:55 <dminuoso> (Where progress means well-typed terms are not stuck, and preservation means a one-step evaluation gives another well typed term)
19:04:14 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:04:45 <koz_> dminuoso: Is the 'type safety = progress + preservation' the generally-accepted definition?
19:04:47 <dmwit> Pierce doesn't define type safety as progress+preservation, and in fact frequently rants about people that believe that's the definition. Progress+preservation is one proof technique for showing that a language is type-safe.
19:04:56 <boxscape> minoru_shiraeesh I imagine he worded it this way to indicate that it was proved type-safe for some languages in the past and may yet be proved type safe for others
19:05:01 <koz_> Lol, never mind, got my answer.
19:05:38 <Franciman> +1 dmwit
19:06:05 <koz_> dmwit: How does Pierce define it?
19:06:21 <dminuoso> dmwit: Mmm, perhaps the chapter name "Type Safety = proress + preservation" is really misleading then.
19:06:35 <dmwit> A well-typed program doesn't go wrong. (The meaning of "go wrong" varies from language to language, just like "well-typed" does.)
19:06:36 <dminuoso> dmwit: I do understand what you're saying.
19:06:48 <Franciman> in those chapters go wrong = get stuck
19:06:50 <Franciman> usually
19:07:11 <dmwit> I guess it's also possible that Pierce rants about it now because it was a mistake he cured himself of in the past. ^_^
19:07:43 <dminuoso> dmwit: And in fact, Pierce has a footnote "The slogan “safety is progress plus preservation” (using a canonical forms lemma) was articulated by Harper; a variant was proposed by Wright and Felleisen (1994)."
19:07:52 <dminuoso> So it's confusing at least.
19:08:08 <dmwit> Right. Usually you first define what terms are values. Then you say that a well-typed term always keeps having a possible evaluation step unless it's already a value.
19:08:25 <Franciman> and it does not change types :P
19:08:36 <dmwit> Changing types might be okay!
19:08:45 <Franciman> isn't it the preservation part?
19:09:05 <dmwit> It is. The whole claim I'm making is that preservation is not part of the definition.
19:09:15 <dminuoso> So, asking something not-so-obvious.. what exactly does "well-typed" mean now?
19:09:21 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
19:09:28 <Franciman> there is a proof that it has a type
19:09:33 <dmwit> Usually "well-typed" means "there is a typing judgment".
19:09:34 <Franciman> according to rules
19:10:02 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
19:10:04 <dminuoso> dmwit: Ah! It was my bad, Pierce is very inconsistent with using a hyphen here.
19:10:20 <dminuoso> `A term t is typable (or well typed) if there is some T such that t : T`
19:10:45 <dminuoso> brrr. I need a pdf reader with better fuzzy searching
19:12:07 <lyxia> I wonder if all this talk of terms and types and stuckness might be clouding things conceptually. well-typed = the compiler has a built-in static analysis and that analysis run on your program says OK ; safety = the static analysis rules out a certain class of failures.
19:12:45 <dmwit> mmm
19:13:02 <dmwit> Minor nitpick: I think there are systems where typability is not decidable.
19:13:16 <lyxia> That's fair
19:13:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:13:26 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
19:13:36 <dmwit> But yes, the big thrust is right.
19:14:37 <minoru_shiraeesh> isn't unit (I mean `()`) an example of Type:Type thing?
19:15:25 <dmwit> Not... really?
19:15:52 <dmwit> I mean, Type is the main example of Type:Type.
19:15:55 geekosaur joins (42d52137@66.213.33.55)
19:16:36 <dmwit> Maybe the confusion is because () :: ()? But then it stops there; () :: (() :: Type).
19:16:46 <koz_> Terms are not types (yet)
19:16:47 <minoru_shiraeesh> so unit is something else: it is a type with only one value
19:16:55 <dmwit> It's just syntactic overloading. You would have the same language if you named them UnitComputation and UnitType.
19:17:07 <minoru_shiraeesh> they just look the same in text form
19:17:12 <dmwit> right
19:17:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
19:18:44 <electricityZZZZ> so when i read that seL4 was hand-transcribed from haskell to C, can somebody give me an idea of what was done?
19:19:05 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
19:19:30 × fissureman quits (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (Ping timeout: 246 seconds)
19:20:03 fissureman joins (~quassel@c-73-163-84-25.hsd1.dc.comcast.net)
19:21:00 <dmwit> Oh, and scrolling back a bit: set theory is not sufficient for making a model of Hask-the-category. Polymorphism screws everything up.
19:22:45 <dmwit> (Intuitive explanation: the type `forall a. a -> a` would have to be, like, a function that took a set and produced the identity function for that set. But if you could have that, then you could have the set of all sets just by taking the first part of each pair in that outer function.)
19:23:13 <dmwit> (You have to be more careful than that, obviously; that only shows that *one* way of trying to embed Hask in SET doesn't work. But it has been proven that no way can exist.)
19:25:00 <minoru_shiraeesh> if you decide to represent types with tuples and then you represent the empty tuple's type with the empty tuple itself, then it would be both a value and a type at the same time
19:25:27 × juuandyy quits (~juuandyy@90.106.228.121) (Ping timeout: 246 seconds)
19:25:43 <dmwit> Suppose I agree. Then what?
19:25:57 <monochrom> "That way lies madness."
19:26:52 <dmwit> Just because the same set represents both a term and that term's type doesn't mean that the type-version's type is itself.
19:26:56 × LKoen quits (~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
19:27:06 <minoru_shiraeesh> idk, it's theoretically possible to make unit a Type:Type thing
19:27:14 juuandyy joins (~juuandyy@90.106.228.121)
19:27:41 puke joins (~vroom@217.138.252.197)
19:27:53 <dmwit> Sure, we could do it by defining () = Type, e.g.
19:28:01 <minoru_shiraeesh> or maybe I'm confusing the abstract notion of type with it's low-level representation, which is irrelevant
19:28:01 <dminuoso> minoru_shiraeesh: I think you're just observing the basis of singletons.
19:28:02 <dmwit> But that's not the way Haskell works.
19:28:14 <dminuoso> Namely that if you have a singleton value with a singleton type, you can go between them seamlessly
19:28:24 <dminuoso> (i.e. there's a sort of cross-universe isomorphism)
19:28:34 × ixaxaar quits (~ixaxaar@49.207.197.94) (Remote host closed the connection)
19:28:35 boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
19:28:45 × hexagenic quits (~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815) (Quit: WeeChat 1.9.1)
19:28:48 <dminuoso> (err, if you have a singleton value, then you can go towards the type and back again)
19:28:57 <dminuoso> but that does not make the value the type
19:29:46 <dmwit> Challenge problem: you want to have a type-level data structure and a term-level representation of it. What goes wrong if you term-level representation has more than just one inhabitant that represents the same type (but all the types have at least one representation)?
19:30:17 is_null joins (~jpic@pdpc/supporter/professional/is-null)
19:30:43 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
19:30:57 × alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
19:31:14 <dmwit> e.g. `data SBool a where SFalse :: SBool False; STrue :: SBool True; SFileNotFound :: SBool False`
19:31:33 alexelcu joins (~alexelcu@142.93.180.198)
19:32:04 × juuandyy quits (~juuandyy@90.106.228.121) (Ping timeout: 256 seconds)
19:32:17 <merijn> dmwit: Is this "the map is not the territory" for dependent types? >.>
19:32:44 giogiogio joins (5e89ad7c@94.137.173.124)
19:32:46 <dmwit> I like that interpretation! ^_^
19:33:36 <merijn> I wasn't entirely sure it made sense, but then I decided I'm too tired to care whether it was wise, deep insight or meaningless gobbledy-gook
19:33:46 whitten joins (c75a9d0b@199.90.157.11)
19:34:18 <merijn> It can go on monochrom's collection page :p
19:34:56 <dmwit> Anyway, AFAIK nothing really "goes wrong". So I think we should talk about "injections" (or "surjections", depending on which way you think of the mapping going) instead of "singletons".
19:36:01 <boxscape> what goes wrong if you're missing a value?
19:36:05 <dmwit> "Singletons" does have the advantage of being pretty unambiguous, tho
19:36:20 hexagenic joins (~mattias@2001:2002:51e0:74c9:2d9e:2414:5749:9a98)
19:36:23 <dmwit> If you're missing a value, it's possible that you can't reflect the result of some type-level computation back to the term level.
19:36:30 <boxscape> I see
19:38:44 <merijn> boxscape: Realistically, what happens is that you hate yourself for attempting to go the hasochism route :p
19:38:55 <boxscape> yes I can see that happening
19:39:59 <merijn> boxscape: That's a classic side-effects of hasochism/singletons ;)
19:42:15 <dmwit> that too =P
19:42:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
19:43:25 <Uniaika> merijn: can I get your feedback on something?
19:43:44 <merijn> Uniaika: "It Depends" :p
19:44:50 <Uniaika> merijn: https://gitlab.haskell.org/ghc/ghc/-/issues/19358
19:46:53 <merijn> Uniaika: iirc (but, don't like, bet your house on it) all the input output functions convert from platform specific line endings to \n (and \n to platform specific newlines) on input/output
19:47:16 <Uniaika> thank fuck I don't have a house then :')
19:47:22 <Uniaika> thanks I'll try to see what getLine does
19:47:26 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
19:47:26 <Uniaika> oh wait
19:47:30 <Uniaika> I can ask on #ghc instead
19:47:43 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
19:47:45 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
19:48:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
19:50:06 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
19:50:06 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
19:50:06 mouseghost joins (~draco@wikipedia/desperek)
19:50:45 <monochrom> By default, the I/O system shields you from "newline varies with platform".
19:51:32 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
19:51:46 <monochrom> If you getChar you will get just one \n. If you want to output a newline you just write one \n. The RTS translates for you.
19:51:57 <monochrom> This is not even GHC-specific. This is a Haskell Report requirement.
19:52:23 <monochrom> unlines inserts \n only, and this is exactly right, you would not want otherwise.
19:52:56 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
19:53:17 giogiogio2 joins (5e89ad7c@94.137.173.124)
19:54:54 rj joins (~x@gateway/tor-sasl/rj)
19:56:22 × giogiogio quits (5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
19:57:02 <monochrom> Especially when you use "unlines" for "interact".
19:57:16 __minoru__shirae joins (~shiraeesh@109.166.56.65)
19:57:56 × minoru_shiraeesh quits (~shiraeesh@5.101.59.127) (Ping timeout: 240 seconds)
19:58:28 <monochrom> The meta comment is, as usual, I'm surprised that the poster did not first think "let me actually test getChar or interact on Windows to see if \r\n actually slips through".
20:01:49 deviantfero joins (~deviantfe@190.150.27.58)
20:02:28 <xsperry> IIRC it works the same as C, when file handle is set to text mode \r\n is converted to \n
20:02:33 <xsperry> in C*
20:02:59 <geekosaur> yes. and you use the "b" modifier with fopen or O_BINARY with open to not do that translation
20:07:05 × knupfer quits (~Thunderbi@i5E86B4CE.versanet.de) (Ping timeout: 240 seconds)
20:08:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
20:10:02 <__minoru__shirae> lol to hasochism
20:10:18 <__minoru__shirae> does that mean "haskell masochism"?
20:10:20 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:11:16 <monochrom> oh heh
20:12:06 <merijn> __minoru__shirae: Yes, but also no
20:12:33 <merijn> __minoru__shirae: Specifically, it's referring to a paper called "Hasochism" that showed how to do "improvised dependent types" in GHC Haskell
20:12:54 <merijn> __minoru__shirae: But that name obviously derived from the masochism necessary to go through approach :p
20:13:05 × raym quits (~ray@45.64.220.98) (Ping timeout: 240 seconds)
20:13:19 <merijn> __minoru__shirae: http://homepages.inf.ed.ac.uk/slindley/papers/hasochism.pdf
20:14:12 <merijn> Or...in the words of Jeff Goldblum
20:14:30 <merijn> "Your scientists were so preoccupied with whether they could, they forgot to stop and think whether they should" :p
20:16:52 <__minoru__shirae> now somebody should write a paper about haskell hedonism
20:17:13 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
20:17:42 × lawid quits (~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de) (Quit: lawid)
20:18:01 <__minoru__shirae> no, hedonism is not the opposite of masochism, it's the opposite of ascetism
20:18:02 × fresheyeball quits (~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com) (Quit: WeeChat 2.9)
20:18:25 <__minoru__shirae> haskell sadism? no
20:18:43 <sm[m]> Haskell: Wearing the Velvet Shirt
20:18:48 <geekosaur> haskell sadism is beam :)
20:19:01 <Uniaika> haha
20:19:08 <Uniaika> koz_ would agree
20:19:30 <koz_> Don't even get me started.
20:19:43 lawid joins (~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de)
20:20:10 <merijn> No offense to the authors, but I literally can't fathom the kind of person who would look at beam or squeal and go "ah, yes, now here's an API well-suited to robust and easily maintained software"
20:20:39 <merijn> Like...are they martians who go lost on earth and failing to conceal their alien thinking from us? >.>
20:21:13 <merijn> oh, wait
20:21:15 <Uniaika> Squeal, I undersetand
20:21:21 <merijn> Are they maybe homesick C++ programmers?
20:21:25 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
20:21:26 <Uniaika> we used it for one service, at $previous_job
20:21:44 <Uniaika> it encapsulates the SQL semantics and is very useful for *one particular type of business critical query*
20:22:06 <Uniaika> if you stop halfway up, like any other "type-safe sql generator", there is no gain
20:22:15 <Uniaika> I'd rather use postgresql-simple and write actual tests
20:22:55 <merijn> Uniaika: My real life actions suggestion I'd rather use x-simple and not write tests xD
20:23:37 <Uniaika> merijn: and you're paid for that? lucky you!
20:24:17 <merijn> I am not >.>
20:26:48 howdoi joins (uid224@gateway/web/irccloud.com/x-xihpryoksnskstor)
20:36:05 × aveltras quits (uid364989@gateway/web/irccloud.com/x-vsagpjpzhwerujij) (Quit: Connection closed for inactivity)
20:42:44 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
20:42:51 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
20:43:43 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
20:45:59 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
20:47:25 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:47:44 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
20:48:09 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
20:51:25 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
20:53:28 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
20:56:58 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
20:58:01 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
20:58:15 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
20:58:16 <hololeap> cabal question: would a dependency "ghcide <= 0.7.3" reject ghcide-0.7.3.0 ? this is what i just ran into
20:58:43 <sclv> i think that the version numbers are such that x.0 is greater than x
20:58:50 <geekosaur> yeh
20:59:05 <geekosaur> it compares them lexically
20:59:06 <sclv> don't think of it as decimals, think of it as "dot separated integers"
20:59:19 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
20:59:24 <hololeap> ok, i'll let the maintainer know. just checking
20:59:46 <sclv> this arises from not wanting them to be the same, (i.e. have equality be strict) and then you have to pick _some_ ordering and this one makes more sense than the alternative
21:02:17 son0p joins (~son0p@181.136.122.143)
21:04:22 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
21:04:34 son0p_ joins (~son0p@181.136.122.143)
21:04:45 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
21:06:54 × son0p quits (~son0p@181.136.122.143) (Ping timeout: 265 seconds)
21:08:12 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
21:09:18 renzhi joins (~renzhi@2607:fa49:6500:6f00::1e43)
21:09:25 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
21:12:25 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:12:48 × mauro^ quits (mauro@ip98-184-89-2.mc.at.cox.net) ()
21:15:40 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
21:16:16 × rj quits (~x@gateway/tor-sasl/rj) (Quit: rj)
21:16:37 rj joins (~x@gateway/tor-sasl/rj)
21:19:02 × fendor_ quits (~fendor@77.119.131.42.wireless.dyn.drei.com) (Remote host closed the connection)
21:19:26 fendor_ joins (~fendor@77.119.131.42.wireless.dyn.drei.com)
21:22:56 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
21:24:46 × boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
21:27:35 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
21:27:43 × hexagenic quits (~mattias@2001:2002:51e0:74c9:2d9e:2414:5749:9a98) (Quit: WeeChat 1.9.1)
21:34:23 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:37:07 _bo joins (~bo@178.150.122.153)
21:41:02 <giogiogio2> hi all
21:41:09 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
21:41:17 <giogiogio2> f : R -> R
21:41:24 <giogiogio2> x : int
21:41:28 <Franciman> hi gio^{3}2
21:41:38 <giogiogio2> f(x) : R
21:41:40 <giogiogio2> ok?
21:41:45 <giogiogio2> since Int  R
21:41:53 <Franciman> I can not see the simbol
21:41:58 <Franciman> Int is a subtype of R ?
21:42:03 <giogiogio2> yes
21:42:06 <Franciman> ok ^^
21:42:21 <ephemient> ℤ⊂ℝ
21:42:52 <giogiogio2> right
21:43:10 <giogiogio2> f : R -> R
21:43:23 <giogiogio2> x : S
21:43:41 × styledash quits (~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat)
21:43:41 <giogiogio2> S ~ R  where ~ is similarity relation
21:43:48 × alx741 quits (~alx741@186.178.110.40) (Quit: alx741)
21:43:53 <giogiogio2> is, f(x) well typed?
21:44:21 styledash joins (~styledash@157.230.173.136)
21:46:35 usr25 joins (~usr25@unaffiliated/usr25)
21:48:27 × dysfigured quits (~dysfigure@li490-89.members.linode.com) (Quit: I hate quit messages.)
21:49:26 <giogiogio2> Franciman ?
21:49:54 <Franciman> hi gio^{3}2
21:50:06 <Franciman> uat is similarity relation?
21:50:18 heatsink joins (~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
21:50:35 <giogiogio2> assume, it is reflexive and symmetric
21:50:49 <giogiogio2> assume, that two types are "close"
21:50:50 <Franciman> but not transitive?
21:50:52 <giogiogio2> to each other
21:50:54 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
21:50:59 <giogiogio2> not transitive
21:51:18 <giogiogio2> ~ is a distance let say
21:51:21 <Franciman> I haz no idea :<
21:51:27 <Franciman> it depends on the typing rules
21:51:30 <Franciman> do you got the typing rules?
21:51:31 loller_ joins (uid358106@gateway/web/irccloud.com/x-fffioyebuytxyore)
21:51:41 <giogiogio2> no
21:52:17 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
21:53:24 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
21:54:30 × geekosaur quits (42d52137@66.213.33.55) (Quit: Connection closed)
21:54:43 dysfigured joins (dysfigured@2600:3c00::f03c:92ff:feb4:be75)
21:55:05 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
21:57:17 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
21:57:38 henninb joins (~henninb@63-228-50-251.mpls.qwest.net)
21:57:54 writenix joins (~quassel@151.189.63.94.rev.vodafone.pt)
21:58:24 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
21:59:39 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
22:02:01 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
22:02:31 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
22:05:23 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
22:13:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:18:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
22:19:55 greeem joins (bab72765@186.183.39.101)
22:20:09 × davama quits (~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Remote host closed the connection)
22:20:16 × giogiogio2 quits (5e89ad7c@94.137.173.124) (Quit: Connection closed)
22:21:21 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
22:21:24 × bennofs_ quits (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
22:21:49 × swarmcollective quits (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Quit: WeeChat 2.8)
22:23:41 × _noblegas quits (uid91066@gateway/web/irccloud.com/x-rekqucmexfsrpwoo) (Quit: Connection closed for inactivity)
22:24:34 × son0p_ quits (~son0p@181.136.122.143) (Quit: Lost terminal)
22:27:18 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
22:28:44 × writenix quits (~quassel@151.189.63.94.rev.vodafone.pt) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:29:36 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
22:30:21 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
22:30:37 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Client Quit)
22:33:49 greeem parts (bab72765@186.183.39.101) ()
22:35:14 danvet_ joins (~danvet@212-51-149-181.fiber7.init7.net)
22:37:44 bennofs_ joins (~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
22:39:57 jamm_ joins (~jamm@unaffiliated/jamm)
22:42:48 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
22:43:17 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
22:44:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
22:44:44 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:48:03 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:50:49 × henninb quits (~henninb@63-228-50-251.mpls.qwest.net) (Quit: leaving)
22:52:03 × _bo quits (~bo@178.150.122.153) (Quit: Leaving)
23:02:44 alx741 joins (~alx741@186.178.110.40)
23:03:28 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
23:04:04 ukari joins (~ukari@unaffiliated/ukari)
23:04:40 × whitten quits (c75a9d0b@199.90.157.11) (Quit: Connection closed)
23:05:36 × danvet_ quits (~danvet@212-51-149-181.fiber7.init7.net) (Ping timeout: 240 seconds)
23:06:11 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
23:08:29 × nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
23:10:44 <maralorn> What is the theoretical argument against TypeInType? I know morally it’s not cool to break the Set < Class < ... hierarchy and we need that one to not get the russel paradoxon.
23:10:45 <maralorn> But I wouldn‘t know how to create the russel parodoxn in Haskell Types …
23:11:04 × xcmw quits (~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:11:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
23:15:44 <monochrom> Only the Russell paradox.
23:15:58 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
23:16:23 <monochrom> But it manifests, in computing, as non-termination only.
23:17:23 × fendor_ quits (~fendor@77.119.131.42.wireless.dyn.drei.com) (Remote host closed the connection)
23:17:29 <monochrom> So, any theoretical objection is very weak IMO.
23:18:11 <monochrom> I.e., even theorists have a hard time banning non-termination.
23:18:24 <hpc> so it would be the same objection that some people have for UndecidableInstances
23:19:34 <monochrom> Oh, non-termination during compile time is easier to object against :)
23:19:39 <monochrom> but only a bit easier.
23:21:16 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
23:21:57 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:26:51 <maralorn> monochrom: But how would a pratical non-termination in Haskell look like, which you can write with -XTypeInType but not without?
23:27:01 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
23:27:28 <monochrom> I don't know. Haven't tried.
23:28:09 DataComputist joins (~lumeng@50.43.26.251)
23:28:54 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
23:40:56 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
23:45:09 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
23:45:14 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
23:46:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:47:26 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
23:47:45 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
23:48:12 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
23:49:56 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
23:51:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
23:51:25 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
23:51:28 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
23:52:04 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:54:37 × tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Read error: No route to host)
23:55:16 ph88 joins (~ph88@2a02:8109:9e00:7e5c:f87d:231f:92a3:5029)
23:57:24 f-a joins (~f-a@151.34.57.99)
23:57:59 × forgottenone quits (~forgotten@176.42.25.228) (Quit: Konversation terminated!)
23:58:13 tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com)
23:59:17 <f-a> a friend of mine gets this error while compiling Cabal https://www.dropbox.com/s/lcxln2sezajsjjr/error2.txt
23:59:29 <f-a> it is Cabal, so I guess the error is pretty big

All times are in UTC on 2021-02-12.