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.