2021-02-24 00:02:11 +0100 | drozdziak1 | (~drozdziak@vps-520f86fd.vps.ovh.net) |
2021-02-24 00:02:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 00:03:23 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-02-24 00:03:53 +0100 | <shapr> | tomjaguarpaw: because they made a successful language, we have to tolerate spam? |
2021-02-24 00:04:09 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 265 seconds) |
2021-02-24 00:04:11 +0100 | <shapr> | oh, excel gets lambdas |
2021-02-24 00:04:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Remote host closed the connection) |
2021-02-24 00:04:14 +0100 | monochrom | +r |
2021-02-24 00:04:53 +0100 | Benzi-Junior | (~BenziJuni@88-149-67-143.du.xdsl.is) |
2021-02-24 00:06:05 +0100 | crobbins | (~crobbins@2600:1700:48eb:8490:29f8:fe64:543a:43a1) (Remote host closed the connection) |
2021-02-24 00:07:17 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 00:07:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 00:08:59 +0100 | totte | (~totte@chakra/totte) (Ping timeout: 265 seconds) |
2021-02-24 00:10:33 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-24 00:10:46 +0100 | <drozdziak1> | I have a problem sith stack's Nix support. I get linking errors after I changed my nixpkgs revision and moved on to use an external shell file |
2021-02-24 00:11:49 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-24 00:11:52 +0100 | <drozdziak1> | Has anyone here experiencedsomething similar? My stack comes from a shell.nix that pins nixpkgs at the same revision as my `shell-file` |
2021-02-24 00:12:09 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-24 00:12:13 +0100 | <shapr> | I use cabal with nix-shell, seems okay so far |
2021-02-24 00:14:26 +0100 | borne | (~fritjof@200116b8640b930010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 264 seconds) |
2021-02-24 00:14:28 +0100 | fissureman | (~quassel@c-73-201-159-163.hsd1.dc.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 00:14:48 +0100 | ChanServ | +o glguy |
2021-02-24 00:14:48 +0100 | glguy | +z |
2021-02-24 00:15:08 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) |
2021-02-24 00:16:57 +0100 | <monochrom> | Hrm, for +z to be meaningful, it would need -r, and also change b to q. Do you want this? |
2021-02-24 00:17:07 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 00:20:04 +0100 | <drozdziak1> | shapr Yeah, my money goes on stack in particular mishandling nixpkgs bumps somehow. It is likely a nix store cache as `stack purge` doesn't make this go away |
2021-02-24 00:21:01 +0100 | <drozdziak1> | maybe internally it looks for <nixpkgs> instead of my pin |
2021-02-24 00:22:26 +0100 | acidjnk_new | (~acidjnk@p200300d0c7390990fca35b4a28487713.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-02-24 00:22:26 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-24 00:23:12 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 00:23:21 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-02-24 00:23:59 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-02-24 00:24:08 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) |
2021-02-24 00:25:52 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-02-24 00:26:36 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2021-02-24 00:26:57 +0100 | tomboy64 | (~tomboy64@unaffiliated/tomboy64) (Ping timeout: 264 seconds) |
2021-02-24 00:27:00 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-02-24 00:27:29 +0100 | <glguy> | minoru_shiraeesh: while we're dealing with the spam wave you'll need ot register with nickserv to be heard here |
2021-02-24 00:28:50 +0100 | shs3g32f | (~g433@89.238.176.169) |
2021-02-24 00:29:00 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Read error: Connection reset by peer) |
2021-02-24 00:29:09 +0100 | ChanServ | +o dolio |
2021-02-24 00:30:11 +0100 | monochrom | -r |
2021-02-24 00:30:18 +0100 | monochrom | -b $~a |
2021-02-24 00:30:33 +0100 | monochrom | +q $~a |
2021-02-24 00:33:13 +0100 | Tario | (~Tario@200.119.185.131) |
2021-02-24 00:34:47 +0100 | monochrom | -o monochrom |
2021-02-24 00:35:07 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2021-02-24 00:36:27 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 00:37:01 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-02-24 00:39:57 +0100 | Tario | (~Tario@200.119.185.131) (Read error: Connection reset by peer) |
2021-02-24 00:40:35 +0100 | tomboy64 | (~tomboy64@unaffiliated/tomboy64) |
2021-02-24 00:40:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-24 00:41:22 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds) |
2021-02-24 00:42:59 +0100 | nf | (~n@monade.li) (Quit: Fairfarren.) |
2021-02-24 00:43:21 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Ping timeout: 246 seconds) |
2021-02-24 00:43:38 +0100 | nf | (~n@monade.li) |
2021-02-24 00:44:14 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:18de:2172:b410:a7a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 00:44:51 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 00:45:50 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 00:48:19 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-24 00:50:00 +0100 | nf | (~n@monade.li) (Quit: Fairfarren.) |
2021-02-24 00:50:09 +0100 | nf | (~n@monade.li) |
2021-02-24 00:50:25 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
2021-02-24 00:54:16 +0100 | totte_ | (~totte@chakra/totte) |
2021-02-24 00:56:21 +0100 | <drozdziak1> | FYI removing ~/.stack cleared the issue |
2021-02-24 00:56:39 +0100 | <drozdziak1> | I guess it isn't common for stack to anticipate all *.so files to slip from under it |
2021-02-24 00:57:02 +0100 | tjbp | (~tom@78.141.197.43) |
2021-02-24 01:00:03 +0100 | shs3g32f | (~g433@89.238.176.169) (Quit: freenode gave me aids) |
2021-02-24 01:01:20 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 01:02:09 +0100 | ski | (~ski@ed-3358-10.studat.chalmers.se) (Killed (Sigyn (Spam is off topic on freenode.))) |
2021-02-24 01:02:17 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-02-24 01:04:56 +0100 | totte_ | (~totte@chakra/totte) (Ping timeout: 240 seconds) |
2021-02-24 01:06:19 +0100 | robwebbjr | (6bb893db@cpe-107-184-147-219.socal.res.rr.com) |
2021-02-24 01:07:09 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:542a:c580:da44:2b5b) (Quit: oisdk) |
2021-02-24 01:07:12 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-24 01:09:09 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-24 01:09:09 +0100 | robwebbjr | (6bb893db@cpe-107-184-147-219.socal.res.rr.com) (Killed (Sigyn (Spam is off topic on freenode.))) |
2021-02-24 01:09:32 +0100 | <glguy> | fixed^ |
2021-02-24 01:09:33 +0100 | robwebbjr | (6bb893db@cpe-107-184-147-219.socal.res.rr.com) |
2021-02-24 01:09:57 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-24 01:11:27 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:542a:c580:da44:2b5b) |
2021-02-24 01:11:28 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-24 01:12:42 +0100 | ski | (~ski@ed-3358-10.studat.chalmers.se) |
2021-02-24 01:12:54 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-24 01:15:43 +0100 | totte | (~totte@chakra/totte) |
2021-02-24 01:16:09 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-02-24 01:19:04 +0100 | robwebbjr | (6bb893db@cpe-107-184-147-219.socal.res.rr.com) (Quit: Connection closed) |
2021-02-24 01:24:22 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:9550:f699:380:13be) |
2021-02-24 01:26:35 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection) |
2021-02-24 01:26:48 +0100 | ddellacosta | (~ddellacos@86.106.143.189) (Remote host closed the connection) |
2021-02-24 01:27:16 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
2021-02-24 01:28:27 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-24 01:30:15 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-02-24 01:30:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-02-24 01:30:36 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Ping timeout: 246 seconds) |
2021-02-24 01:30:44 +0100 | Katarushisu | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-02-24 01:30:50 +0100 | Foritus | (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-02-24 01:32:31 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) |
2021-02-24 01:32:45 +0100 | Foritus | (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
2021-02-24 01:33:34 +0100 | awk | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 265 seconds) |
2021-02-24 01:34:40 +0100 | Katarushisu | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
2021-02-24 01:36:05 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) |
2021-02-24 01:36:20 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-24 01:37:50 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) (Ping timeout: 264 seconds) |
2021-02-24 01:38:48 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:542a:c580:da44:2b5b) (Quit: oisdk) |
2021-02-24 01:39:55 +0100 | d34df00d | (~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) () |
2021-02-24 01:40:45 +0100 | infinisil | (~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!) |
2021-02-24 01:44:10 +0100 | average | (uid473595@gateway/web/irccloud.com/x-kzhkwxghknoixhmk) (Quit: Connection closed for inactivity) |
2021-02-24 01:47:03 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in) |
2021-02-24 01:47:34 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) |
2021-02-24 01:47:50 +0100 | loli | (~loli@024-171-017-003.res.spectrum.com) (Quit: WeeChat 3.0) |
2021-02-24 01:49:04 +0100 | fengh | (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Quit: WeeChat 3.0.1) |
2021-02-24 01:49:27 +0100 | fengh | (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
2021-02-24 01:49:28 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Quit: leaving) |
2021-02-24 01:49:45 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 240 seconds) |
2021-02-24 01:49:58 +0100 | loli | (~loli@024-171-017-003.res.spectrum.com) |
2021-02-24 01:50:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 01:50:45 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds) |
2021-02-24 01:50:58 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
2021-02-24 01:51:58 +0100 | monochrom | (trebla@216.138.220.146) |
2021-02-24 01:52:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-02-24 01:52:18 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds) |
2021-02-24 01:52:56 +0100 | verement | (~anonymous@cpe-76-167-229-223.san.res.rr.com) (Quit: verement) |
2021-02-24 01:53:18 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-02-24 01:57:43 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in) |
2021-02-24 01:58:10 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) |
2021-02-24 01:58:37 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-24 01:58:44 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2021-02-24 01:58:56 +0100 | Bigcheese | (~quassel@unaffiliated/bigcheese) (Quit: No Ping reply in 180 seconds.) |
2021-02-24 01:59:11 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 265 seconds) |
2021-02-24 01:59:39 +0100 | afidegnum | (~afidegnum@102.176.65.172) |
2021-02-24 02:00:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Remote host closed the connection) |
2021-02-24 02:00:14 +0100 | Bigcheese | (~quassel@unaffiliated/bigcheese) |
2021-02-24 02:01:51 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 256 seconds) |
2021-02-24 02:02:48 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 02:03:06 +0100 | <afidegnum> | hi, anyone online ? |
2021-02-24 02:03:21 +0100 | ghais | (4c616ae2@gateway/web/cgi-irc/kiwiirc.com/ip.76.97.106.226) |
2021-02-24 02:03:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 02:04:47 +0100 | <ephemient> | afidegnum: https://dontasktoask.com/ |
2021-02-24 02:05:36 +0100 | <afidegnum> | what's the difference between <= and <_ ? from the book: http://learnyouahaskell.com/starting-out i have come accross list comprehensions: [x*2 | x <- [1..10]] which got me confused |
2021-02-24 02:06:24 +0100 | <monochrom> | Do you mean <= and <- ? |
2021-02-24 02:06:25 +0100 | wz1000 | (~wz1000@static.11.113.47.78.clients.your-server.de) (Ping timeout: 240 seconds) |
2021-02-24 02:06:29 +0100 | <afidegnum> | yes |
2021-02-24 02:06:52 +0100 | <monochrom> | Totally unrelated. <= is your usual 1<=2, 2<=2. |
2021-02-24 02:07:01 +0100 | <monochrom> | (less than or equal to) |
2021-02-24 02:07:14 +0100 | <afidegnum> | yes |
2021-02-24 02:07:46 +0100 | <monochrom> | <- is a punctuation for writing list comprehension to mean: x<-[1..10] causes x to take on 1, 2, ..., 10 in turns. |
2021-02-24 02:07:48 +0100 | jchia | (~jchia@218.80.77.165) (Quit: Leaving.) |
2021-02-24 02:08:57 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 264 seconds) |
2021-02-24 02:09:16 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 02:09:36 +0100 | <afidegnum> | i could say in that case, x derives from a list, right ? |
2021-02-24 02:09:46 +0100 | xcmw | (~textual@dyn-72-33-2-152.uwnet.wisc.edu) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-24 02:11:07 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Read error: Connection reset by peer) |
2021-02-24 02:11:51 +0100 | <ephemient> | "derive" doesn't make sense to me. for each x chosen from a list, would be one way to state it |
2021-02-24 02:12:34 +0100 | jedws | (~jedws@101.184.202.248) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-24 02:12:56 +0100 | <monochrom> | I would think Python syntax provides the best English wording, if you're looking for English wording. |
2021-02-24 02:13:09 +0100 | <monochrom> | x*2 for (each) x in 1 to 10. |
2021-02-24 02:13:35 +0100 | <afidegnum> | monochrom: yes, that's clearer :) |
2021-02-24 02:13:41 +0100 | <monochrom> | I think "derive" is avoiding the point. As are most wordings. |
2021-02-24 02:14:09 +0100 | <monochrom> | In fact, I think all wordings are. |
2021-02-24 02:14:17 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:18de:2172:b410:a7a6) |
2021-02-24 02:14:19 +0100 | <ski> | `[x*2 | x <- [1..10]]' : collect the list of all `x*2's, for all possible ways to draw `x' from the list `[1..10]' |
2021-02-24 02:15:03 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 02:15:28 +0100 | <monochrom> | Instead, the template [f x | x<-[a,b,c]] = [f a, f b, f c] is precise, clear, and get things done. |
2021-02-24 02:15:36 +0100 | <afidegnum> | [x*2 | x <- [1..10] can i also say, collect x*2 where x is part of a list [1..10] ? |
2021-02-24 02:16:12 +0100 | <ski> | > [f x | x <- [a,b,c]] :: [Expr] |
2021-02-24 02:16:13 +0100 | <lambdabot> | [f a,f b,f c] |
2021-02-24 02:16:36 +0100 | <afidegnum> | isn't that mapping ? |
2021-02-24 02:16:40 +0100 | <monochrom> | Yes. |
2021-02-24 02:16:44 +0100 | <ski> | afidegnum : "part" is a bit ambiguous, i'd say. you could say "is an element of" |
2021-02-24 02:16:47 +0100 | <monochrom> | Programming is not an essay course. |
2021-02-24 02:16:58 +0100 | <afidegnum> | :) |
2021-02-24 02:17:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) |
2021-02-24 02:17:11 +0100 | <ski> | (is the list `[3,5]' a part of the list `[2,3,5,7]' ?) |
2021-02-24 02:17:12 +0100 | <ephemient> | (unless applescript :D) |
2021-02-24 02:17:27 +0100 | <afidegnum> | oh, noo! |
2021-02-24 02:17:53 +0100 | <ski> | the list of all `x*2's, for `x' in `[1..10]' -- abbreviated version |
2021-02-24 02:18:15 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in) |
2021-02-24 02:18:27 +0100 | <afidegnum> | ski: ok, that's clearer, matching python wordings |
2021-02-24 02:18:32 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) |
2021-02-24 02:18:42 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 02:18:45 +0100 | infinisil | (~infinisil@NixOS/user/infinisil) |
2021-02-24 02:20:03 +0100 | <monochrom> | And BTW regarding watching other people write code on Twitch, I would also say "programming is not a spectator sport", except for one consideration during the pandemic. Since you need to learn from how other people do things, but you can't easily go to an in-person programming session for that during the pandemic, watching Twitch has to make do. |
2021-02-24 02:20:28 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 02:20:58 +0100 | <afidegnum> | twitch is turning things around :) |
2021-02-24 02:21:28 +0100 | <monochrom> | An in-person session is still preferred when it's safe, since the part about interacting with the expert, even the expert saying "try your hands on this easy part", is irreplaceable. |
2021-02-24 02:22:14 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-02-24 02:22:49 +0100 | WarzoneCommand | (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-02-24 02:23:01 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-02-24 02:23:30 +0100 | <monochrom> | BTW I'm bittersweet to announce that an unannounced proof I was trying to do has failed. I found a counterexample. |
2021-02-24 02:23:34 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:47c4:89ec:8e68:7431) (Ping timeout: 258 seconds) |
2021-02-24 02:24:05 +0100 | ghais | (4c616ae2@gateway/web/cgi-irc/kiwiirc.com/ip.76.97.106.226) (Quit: Connection closed) |
2021-02-24 02:24:40 +0100 | ghais | (4c616ae2@gateway/web/cgi-irc/kiwiirc.com/ip.76.97.106.226) |
2021-02-24 02:24:43 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - https://znc.in) |
2021-02-24 02:24:58 +0100 | <monochrom> | It is bitter that I can't publish a paper for it now. There is no earth-shattring theorem to state and prove. |
2021-02-24 02:25:09 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 264 seconds) |
2021-02-24 02:25:26 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) |
2021-02-24 02:25:35 +0100 | <monochrom> | The small sweet side is that I can turn it into an exam question. "Prof. M thinks the following is true. Find a counterexample." >:) |
2021-02-24 02:25:49 +0100 | <ski> | how common is it to publish papers with counterexamples ? |
2021-02-24 02:26:18 +0100 | <monochrom> | common for conjectures that everyone thought provable |
2021-02-24 02:26:19 +0100 | cig_in_mouth | (cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230) |
2021-02-24 02:26:21 +0100 | <ski> | (or do counter-examples mostly get published in say textbooks ?) |
2021-02-24 02:26:29 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 02:26:29 +0100 | <monochrom> | uncommon for "I told you so" cases. |
2021-02-24 02:27:04 +0100 | <ski> | hm .. reminds me of some page of a mathematician, collecting counter-examples to published theorems |
2021-02-24 02:27:09 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 02:27:13 +0100 | <monochrom> | hahaha |
2021-02-24 02:27:21 +0100 | cig_in_mouth | (cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230) (Client Quit) |
2021-02-24 02:27:26 +0100 | <ski> | (peer-reviewed publishing, yes) |
2021-02-24 02:27:54 +0100 | <monochrom> | But the same metric is applied to both publishing theorems and publishing counterexamples. The community has a pretty consensual sense of what's important, what's meh. |
2021-02-24 02:28:35 +0100 | Wamanuz | (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Quit: Konversation terminated!) |
2021-02-24 02:28:45 +0100 | dolio | -o dolio |
2021-02-24 02:28:47 +0100 | <monochrom> | A really surprising counterexample is publishable. Likewise, a really unimportant theorem/proof is unpublishable. The world is still fair. |
2021-02-24 02:28:48 +0100 | ski | nods |
2021-02-24 02:29:08 +0100 | IsmokeWeed420 | (cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230) |
2021-02-24 02:31:17 +0100 | bradparker | (sid262931@gateway/web/irccloud.com/x-isrdawaltlzaweiw) () |
2021-02-24 02:31:22 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-02-24 02:31:31 +0100 | bradparker | (sid262931@gateway/web/irccloud.com/x-tsajgnzxnbyjwxdp) |
2021-02-24 02:33:18 +0100 | tomkap1 | (~tomkap@178.239.168.171) (Remote host closed the connection) |
2021-02-24 02:33:55 +0100 | l8star__ | (~l8star@business-90-187-113-149.pool2.vodafone-ip.de) (Ping timeout: 258 seconds) |
2021-02-24 02:34:46 +0100 | jdt | (~jdt@208.85.233.130) (Ping timeout: 256 seconds) |
2021-02-24 02:35:02 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-lsothnqwqqfmpidy) |
2021-02-24 02:35:10 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-02-24 02:37:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-24 02:38:27 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 02:38:36 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-24 02:38:52 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - https://znc.in) |
2021-02-24 02:39:26 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) |
2021-02-24 02:40:09 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 02:41:18 +0100 | jdt | (~jdt@208.85.233.130) |
2021-02-24 02:42:05 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-24 02:42:29 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 02:45:11 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - https://znc.in) |
2021-02-24 02:45:46 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) |
2021-02-24 02:47:05 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 02:49:24 +0100 | chaosagent | (~chaosagen@217.146.82.202) |
2021-02-24 02:50:26 +0100 | Alleria_ | (~AllahuAkb@2603-7000-3040-0000-e45d-b815-1770-2199.res6.spectrum.com) (Read error: Connection reset by peer) |
2021-02-24 02:50:52 +0100 | Alleria_ | (~AllahuAkb@2603-7000-3040-0000-18b0-cfa2-5ed5-49de.res6.spectrum.com) |
2021-02-24 02:51:00 +0100 | <MarcelineVQ> | good job today, you |
2021-02-24 02:54:51 +0100 | hongminhee | (~dahlia@207.148.91.209) (Quit: leaving) |
2021-02-24 02:57:22 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-24 02:58:44 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 02:58:58 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: Quit) |
2021-02-24 02:59:16 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-24 03:03:09 +0100 | ChanServ | +o ski |
2021-02-24 03:03:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 03:05:05 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Quit: Leaving) |
2021-02-24 03:05:58 +0100 | carlomagno1 | (~cararell@148.87.23.12) (Remote host closed the connection) |
2021-02-24 03:08:36 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-24 03:08:53 +0100 | xff0x | (~xff0x@2001:1a81:521c:d500:7b2f:d778:c258:ec7a) (Ping timeout: 272 seconds) |
2021-02-24 03:08:53 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 03:09:04 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-24 03:10:15 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:4364:2209:6649:c89) |
2021-02-24 03:10:27 +0100 | drbean_ | (~drbean@TC210-63-209-199.static.apol.com.tw) |
2021-02-24 03:11:54 +0100 | <swarmcollective> | :withMS |
2021-02-24 03:11:57 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-24 03:11:58 +0100 | <swarmcollective> | :t withMS |
2021-02-24 03:12:00 +0100 | <lambdabot> | error: |
2021-02-24 03:12:00 +0100 | <lambdabot> | • Variable not in scope: withMS |
2021-02-24 03:12:00 +0100 | <lambdabot> | • Perhaps you meant ‘withRWS’ (imported from Control.Monad.RWS) |
2021-02-24 03:12:13 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-24 03:13:32 +0100 | <ski> | @hoogle withMS |
2021-02-24 03:13:33 +0100 | <lambdabot> | Control.Eff.Logic.Core withMSplit :: MonadPlus m => a -> m a -> m (Maybe (a, m a)) |
2021-02-24 03:13:33 +0100 | <lambdabot> | Data.Singletons.Prelude.Monad data ZipWithMSym0 a6989586621681292348 |
2021-02-24 03:13:33 +0100 | <lambdabot> | Data.Singletons.Prelude.Monad data ZipWithMSym1 a6989586621681292348 a6989586621681292349 |
2021-02-24 03:14:30 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 03:15:47 +0100 | Jon | (~jon@redmars.org) (Quit: ZNC - http://znc.in) |
2021-02-24 03:15:48 +0100 | my_name_is_not_j | (mynameisno@gateway/shell/matrix.org/x-hpkeozywuimiwkcp) (Ping timeout: 246 seconds) |
2021-02-24 03:16:01 +0100 | my_name_is_not_j | (mynameisno@gateway/shell/matrix.org/x-sulamkpowiaizxta) |
2021-02-24 03:16:12 +0100 | e | (e@freenode/staff/spy.edk) (Quit: edk) |
2021-02-24 03:16:51 +0100 | dexterlb | (~dexterlb@2a01:9e40:2:2::2) (Ping timeout: 246 seconds) |
2021-02-24 03:16:54 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-02-24 03:17:03 +0100 | Jon | (jon@dow.land) |
2021-02-24 03:17:10 +0100 | dexterlb | (~dexterlb@2a01:9e40:2:2::2) |
2021-02-24 03:17:16 +0100 | ddellacosta | (~ddellacos@83.143.246.103) |
2021-02-24 03:17:21 +0100 | ghais | (4c616ae2@gateway/web/cgi-irc/kiwiirc.com/ip.76.97.106.226) (Ping timeout: 264 seconds) |
2021-02-24 03:18:55 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-24 03:19:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-02-24 03:20:35 +0100 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) |
2021-02-24 03:21:45 +0100 | ddellacosta | (~ddellacos@83.143.246.103) (Ping timeout: 240 seconds) |
2021-02-24 03:23:52 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 03:25:12 +0100 | edk_ | (e@freenode/staff/spy.edk) |
2021-02-24 03:25:18 +0100 | <electricityZZZZ> | does anybody have a freenode admin i can pm and complain to about some bots which are pm'ing me? i've never done something like that before |
2021-02-24 03:25:26 +0100 | drbean_ | (~drbean@TC210-63-209-199.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-02-24 03:25:50 +0100 | WarzoneCommand | (~Frank@77-162-168-71.fixed.kpn.net) |
2021-02-24 03:26:10 +0100 | <swarmcollective> | electricityZZZZ: I believe they are aware, freenode broadcast a message about it. |
2021-02-24 03:26:46 +0100 | ubert | (~Thunderbi@p200300ecdf25d925395e0cfc416b2878.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-24 03:26:53 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Quit: Quit) |
2021-02-24 03:27:09 +0100 | ubert | (~Thunderbi@p200300ecdf25d925757f6c6af73e13ea.dip0.t-ipconnect.de) |
2021-02-24 03:27:19 +0100 | <electricityZZZZ> | swarmcollective: okay thanks |
2021-02-24 03:27:46 +0100 | notzmv | (~user@unaffiliated/zmv) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-02-24 03:28:23 +0100 | <pavonia^\_^\> | electricityZZZZ: You can set "/mode electricityZZZZ +R" in your client if you don't want to get messages from unidentified users |
2021-02-24 03:30:00 +0100 | <ski> | electricityZZZZ : you can join #freenode and report in there |
2021-02-24 03:32:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 03:32:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-02-24 03:37:06 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 03:37:45 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
2021-02-24 03:37:47 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 03:37:51 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-24 03:38:09 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-24 03:38:29 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) |
2021-02-24 03:38:56 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
2021-02-24 03:39:13 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-02-24 03:41:49 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 03:45:23 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) |
2021-02-24 03:45:32 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
2021-02-24 03:47:09 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 03:47:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 03:49:09 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-24 03:50:04 +0100 | sablib | (~sablib@171.113.164.135) (Ping timeout: 260 seconds) |
2021-02-24 03:50:09 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 03:50:46 +0100 | sudden | (~lax@unaffiliated/laxask) (Quit: Reconnecting) |
2021-02-24 03:51:01 +0100 | sudden | (~lax@unaffiliated/laxask) |
2021-02-24 03:51:51 +0100 | sablib | (~sablib@59.173.155.233) |
2021-02-24 03:52:00 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 03:52:10 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 03:52:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 03:52:59 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) |
2021-02-24 03:53:12 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-24 03:54:25 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-02-24 03:55:30 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 03:57:44 +0100 | Wuzzy | (~Wuzzy@p57a2e098.dip0.t-ipconnect.de) (Quit: Wuzzy) |
2021-02-24 03:59:15 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 03:59:32 +0100 | forgottenone | (~forgotten@176.42.28.131) (Quit: Konversation terminated!) |
2021-02-24 04:00:14 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-qrosvhbxmvdksoje) (Quit: Connection closed for inactivity) |
2021-02-24 04:00:36 +0100 | ornxka_ | ornxka |
2021-02-24 04:01:36 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
2021-02-24 04:02:37 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
2021-02-24 04:06:06 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2021-02-24 04:06:20 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-02-24 04:06:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 04:06:49 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 04:09:03 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-24 04:09:21 +0100 | IsmokeWeed420 | (cig_in_mou@gateway/vpn/mullvad/ciginmouth/x-85815230) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-24 04:11:40 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-02-24 04:12:35 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 04:14:28 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) |
2021-02-24 04:17:00 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
2021-02-24 04:19:28 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 04:21:14 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-24 04:21:14 +0100 | finn_elija | Guest75969 |
2021-02-24 04:21:14 +0100 | FinnElija | finn_elija |
2021-02-24 04:21:40 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 04:24:51 +0100 | Guest75969 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-24 04:25:18 +0100 | jonn | (~sweater@206.81.18.26) (Quit: WeeChat 2.8) |
2021-02-24 04:25:56 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-24 04:26:15 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 04:26:45 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Remote host closed the connection) |
2021-02-24 04:28:37 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-24 04:30:23 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 04:32:37 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 04:34:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 04:37:33 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 04:38:02 +0100 | <monochrom> | I'm going to go on a limb and -q $~a (i.e., back to normal) |
2021-02-24 04:38:04 +0100 | ChanServ | +o monochrom |
2021-02-24 04:38:21 +0100 | monochrom | -zq $~a |
2021-02-24 04:38:28 +0100 | monochrom | -o monochrom |
2021-02-24 04:38:34 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-02-24 04:40:37 +0100 | ChanServ | -o ski |
2021-02-24 04:41:03 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-24 04:41:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 04:42:24 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 04:43:34 +0100 | joecordingley | (~joecordin@37.156.75.63) |
2021-02-24 04:46:25 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
2021-02-24 04:46:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-24 04:48:05 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:394a:95d6:26a0:dc43) (Ping timeout: 258 seconds) |
2021-02-24 04:48:33 +0100 | joecordingley | (~joecordin@37.156.75.63) (Ping timeout: 264 seconds) |
2021-02-24 04:49:23 +0100 | klardotsh | (~klardotsh@75-172-31-60.tukw.qwest.net) (Quit: WeeChat 3.0.1) |
2021-02-24 04:50:54 +0100 | jollygood2 | (~bc8134e3@217.29.117.252) |
2021-02-24 04:51:25 +0100 | <jollygood2> | hi. is anyone using inline-c? it seems too good to be true? |
2021-02-24 04:51:29 +0100 | <jollygood2> | "inline-c lets you seamlessly call C libraries and embed high-performance inline C code in Haskell modules. Haskell and C can be freely intermixed in the same source file, and data passed to and from code in either language with minimal overhead. No FFI required." |
2021-02-24 04:51:40 +0100 | theDon | (~td@94.134.91.128) (Ping timeout: 260 seconds) |
2021-02-24 04:52:12 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 04:53:25 +0100 | afidegnum | (~afidegnum@102.176.65.172) (Ping timeout: 240 seconds) |
2021-02-24 04:53:26 +0100 | theDon | (~td@muedsl-82-207-238-135.citykom.de) |
2021-02-24 04:55:15 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 04:55:33 +0100 | afidegnum | (~afidegnum@102.176.65.99) |
2021-02-24 04:58:30 +0100 | <koz_> | jollygood2: I've used it a bit. |
2021-02-24 04:58:35 +0100 | <EvanR> | jollygood2: updated in january so |
2021-02-24 04:58:54 +0100 | <koz_> | It's quite convenient if all you wanna do is wrap a header. |
2021-02-24 04:59:02 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 04:59:14 +0100 | <jollygood2> | I've been using haskell FFI in the past quite often, but this seems so much better. I have yet to use it |
2021-02-24 04:59:30 +0100 | <jollygood2> | so maybe I'm being too optimistic |
2021-02-24 04:59:33 +0100 | ubert1 | (~Thunderbi@p200300ecdf25d926855ee11db97a074b.dip0.t-ipconnect.de) |
2021-02-24 05:00:00 +0100 | <jollygood2> | koz_ what if you want to write haskell bindings for relatively big C library? |
2021-02-24 05:00:07 +0100 | <jollygood2> | ffi or this? |
2021-02-24 05:00:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) |
2021-02-24 05:00:13 +0100 | <koz_> | jollygood2: I dunno. I never had to do that. |
2021-02-24 05:00:21 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 05:00:39 +0100 | <swarmcollective> | Either way, matching C data types is a challenge, or no? |
2021-02-24 05:00:52 +0100 | <koz_> | swarmcollective: Depends. If they're primitive? Not so much. |
2021-02-24 05:00:57 +0100 | <koz_> | inline-c works pretty well. |
2021-02-24 05:01:06 +0100 | <koz_> | If they're structs or something? Then not so much. |
2021-02-24 05:01:07 +0100 | ubert | (~Thunderbi@p200300ecdf25d925757f6c6af73e13ea.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-24 05:01:08 +0100 | ubert1 | ubert |
2021-02-24 05:01:26 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
2021-02-24 05:01:27 +0100 | <EvanR> | would be cool if haskell had something like structs |
2021-02-24 05:01:47 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:4c91:1390:14b8:f441) |
2021-02-24 05:02:09 +0100 | swarmcollective | wonders if you can mix assembly in with the C code. :D |
2021-02-24 05:02:17 +0100 | <koz_> | inline-asm exists. |
2021-02-24 05:02:31 +0100 | <swarmcollective> | koz_: Nice. |
2021-02-24 05:03:04 +0100 | <swarmcollective> | ofc. I have not written C or ASM since the 90's (requires re-learning) |
2021-02-24 05:03:34 +0100 | <EvanR> | inline-haskell please |
2021-02-24 05:03:57 +0100 | <MarcelineVQ> | inline-inline |
2021-02-24 05:04:45 +0100 | <jollygood2> | koz_ how does it compare to ffi when you have to get data from C structs? |
2021-02-24 05:04:59 +0100 | <koz_> | jollygood2: I dunno, because I've never had to do that. |
2021-02-24 05:05:04 +0100 | <koz_> | I hear it's not straightforward. |
2021-02-24 05:05:25 +0100 | <EvanR> | it's not as simple as quasi quote... foo.bar.baz ? |
2021-02-24 05:05:38 +0100 | fengh | (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Quit: WeeChat 3.0.1) |
2021-02-24 05:06:18 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 05:07:39 +0100 | notzmv | (~zmv@unaffiliated/zmv) |
2021-02-24 05:07:59 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-24 05:08:04 +0100 | <jollygood2> | it seems that it uses Foreign.Storable for marshalling, so I guess it is similar to FFI in this regard |
2021-02-24 05:08:10 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-02-24 05:11:09 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) (Quit: Connection closed) |
2021-02-24 05:11:52 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-24 05:12:55 +0100 | plutoniix | (~q@184.82.193.59) |
2021-02-24 05:13:03 +0100 | plutoniix | (~q@184.82.193.59) (Max SendQ exceeded) |
2021-02-24 05:13:30 +0100 | plutoniix | (~q@184.82.193.59) |
2021-02-24 05:15:28 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 05:16:08 +0100 | sleblanc | (~sleblanc@unaffiliated/sebleblanc) (Quit: Leaving) |
2021-02-24 05:16:23 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 05:17:17 +0100 | xsperry | (~as@unaffiliated/xsperry) (K-Lined) |
2021-02-24 05:17:17 +0100 | jollygood2 | (~bc8134e3@217.29.117.252) (Disconnected by services) |
2021-02-24 05:17:24 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
2021-02-24 05:17:42 +0100 | alx741 | (~alx741@186.178.108.179) (Quit: alx741) |
2021-02-24 05:19:45 +0100 | raym | (~ray@45.64.220.3) |
2021-02-24 05:19:55 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-02-24 05:21:48 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Remote host closed the connection) |
2021-02-24 05:24:56 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 05:26:39 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 05:28:04 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Quit: Leaving) |
2021-02-24 05:29:29 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) |
2021-02-24 05:29:41 +0100 | forgottenone | (~forgotten@176.42.28.131) |
2021-02-24 05:30:52 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 05:31:02 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-02-24 05:31:20 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-02-24 05:32:16 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 05:35:11 +0100 | forgottenone | (~forgotten@176.42.28.131) (Quit: Konversation terminated!) |
2021-02-24 05:36:18 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 05:37:05 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 05:40:04 +0100 | nyaomi | (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Ping timeout: 256 seconds) |
2021-02-24 05:40:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 05:43:04 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-02-24 05:43:18 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 05:45:11 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 05:45:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 05:45:51 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2021-02-24 05:46:02 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-4-36.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-24 05:46:42 +0100 | hirc | (3dded63f@61-222-214-63.HINET-IP.hinet.net) |
2021-02-24 05:46:52 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds) |
2021-02-24 05:47:26 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-24 05:47:30 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 05:48:14 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-02-24 05:48:55 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 05:48:59 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-02-24 05:49:50 +0100 | nyaomi | (~naomi@2603-7080-c43e-59ad-c878-29ff-fedf-ce89.res6.spectrum.com) |
2021-02-24 05:50:24 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-bmpdmusxcksbrdtx) () |
2021-02-24 05:52:09 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 05:53:43 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 05:55:37 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-24 05:55:53 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2021-02-24 05:56:44 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 05:56:56 +0100 | <hirc> | hi, folks |
2021-02-24 05:56:59 +0100 | <hirc> | what is the point to use ghcup especially I can use stack setup to install ghc ? |
2021-02-24 05:58:11 +0100 | ddellacosta | (~ddellacos@86.106.143.111) |
2021-02-24 06:01:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 06:02:15 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-24 06:02:16 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:9550:f699:380:13be) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 06:02:16 +0100 | ddellacosta | (~ddellacos@86.106.143.111) (Ping timeout: 240 seconds) |
2021-02-24 06:03:18 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-02-24 06:03:29 +0100 | mnrmnaugh | find |
2021-02-24 06:06:10 +0100 | find | mnrmnaugh |
2021-02-24 06:06:14 +0100 | <glguy> | hirc, you wouldn't need stack at all |
2021-02-24 06:06:28 +0100 | <glguy> | ghcup installs the various tools and ghc, cabal-install builds/installs Haskell software |
2021-02-24 06:08:56 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 240 seconds) |
2021-02-24 06:09:00 +0100 | <hirc> | I found I always have difficulty to understand those tool |
2021-02-24 06:09:08 +0100 | <hirc> | stack, cabal, nix |
2021-02-24 06:09:12 +0100 | <hirc> | ghcup |
2021-02-24 06:09:58 +0100 | <hirc> | how do i choose them |
2021-02-24 06:11:09 +0100 | <glguy> | for new development ghcup+cabal-install is a safe starting point |
2021-02-24 06:11:16 +0100 | <glguy> | if you're already using one it's fine to keep using it |
2021-02-24 06:11:38 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 06:12:13 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@184.22.159.161) |
2021-02-24 06:14:01 +0100 | <hirc> | Currently, I am using stack |
2021-02-24 06:14:38 +0100 | <hirc> | and I am trying to setup haskell language server |
2021-02-24 06:14:48 +0100 | Patternm1ster | (~georg@li1192-118.members.linode.com) (Quit: leaving) |
2021-02-24 06:15:00 +0100 | <hirc> | and install it with stack |
2021-02-24 06:15:17 +0100 | <hirc> | so painful |
2021-02-24 06:15:29 +0100 | <hirc> | took me an hour to compile |
2021-02-24 06:16:11 +0100 | <hirc> | then I found ghcup seems much easier to install hls |
2021-02-24 06:16:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 06:16:54 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 06:18:09 +0100 | Patternmaster | (~georg@li1192-118.members.linode.com) |
2021-02-24 06:19:28 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-24 06:22:12 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 06:23:08 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 06:25:42 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:18de:2172:b410:a7a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 06:27:24 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-ticlhlkkqaebihvj) (Quit: Connection closed for inactivity) |
2021-02-24 06:28:27 +0100 | juri_ | (~juri@178.63.35.222) (Ping timeout: 246 seconds) |
2021-02-24 06:29:09 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 06:33:27 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-02-24 06:34:17 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-gvrskhsrqqnmfley) (Quit: Connection closed for inactivity) |
2021-02-24 06:35:16 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 06:37:00 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 06:40:16 +0100 | hongminhee | (hongminhee@gateway/web/irccloud.com/x-mtlcwvdsuqyxumrm) |
2021-02-24 06:41:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 06:42:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 06:45:45 +0100 | <sm[m]> | hirc: letting the visual code haskell extension do it is another easy way |
2021-02-24 06:46:11 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) |
2021-02-24 06:47:32 +0100 | <hirc> | but.. |
2021-02-24 06:47:37 +0100 | <hirc> | I am a vim fan |
2021-02-24 06:49:20 +0100 | <hirc> | however, it just not work with coc vim plug |
2021-02-24 06:49:45 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-02-24 06:49:56 +0100 | <hirc> | it perfectly work find with coc-pyright(python) |
2021-02-24 06:50:03 +0100 | <hirc> | *fine |
2021-02-24 06:50:20 +0100 | <hirc> | but haskell... I give up |
2021-02-24 06:50:26 +0100 | <hirc> | just not work |
2021-02-24 06:51:40 +0100 | idhugo__ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
2021-02-24 06:52:46 +0100 | <monochrom> | https://ro-che.info/ccc/26 is prophetic. |
2021-02-24 06:52:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 06:54:37 +0100 | <koz_> | Maybe I'm just an oddball, but I've never needed HLS. |
2021-02-24 06:55:08 +0100 | <hirc> | yes... |
2021-02-24 06:55:37 +0100 | <monochrom> | emacs haskell-mode and dante already do the most important 80% what HLS does. So I just apply the 80-20 rule. |
2021-02-24 06:55:41 +0100 | <hirc> | actually, I am fine with plain vim |
2021-02-24 06:56:11 +0100 | <koz_> | What monochrom said, except Neovim and ALE. |
2021-02-24 06:56:22 +0100 | <monochrom> | In fact installing haskell-mode or dante takes only 1% of the hassle. |
2021-02-24 06:56:42 +0100 | <hirc> | I just occasionally look hls and try to give a shot |
2021-02-24 06:57:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 06:57:53 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 06:57:59 +0100 | <monochrom> | My students, they use vscode just fine. I don't know whether they get hls to work. I just know that since they grew up with the likes of ipython and eclipse, if they're happy with vscode then it means vscode is perfection already. |
2021-02-24 06:58:59 +0100 | <monochrom> | Also since they're also spending infinite time on my "simple" assignments and they have like 4 other courses to worry about, I don't imagine that they spent much time fighting with installation. |
2021-02-24 06:59:45 +0100 | <monochrom> | Whatever vscode setup they ended up with, they must have spent less than an hour to get it. |
2021-02-24 07:01:27 +0100 | <hirc> | in my current workflow |
2021-02-24 07:01:41 +0100 | <hirc> | I use vim + ghci + browser for hoogle |
2021-02-24 07:01:48 +0100 | <hirc> | that's it |
2021-02-24 07:02:05 +0100 | <hirc> | no fancy stuff |
2021-02-24 07:02:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 07:04:59 +0100 | <sm[m]> | hirc, definitely try adding ghcid to that list. It's the simpler-hls |
2021-02-24 07:07:02 +0100 | <hirc> | sm[m]: looks good, I will take a look if I have time |
2021-02-24 07:07:20 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 256 seconds) |
2021-02-24 07:07:23 +0100 | <sm[m]> | indispensable rapid feedback |
2021-02-24 07:09:23 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 07:10:54 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-02-24 07:11:07 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 07:13:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 07:15:25 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-02-24 07:16:36 +0100 | kam1 | (~kam1@5.125.126.175) (Ping timeout: 240 seconds) |
2021-02-24 07:16:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-24 07:19:56 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 07:23:26 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:4c91:1390:14b8:f441) (Ping timeout: 264 seconds) |
2021-02-24 07:23:41 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
2021-02-24 07:24:51 +0100 | <suzu_> | hirc hls has binaries |
2021-02-24 07:25:44 +0100 | <hirc> | yeah, when i notice that, it's too late |
2021-02-24 07:26:30 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 07:31:00 +0100 | <guest222> | what's the fixed point in ContT? https://paste.ubuntu.com/p/mMsXX7dcVt/ |
2021-02-24 07:31:05 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 07:33:26 +0100 | <suzu_> | :( |
2021-02-24 07:35:00 +0100 | <EvanR> | you mean something like mfix ? |
2021-02-24 07:35:25 +0100 | minoru_shiraeesh | (~shiraeesh@5.101.59.211) (Ping timeout: 240 seconds) |
2021-02-24 07:36:52 +0100 | <guest222> | label :: ContT r m (LabelT r m);label = callCC $ \k -> let l = LabelT $ k l in return l |
2021-02-24 07:37:28 +0100 | <guest222> | EvanR: what the point that label is k's fixed-point here |
2021-02-24 07:37:33 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-02-24 07:38:45 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) (Ping timeout: 240 seconds) |
2021-02-24 07:41:51 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-02-24 07:43:21 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 07:48:45 +0100 | average | (uid473595@gateway/web/irccloud.com/x-kftgzjbwgakalewc) |
2021-02-24 07:48:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 07:49:07 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:4364:2209:6649:c89) (Remote host closed the connection) |
2021-02-24 07:49:25 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:3f22:5bb3:5062:204b) |
2021-02-24 07:51:50 +0100 | ddellacosta | (~ddellacos@86.106.143.228) |
2021-02-24 07:53:39 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-24 07:56:05 +0100 | ddellacosta | (~ddellacos@86.106.143.228) (Ping timeout: 240 seconds) |
2021-02-24 07:58:26 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 272 seconds) |
2021-02-24 07:59:24 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-02-24 08:01:39 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 08:03:39 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2021-02-24 08:06:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 08:11:58 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-02-24 08:12:30 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 08:17:26 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 264 seconds) |
2021-02-24 08:17:52 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-02-24 08:19:55 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 08:19:58 +0100 | SIben_ | SIben |
2021-02-24 08:20:28 +0100 | SIben | Guest2445 |
2021-02-24 08:21:23 +0100 | Guest2445 | BenChe |
2021-02-24 08:23:52 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 08:24:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 08:24:59 +0100 | BenChe | SIben |
2021-02-24 08:28:43 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 08:29:46 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 08:31:05 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds) |
2021-02-24 08:32:11 +0100 | ShiningStar | (1815f7df@c-24-21-247-223.hsd1.or.comcast.net) |
2021-02-24 08:32:32 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 08:33:25 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-02-24 08:34:49 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 08:35:09 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
2021-02-24 08:35:48 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 08:37:22 +0100 | ShiningStar | (1815f7df@c-24-21-247-223.hsd1.or.comcast.net) (Quit: Connection closed) |
2021-02-24 08:39:29 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 08:40:10 +0100 | <afidegnum> | (==) :: (Eq a) => a -> a -> Bool | i'm a bit confused about this statement: "Everything before the => symbol is called a class constraint." |
2021-02-24 08:40:18 +0100 | <afidegnum> | anyone care to explain please? |
2021-02-24 08:40:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 08:40:54 +0100 | <Franciman> | afidegnum, do you know type classes? |
2021-02-24 08:41:03 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-02-24 08:41:03 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-02-24 08:41:03 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-02-24 08:41:20 +0100 | <afidegnum> | are typeclasses similar to type signatures ? |
2021-02-24 08:42:13 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-24 08:42:45 +0100 | <Franciman> | https://en.wikipedia.org/wiki/Type_class |
2021-02-24 08:43:00 +0100 | <Franciman> | probably you can say that they are similar to interfaces in java, I guess |
2021-02-24 08:43:15 +0100 | <Franciman> | in a type class you specify some functions |
2021-02-24 08:43:25 +0100 | <Franciman> | and then if you implement an instance of that type class for a type |
2021-02-24 08:43:34 +0100 | <Franciman> | you have to implement those functions |
2021-02-24 08:43:43 +0100 | <afidegnum> | i'm familiar of interfaces in Golang, |
2021-02-24 08:43:44 +0100 | <Franciman> | (then there are extensions) |
2021-02-24 08:44:38 +0100 | <dminuoso> | afidegnum: So first, a type variable (a type starting with a lower case letter) is one where the caller/user has to pick a type for. Normally, you are free to pick any type you like. |
2021-02-24 08:44:40 +0100 | <dminuoso> | Consider |
2021-02-24 08:44:42 +0100 | <dminuoso> | % :t id |
2021-02-24 08:44:42 +0100 | <yahb> | dminuoso: a -> a |
2021-02-24 08:44:59 +0100 | <dminuoso> | The caller of `id` has to an arbitrary type for `a`, say `Int`. Then the type of `id` becomes `id :: Int -> Int` |
2021-02-24 08:45:30 +0100 | <dminuoso> | *has to pick |
2021-02-24 08:45:35 +0100 | <afidegnum> | a faint light in a tunnel, :) |
2021-02-24 08:45:47 +0100 | <dminuoso> | A class constraint serves to limit your choices |
2021-02-24 08:45:50 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-yvkniqlqtpydzpxk) (Quit: Connection closed for inactivity) |
2021-02-24 08:45:51 +0100 | <dminuoso> | Consider |
2021-02-24 08:45:53 +0100 | <dminuoso> | % :t (<>) |
2021-02-24 08:45:54 +0100 | <yahb> | dminuoso: Semigroup a => a -> a -> a |
2021-02-24 08:46:18 +0100 | <dminuoso> | Here you can pick any `a` you like, as long as for your choice of `a`, let's call it `T`, there exists an `instance Semigroup T` |
2021-02-24 08:46:52 +0100 | <dminuoso> | So one could pronounce that above type signature as: For any choice of `a`, as long as there exists an instance Semigroup a, (<>) has type `a -> a -> a` |
2021-02-24 08:47:35 +0100 | <dminuoso> | % 'a' <> 'b' -- Here the choice of `a` becomes `Char`. GHC will proceed to check whether there exists an `instance Semigroup Char` |
2021-02-24 08:47:35 +0100 | <yahb> | dminuoso: ; <interactive>:24:5: error:; * No instance for (Semigroup Char) arising from a use of `<>'; * In the expression: 'a' <> 'b'; In an equation for `it': it = 'a' <> 'b' |
2021-02-24 08:47:43 +0100 | <dminuoso> | And it does not, so GHC rightfully complains |
2021-02-24 08:48:05 +0100 | <afidegnum> | ok, let me be practicing a little with it to see where it will lead me |
2021-02-24 08:49:44 +0100 | <dminuoso> | afidegnum: To connect to Franciman, this is just interface polymorphism, where you say "Ill work with any Semigroup `a`". And indeed, the implementor of that thing can use the methods defined in `a` (because it's known that the caller/user can only pick a type for `a` for which an instance Semigroup exisdts) |
2021-02-24 08:50:51 +0100 | <afidegnum> | does it means it's a class that support method overloading ? |
2021-02-24 08:51:01 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-02-24 08:51:09 +0100 | <dminuoso> | The term class is meant almost, but not quite, entirely unlike Java classes. |
2021-02-24 08:51:24 +0100 | <afidegnum> | ok |
2021-02-24 08:51:35 +0100 | <dminuoso> | Think of `class` as a synonym of `set` in the mathematic sense, perhaps. It's a "bunch/set/collection of types" satisfying a common interface. |
2021-02-24 08:51:47 +0100 | <dminuoso> | And an "instance" declares that a particular type be a member of that "bunch/set/collection" |
2021-02-24 08:52:21 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 08:52:25 +0100 | <dminuoso> | And a class constraint "C a => ..." demands that the callers/users choice for `a` must be a member/part of that bunch/set/collection" |
2021-02-24 08:52:25 +0100 | <afidegnum> | oh, ok, the light is getting clearer now :) |
2021-02-24 08:53:43 +0100 | aqd | (~aqd@87-92-163-238.rev.dnainternet.fi) |
2021-02-24 08:57:05 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 08:57:26 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-02-24 08:58:01 +0100 | <afidegnum> | can you give me a hint, how do i use haskell to generate code in other languages? Rust i.e ? I have been able to use snippet templates with elisp, but faced few challenges along the way in term of dynamically selecting some fields to generate codes with. |
2021-02-24 08:59:14 +0100 | <dminuoso> | Im stunned at how limited go interfaces are. |
2021-02-24 09:00:01 +0100 | <afidegnum> | I could say go is not much a perfect language, i would call it a binary version of python :) |
2021-02-24 09:00:58 +0100 | <dminuoso> | Well, go is a more sane version of C at the very least. |
2021-02-24 09:01:43 +0100 | <afidegnum> | yes, the use of pointers were more clearer while i was coding in go than C/C++ |
2021-02-24 09:02:54 +0100 | <dminuoso> | Well, Im rather talking about the memory safety here. Barely a day goes by where we dont have to apply critical patches because sprintf was forced onto us. |
2021-02-24 09:03:24 +0100 | <afidegnum> | oh ok |
2021-02-24 09:03:32 +0100 | <dminuoso> | If we just removed sprintf from our c libraries, we'd fix 70% of CVEs in one swoop. |
2021-02-24 09:03:35 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 09:03:48 +0100 | <afidegnum> | i like that, |
2021-02-24 09:04:03 +0100 | <dminuoso> | Or just plain buffer overruns. |
2021-02-24 09:04:52 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-24 09:05:20 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:b7bd:1d78:9a4c:6909) |
2021-02-24 09:05:21 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-02-24 09:07:47 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:4e81:bfc6:428b:4821) |
2021-02-24 09:08:28 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 09:10:13 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 09:10:55 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) (Quit: Lost terminal) |
2021-02-24 09:11:49 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) |
2021-02-24 09:12:16 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-24 09:13:01 +0100 | _xor | (~xor@74.215.46.133) (Quit: brb) |
2021-02-24 09:13:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 09:13:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-02-24 09:14:13 +0100 | danza | (~francesco@151.53.76.37) |
2021-02-24 09:14:26 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-24 09:14:42 +0100 | kuribas | (~user@ptr-25vy0ia1ougr5zd5t67.18120a2.ip6.access.telenet.be) |
2021-02-24 09:14:44 +0100 | bahamas | (~lucian@unaffiliated/bahamas) |
2021-02-24 09:15:27 +0100 | <bahamas> | anyone know why this page is under Extensions, even though it doesn't mention any extensions that need to be enabled? https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/infix_tycons.html |
2021-02-24 09:15:32 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-24 09:16:14 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) |
2021-02-24 09:16:19 +0100 | <bahamas> | I guess it's related to TypeOperators, but that's covered on a different page |
2021-02-24 09:17:46 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 268 seconds) |
2021-02-24 09:19:56 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-02-24 09:19:58 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-24 09:21:53 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 09:22:49 +0100 | <dminuoso> | bahamas: Presumably because infix type constructors are not standard Haskell? |
2021-02-24 09:22:57 +0100 | <dminuoso> | GHC has a bunch of extensions that are always on |
2021-02-24 09:23:22 +0100 | <dminuoso> | `Identifiers are lexically distinguished into two namespaces (Section 1.4): those that begin with a lowercaseletter (variable identifiers) and those that begin with an upper-case letter (constructor identifiers)` |
2021-02-24 09:25:06 +0100 | <Franciman> | dminuoso, do I need to enable an extension to code in Haskell2010? |
2021-02-24 09:26:10 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 09:26:32 +0100 | <bahamas> | dminuoso: I guess I was wondering why that section wasn't in the page that covers TypeOperators, since it's only valid when TypeOperators is enabled, right? but maybe the author(s) decided it's more readable to put it on its own page |
2021-02-24 09:27:13 +0100 | <dminuoso> | Franciman: You need a different compiler, if you want that. |
2021-02-24 09:27:34 +0100 | <dminuoso> | There's things like altered typeclass hierarchies that you cant trivially fix |
2021-02-24 09:27:56 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 260 seconds) |
2021-02-24 09:28:40 +0100 | unlink2 | (~unlink2@p200300ebcf0faf0012aa3378b7c33d3b.dip0.t-ipconnect.de) (Quit: Leaving) |
2021-02-24 09:29:37 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-24 09:30:16 +0100 | guest222` | (~user@61.148.245.136) |
2021-02-24 09:30:34 +0100 | acidjnk_new | (~acidjnk@p200300d0c7390952fca35b4a28487713.dip0.t-ipconnect.de) |
2021-02-24 09:30:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 09:32:03 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 09:34:29 +0100 | guest222 | (~user@49.5.6.87) (Ping timeout: 265 seconds) |
2021-02-24 09:35:31 +0100 | LKoen | (~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.”) |
2021-02-24 09:35:34 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0) |
2021-02-24 09:35:57 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2021-02-24 09:36:17 +0100 | knupfer | (~Thunderbi@200116b82ce9b8005df4752026caea5f.dip.versatel-1u1.de) |
2021-02-24 09:36:45 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-02-24 09:37:37 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) |
2021-02-24 09:39:28 +0100 | _xor | (~xor@74.215.46.133) |
2021-02-24 09:40:48 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 09:42:04 +0100 | zhulikas_ | (~derp@hmm.wantstofly.org) (Quit: zhulikas_) |
2021-02-24 09:42:21 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 09:43:08 +0100 | vchlup | (~vchlup@nat.brnet.cz) (Quit: Leaving) |
2021-02-24 09:46:53 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-24 09:47:59 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 09:48:07 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2021-02-24 09:50:34 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 09:50:53 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-emqhyvlnnsxogtux) |
2021-02-24 09:51:07 +0100 | michalz | (~user@185.246.204.61) |
2021-02-24 09:51:16 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 09:51:25 +0100 | <zmagii> | Is there a partition-of-a-set object in Haskell? |
2021-02-24 09:52:09 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3) |
2021-02-24 09:54:14 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-02-24 09:54:32 +0100 | jneira | (501e6551@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.81) (Ping timeout: 260 seconds) |
2021-02-24 09:55:07 +0100 | <zmagii> | (X,S) where U(S) = X and each s in S is disjoint to the rest. |
2021-02-24 09:55:23 +0100 | <Franciman> | thanks dminuoso |
2021-02-24 09:55:36 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
2021-02-24 09:57:36 +0100 | <dminuoso> | zmagii: Are you, perhaps, looking for https://hackage.haskell.org/package/containers-0.6.4.1/docs/Data-IntSet.html#v:partition ? |
2021-02-24 09:57:55 +0100 | <dminuoso> | (Versions for all the other container types exist) |
2021-02-24 09:59:42 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 10:00:06 +0100 | ichor[m] | (hakonmatri@gateway/shell/matrix.org/x-saaqofiwyljfphil) (Quit: Idle for 30+ days) |
2021-02-24 10:00:16 +0100 | doct0rhu[m] | (doct0rhumo@gateway/shell/matrix.org/x-adqjzaenstckgbzs) (Quit: Idle for 30+ days) |
2021-02-24 10:00:43 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-24 10:01:29 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-24 10:03:57 +0100 | kafl | (~kafl@unaffiliated/kafl) |
2021-02-24 10:04:07 +0100 | <zmagii> | dminuoso: LOL, no, why does everyone seem to want to do that. |
2021-02-24 10:04:12 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-02-24 10:06:18 +0100 | chaosagent | (~chaosagen@217.146.82.202) (Remote host closed the connection) |
2021-02-24 10:06:31 +0100 | pavonia^\_^\ | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-02-24 10:06:50 +0100 | <zmagii> | It should be something like Data.partitionOnSet, if at all there is such a thing. |
2021-02-24 10:06:59 +0100 | <Uniaika> | thank glguy for the global notice |
2021-02-24 10:08:24 +0100 | <zmagii> | I think the confusion about subsets is that a subset is a set; this view is distorted because a subset insn't actually a set. When you view subobjects and quotient objects appropriately, then a partition is at the same level and importance as a subset. |
2021-02-24 10:09:09 +0100 | <zmagii> | So, a subset is (X,S) and a partition is (X,E). S is usually an injective function; E is usually a surjective function. |
2021-02-24 10:10:07 +0100 | guest222` | guest222 |
2021-02-24 10:10:54 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
2021-02-24 10:11:15 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2021-02-24 10:13:53 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
2021-02-24 10:14:15 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2021-02-24 10:15:00 +0100 | <dminuoso> | zmagii: ah, I see. |
2021-02-24 10:17:01 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:c0c2:6fb4:8104:9592) |
2021-02-24 10:17:04 +0100 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) |
2021-02-24 10:17:42 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 10:18:12 +0100 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 268 seconds) |
2021-02-24 10:18:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-24 10:22:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Remote host closed the connection) |
2021-02-24 10:22:05 +0100 | Stephnix | (~Stephnix@195.140.213.38) |
2021-02-24 10:23:56 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 10:26:41 +0100 | <tromp> | i have a line of code "cnts <- mapM showcount diagrams" that produced a list of Ints (showcount maps to IO Int). what's the simplest way to get the sum instead? |
2021-02-24 10:27:41 +0100 | <Taneb> | sumCnts <- sum <$> mapM showcount diagrams? |
2021-02-24 10:28:30 +0100 | leo___ | (~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net) |
2021-02-24 10:28:33 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds) |
2021-02-24 10:28:35 +0100 | hirc | (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed) |
2021-02-24 10:29:36 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 10:30:18 +0100 | sepples_ | sepples |
2021-02-24 10:30:24 +0100 | <tromp> | thanks, Taneb! |
2021-02-24 10:30:44 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) (Remote host closed the connection) |
2021-02-24 10:30:52 +0100 | knupfer | (~Thunderbi@200116b82ce9b8005df4752026caea5f.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-24 10:31:48 +0100 | <dminuoso> | foldMapM would be a cute solution too, if we had it |
2021-02-24 10:32:24 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) |
2021-02-24 10:32:33 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 10:32:53 +0100 | <dminuoso> | % :t foldMapM |
2021-02-24 10:32:53 +0100 | <yahb> | dminuoso: (Monad m, Monoid b, Foldable t) => (a -> m b) -> t a -> m b |
2021-02-24 10:34:11 +0100 | idhugo_ | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) |
2021-02-24 10:34:35 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 10:37:00 +0100 | idhugo__ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds) |
2021-02-24 10:37:28 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 10:38:35 +0100 | <Taneb> | Doesn't that just need Applicative? |
2021-02-24 10:39:11 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 10:40:42 +0100 | <edwardk> | TIL java has had support for strictfp all along. |
2021-02-24 10:42:53 +0100 | edwardk | dances. Now I have a version of IO that can hold values of different RuntimeReps |
2021-02-24 10:43:08 +0100 | <edwardk> | the main headache is figuring out how to hang a nice 'Functor' and 'Monad' equivalent off it. |
2021-02-24 10:43:30 +0100 | <Franciman> | can you define strictfp? |
2021-02-24 10:43:40 +0100 | <edwardk> | Franciman: its a stupid joke https://en.wikipedia.org/wiki/Strictfp |
2021-02-24 10:43:42 +0100 | <tomsmeding> | Taneb: :t \f -> fmap fold . traverse f |
2021-02-24 10:43:46 +0100 | <tomsmeding> | :t \f -> fmap fold . traverse f |
2021-02-24 10:43:48 +0100 | <lambdabot> | (Monoid b, Traversable t, Applicative f) => (a -> f b) -> t a -> f b |
2021-02-24 10:43:54 +0100 | <Franciman> | :P |
2021-02-24 10:43:55 +0100 | <Franciman> | thank you |
2021-02-24 10:44:07 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-02-24 10:44:14 +0100 | edk_ | e |
2021-02-24 10:44:14 +0100 | <edwardk> | https://twitter.com/viktorklang/status/478096781855973376 |
2021-02-24 10:44:36 +0100 | <Franciman> | ahah |
2021-02-24 10:44:57 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-kbqvtlxgpvjeokgb) (Quit: Connection closed for inactivity) |
2021-02-24 10:45:31 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 10:45:36 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 10:45:42 +0100 | <tomsmeding> | oh hm that requires Traversable, more than Foldable |
2021-02-24 10:46:03 +0100 | <tomsmeding> | but maybe that's the whole point, you either need Traversable or Monad? |
2021-02-24 10:46:25 +0100 | <edwardk> | class Functor (f :: forall (r :: RuntimeRep). TYPE r -> TYPE s) where |
2021-02-24 10:46:30 +0100 | <edwardk> | this is the future =) |
2021-02-24 10:46:34 +0100 | <tomsmeding> | beautiful |
2021-02-24 10:47:09 +0100 | <Taneb> | :t \f -> getAp . foldMap (Ap . f) |
2021-02-24 10:47:10 +0100 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
2021-02-24 10:47:19 +0100 | <Franciman> | : id |
2021-02-24 10:47:22 +0100 | <Franciman> | :t id |
2021-02-24 10:47:24 +0100 | <lambdabot> | a -> a |
2021-02-24 10:47:24 +0100 | <Taneb> | I'm not sure that's the right ap |
2021-02-24 10:47:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 10:48:14 +0100 | <Taneb> | It should be :: (Foldable t, Applicative f, Monoid m) => (a -> f m) -> t a -> f m |
2021-02-24 10:48:29 +0100 | <edwardk> | :t \f -> Data.Monoid.getAp . foldMap (Data.Monoid.Ap . f) |
2021-02-24 10:48:31 +0100 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
2021-02-24 10:48:42 +0100 | <edwardk> | weird that isn't simplifying |
2021-02-24 10:48:49 +0100 | <tomsmeding> | we have 'instance (Applicative f, Monoid a) => Monoid (Ap f a)', so should work |
2021-02-24 10:49:56 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-24 10:50:51 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 10:50:58 +0100 | tomsmeding | (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-24 10:51:05 +0100 | timCF | (~i.tkachuk@m91-129-99-43.cust.tele2.ee) |
2021-02-24 10:51:23 +0100 | BENICHN | (~BENICHN@2a02-842a-02b8-e801-e055-7050-fee9-2706.rev.sfr.net) |
2021-02-24 10:51:55 +0100 | tomsmeding | (~tomsmedin@tomsmeding.com) |
2021-02-24 10:53:01 +0100 | fendor | (~fendor@178.165.129.157.wireless.dyn.drei.com) |
2021-02-24 10:57:09 +0100 | [tby] | (~tby@193.234.28.91) |
2021-02-24 10:57:10 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) |
2021-02-24 10:57:43 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 10:57:59 +0100 | timCF | (~i.tkachuk@m91-129-99-43.cust.tele2.ee) (Quit: leaving) |
2021-02-24 10:58:16 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 10:58:26 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Quit: ZNC - https://znc.in) |
2021-02-24 10:58:42 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-24 10:58:56 +0100 | tby | (~tby@unaffiliated/tby) (Ping timeout: 260 seconds) |
2021-02-24 11:00:36 +0100 | juri_ | (~juri@178.63.35.222) |
2021-02-24 11:00:45 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-02-24 11:01:49 +0100 | BENICHN | (~BENICHN@2a02-842a-02b8-e801-e055-7050-fee9-2706.rev.sfr.net) (Quit: Quit) |
2021-02-24 11:02:03 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 11:02:27 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds) |
2021-02-24 11:03:02 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-24 11:05:04 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-02-24 11:05:34 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-24 11:07:20 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 11:11:17 +0100 | <dminuoso> | Taneb: Monad allows us to do this in one swoop |
2021-02-24 11:11:53 +0100 | <dminuoso> | % foldMapM f xs = foldr go pure xs mempty where go x r z = f x >>= \y -> r $! z <> y |
2021-02-24 11:11:53 +0100 | <yahb> | dminuoso: |
2021-02-24 11:11:57 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 264 seconds) |
2021-02-24 11:12:07 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@184.22.159.161) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 11:12:07 +0100 | <dminuoso> | Im not quite sure whether you can do this as effectively with just applicative |
2021-02-24 11:13:39 +0100 | <dminuoso> | Taneb: Oh and the type looks right. Think its just polykinds getting in the way |
2021-02-24 11:13:43 +0100 | <dminuoso> | % :set -XNoPolykinds |
2021-02-24 11:13:44 +0100 | <yahb> | dminuoso: Some flags have not been recognized: -XNoPolykinds |
2021-02-24 11:13:57 +0100 | <dminuoso> | % :set -XNoPolyKinds |
2021-02-24 11:13:57 +0100 | <yahb> | dminuoso: |
2021-02-24 11:14:02 +0100 | <dminuoso> | % :t \f -> getAp . foldMap (Ap . f) |
2021-02-24 11:14:02 +0100 | <yahb> | dminuoso: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1 |
2021-02-24 11:14:44 +0100 | <dminuoso> | Not sure how this works with respect to lazyness |
2021-02-24 11:17:14 +0100 | timCF | (~i.tkachuk@m91-129-99-43.cust.tele2.ee) |
2021-02-24 11:18:01 +0100 | <edwardk> | dminuoso: ah! |
2021-02-24 11:19:44 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 11:20:10 +0100 | <tomsmeding> | :t \f -> foldr (\x acc -> liftA2 (<>) (f x) acc) (pure mempty) |
2021-02-24 11:20:12 +0100 | <lambdabot> | (Foldable t1, Applicative f, Monoid c) => (t2 -> f c) -> t1 t2 -> f c |
2021-02-24 11:20:20 +0100 | <tomsmeding> | that's what the Ap solution expands to |
2021-02-24 11:20:38 +0100 | <tomsmeding> | if you unwrap the newtype |
2021-02-24 11:21:00 +0100 | <tomsmeding> | and assume foldMap has been implemented in the default way using foldr |
2021-02-24 11:21:04 +0100 | <timCF> | Hello! Do anybody know any book similar to "Modern compiler implementation in ML" but where compiler is built for functional language? This book itself is ok, as well as ML code examples are quite readable, but Tiger language which is used as example language for building compiler for is quite procedural. For educational purposes it's ok, but I'll probably enjoy building functional compiler much more |
2021-02-24 11:23:36 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-24 11:24:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 11:25:27 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 11:26:11 +0100 | wz1000 | (~wz1000@static.11.113.47.78.clients.your-server.de) |
2021-02-24 11:26:46 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-24 11:26:55 +0100 | <Franciman> | does anybody do logic programming with haskell? |
2021-02-24 11:30:14 +0100 | <bahamas> | timCF: maybe this helps https://github.com/natefaubion/example-functional-compiler |
2021-02-24 11:30:27 +0100 | <bahamas> | it doesn't have a companion book though |
2021-02-24 11:30:29 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 11:31:06 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 11:32:42 +0100 | <timCF> | bahamas: thanks! |
2021-02-24 11:33:26 +0100 | <tomsmeding> | timCF: this also exists; it's for implementation in Miranda and is relatively old, but it should translate fairly easily to Haskell https://www.microsoft.com/en-us/research/publication/implementing-functional-languages-a-tutorial/ |
2021-02-24 11:33:43 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 11:34:14 +0100 | lyxia | (~lyxia@poisson.chat) (Ping timeout: 256 seconds) |
2021-02-24 11:36:11 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 11:36:46 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 11:36:53 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 11:40:07 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:c0c2:6fb4:8104:9592) (Remote host closed the connection) |
2021-02-24 11:40:56 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-24 11:41:02 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-24 11:41:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 11:42:19 +0100 | nek0 | (~nek0@mail.nek0.eu) (Remote host closed the connection) |
2021-02-24 11:43:55 +0100 | <timCF> | tomsmeding: cool, thanks! |
2021-02-24 11:47:45 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 11:48:58 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 272 seconds) |
2021-02-24 11:49:49 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) () |
2021-02-24 11:53:32 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection) |
2021-02-24 11:54:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 11:54:00 +0100 | bahamas | (~lucian@unaffiliated/bahamas) (Quit: leaving) |
2021-02-24 11:54:04 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 11:54:09 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-24 11:55:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 11:55:37 +0100 | shad0w_ | (31249ccd@49.36.156.205) |
2021-02-24 11:55:42 +0100 | arpl | (~ARPL@84-107-171-239.cable.dynamic.v4.ziggo.nl) |
2021-02-24 11:55:51 +0100 | <shad0w_> | hi all! |
2021-02-24 11:55:55 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2021-02-24 11:56:07 +0100 | <shad0w_> | can someone please explain me the Record function syntax? |
2021-02-24 11:56:27 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 272 seconds) |
2021-02-24 11:56:41 +0100 | <shad0w_> | `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) }` |
2021-02-24 11:56:59 +0100 | <shad0w_> | why is it in there, where do we actually define it ? |
2021-02-24 11:57:43 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-24 11:58:14 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Client Quit) |
2021-02-24 11:58:50 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Ping timeout: 264 seconds) |
2021-02-24 11:59:07 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-02-24 11:59:13 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2021-02-24 11:59:30 +0100 | <arahael> | shad0w_: That's the definition. Why is "what" in there? |
2021-02-24 11:59:54 +0100 | nek0 | (~nek0@mail.nek0.eu) |
2021-02-24 12:00:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 12:00:44 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-24 12:00:51 +0100 | <shad0w_> | arahael: ? |
2021-02-24 12:01:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 12:01:22 +0100 | <arahael> | shad0w_: What is the "it" you're referring to? |
2021-02-24 12:01:34 +0100 | <shad0w_> | the function runMaybeT |
2021-02-24 12:01:51 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 12:02:01 +0100 | <arahael> | shad0w_: Ah, you've only defined the type there, you still have to provide it a function when you create it. |
2021-02-24 12:02:14 +0100 | <shad0w_> | it's a type definition. i understand the normal record syntax. |
2021-02-24 12:02:14 +0100 | <shad0w_> | ` data A = A {name :: String, age: Int }` |
2021-02-24 12:02:29 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-02-24 12:02:39 +0100 | <shad0w_> | that tell's me A is a type constructor with it's paramters named for convinience. |
2021-02-24 12:02:44 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 12:02:48 +0100 | raoul90 | raoul |
2021-02-24 12:02:59 +0100 | <arahael> | And you understand `data A a = A { name: :: a, age:: Int }`, as well? |
2021-02-24 12:03:12 +0100 | <shad0w_> | sure |
2021-02-24 12:03:32 +0100 | <arahael> | shad0w_: `data A a = A { name :: Maybe a, age:: Int}` as well? |
2021-02-24 12:03:49 +0100 | <shad0w_> | i guess |
2021-02-24 12:04:12 +0100 | <arahael> | shad0w_: `data A a = A { name :: Maybe (Maybe a), age :: Int}`? |
2021-02-24 12:04:32 +0100 | <mawk> | où es-tu??? |
2021-02-24 12:05:30 +0100 | <shad0w_> | tilts head. i guess ?? the first arguments is either `Just ( Just something)` or `Just (Nothing)` or simply `Nothing` ? |
2021-02-24 12:05:31 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-02-24 12:06:16 +0100 | PietPtr | (~pieter@unaffiliated/pietdagamer) ("WeeChat 2.3") |
2021-02-24 12:06:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 12:06:37 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-02-24 12:07:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 12:08:31 +0100 | <shad0w_> | arahael: |
2021-02-24 12:08:38 +0100 | ddellacosta | (~ddellacos@86.106.143.137) |
2021-02-24 12:09:06 +0100 | <yushyin> | shad0w_: you are aware that in your `data A = A { name :: String, age :: Int }' haskell provides you with two functions also called field selectors `name :: A -> String' and `age :: A -> Int' same applies to the runMaybeT |
2021-02-24 12:09:36 +0100 | <arahael> | shad0w_: Indeed. |
2021-02-24 12:10:27 +0100 | <shad0w_> | yushyin: vaguely. i think that's the reason record names need to be unique right? |
2021-02-24 12:10:54 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 12:11:06 +0100 | <yushyin> | shad0w_: exactly |
2021-02-24 12:11:53 +0100 | <idnar> | `data A = A {name :: String, age: Int }` creates selector functions `name :: A -> String` and `age :: A -> Int`; similarly `newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) }` creates `runMaybeT :: MaybeT m a -> m (Maybe a)` |
2021-02-24 12:12:22 +0100 | <shad0w_> | idnar: we could do that outside too right ? |
2021-02-24 12:12:29 +0100 | <shad0w_> | like a normal usual function ? |
2021-02-24 12:12:36 +0100 | ddellacosta | (~ddellacos@86.106.143.137) (Ping timeout: 240 seconds) |
2021-02-24 12:12:37 +0100 | <idnar> | shad0w_: yes |
2021-02-24 12:12:41 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-24 12:12:58 +0100 | <shad0w_> | why do we then paramaterize the data constructor with it ? |
2021-02-24 12:13:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-02-24 12:13:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 12:13:37 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) |
2021-02-24 12:13:40 +0100 | <shad0w_> | pardon the noobness : P |
2021-02-24 12:14:58 +0100 | <olligobber> | so I'm getting `Illegal tuple section', but my only tuple section is `pure $ TH.TupE $ replicate n Nothing', which is basically (,) or (,,) |
2021-02-24 12:15:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 12:15:58 +0100 | <idnar> | shad0w_: `newtype MaybeT m a = MaybeT (m (Maybe a)); runMaybeT (MaybeT a) = a` is the same but longer |
2021-02-24 12:16:50 +0100 | <olligobber> | I guess I should use `varE $ mkName $ "(" <> replicate (n-1) ',' <> ")"' instead? |
2021-02-24 12:17:09 +0100 | <shad0w_> | i mean, if now we pattern match on a MaybeT value. won't we also match `runMaybeT` |
2021-02-24 12:17:20 +0100 | <shad0w_> | everytime? |
2021-02-24 12:17:22 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Remote host closed the connection) |
2021-02-24 12:17:32 +0100 | <shad0w_> | idnar: |
2021-02-24 12:17:44 +0100 | <shad0w_> | i keep forgetting to tag lol. |
2021-02-24 12:19:04 +0100 | <olligobber> | nope, then I get `Illegal variable name: ‘(,)’' |
2021-02-24 12:19:43 +0100 | stampirl | (~stampirl@195-154-112-77.rev.poneytelecom.eu) (Quit: WeeChat 2.3) |
2021-02-24 12:20:01 +0100 | <int-e> | olligobber: try conE instead? |
2021-02-24 12:20:07 +0100 | <olligobber> | oh, I use tupleDataName n |
2021-02-24 12:20:27 +0100 | <idnar> | shad0w_: yes, but `runMaybeT foo` is nicer than `case foo of MaybeT x -> x` |
2021-02-24 12:20:38 +0100 | <int-e> | I was going to say that there may be something special for tuple constructors |
2021-02-24 12:21:17 +0100 | <olligobber> | hmm, still an error |
2021-02-24 12:21:28 +0100 | <olligobber> | how is conE different from varE? |
2021-02-24 12:22:28 +0100 | <int-e> | olligobber: conE (tupleDataName 2) should work |
2021-02-24 12:22:29 +0100 | <olligobber> | oh its for constructors |
2021-02-24 12:22:57 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-24 12:24:14 +0100 | <int-e> | if the constructor is fully applied, use `tupE` |
2021-02-24 12:24:14 +0100 | <olligobber> | oh god now there's other errors |
2021-02-24 12:24:19 +0100 | <olligobber> | it is not |
2021-02-24 12:24:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 12:25:11 +0100 | <int-e> | now there's other errors ==> very often that's progress :) |
2021-02-24 12:25:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 12:25:32 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 12:26:05 +0100 | <shad0w_> | idnar: i see. |
2021-02-24 12:26:09 +0100 | <shad0w_> | Thanks! |
2021-02-24 12:26:40 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 12:26:44 +0100 | <shad0w_> | but we have to pass / define a function for runMaybeT anyway right ? |
2021-02-24 12:27:12 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 246 seconds) |
2021-02-24 12:27:36 +0100 | <yushyin> | the record syntax defines it |
2021-02-24 12:27:56 +0100 | <shad0w_> | doesn't it declare it? |
2021-02-24 12:28:06 +0100 | <shad0w_> | like that's just a type definition |
2021-02-24 12:28:30 +0100 | <yushyin> | and also a field selector function |
2021-02-24 12:28:38 +0100 | <shad0w_> | a wut |
2021-02-24 12:29:45 +0100 | vent | (~vent@185.62.190.213) |
2021-02-24 12:29:45 +0100 | <yushyin> | if you use the record syntax a function `runMaybeT :: MaybeT m a -> m (Maybe a)' will be created for you |
2021-02-24 12:31:22 +0100 | <shad0w_> | like it automatically figures out what the function should be based on the type sig? |
2021-02-24 12:31:24 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 12:31:57 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-24 12:32:43 +0100 | <NieDzejkob_> | like, the field of the record is called runMaybeT |
2021-02-24 12:32:47 +0100 | <yushyin> | yes, the only thing it has to do is to pattern match on MaybeT and return you the m (Maybe a) |
2021-02-24 12:32:50 +0100 | <NieDzejkob_> | so the function runMaybeT is the accessor |
2021-02-24 12:33:21 +0100 | <shad0w_> | i think i get it now |
2021-02-24 12:33:39 +0100 | <NieDzejkob_> | are there any clever not-too-painful ways of passing source locations in an AST ADT? |
2021-02-24 12:33:53 +0100 | <shad0w_> | is the mental model of seeing records as objects alright? |
2021-02-24 12:34:10 +0100 | <shad0w_> | like javascript objects. json syntax objects |
2021-02-24 12:34:29 +0100 | <NieDzejkob_> | objects as in OOP, not really. But "thing that holds data" works |
2021-02-24 12:34:41 +0100 | <NieDzejkob_> | it's like a tuple that had its parts named |
2021-02-24 12:34:45 +0100 | <shad0w_> | more like key value pairs |
2021-02-24 12:34:59 +0100 | <shad0w_> | ah, like named tuples |
2021-02-24 12:35:18 +0100 | <NieDzejkob_> | well, javascript's objects are more like a Map, in that the set of keys is decided at runtime |
2021-02-24 12:35:21 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 264 seconds) |
2021-02-24 12:35:41 +0100 | <shad0w_> | im running away from javascript |
2021-02-24 12:35:45 +0100 | <shad0w_> | i need new mental models |
2021-02-24 12:36:14 +0100 | <NieDzejkob_> | well in a language as dynamically typed as javascript you're not gonna find an exact equivalent :D |
2021-02-24 12:36:24 +0100 | <merijn> | NieDzejkob_: "add a field to every node in your AST"? :p |
2021-02-24 12:36:37 +0100 | <shad0w_> | thanks guys. |
2021-02-24 12:36:41 +0100 | <shad0w_> | see you folks around. |
2021-02-24 12:36:52 +0100 | shad0w_ | (31249ccd@49.36.156.205) (Quit: Connection closed) |
2021-02-24 12:37:12 +0100 | <NieDzejkob_> | merijn: yeah... |
2021-02-24 12:37:59 +0100 | <NieDzejkob_> | I mostly want to keep locations in the front-end, and then I do lots of manipulations and generation of new AST terms that don't need locations anymore. Is it possible to get a type with and without location from the same definition? |
2021-02-24 12:37:59 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 12:38:41 +0100 | <NieDzejkob_> | like, I do Expr Type for fully type-inferred expressions and Expr (Maybe Type) for ones without the annotations, like they come from the parser |
2021-02-24 12:38:57 +0100 | <merijn> | NieDzejkob_: "data AST a = ... " "type SourceAST = AST SourceSpan; type SourcelessAST = AST ()"? :p |
2021-02-24 12:39:18 +0100 | <NieDzejkob_> | I guess I could use a unit type, but then the pattern matching/creating nodes will need to specify () everywhere |
2021-02-24 12:39:36 +0100 | <merijn> | NieDzejkob_: You can use pattern synonyms |
2021-02-24 12:39:58 +0100 | <merijn> | Just specify pattern synonyms that always include () for the SourcelessAST version |
2021-02-24 12:40:20 +0100 | forgottenone | (~forgotten@176.42.20.136) |
2021-02-24 12:42:52 +0100 | danvet_ | (~danvet@212-51-149-181.fiber7.init7.net) |
2021-02-24 12:44:38 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 12:47:31 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
2021-02-24 12:47:49 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 265 seconds) |
2021-02-24 12:47:53 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-24 12:48:36 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-24 12:49:32 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 12:57:23 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-24 12:57:46 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-24 12:58:41 +0100 | timCF | (~i.tkachuk@m91-129-99-43.cust.tele2.ee) (Quit: leaving) |
2021-02-24 13:01:37 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 13:03:14 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 13:06:24 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 13:06:40 +0100 | minoru_shiraeesh | (~shiraeesh@5.101.59.211) |
2021-02-24 13:07:48 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 246 seconds) |
2021-02-24 13:10:47 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer) |
2021-02-24 13:13:56 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-xqiuutmfxqpmwhnb) |
2021-02-24 13:15:17 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 13:17:02 +0100 | <NieDzejkob_> | has somebody extracted Elm's error report rendering to a standalone library? |
2021-02-24 13:17:57 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-02-24 13:18:01 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 13:18:45 +0100 | kafl | (~kafl@unaffiliated/kafl) (Ping timeout: 265 seconds) |
2021-02-24 13:19:15 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-02-24 13:19:45 +0100 | ddellacosta | (~ddellacos@86.106.143.72) |
2021-02-24 13:20:08 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-24 13:20:13 +0100 | kafl | (~kafl@unaffiliated/kafl) |
2021-02-24 13:21:42 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:6d81:661e:8f9e:1f6f) |
2021-02-24 13:22:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 13:23:38 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 13:24:05 +0100 | ddellacosta | (~ddellacos@86.106.143.72) (Ping timeout: 240 seconds) |
2021-02-24 13:25:03 +0100 | knupfer | (~Thunderbi@dynamic-046-114-146-074.46.114.pool.telefonica.de) |
2021-02-24 13:25:54 +0100 | knupfer | (~Thunderbi@dynamic-046-114-146-074.46.114.pool.telefonica.de) (Client Quit) |
2021-02-24 13:26:13 +0100 | knupfer | (~Thunderbi@dynamic-046-114-146-074.46.114.pool.telefonica.de) |
2021-02-24 13:27:17 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-24 13:27:26 +0100 | <olligobber> | I think I found a bug with how template haskell works |
2021-02-24 13:27:54 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 13:28:19 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-24 13:28:32 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-24 13:28:37 +0100 | plutoniix | (~q@184.82.193.59) (Quit: Leaving) |
2021-02-24 13:29:11 +0100 | <olligobber> | If you use some operator in a code literal, such as [| f $ a +++ b |] without importing +++ in the file with the template, it assumes things about its associativity, in particular it assumes you mean (f $ a) +++ b |
2021-02-24 13:29:22 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-24 13:29:23 +0100 | <olligobber> | I think instead it should error saying that +++ is not imported |
2021-02-24 13:30:32 +0100 | <olligobber> | I mean precedence, not associativity |
2021-02-24 13:31:43 +0100 | <merijn> | olligobber: How would it tell? |
2021-02-24 13:31:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-24 13:32:06 +0100 | <olligobber> | I don't know how template haskell works, but I thought using other functions in a code literal required them to be imported |
2021-02-24 13:33:08 +0100 | <merijn> | olligobber: Template Haskell generates an AST of Haskell code that gets inserted into the surrounding file and then after all TH splices have been replaced with the produced AST, the resulting code is compiled |
2021-02-24 13:33:54 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 13:34:03 +0100 | <olligobber> | right, but in generating that AST it needs to know the precedence and associativity of the operators, right? |
2021-02-24 13:34:44 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-24 13:35:00 +0100 | <merijn> | olligobber: Sure, but the quasi quoter [| turns "Haskell syntax into a Haskell AST", it does not do name resolution |
2021-02-24 13:35:14 +0100 | poscat1 | poscat |
2021-02-24 13:35:34 +0100 | <merijn> | I'm not sure whether that's supposed to work or not |
2021-02-24 13:35:47 +0100 | <olligobber> | well if I import an operator, then [| |] will use the correct precedence and associativity |
2021-02-24 13:35:55 +0100 | <merijn> | I'm pretty sure the [| quasi quoter only consider it's contents, not the outside |
2021-02-24 13:36:01 +0100 | <olligobber> | but if I don't then [| |] just assumes those |
2021-02-24 13:36:30 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-02-24 13:36:31 +0100 | <merijn> | olligobber: Well, what would you expect it to do instead? |
2021-02-24 13:36:48 +0100 | <olligobber> | error when an operator is used and not imported |
2021-02-24 13:37:43 +0100 | <olligobber> | or produce a warning at least |
2021-02-24 13:37:44 +0100 | <merijn> | olligobber: tbh, that's probably an unrealistic expectation of TH |
2021-02-24 13:38:01 +0100 | <merijn> | olligobber: Try what happens with [|| ||] (i.e. type TH) |
2021-02-24 13:38:04 +0100 | <nshepperd2> | seems like a bit of a sharp edge if generating an AST without doing name resolution means the AST is associated wrong |
2021-02-24 13:38:05 +0100 | <merijn> | s/type/typed |
2021-02-24 13:38:18 +0100 | <merijn> | nshepperd2: It's not associated wrong, though |
2021-02-24 13:38:37 +0100 | <olligobber> | it is? |
2021-02-24 13:38:45 +0100 | <merijn> | nshepperd2: infixl 9 is the right fixity for unspecified things |
2021-02-24 13:38:46 +0100 | <nshepperd2> | are you supposed to do name resolution later and reassociate it in code or something |
2021-02-24 13:38:51 +0100 | bor0 | (~boro@unaffiliated/boro/x-000000001) |
2021-02-24 13:38:54 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-02-24 13:39:12 +0100 | <merijn> | nshepperd2: TH does not guarantee the produced code is valid |
2021-02-24 13:39:33 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
2021-02-24 13:40:19 +0100 | <olligobber> | wait, [|| is a thing?? |
2021-02-24 13:40:45 +0100 | <merijn> | nshepperd2: Basically, the statement is "quasiquoter should fail if name resolution fails", but I don't think (I'm not sure) TH requires name resolution during the TH splice, I think (again, I don't remember the specification) late binding of names is a feature |
2021-02-24 13:41:16 +0100 | <merijn> | Name resolution or late binding, pick one. |
2021-02-24 13:41:20 +0100 | <olligobber> | if [|| does what I think it does, then I don't care how [| works |
2021-02-24 13:41:47 +0100 | <merijn> | olligobber: Typed TH produced, well, typed TH splices which guarantee the resulting splice is type-correct |
2021-02-24 13:42:10 +0100 | <olligobber> | and it does name resolution |
2021-02-24 13:42:39 +0100 | <merijn> | typed TH happens significantly later in the compilation, so I expect it does, yes |
2021-02-24 13:43:26 +0100 | <merijn> | but, uh, consult GHC user guide and/or TH paper to be sure :p |
2021-02-24 13:43:49 +0100 | <nshepperd2> | that sounds like the answer is yes you're meant to manually reassociate the result of [| |] to match what you expect |
2021-02-24 13:43:50 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:6d81:661e:8f9e:1f6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 13:44:21 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) |
2021-02-24 13:44:54 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) (Ping timeout: 246 seconds) |
2021-02-24 13:45:57 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) |
2021-02-24 13:46:04 +0100 | <merijn> | nshepperd2: Well, you're not necessarily meant to, but if [| |] is supposed to generate ASTs in the absence of unresolved names (which, afaict from the docs, it is), the only option when a name is not in scope is "use default fixity" |
2021-02-24 13:46:13 +0100 | <olligobber> | I think using [|| instead of [| is the answer I'm looking for |
2021-02-24 13:46:19 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 13:46:26 +0100 | <merijn> | nshepperd2: It boils down to "do you think late binding is a bug or a feature" |
2021-02-24 13:47:16 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 13:48:40 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-24 13:50:21 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 13:50:29 +0100 | <merijn> | nshepperd2, olligobber: Consider the implications of: https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html#v:mkName and https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html#v:look… |
2021-02-24 13:50:48 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 13:51:21 +0100 | <olligobber> | oh fun a maybe |
2021-02-24 13:51:28 +0100 | mp___ | (~mp@hell.cx) |
2021-02-24 13:51:41 +0100 | <merijn> | Basically, my comments about [| are basically extrapolation from the behaviour you'd get if you manually write something with an unbound name |
2021-02-24 13:52:08 +0100 | <merijn> | That's why there's newName if you wanna guarantee no capturing |
2021-02-24 13:52:35 +0100 | <merijn> | But TH splices with unbound names are "not a bug", and I extrapolate from that, that "quasiquoters with unbound names" are also "not a bug" |
2021-02-24 13:52:47 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-24 13:53:37 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) (Ping timeout: 272 seconds) |
2021-02-24 13:54:08 +0100 | <merijn> | otoh, I think Typed TH *can't* allow unbound names, because that, well, wouldn't be typesafe :p |
2021-02-24 13:54:48 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 13:54:57 +0100 | knupfer | (~Thunderbi@dynamic-046-114-146-074.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2021-02-24 13:55:00 +0100 | <olligobber> | yeah, that's one down side |
2021-02-24 13:55:48 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 13:56:17 +0100 | <merijn> | Typed TH is critically underrated, tbh |
2021-02-24 13:56:42 +0100 | <olligobber> | oh yeah, I'm switching all my TH to Typed TH now I know I can |
2021-02-24 13:56:46 +0100 | <olligobber> | well, where possible |
2021-02-24 13:57:11 +0100 | <merijn> | You can abuse it to smuggle logic from compile time to TH Haskell time with it :) |
2021-02-24 13:57:57 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) |
2021-02-24 13:58:15 +0100 | <olligobber> | so now I have typed template haskell generating haskell code that generates typed lambda calculus |
2021-02-24 13:58:26 +0100 | <olligobber> | this just got more meta |
2021-02-24 13:58:51 +0100 | <olligobber> | wait it doesn't generate typed lambda calculus, those types are only there at compile time |
2021-02-24 13:58:59 +0100 | <olligobber> | *haskell compile time |
2021-02-24 13:59:05 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-24 14:00:13 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 14:00:17 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 14:01:15 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 14:01:20 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 14:03:19 +0100 | Deide | (~Deide@217.155.19.23) |
2021-02-24 14:03:26 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 14:03:29 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 14:04:30 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 14:04:34 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 14:05:09 +0100 | lyxia | (~lyxia@poisson.chat) |
2021-02-24 14:05:27 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) (Ping timeout: 258 seconds) |
2021-02-24 14:08:51 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 14:08:53 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 14:09:48 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 260 seconds) |
2021-02-24 14:10:23 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-24 14:10:55 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
2021-02-24 14:12:49 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-02-24 14:13:04 +0100 | minoru_shiraeesh | (~shiraeesh@5.101.59.211) (Ping timeout: 260 seconds) |
2021-02-24 14:13:28 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 256 seconds) |
2021-02-24 14:14:05 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-24 14:14:59 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-24 14:16:10 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-24 14:17:36 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 14:18:34 +0100 | arpl | (~ARPL@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Quit: Leaving.) |
2021-02-24 14:19:37 +0100 | vyorkin | (~vyorkin@91.193.176.30) |
2021-02-24 14:20:09 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 14:20:48 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-24 14:22:41 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 14:24:15 +0100 | vyorkin | (~vyorkin@91.193.176.30) (Client Quit) |
2021-02-24 14:25:20 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Remote host closed the connection) |
2021-02-24 14:26:36 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 14:26:36 +0100 | carlomagno | (~cararell@148.87.23.13) |
2021-02-24 14:27:33 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) |
2021-02-24 14:27:34 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
2021-02-24 14:28:19 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-24 14:31:00 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 14:31:47 +0100 | acidjnk_new | (~acidjnk@p200300d0c7390952fca35b4a28487713.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-02-24 14:32:26 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:3f22:5bb3:5062:204b) (Ping timeout: 240 seconds) |
2021-02-24 14:32:29 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 14:32:34 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 14:33:38 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:e2d:ed0e:1903:82db) |
2021-02-24 14:34:05 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-24 14:34:05 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-24 14:34:05 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-02-24 14:36:26 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
2021-02-24 14:36:41 +0100 | cur8or | (~cur8or@2c0f:fbe1:3:17:bda5:e820:dbb3:5934) (Ping timeout: 272 seconds) |
2021-02-24 14:37:16 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds) |
2021-02-24 14:37:24 +0100 | Pickchea | (~private@unaffiliated/pickchea) |
2021-02-24 14:39:04 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-24 14:39:15 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2021-02-24 14:42:11 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-24 14:42:30 +0100 | minoru_shiraeesh | (~shiraeesh@5.101.59.211) |
2021-02-24 14:42:39 +0100 | krixec | (~krixec@5.253.207.204) |
2021-02-24 14:43:36 +0100 | raym | (~ray@45.64.220.3) (Quit: leaving) |
2021-02-24 14:46:51 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2021-02-24 14:47:31 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-24 14:47:57 +0100 | ixlun | (~user@213.205.241.202) (Ping timeout: 264 seconds) |
2021-02-24 14:48:01 +0100 | bergey`` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-24 14:48:03 +0100 | krixec | (~krixec@5.253.207.204) (Quit: WeeChat 3.0) |
2021-02-24 14:48:31 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-24 14:48:55 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-24 14:49:16 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds) |
2021-02-24 14:50:46 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-24 14:52:00 +0100 | danvet_ | (~danvet@212-51-149-181.fiber7.init7.net) (Ping timeout: 272 seconds) |
2021-02-24 14:52:01 +0100 | <NieDzejkob_> | wait but if you use an undefined operator, it will error out after expansion anyway, won't it? |
2021-02-24 14:53:25 +0100 | <merijn> | NieDzejkob_: Not if the expansion happens in a place where that operator *is* defined |
2021-02-24 14:54:22 +0100 | <merijn> | NieDzejkob_: Consider TH code defined in module Foo which does not import +++, now that TH code is *called* in module Bar that *does* import +++ |
2021-02-24 14:54:44 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-24 14:55:32 +0100 | bergey`` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2021-02-24 14:56:09 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) (Quit: Ping timeout (120 seconds)) |
2021-02-24 14:59:49 +0100 | proteusguy | (~proteusgu@cm-58-10-208-13.revip7.asianet.co.th) (Quit: Leaving) |
2021-02-24 15:00:11 +0100 | proteusguy | (~proteusgu@cm-58-10-208-13.revip7.asianet.co.th) |
2021-02-24 15:01:33 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-24 15:02:40 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 265 seconds) |
2021-02-24 15:04:37 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-24 15:05:02 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-24 15:06:40 +0100 | acidjnk_new | (~acidjnk@p200300d0c7390952fca35b4a28487713.dip0.t-ipconnect.de) |
2021-02-24 15:06:40 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 15:07:01 +0100 | juri_ | (~juri@178.63.35.222) (Ping timeout: 265 seconds) |
2021-02-24 15:08:50 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-24 15:09:04 +0100 | bor0 | (~boro@unaffiliated/boro/x-000000001) (Quit: Leaving) |
2021-02-24 15:09:07 +0100 | ubert | (~Thunderbi@p200300ecdf25d926855ee11db97a074b.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-24 15:09:26 +0100 | ubert | (~Thunderbi@p200300ecdf25d926e0d56ea876869bf6.dip0.t-ipconnect.de) |
2021-02-24 15:09:34 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 15:10:00 +0100 | <edwardk> | I've also become a big fan of typed TH. |
2021-02-24 15:10:14 +0100 | <Franciman> | mietek has been saying it for a long time |
2021-02-24 15:10:28 +0100 | <Franciman> | macros must be typed too! |
2021-02-24 15:10:31 +0100 | <Franciman> | I did not believe |
2021-02-24 15:11:03 +0100 | <edwardk> | i've been a fan of being able to typecheck name usage in macros at the very least since Dave Herman's old work on that in scheme |
2021-02-24 15:11:14 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-02-24 15:11:21 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
2021-02-24 15:11:33 +0100 | <edwardk> | the usecase of being able to judge whether two programs are alpha-equivalent without doing macro expansion, and being able to rename through macros is pretty damn useful. |
2021-02-24 15:11:45 +0100 | <Franciman> | I think he does think that modal logic can help with code generation and macros |
2021-02-24 15:11:48 +0100 | <Franciman> | but I don't know |
2021-02-24 15:11:58 +0100 | <Franciman> | I like calling them magroz |
2021-02-24 15:12:04 +0100 | <edwardk> | using a modal [] as a staging tool is handy. |
2021-02-24 15:12:14 +0100 | <Franciman> | it is neat, yes! |
2021-02-24 15:12:40 +0100 | <Franciman> | <edwardk> the usecase of being able to judge whether two programs are alpha-equivalent without doing macro expansion, and being able to rename through macros is pretty damn useful. <- how do you do it? |
2021-02-24 15:12:45 +0100 | <edwardk> | i look at the unlifted code i'm writing right now, and 90% of this would melt away if we could just say that the runtime rep was a parameter that had to be partially evaluted before use |
2021-02-24 15:12:45 +0100 | <Franciman> | ah types |
2021-02-24 15:12:48 +0100 | <Franciman> | and names in types |
2021-02-24 15:13:12 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-24 15:13:14 +0100 | <edwardk> | similarly being able to say masks for shuffles had to be staged would allow primops for those into the language cleanly |
2021-02-24 15:13:52 +0100 | <edwardk> | (most assembly opcodes for shuffles in simd instructions have to be for a fixed shuffle mask) |
2021-02-24 15:18:53 +0100 | <Franciman> | why is SIMD so attractive? |
2021-02-24 15:19:03 +0100 | <merijn> | gots to go fast! |
2021-02-24 15:19:04 +0100 | <Franciman> | _speed_ ? |
2021-02-24 15:19:21 +0100 | <merijn> | Franciman: No: *purely functional* speed! |
2021-02-24 15:19:31 +0100 | <Franciman> | how so |
2021-02-24 15:19:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-24 15:20:42 +0100 | alx741 | (~alx741@186.178.108.179) |
2021-02-24 15:20:45 +0100 | <merijn> | "trivially from how SIMD works"? |
2021-02-24 15:21:21 +0100 | <merijn> | As opposed to say, threading, which also gets concurrency involved |
2021-02-24 15:21:59 +0100 | <Franciman> | neat |
2021-02-24 15:22:20 +0100 | Franciman | does not know what SIMD |
2021-02-24 15:22:21 +0100 | <kuribas> | you have CPU level concurrency |
2021-02-24 15:22:35 +0100 | <merijn> | Franciman: SIMD = Single Instruction, Multiple Data |
2021-02-24 15:22:43 +0100 | <kuribas> | you need to put instructions in the right order so they can use concurrency. |
2021-02-24 15:22:45 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-02-24 15:22:47 +0100 | <dminuoso> | Franciman: Modern CPUs have specialized execution ports for SIMD . |
2021-02-24 15:23:05 +0100 | <dminuoso> | (As opposed to something silly as macro op fusion) |
2021-02-24 15:23:05 +0100 | <merijn> | Franciman: Basically, instead of, say, summing 8 integers one at a time, you get a special instruction that does 8 additions on 8 separate values at once |
2021-02-24 15:23:32 +0100 | juri_ | (~juri@178.63.35.222) |
2021-02-24 15:24:14 +0100 | <nshepperd2> | SIMD lets you do 4 things at once without also having to decode and issue 4 instructions at once, that's not nothing |
2021-02-24 15:24:17 +0100 | <Franciman> | this is cool! |
2021-02-24 15:24:28 +0100 | <dminuoso> | Franciman: So these execution ports don't compute these in multiple steps, but they do them in parallel. |
2021-02-24 15:24:51 +0100 | w2321 | (~user@47.245.54.240) |
2021-02-24 15:25:04 +0100 | <dminuoso> | Consider for instance, adding two (mathematicals) vectors together. |
2021-02-24 15:25:19 +0100 | <merijn> | Franciman: https://hackage.haskell.org/package/ghc-prim-0.6.1/docs/GHC-Prim.html#g:33 |
2021-02-24 15:25:39 +0100 | <dminuoso> | With SIMD, you can add say two 16-vector with a single instruction. |
2021-02-24 15:25:53 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) |
2021-02-24 15:25:59 +0100 | <dminuoso> | (assuming 8-bit numbers) |
2021-02-24 15:26:17 +0100 | <dminuoso> | Which is much faster than the 16 single instructions you'd need otherwise |
2021-02-24 15:26:37 +0100 | <merijn> | Well, it's not *that* simple, but yeah |
2021-02-24 15:26:54 +0100 | <merijn> | For one, SIMD operations will downclock your CPU |
2021-02-24 15:27:03 +0100 | <merijn> | so sporadically using them can kill your performance |
2021-02-24 15:27:07 +0100 | <w2321> | getCC = callCC (\c -> return $ fix c) |
2021-02-24 15:27:22 +0100 | <dminuoso> | (This improves instruction bandwidth, decoder buffer, instruction queue, decoder bottleneck, execution port starvation) |
2021-02-24 15:27:23 +0100 | <w2321> | main = flip runContT return $ do { goto <- getCC; lift $ print "hello"; goto } |
2021-02-24 15:27:44 +0100 | <dminuoso> | So on average, this can easily be more than just 16 times faster. |
2021-02-24 15:27:53 +0100 | <w2321> | why this fixed-point can create a loop here? |
2021-02-24 15:28:51 +0100 | <[exa]> | hm, is there some useful standalone c-- compiler, ideally suitable for being used as a backend without the rest of ghc? |
2021-02-24 15:29:16 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:6d81:661e:8f9e:1f6f) |
2021-02-24 15:29:20 +0100 | <merijn> | [exa]: Note that GHC use Cmm, which a kinda custom dialect that diverged from C-- |
2021-02-24 15:29:25 +0100 | <geekosaur> | not any more, I think. plus ghc's cmm kinda drifted away from c-- |
2021-02-24 15:29:33 +0100 | <merijn> | [exa]: Also, no |
2021-02-24 15:30:11 +0100 | <merijn> | [exa]: C-- was invented for similar reasons/goals as LLVM ASM, but they lost and C-- as a concept is basically dead |
2021-02-24 15:30:20 +0100 | <[exa]> | guys c'mon don't tell me I'll need to touch llvm again :D |
2021-02-24 15:30:36 +0100 | <merijn> | [exa]: Basically, yes |
2021-02-24 15:31:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:6ca7:44bb:3dbb:61e5) (Ping timeout: 264 seconds) |
2021-02-24 15:31:37 +0100 | <dminuoso> | Franciman: In fact, modern superscalar CPUs might even have 3 SIMD execution ports, which could in good situations be executed in parallel. |
2021-02-24 15:32:16 +0100 | <dminuoso> | (Usually they are interleaved with the regular ALUs, so at the extremes your CPU could either execute 3 single data operations, or 3 multi data operations...) |
2021-02-24 15:32:48 +0100 | fendor | (~fendor@178.165.129.157.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-24 15:33:08 +0100 | <dminuoso> | So I guess in heavy numerical situations you could expect a speedup of about 35-40 in well generated code |
2021-02-24 15:33:26 +0100 | <dminuoso> | ideally |
2021-02-24 15:33:49 +0100 | <[exa]> | ^ optimistic |
2021-02-24 15:34:05 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Read error: Connection reset by peer) |
2021-02-24 15:34:18 +0100 | <[exa]> | (you'd need to have a really magical compiler) |
2021-02-24 15:34:57 +0100 | <dminuoso> | Intel C++ Compiler is really good :) |
2021-02-24 15:35:00 +0100 | <kuribas> | 35 speedup is very very optimistic... |
2021-02-24 15:35:14 +0100 | <dminuoso> | Well not whole program of course, just talking locally |
2021-02-24 15:35:55 +0100 | <kuribas> | I did a test once, I got 2.5 speedup or so, over an unboxed vector. |
2021-02-24 15:35:56 +0100 | <[exa]> | not saying that there aren't such cases but I haven't seen many algorithms where it would be so efficient |
2021-02-24 15:36:03 +0100 | bravespear|2 | (~Ranhir@157.97.53.139) (Remote host closed the connection) |
2021-02-24 15:36:17 +0100 | <dminuoso> | kuribas: Yeah, with GHC we're not there yet. |
2021-02-24 15:36:33 +0100 | <[exa]> | most often you get stuck on caches and memory throughput much earlier than filling up all SSE op slots |
2021-02-24 15:36:36 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2021-02-24 15:36:42 +0100 | <dminuoso> | [exa]: in linear algebra you can leverage this well, usually |
2021-02-24 15:36:46 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2021-02-24 15:37:06 +0100 | <[exa]> | well yeah |
2021-02-24 15:37:26 +0100 | <[exa]> | esp. if you have a nice 4x4 matrix and a lot of operations to do to it without loading any extra data |
2021-02-24 15:37:36 +0100 | <dminuoso> | but indeed, getting caches primed properly is a bit difficult |
2021-02-24 15:37:46 +0100 | <[exa]> | and ideally you can do the whole thing 4x in parallel |
2021-02-24 15:37:55 +0100 | <dminuoso> | Ideally your code has to be designed to trigger speculative cache prefetching everywhere |
2021-02-24 15:37:58 +0100 | <kuribas> | unboxed vector: 19.44 ms, C 11.23 ms, SIMD: 3.530 ms |
2021-02-24 15:38:30 +0100 | bergey` | (~user@107.181.19.30) |
2021-02-24 15:38:41 +0100 | <dminuoso> | (intel for example speculatively fetches the next cache line when you have 2 (?) consecutive cache lines fetched in a row |
2021-02-24 15:39:13 +0100 | dminuoso | idly wonders whether this could be used to mount yet-another-sidechannel-attack |
2021-02-24 15:39:20 +0100 | <[exa]> | yes. |
2021-02-24 15:39:24 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 260 seconds) |
2021-02-24 15:39:24 +0100 | <[exa]> | :] |
2021-02-24 15:39:40 +0100 | <[exa]> | a bit hard though, you'd need a lot of memory borders |
2021-02-24 15:40:10 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-24 15:40:20 +0100 | idhugo_ | (~idhugo@80-62-117-86-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds) |
2021-02-24 15:40:21 +0100 | <dminuoso> | The main problem with Haskell SIMD is that you need to use these primops manually |
2021-02-24 15:40:32 +0100 | <dminuoso> | It'd be much nicer if GHC could vectorize on its own |
2021-02-24 15:40:47 +0100 | dminuoso | recalls someone doing research on this, think there was a presentation at Haskell eXchange 2019 |
2021-02-24 15:40:50 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-02-24 15:41:00 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-02-24 15:41:10 +0100 | <kuribas> | if you're interested: https://gist.github.com/kuribas/ddd977968c3a56eac505901acb3e8eee |
2021-02-24 15:41:15 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-02-24 15:41:37 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-24 15:41:37 +0100 | <Franciman> | dminuoso, merijn all clear, thanks |
2021-02-24 15:41:43 +0100 | <[exa]> | dminuoso: finding simd possibilities in any "generic" code has been a hot research topic for so long that I guess we can safely assume it's pretty hard at least |
2021-02-24 15:41:48 +0100 | <merijn> | dminuoso: carter, probably? :p |
2021-02-24 15:43:59 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 15:44:51 +0100 | <kuribas> | [exa]: it would already be nice to have some sort of polymorphic unboxed vector type. |
2021-02-24 15:45:19 +0100 | ddellacosta | (~ddellacos@86.106.143.228) |
2021-02-24 15:45:47 +0100 | <edwardk> | nshepperd2: 4 things. 8 things, 16 things. depends on the instructions =) |
2021-02-24 15:46:17 +0100 | <edwardk> | [exa]: my preferred model is to turn things sideways like the intel spmd program compiler. change the problem and it becomes easy |
2021-02-24 15:46:54 +0100 | <[exa]> | that's easy if you're the programmer, I wouldn't like to do that as a compiler just by looking at your for-cycles |
2021-02-24 15:47:01 +0100 | <edwardk> | one of my reasons for playing with unlifted data types is i want to unmothball the Int32x8# types, etc. that are sitting in GHC.Prim and use them for stuff without pain or wrappers |
2021-02-24 15:47:34 +0100 | <dminuoso> | merijn: Ah no. It was Abhiroop Sarkar |
2021-02-24 15:48:01 +0100 | <[exa]> | if there could be useful structural hints for the compiler (like what kuribas seems to suggest), all of this can be very trivial |
2021-02-24 15:48:24 +0100 | <[exa]> | (and allow us to hit the memory throughput limit with full force! :] ) |
2021-02-24 15:48:46 +0100 | <edwardk> | that said, i don't think anyone ever tested packInt8X64# :: (# Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, |
2021-02-24 15:48:46 +0100 | <edwardk> | Int# #) -> Int8X64#Source |
2021-02-24 15:49:10 +0100 | <[exa]> | agree. |
2021-02-24 15:49:11 +0100 | <edwardk> | don't we only supported lifted/unlifted tuples up to 63 or so? |
2021-02-24 15:49:24 +0100 | <dminuoso> | Lifted, at least. |
2021-02-24 15:49:36 +0100 | <dminuoso> | I recall there was an unexplained bug causing segfaults if larger tuples were used. |
2021-02-24 15:49:41 +0100 | <edwardk> | that really needs to use the new Int8# type |
2021-02-24 15:49:48 +0100 | ddellacosta | (~ddellacos@86.106.143.228) (Ping timeout: 256 seconds) |
2021-02-24 15:49:50 +0100 | <geekosaur> | I recall asking that and being told that this kind of usage didn't hit the bug |
2021-02-24 15:49:57 +0100 | <edwardk> | k |
2021-02-24 15:50:03 +0100 | <merijn> | That's also not a tuple |
2021-02-24 15:50:16 +0100 | <merijn> | It's an unboxedtuple, and iirc the issue was with the regular tuple constructor |
2021-02-24 15:50:27 +0100 | <edwardk> | was curious if applied. good to know |
2021-02-24 15:50:28 +0100 | Guest75413 | (~textual@mskresolve-a.mskcc.org) (Remote host closed the connection) |
2021-02-24 15:50:55 +0100 | <edwardk> | on the plus side it doesn't apply. on the minus side i need to consider that larger-than-64-ary unboxed tuples might be fed to me =) |
2021-02-24 15:51:07 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-24 15:51:42 +0100 | <edwardk> | before i could generally bound the amount of cases to compile to "only" around 17^64. |
2021-02-24 15:52:18 +0100 | <edwardk> | > 17^64 |
2021-02-24 15:52:20 +0100 | <lambdabot> | 5607005320601059253161325667991103602003892399764752527847859167616581809464321 |
2021-02-24 15:52:27 +0100 | <edwardk> | that may take a while to compile. |
2021-02-24 15:52:38 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:8c08:9db6:71eb:b930) |
2021-02-24 15:56:00 +0100 | l8star__ | (~l8star@business-90-187-113-149.pool2.vodafone-ip.de) |
2021-02-24 15:56:49 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-24 15:57:23 +0100 | kw | (d4662d5d@212.102.45.93) |
2021-02-24 15:58:22 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-24 15:58:46 +0100 | <kw> | How are folks building stack projects that use nightly or lts-17.* on NixOS? |
2021-02-24 15:59:48 +0100 | <dminuoso> | The same way outside NixOS? |
2021-02-24 15:59:49 +0100 | tby | (~tby@193.234.28.91) |
2021-02-24 15:59:56 +0100 | carlomagno | (~cararell@148.87.23.13) (Ping timeout: 260 seconds) |
2021-02-24 15:59:57 +0100 | Pickchea | (~private@unaffiliated/pickchea) (Ping timeout: 264 seconds) |
2021-02-24 16:00:24 +0100 | [tby] | (~tby@193.234.28.91) (Ping timeout: 260 seconds) |
2021-02-24 16:00:44 +0100 | <kw> | I mean in terms of the GHC version not being in nixpkgs for the current stable version of NixOs. |
2021-02-24 16:01:05 +0100 | <merijn> | kw: Stack downloads it's own copies of GHC... |
2021-02-24 16:01:35 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) (Read error: Connection reset by peer) |
2021-02-24 16:01:39 +0100 | geyaeb_ | (~geyaeb@gateway/tor-sasl/geyaeb) (Remote host closed the connection) |
2021-02-24 16:01:58 +0100 | <kw> | On nix-based systems, stack apparently uses nix to grab ghc. |
2021-02-24 16:01:59 +0100 | geyaeb | (~geyaeb@gateway/tor-sasl/geyaeb) |
2021-02-24 16:02:56 +0100 | carlomagno | (~cararell@148.87.23.13) |
2021-02-24 16:03:31 +0100 | <dminuoso> | kw: Yeah, but it should still be the correct version specified in the resolver. |
2021-02-24 16:03:48 +0100 | <dminuoso> | As it should |
2021-02-24 16:04:13 +0100 | ystael | (~ystael@209.6.50.55) (Quit: leaving) |
2021-02-24 16:04:30 +0100 | ystael | (~ystael@209.6.50.55) |
2021-02-24 16:04:35 +0100 | [tby] | (~tby@193.234.28.91) |
2021-02-24 16:06:16 +0100 | tby | (~tby@193.234.28.91) (Ping timeout: 240 seconds) |
2021-02-24 16:06:21 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-02-24 16:06:45 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 256 seconds) |
2021-02-24 16:06:52 +0100 | <kw> | Sorry, I guess this is more of a nix/nixos question than a haskell question, but their IRC channel seems to be dead except for bets. |
2021-02-24 16:08:49 +0100 | <kw> | I get `error: attribute 'ghc8104' missing, at (string):1:60 (use '--show-trace' to show detailed location information)` (of course '--show-trace' doesn't seem to work with stack). |
2021-02-24 16:09:16 +0100 | <dminuoso> | kw: #nixos is very active. |
2021-02-24 16:09:17 +0100 | <kw> | This, to me, indicates that stack is trying to grab GHC from nix's repo. |
2021-02-24 16:09:27 +0100 | <kw> | And can't find it. |
2021-02-24 16:10:07 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 16:10:09 +0100 | <kw> | Here's what I get from `ghc --version` : |
2021-02-24 16:10:09 +0100 | <kw> | The Glorious Glasgow Haskell Compilation System, version 8.10.4 |
2021-02-24 16:10:43 +0100 | <kw> | So it's not using the system GHC even though it's available and the correct version (because it doesn't match the 'attribute'?). |
2021-02-24 16:11:08 +0100 | Alleria | (~textual@zrcout.mskcc.org) |
2021-02-24 16:11:32 +0100 | Alleria | Guest30451 |
2021-02-24 16:11:37 +0100 | <kw> | dminuoso: I mean, there is a lot of activity but it seems to be bots posting about updated packages. Haven't had anyone respond to a question I've asked. |
2021-02-24 16:11:37 +0100 | <dminuoso> | kw: There's probably something different in the input. |
2021-02-24 16:12:00 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-24 16:12:13 +0100 | <kw> | Right. |
2021-02-24 16:12:51 +0100 | <kw> | Stack wants to find a packaged named 'ghc8104', but GHC 8.10.4 is named 'ghc' in nix's unstable repo. |
2021-02-24 16:13:02 +0100 | <kw> | And as far as I know it is in 19.whatever. |
2021-02-24 16:13:09 +0100 | <kw> | *is not in 19.whatever |
2021-02-24 16:13:51 +0100 | <kw> | I'm not really technical enough to fix this myself. Do I just need to write up a nix shell script that names 'ghc' 'ghc8104'? |
2021-02-24 16:14:07 +0100 | <kw> | Please let me know if this is too off-topic for y'all. |
2021-02-24 16:14:14 +0100 | <kw> | I know this is not a tech support channel. |
2021-02-24 16:14:40 +0100 | <dminuoso> | kw: I dont quite understand what your goal here is. |
2021-02-24 16:15:52 +0100 | <kw> | dminuoso: My goal is to be able to download and build stack-based Haskell packages that use the latest LTS or nightly resolver. |
2021-02-24 16:16:20 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-24 16:16:21 +0100 | <merijn> | kw: Sounds like you'll be adding 8.10.4 support to Nix, then ;) |
2021-02-24 16:17:13 +0100 | <dminuoso> | kw: I see. You probably have to update nixpkgs accordingly |
2021-02-24 16:17:17 +0100 | <kw> | merjin: Yeah, or I'll keep manually editing stack.yamls to use 16.31 and hope that nothing will be broken for folks who use the correct version :9 |
2021-02-24 16:17:28 +0100 | <dminuoso> | Id be surprised if 8.10.4 wasnt in nixpkgs already |
2021-02-24 16:17:38 +0100 | <carter> | One problem I had in simd chats, is that to get the right api you need to have a decent notion of sortah constexpr types and expressions and values. As edwardk has figured out too |
2021-02-24 16:18:05 +0100 | <kw> | It's not: https://search.nixos.org/packages?channel=20.09&from=0&size=50&sort=relevance&query=ghc8104 |
2021-02-24 16:18:30 +0100 | <swarmcollective> | I may be misunderstanding, but it seems that the primary use case or purpose for stack is to curate "the latest that works together seamlessly" and for nix it is "pull in the curated list from nixpkgs" except that you can then "attempt to mix in other things as desired"... |
2021-02-24 16:18:55 +0100 | <dminuoso> | swarmcollective: The latter assessment (about nixpkgs) is incorrect. |
2021-02-24 16:19:16 +0100 | <dminuoso> | nixpkgs is not really a curated list in the same sense, since you can freely intermix things |
2021-02-24 16:19:16 +0100 | <swarmcollective> | but in either case, if you stray from the curated set of packages, then you have to find out whether there is a combination that actually works together nicely. |
2021-02-24 16:19:20 +0100 | <kw> | Yeah, they may be working cross-purposes. But the goal for both seems to be reproducibility. |
2021-02-24 16:19:49 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 16:20:36 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 16:20:55 +0100 | <kw> | Anyway, thanks for the guidance. I'll open a pull request over at nixpkgs when I get the chance. Until then I'll just keep manually editing stack.yaml files. Lower bar. |
2021-02-24 16:21:18 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds) |
2021-02-24 16:22:44 +0100 | <dminuoso> | swarmcollective: The speciality of nixpkgs, is that you can have multiple nixpkgs concurrently without a problem, and mix packages together. |
2021-02-24 16:22:52 +0100 | <dminuoso> | For the most part, this usually works fine |
2021-02-24 16:23:16 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 16:23:31 +0100 | <swarmcollective> | Oh, good point dminuoso. While I've not tried that, I can understand how it is possible. |
2021-02-24 16:23:58 +0100 | <dminuoso> | swarmcollective: On my system I have multiple nix channels concurrently. :) |
2021-02-24 16:24:05 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-02-24 16:24:09 +0100 | <dminuoso> | Thought many nixos users would do the same |
2021-02-24 16:24:34 +0100 | <kw> | Yeah, I'm using unstable to get ghc8104 and the latest stable one for pretty much everything else. |
2021-02-24 16:25:15 +0100 | <kw> | Although that's using the hacky 'fetchTarball' method of getting unstable. |
2021-02-24 16:25:45 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 16:26:39 +0100 | <kw> | Which, come to think of it, may be why things are breaking. |
2021-02-24 16:27:31 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:8c08:9db6:71eb:b930) (Remote host closed the connection) |
2021-02-24 16:28:09 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-24 16:30:44 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 260 seconds) |
2021-02-24 16:34:39 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
2021-02-24 16:35:52 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 16:35:57 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-02-24 16:36:06 +0100 | acidjnk_new | (~acidjnk@p200300d0c7390952fca35b4a28487713.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-24 16:36:13 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 256 seconds) |
2021-02-24 16:36:19 +0100 | <swarmcollective> | I've always thought Nix would be most powerful in mid to large size organizations where a small group of people could develop the Nix configuration and the larger group could benefit from the reproducability. However, for a single developer keeping pace with the constantly evolving ecosystem, it seems a harder sell. |
2021-02-24 16:36:52 +0100 | knupfer | (~Thunderbi@200116b82ce9b800d5ff9e8423fb530e.dip.versatel-1u1.de) |
2021-02-24 16:36:52 +0100 | <swarmcollective> | Admittedly, I'm biased by my struggle with learning the Nix language (error messages and all). :D |
2021-02-24 16:37:35 +0100 | danza | (~francesco@151.53.76.37) (Quit: Leaving) |
2021-02-24 16:37:36 +0100 | <[exa]> | swarmcollective: the cost of environment unification grows quadratically with number of people involved |
2021-02-24 16:39:16 +0100 | <kw> | Rebuiliding nixos has given me a lot less grief than upgrading Ubuntu. |
2021-02-24 16:39:59 +0100 | <kw> | Even with a single-user laptop it's been nice. |
2021-02-24 16:40:47 +0100 | knupfer | (~Thunderbi@200116b82ce9b800d5ff9e8423fb530e.dip.versatel-1u1.de) (Client Quit) |
2021-02-24 16:41:05 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 16:41:06 +0100 | knupfer | (~Thunderbi@200116b82ce9b800d5ff9e8423fb530e.dip.versatel-1u1.de) |
2021-02-24 16:41:20 +0100 | <dminuoso> | Oh yeah, updating my laptop after a year, just to rollback 10 minutes later.. priceless. :) |
2021-02-24 16:42:49 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-02-24 16:43:33 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 16:44:15 +0100 | fendor | (~fendor@91.141.3.187.wireless.dyn.drei.com) |
2021-02-24 16:44:21 +0100 | <swarmcollective> | Virtualization is making it easier to test "the latest and greatest", though. |
2021-02-24 16:45:38 +0100 | <swarmcollective> | Now I have to decide which docker images to keep and which to delete. Even with GHC there have been more than a couple version updates. |
2021-02-24 16:46:18 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 16:52:48 +0100 | <ezzieyguywuf> | is --allow-newer a cabal-the-executable feature strictly, or is it somehow implemented in cabal-the-library as well? |
2021-02-24 16:53:46 +0100 | <merijn> | ezzieyguywuf: I thought someone figured out Setup.hs supports it too, but I'm not sure? |
2021-02-24 16:54:05 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-02-24 16:56:45 +0100 | aqd | (~aqd@87-92-163-238.rev.dnainternet.fi) (Ping timeout: 272 seconds) |
2021-02-24 16:57:41 +0100 | <ezzieyguywuf> | merijn: where might I dig in to try to figure that out? |
2021-02-24 16:57:46 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-02-24 16:57:48 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-eebherdsvusazjal) |
2021-02-24 16:58:09 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 264 seconds) |
2021-02-24 16:58:42 +0100 | <merijn> | ezzieyguywuf: I mean, you could just try "passing --allow-newer" to Setup.hs? ;) |
2021-02-24 16:59:03 +0100 | <ezzieyguywuf> | lol |
2021-02-24 16:59:06 +0100 | <ezzieyguywuf> | fine |
2021-02-24 16:59:28 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Quit: leaving) |
2021-02-24 17:00:23 +0100 | chisui | (588298cc@88.130.152.204) |
2021-02-24 17:00:36 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-02-24 17:00:50 +0100 | syd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Remote host closed the connection) |
2021-02-24 17:01:38 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 17:02:05 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-xqiuutmfxqpmwhnb) (Quit: Connection closed for inactivity) |
2021-02-24 17:03:40 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2021-02-24 17:03:58 +0100 | vgtw_ | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-24 17:04:28 +0100 | l8star__ | (~l8star@business-90-187-113-149.pool2.vodafone-ip.de) (Ping timeout: 258 seconds) |
2021-02-24 17:04:51 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-24 17:05:12 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds) |
2021-02-24 17:05:13 +0100 | vgtw_ | vgtw |
2021-02-24 17:05:19 +0100 | whald | (~trem@2a02:810a:8100:11a6:15b2:7454:c339:fb18) |
2021-02-24 17:05:19 +0100 | l8star__ | (~l8star@business-90-187-113-149.pool2.vodafone-ip.de) |
2021-02-24 17:05:23 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) |
2021-02-24 17:06:37 +0100 | chisui | (588298cc@88.130.152.204) (Killed (Sigyn (Spam is off topic on freenode.))) |
2021-02-24 17:08:48 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-24 17:09:11 +0100 | jacks2 | (~bc8134e3@217.29.117.252) |
2021-02-24 17:09:11 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 17:09:23 +0100 | <jacks2> | hi. how do you feel about abusing <- to seemingly mutate variables (in reality, we are just shadowing names) |
2021-02-24 17:09:31 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-02-24 17:10:01 +0100 | <glguy> | jacks2, it can be better than risking an old version of something getting updated over and over again getting used by accident |
2021-02-24 17:10:40 +0100 | [tby] | tby |
2021-02-24 17:10:47 +0100 | tby | (~tby@193.234.28.91) (Changing host) |
2021-02-24 17:10:47 +0100 | tby | (~tby@unaffiliated/tby) |
2021-02-24 17:10:47 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-02-24 17:11:08 +0100 | <dolio> | I think it works well. |
2021-02-24 17:12:29 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-24 17:12:43 +0100 | <dolio> | When you can do it, at least. |
2021-02-24 17:15:31 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-02-24 17:17:25 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Remote host closed the connection) |
2021-02-24 17:17:44 +0100 | <jacks2> | here is an example, quick and dirty way to add a flag when options aren't complex enough to warrant a dedicated library. https://ideone.com/Ec2NTQ |
2021-02-24 17:18:08 +0100 | <jacks2> | what do you think? :) |
2021-02-24 17:20:03 +0100 | <jacks2> | this way I can match positional arguments with case, without worrying position of --some-flag-or-option |
2021-02-24 17:20:38 +0100 | <jacks2> | without worrying about the position of --some-flag-or-option |
2021-02-24 17:20:55 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 17:21:21 +0100 | <monochrom> | Yeah pretty neat. |
2021-02-24 17:22:35 +0100 | <monochrom> | But GHC 8.4 ... |
2021-02-24 17:23:06 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 17:23:40 +0100 | <ezzieyguywuf> | unrecognized 'configure' option `--allow-newer=QuickCheck' |
2021-02-24 17:23:48 +0100 | <ezzieyguywuf> | so I guess it's not in Setup.hs |
2021-02-24 17:24:05 +0100 | <monochrom> | Right, Setup.hs is different. |
2021-02-24 17:24:36 +0100 | <monochrom> | Its features and omissions are made for e.g. ubuntu maintainers who make debs. |
2021-02-24 17:25:04 +0100 | <merijn> | monochrom: Yeah, but I recall last week someone finding it did exist, but maybe my memory is scrambled |
2021-02-24 17:25:12 +0100 | <merijn> | Could also depend on the version in use :p |
2021-02-24 17:25:49 +0100 | <monochrom> | So for example the whole automatic dependency solving is gone. (Actually never there in the first place, I think Setup predates cabal-install?) Because a deb maker is by definition a control freak who hand-solve dependencies... |
2021-02-24 17:25:52 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-02-24 17:25:53 +0100 | <merijn> | https://cabal.readthedocs.io/en/latest/setup-commands.html#cmdoption-runhaskell-Setup.hs-configure… |
2021-02-24 17:26:02 +0100 | <merijn> | monochrom: Sure |
2021-02-24 17:26:12 +0100 | <merijn> | monochrom: But you still wanna overide them |
2021-02-24 17:26:29 +0100 | <merijn> | monochrom: If the package bounds say <4.1 you might wanna build it with 4.2 |
2021-02-24 17:26:30 +0100 | [tby] | (~tby@193.234.28.91) |
2021-02-24 17:26:42 +0100 | <monochrom> | A deb maker is also supposed to hand-edit the mypackage.cabal file for this. |
2021-02-24 17:26:51 +0100 | <monochrom> | or hand-patch. |
2021-02-24 17:27:19 +0100 | <monochrom> | They already hand-patch all other "source code files" so why not also this. |
2021-02-24 17:27:28 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2021-02-24 17:27:36 +0100 | tby | (~tby@unaffiliated/tby) (Ping timeout: 240 seconds) |
2021-02-24 17:28:00 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-24 17:28:00 +0100 | <ezzieyguywuf> | merijn: that link is for cabal-install though |
2021-02-24 17:28:01 +0100 | <geekosaur> | early cabal-install just wrapped Setup.hs |
2021-02-24 17:28:08 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-24 17:28:08 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-02-24 17:28:11 +0100 | <ezzieyguywuf> | and yea, I'm like the deb guy, but for gentoo lol. |
2021-02-24 17:28:16 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2021-02-24 17:28:22 +0100 | <monochrom> | So put it this way, Setup is designed to be hostile to non-(linux distro workers or chocolatey workers) |
2021-02-24 17:28:28 +0100 | <ezzieyguywuf> | we rolled our own thingy that will relax upperbounds, but I wanted to explore using cabal directly if that feature exists |
2021-02-24 17:28:33 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-02-24 17:29:21 +0100 | <ezzieyguywuf> | monochrom: you seem pretty antagonistic against packagers, lol. |
2021-02-24 17:29:35 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 17:29:45 +0100 | <monochrom> | Darn I have to look up antagonistic |
2021-02-24 17:29:59 +0100 | <ezzieyguywuf> | --constraint almost seems like it could work, but it says "additional constraints" (emphasis added by me) |
2021-02-24 17:30:30 +0100 | <ezzieyguywuf> | n. Contending against; acting in opposition; mutually opposing; opposite. |
2021-02-24 17:30:36 +0100 | [tby] | (~tby@193.234.28.91) (Ping timeout: 240 seconds) |
2021-02-24 17:30:39 +0100 | <monochrom> | Heh OK. I'm not, but meh. |
2021-02-24 17:30:43 +0100 | <ezzieyguywuf> | lol ok |
2021-02-24 17:30:50 +0100 | tby | (~tby@193.234.28.91) |
2021-02-24 17:30:56 +0100 | cods | (~fred@82-65-232-44.subs.proxad.net) (Changing host) |
2021-02-24 17:30:56 +0100 | cods | (~fred@unaffiliated/cods) |
2021-02-24 17:31:20 +0100 | <monochrom> | But I think the proper way is to patch the thispackage.cabal file. |
2021-02-24 17:32:05 +0100 | <merijn> | ezzieyguywuf: It is not |
2021-02-24 17:32:13 +0100 | <merijn> | ezzieyguywuf: THat's the entry for Setup.hs |
2021-02-24 17:32:26 +0100 | <monochrom> | You don't ask gcc to have a flag for "suppress every occurence of #include <nonstdio.h>", no? You patch the *.c files to delete them. |
2021-02-24 17:32:29 +0100 | <merijn> | Possibly the docs are wrong, but still |
2021-02-24 17:32:44 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-24 17:32:55 +0100 | <ezzieyguywuf> | monochrom: but ghc > gcc |
2021-02-24 17:33:00 +0100 | <ezzieyguywuf> | 😂 |
2021-02-24 17:33:26 +0100 | <ezzieyguywuf> | merijn: well well well |
2021-02-24 17:33:30 +0100 | <ezzieyguywuf> | merijn: perhaps it's my version then |
2021-02-24 17:33:38 +0100 | <monochrom> | Or you patch all the *.hs files to make them compatible to the older base... |
2021-02-24 17:33:49 +0100 | <ezzieyguywuf> | I'm on 3.2.1.0 of cabal-the-library |
2021-02-24 17:34:07 +0100 | <ezzieyguywuf> | monochrom: I'm not saying it's unreasonable to expect the packager to patch the .cabal file |
2021-02-24 17:34:19 +0100 | <ezzieyguywuf> | monochrom: I'm just exploring whether or not I actually have to |
2021-02-24 17:34:28 +0100 | <monochrom> | I am not antagonistic to packagers, I just observe that they have a very different convention from programmers. |
2021-02-24 17:34:50 +0100 | <monochrom> | Ah OK then, sorry, yeah I think you have no other option. |
2021-02-24 17:34:51 +0100 | <ezzieyguywuf> | fair |
2021-02-24 17:35:41 +0100 | <ezzieyguywuf> | merijn: looks like that version of the docs was added with cabal-the-executable version 3.4 |
2021-02-24 17:35:50 +0100 | <ezzieyguywuf> | doesn't specific the cabal-the-library version though |
2021-02-24 17:36:06 +0100 | <ezzieyguywuf> | my cabal-the-executable is version 3.2.0.0, but that shouldn't matter |
2021-02-24 17:37:54 +0100 | <ezzieyguywuf> | OH NICE!!!! |
2021-02-24 17:37:58 +0100 | <ezzieyguywuf> | there's newer releases |
2021-02-24 17:38:01 +0100 | <ezzieyguywuf> | I shall dig in to this |
2021-02-24 17:38:15 +0100 | <geekosaur> | 3.4 just got formally released yesterday |
2021-02-24 17:39:15 +0100 | <ezzieyguywuf> | don't see anything in the changelog |
2021-02-24 17:39:22 +0100 | <ezzieyguywuf> | but I'm going to work on this later and see if it was one of the features added |
2021-02-24 17:41:35 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
2021-02-24 17:43:49 +0100 | michalz | (~user@185.246.204.61) (Remote host closed the connection) |
2021-02-24 17:44:34 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-24 17:45:05 +0100 | w2321 | (~user@47.245.54.240) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-02-24 17:45:20 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-24 17:46:42 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-24 17:46:53 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-24 17:47:31 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-24 17:47:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-02-24 17:47:49 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-02-24 17:48:07 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-xfxeeejhmtblxsmq) |
2021-02-24 17:48:48 +0100 | brkscnce | (~obaum@2a02:2450:1020:8283:86fd:d1ff:fe73:fb09) |
2021-02-24 17:50:01 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-gewvwhbittubyvln) |
2021-02-24 17:51:40 +0100 | <brkscnce> | hey, I'm wondering, what are the ' characters in this function for? https://paste.tomsmeding.com/Igfg7P1L |
2021-02-24 17:52:15 +0100 | <tomsmeding> | brkscnce: haskell variable names can include ' characters just like letters |
2021-02-24 17:52:32 +0100 | <tomsmeding> | a'b'c'd is a fine variable name in haskell |
2021-02-24 17:52:46 +0100 | <tomsmeding> | (whether you want a name like that is a different question) |
2021-02-24 17:52:46 +0100 | <brkscnce> | ah, so it's just like f''(x) |
2021-02-24 17:52:53 +0100 | <tomsmeding> | yep |
2021-02-24 17:57:50 +0100 | Stephnix | (~Stephnix@195.140.213.38) (Remote host closed the connection) |
2021-02-24 17:58:15 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-02-24 17:58:52 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 17:59:27 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 17:59:36 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 240 seconds) |
2021-02-24 18:00:54 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-02-24 18:05:34 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-02-24 18:05:41 +0100 | <c_wraith> | this has the amusing side effect of allowing contractions in haskell names. They probably shouldn't be used that way :) |
2021-02-24 18:05:49 +0100 | <minoru_shiraeesh> | are my messages in this going to be visible? |
2021-02-24 18:05:57 +0100 | <minoru_shiraeesh> | *in this chat |
2021-02-24 18:06:19 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-24 18:06:31 +0100 | <yushyin> | minoru_shiraeesh: we see your messages |
2021-02-24 18:06:43 +0100 | <minoru_shiraeesh> | thanks |
2021-02-24 18:08:08 +0100 | <maerwald> | yeah, sometimes I'm also amazed how the internet works at all with its shi**y protocols |
2021-02-24 18:08:45 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 18:09:04 +0100 | <minoru_shiraeesh> | there was a spam wave today, and ops changed settings, so I wasn't sure |
2021-02-24 18:09:17 +0100 | <maerwald> | yeah, I got a lot of PMs as well |
2021-02-24 18:09:26 +0100 | <c_wraith> | the setting they changed was about receiving PMs from unregistered accounts |
2021-02-24 18:10:11 +0100 | <maerwald> | and the messages were really random, not even any conspiracy theories |
2021-02-24 18:10:55 +0100 | <minoru_shiraeesh> | there was a discussion of twitch streams not so long ago |
2021-02-24 18:10:56 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-02-24 18:11:21 +0100 | <minoru_shiraeesh> | any twitch stream watchers online? |
2021-02-24 18:11:23 +0100 | <c_wraith> | They felt like messages designed to weaken spam filters by training them on nonsense that targeted spam doesn't have. But I'm not sure any IRC server works like that. |
2021-02-24 18:13:01 +0100 | cdb | (~cdb@185.163.110.108) |
2021-02-24 18:14:31 +0100 | <minoru_shiraeesh> | I need someone to confirm that my stream is visible |
2021-02-24 18:14:47 +0100 | <srk> | mpv <url> :) |
2021-02-24 18:15:01 +0100 | <minoru_shiraeesh> | on twitch |
2021-02-24 18:15:17 +0100 | <srk> | mpv <twitch-url> |
2021-02-24 18:15:26 +0100 | <minoru_shiraeesh> | what's mpv? |
2021-02-24 18:15:43 +0100 | <srk> | video media player |
2021-02-24 18:16:12 +0100 | <minoru_shiraeesh> | and also to discuss cont and contT usage |
2021-02-24 18:16:36 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2021-02-24 18:17:04 +0100 | <minoru_shiraeesh> | I mean, is my stream going to show up in search results or something |
2021-02-24 18:18:45 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-02-24 18:21:02 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) (Ping timeout: 264 seconds) |
2021-02-24 18:21:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-24 18:21:25 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-24 18:21:33 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 18:21:48 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-02-24 18:22:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 18:22:56 +0100 | <brkscnce> | is it like a haskell stream? |
2021-02-24 18:23:01 +0100 | <brkscnce> | do people stream haskell? |
2021-02-24 18:24:38 +0100 | coot_ | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-24 18:24:38 +0100 | coot_ | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-24 18:24:39 +0100 | tby | (~tby@193.234.28.91) (Remote host closed the connection) |
2021-02-24 18:25:11 +0100 | tby | (~tby@193.234.28.91) |
2021-02-24 18:26:00 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 260 seconds) |
2021-02-24 18:26:32 +0100 | tby | (~tby@193.234.28.91) (Remote host closed the connection) |
2021-02-24 18:26:49 +0100 | <minoru_shiraeesh> | there was a discussion of twitch and youtube streamer who stream their haskell coding sessions |
2021-02-24 18:26:56 +0100 | tby | (~tby@193.234.28.91) |
2021-02-24 18:26:56 +0100 | tby | (~tby@193.234.28.91) (Changing host) |
2021-02-24 18:26:56 +0100 | tby | (~tby@unaffiliated/tby) |
2021-02-24 18:26:58 +0100 | <minoru_shiraeesh> | *streamers |
2021-02-24 18:27:07 +0100 | tby | (~tby@unaffiliated/tby) (Remote host closed the connection) |
2021-02-24 18:27:11 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-24 18:27:16 +0100 | <EvanR> | there's some functional music synth packages that you should definitely stream |
2021-02-24 18:28:21 +0100 | <minoru_shiraeesh> | hmm, not sure if it's a wordplay |
2021-02-24 18:29:42 +0100 | <EvanR> | aol keyword "live coding" |
2021-02-24 18:31:06 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) |
2021-02-24 18:32:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-24 18:34:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 18:34:36 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 240 seconds) |
2021-02-24 18:34:38 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) |
2021-02-24 18:36:10 +0100 | saitamaplus | (uid272474@gateway/web/irccloud.com/x-qsruztdwynmbeqgd) (Quit: Connection closed for inactivity) |
2021-02-24 18:36:14 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 18:38:07 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-02-24 18:38:27 +0100 | <ezzieyguywuf> | if I start using ghc-9, can I expect to run into a bunch of problems? |
2021-02-24 18:38:31 +0100 | <ezzieyguywuf> | i.e. packages not compiling? |
2021-02-24 18:39:01 +0100 | <ezzieyguywuf> | if I resolve these problems, is there any chance that a user still using ghc-8 might run into issues? (i.e. b/c they're using the same package as me) |
2021-02-24 18:39:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-24 18:39:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 18:40:36 +0100 | rj_ | (~x@gateway/tor-sasl/rj) () |
2021-02-24 18:40:54 +0100 | <tomsmeding> | ezzieyguywuf: new versions of cabal nicely separate compiled packages for different ghc versions and compilation configurations in ~/.cabal |
2021-02-24 18:41:32 +0100 | <ezzieyguywuf> | tomsmeding: I'm aware, but we don't have a similar feature in gentoo - we're forced to use the same ghc-version across-the-board on any given system |
2021-02-24 18:41:39 +0100 | <tomsmeding> | note that this also means that if you switch ghc versions, you'll be rebuilding the world :p |
2021-02-24 18:42:02 +0100 | <ezzieyguywuf> | so even though I could be developing with ghc-9 on my local machine, the majority of my user-base will remain on ghc-8 until things are sufficiently stable |
2021-02-24 18:42:05 +0100 | <tomsmeding> | okay, so where are you storing those compiled packages? |
2021-02-24 18:42:10 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-24 18:42:12 +0100 | <tomsmeding> | define user-base |
2021-02-24 18:42:17 +0100 | <ezzieyguywuf> | other gentoo users |
2021-02-24 18:42:23 +0100 | <tomsmeding> | compilation products between ghc versions are incompatible |
2021-02-24 18:42:31 +0100 | ubert | (~Thunderbi@p200300ecdf25d926e0d56ea876869bf6.dip0.t-ipconnect.de) (Quit: ubert) |
2021-02-24 18:42:49 +0100 | <ezzieyguywuf> | yes I'm aware - hrm, I think I've done a poor job phrasing my question. |
2021-02-24 18:42:53 +0100 | <tomsmeding> | what exactly are you sending to those other gentoo users? just haskell source code, or also compiled things? |
2021-02-24 18:43:14 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) (Ping timeout: 264 seconds) |
2021-02-24 18:43:35 +0100 | <ezzieyguywuf> | tomsmeding: neither. similar to a debian package, I'm sending them an "ebuild" that specifies dependencies and how to compile the package. the gentoo package manager uses this to compile the package locally on their systm |
2021-02-24 18:43:56 +0100 | <tomsmeding> | so you're sending them source code and compilation instructions? |
2021-02-24 18:44:00 +0100 | <tomsmeding> | roughly |
2021-02-24 18:44:07 +0100 | <ezzieyguywuf> | tomsmeding: yes roughly. |
2021-02-24 18:44:24 +0100 | tby | (~tby@193.234.28.91) |
2021-02-24 18:44:24 +0100 | tby | (~tby@193.234.28.91) (Changing host) |
2021-02-24 18:44:24 +0100 | tby | (~tby@unaffiliated/tby) |
2021-02-24 18:44:32 +0100 | <tomsmeding> | that depends fully on whether the code, and its dependencies, build on both ghc versions |
2021-02-24 18:44:32 +0100 | <ezzieyguywuf> | so my question is: if I focus on writing these instructions with ghc-9, is there a chance that it won't work when someone follows them ith ghc-8 |
2021-02-24 18:44:45 +0100 | tby | (~tby@unaffiliated/tby) () |
2021-02-24 18:44:46 +0100 | <ezzieyguywuf> | keeping in mind that I may patch the haskell source files, i.e. to bump dependency versions. |
2021-02-24 18:44:51 +0100 | <ezzieyguywuf> | i see. |
2021-02-24 18:44:53 +0100 | borne | (~fritjof@200116b8644ab70010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-24 18:44:54 +0100 | <maerwald> | ebuilds don't work well with ghc, why even bother? |
2021-02-24 18:45:01 +0100 | <tomsmeding> | it might not work if you're using a package version in those instructions that only supports ghc 9 |
2021-02-24 18:45:07 +0100 | <ezzieyguywuf> | maerwald: they work all right. |
2021-02-24 18:45:12 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-02-24 18:45:13 +0100 | <maerwald> | ezzieyguywuf: not really :p |
2021-02-24 18:45:18 +0100 | <ezzieyguywuf> | maerwald: yea huh! |
2021-02-24 18:45:20 +0100 | <ezzieyguywuf> | :) |
2021-02-24 18:45:20 +0100 | <tomsmeding> | which is unlikely at the moment, but it is theoretically an issue |
2021-02-24 18:45:23 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-24 18:45:34 +0100 | <maerwald> | libraries are pinned to one ghc subslot, that's awful |
2021-02-24 18:45:51 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Remote host closed the connection) |
2021-02-24 18:46:00 +0100 | <ezzieyguywuf> | maerwald: it's unfortunate. but I don't know that I'd say "awful" - why so awful? |
2021-02-24 18:46:10 +0100 | <tomsmeding> | "why even bother" -- because some people use it, and it's nice to help them |
2021-02-24 18:46:12 +0100 | <tomsmeding> | :) |
2021-02-24 18:46:13 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-02-24 18:46:19 +0100 | <ezzieyguywuf> | tomsmeding: right! |
2021-02-24 18:46:20 +0100 | <maerwald> | because your experiment forces users to upgrade their entire system to newer ghc |
2021-02-24 18:46:57 +0100 | <tomsmeding> | my understanding was that ezzieyguywuf wanted to create an ebuild that works both for ghc 9 and ghc 8 |
2021-02-24 18:46:57 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 18:47:01 +0100 | <maerwald> | so yes, they will run into problems |
2021-02-24 18:47:03 +0100 | <maerwald> | don't do it |
2021-02-24 18:47:05 +0100 | <tomsmeding> | as far as that's a thing; I have no idea how gentoo works |
2021-02-24 18:47:12 +0100 | <ezzieyguywuf> | maerwald: but what's wrong with that? it actually gives the user a choice "Upgrade ghc, and everything haskell-related, or just keep using the older one" |
2021-02-24 18:47:31 +0100 | knupfer | (~Thunderbi@200116b82ce9b800d5ff9e8423fb530e.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-02-24 18:47:37 +0100 | <ezzieyguywuf> | tomsmeding: yes, that is what I want to do, and your summary of the potential pitfalls is a good one. |
2021-02-24 18:47:40 +0100 | knupfer | (~Thunderbi@200116b82ce9b80069be852dc8e82fbe.dip.versatel-1u1.de) |
2021-02-24 18:47:48 +0100 | <maerwald> | ezzieyguywuf: it's the opposite of flexible (e.g. cabal nix-style builds, stack, nix, ...) |
2021-02-24 18:48:01 +0100 | <ezzieyguywuf> | my main concern is that if I start focusing my ebuild development efforts based on a ghc-9 environment, I wouldn't want to introduce any regressions to those still using ghc-8 |
2021-02-24 18:48:06 +0100 | <tomsmeding> | it's basically like any other programming language where you want a particular project to work with two different compiler/runtime/library/whatever versions |
2021-02-24 18:48:30 +0100 | <tomsmeding> | all components of your dependency tree need to support both versions, and if they do, you're fine |
2021-02-24 18:48:57 +0100 | <tomsmeding> | ghc 9 and new cabal have some newer compilation flags that older ghc may not support, but that's just a special case of the same issue |
2021-02-24 18:49:35 +0100 | <minoru_shiraeesh> | one program can force other programs to recompile? |
2021-02-24 18:49:38 +0100 | <ezzieyguywuf> | honestly, one of my mid-term goals is to figure out how to update the gentoo EAPI so that we can properly implement something similar to what cabal/ghc does, with a unique hash that identifies a dependencie's ABI and then rebuilds or builds a new one as needed. |
2021-02-24 18:50:00 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-02-24 18:50:11 +0100 | <ezzieyguywuf> | minoru_shiraeesh: yes, but to a limited extend within gentoo. |
2021-02-24 18:50:19 +0100 | <maerwald> | ezzieyguywuf: portage isn't built for this, look at nix |
2021-02-24 18:50:35 +0100 | <ezzieyguywuf> | maerwald: isn't built for this yet |
2021-02-24 18:50:42 +0100 | <ezzieyguywuf> | but what's stopping us from making it better. |
2021-02-24 18:50:51 +0100 | <maerwald> | yes and EAPI changes will make it worse, like subslots did |
2021-02-24 18:51:05 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-24 18:51:16 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
2021-02-24 18:51:18 +0100 | <maerwald> | anyway, gl getting that through QA/council |
2021-02-24 18:51:56 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-24 18:53:05 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) |
2021-02-24 18:56:07 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-02-24 18:57:46 +0100 | <ezzieyguywuf> | lol thanks |
2021-02-24 18:57:55 +0100 | <ezzieyguywuf> | working on becoming an official dev first |
2021-02-24 18:57:57 +0100 | <ezzieyguywuf> | then that |
2021-02-24 18:58:20 +0100 | <ezzieyguywuf> | maerwald: I'm interested to hear your thoughts on hwy subslots are so bad. but perhaps this isn't the best forum for that |
2021-02-24 18:58:36 +0100 | <maerwald> | ezzieyguywuf: yes, I could write pages of blog posts about that |
2021-02-24 18:58:39 +0100 | Wuzzy | (~Wuzzy@p57a2f9e0.dip0.t-ipconnect.de) |
2021-02-24 19:00:31 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 19:00:42 +0100 | <monochrom> | Hey gentoo is all about recompiling. >:) |
2021-02-24 19:01:03 +0100 | <monochrom> | gentoo and xmonad are BFF |
2021-02-24 19:01:13 +0100 | <ezzieyguywuf> | hah, probably more accurately "gentoo is all about doing things exactly the way you want to" |
2021-02-24 19:01:17 +0100 | <ezzieyguywuf> | or something like that. |
2021-02-24 19:01:29 +0100 | <geekosaur> | same could be said of xmonad |
2021-02-24 19:01:43 +0100 | <monochrom> | QED |
2021-02-24 19:01:50 +0100 | <ezzieyguywuf> | i've been meaning to give xmonad another shot |
2021-02-24 19:01:55 +0100 | <ezzieyguywuf> | but i3 Just Works™ |
2021-02-24 19:01:57 +0100 | <ezzieyguywuf> | mostly |
2021-02-24 19:02:00 +0100 | <maerwald> | monochrom: ppl don't understand that most package managers were built in an era of C-libraries... even for python, they only work ok-ish, perl still causes problems, go and rust are hopeless and haskell ... |
2021-02-24 19:02:30 +0100 | <monochrom> | haskell, "the impossible has just happened" |
2021-02-24 19:02:46 +0100 | <monochrom> | @quote impossible.has.just.happened |
2021-02-24 19:02:46 +0100 | <lambdabot> | No quotes match. Abort, Retry, Panic? |
2021-02-24 19:02:56 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
2021-02-24 19:02:56 +0100 | <dminuoso> | ezzieyguywuf: The cool thing about xmonad is that you can readily extend xmonad in most places with just plain high level haskell code. |
2021-02-24 19:02:57 +0100 | <maerwald> | so if you really want to do crazy things with haskell, you gotta swallow the bullet and go with nix, no matter how awful it is |
2021-02-24 19:02:58 +0100 | <monochrom> | Hrm, let me find it. |
2021-02-24 19:03:10 +0100 | <maerwald> | (and it is awful) |
2021-02-24 19:03:39 +0100 | <justsomeguy> | What's awful about Nix? |
2021-02-24 19:03:48 +0100 | <monochrom> | @quote autrijus impossible.just |
2021-02-24 19:03:48 +0100 | <lambdabot> | autrijus says: Perl: "Easy things are easy, hard things are possible" <autrijus> Haskell: "Hard things are easy, the impossible just happened" |
2021-02-24 19:04:06 +0100 | <dminuoso> | ezzieyguywuf: Like, I dont even need something like dmenu/rofi - I can do this first class from xmonad with very simplistic code - and its fully programmable. https://gitlab.com/dminuoso/xmonad-config/-/blob/master/lib/Windows.hs#L90-93 |
2021-02-24 19:04:18 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 19:04:19 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-24 19:04:19 +0100 | <maerwald> | and then... even when you're using nix for haskell, you gotta realize your builds are still not reproducible :p |
2021-02-24 19:04:28 +0100 | <dminuoso> | (I even built an emacs-style mod-x command for all "commands" my xmonad has) |
2021-02-24 19:04:44 +0100 | <dminuoso> | cant do this in i3 |
2021-02-24 19:05:08 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 19:05:14 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-24 19:07:16 +0100 | <swarmcollective> | minoru_shiraeesh, are you streaming now? I can verify that your stream is working, if so. |
2021-02-24 19:08:21 +0100 | <minoru_shiraeesh> | several days ago I heard an old podcast episode discussing go's solution (or a lack thereof) for vendoring. They didn't create a tool deliberately, to see what a community creates instead. |
2021-02-24 19:08:28 +0100 | <minoru_shiraeesh> | but that's old information |
2021-02-24 19:09:01 +0100 | <minoru_shiraeesh> | swarmcollective: thanks, I'm gonna start |
2021-02-24 19:09:06 +0100 | <maerwald> | dminuoso: code as config sux :( |
2021-02-24 19:09:14 +0100 | <maerwald> | because it's a time sink |
2021-02-24 19:09:20 +0100 | <maerwald> | you realize all the cool things you can do |
2021-02-24 19:09:25 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-02-24 19:09:33 +0100 | <maerwald> | so I avoid it whenever I can |
2021-02-24 19:10:02 +0100 | <geekosaur> | it was a time sink when I wrote it; I haven't really touched it since (except to rearrange layouts slightly when switching to my new laptop with its larger screen) |
2021-02-24 19:10:20 +0100 | <maerwald> | i3 config is kinda well designed |
2021-02-24 19:10:34 +0100 | rj_ | rj |
2021-02-24 19:10:40 +0100 | <maerwald> | and you can still do weird stuff with ibus and shell scripts |
2021-02-24 19:10:57 +0100 | <swarmcollective> | Am I correct in understanding that given: newtype Thing m a b = Thing { runThing :: m (a -> a) } GHC will ignore b since it is not used? |
2021-02-24 19:11:00 +0100 | <dminuoso> | maerwald: Im not convinced that `code as config` sucks. There's no clear separation between the two. :) |
2021-02-24 19:11:14 +0100 | <dminuoso> | swarmcollective: What do you mean by "ignore"? |
2021-02-24 19:11:17 +0100 | <dminuoso> | It will certainly not ignore it. |
2021-02-24 19:11:24 +0100 | <maerwald> | dminuoso: turing complete |
2021-02-24 19:11:30 +0100 | <maerwald> | very clear separation |
2021-02-24 19:11:32 +0100 | <swarmcollective> | I see the error: Couldn't match expected type `a1 -> a1' with actual type `[Char]' when using where y = Thing $ (15, f, "test") |
2021-02-24 19:11:42 +0100 | <dminuoso> | So say, if you have `f :: Thing M A Int -> Bool` and you try to pass it `Thing M A Char` it will complain. |
2021-02-24 19:12:21 +0100 | <dminuoso> | maerwald: The turing argument is deeply flawed, I think. |
2021-02-24 19:12:49 +0100 | borne | (~fritjof@200116b8644ab70010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-02-24 19:12:49 +0100 | jneira | (501e6551@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.81) |
2021-02-24 19:12:51 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 19:13:52 +0100 | <swarmcollective> | Somehow it is including "test" in the function (a -> a), though `f` is (Int -> Int) |
2021-02-24 19:14:48 +0100 | cheater | (~user@unaffiliated/cheater) (Quit: Killed (einride (Requested by panasync))) |
2021-02-24 19:16:10 +0100 | proteusguy | (~proteusgu@cm-58-10-208-13.revip7.asianet.co.th) (Remote host closed the connection) |
2021-02-24 19:17:01 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 19:17:32 +0100 | <dminuoso> | maerwald: That is, if you dont like the full expressivity of a programming language, you dont have to use it. It's there for your convenience. |
2021-02-24 19:17:32 +0100 | <swarmcollective> | https://paste.tomsmeding.com/dTUU2ZXf |
2021-02-24 19:17:34 +0100 | augnun | (~augnun@2804:14c:658b:41bb:3dc0:3938:a79e:b2ee) |
2021-02-24 19:17:35 +0100 | <minoru_shiraeesh> | swarmcollective: are you here? I started streaming. I noticed that I can't find my stream by the "haskell" keyword, but I can find it by my nickname |
2021-02-24 19:17:43 +0100 | <minoru_shiraeesh> | not sure why |
2021-02-24 19:18:01 +0100 | Pickchea | (~private@unaffiliated/pickchea) |
2021-02-24 19:18:26 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-24 19:18:40 +0100 | <maerwald> | dminuoso: nope, because you'll have to deal with awful APIs too |
2021-02-24 19:18:52 +0100 | <maerwald> | you get pulled into the turing completeness |
2021-02-24 19:19:03 +0100 | <dminuoso> | maerwald: well the "awful API" is equivalent to "awful config format" |
2021-02-24 19:19:07 +0100 | <dminuoso> | So that's not much of an argument |
2021-02-24 19:19:10 +0100 | <maerwald> | it isn't |
2021-02-24 19:19:15 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-24 19:19:45 +0100 | <dminuoso> | We're handrolling "code as config" radius servers because freeradius is just pure madness to configure. |
2021-02-24 19:20:32 +0100 | <monochrom> | My impression is that all things radius are madness. |
2021-02-24 19:20:52 +0100 | <dminuoso> | Dunno, it's a nice pipe fitting protocol in the networking world |
2021-02-24 19:21:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) (Remote host closed the connection) |
2021-02-24 19:21:09 +0100 | <dminuoso> | Our small radius server combinator framework is usable |
2021-02-24 19:21:16 +0100 | <geekosaur> | but networking is madness |
2021-02-24 19:21:19 +0100 | <maerwald> | there's no way you can build something as easily usable as a good config format once you're sold on a turing complete language, no matter how hard you try |
2021-02-24 19:21:19 +0100 | <dminuoso> | heh |
2021-02-24 19:21:27 +0100 | <monochrom> | OK yeah networking. :) |
2021-02-24 19:21:32 +0100 | <dminuoso> | geekosaur: Fair. Point. |
2021-02-24 19:21:38 +0100 | <dminuoso> | :) |
2021-02-24 19:21:56 +0100 | <maerwald> | look at propellor, they tried.. you'll still end up with magnitudes more complex code |
2021-02-24 19:22:05 +0100 | <maerwald> | compared to awful ansible yaml format |
2021-02-24 19:22:07 +0100 | <dminuoso> | maerwald: A single example is not exhaustive proof of your claim. |
2021-02-24 19:22:12 +0100 | <maerwald> | and both achieve the exact same thing |
2021-02-24 19:22:20 +0100 | <dminuoso> | Consider: |
2021-02-24 19:22:23 +0100 | <maerwald> | dminuoso: I'm not writing a thesis on it :) |
2021-02-24 19:22:48 +0100 | <maerwald> | expressivity is our enemy, not our friend |
2021-02-24 19:22:51 +0100 | <dminuoso> | maerwald: Let's for the sake of argument say that `ini-style` is an acceptable/good config format |
2021-02-24 19:23:24 +0100 | <maerwald> | the more expressivity, the less thought the guy before you put into the problem |
2021-02-24 19:23:39 +0100 | <dminuoso> | If we just find a simple data style embedding in Haskell.. say.. `data Section = Section { fieldA :: Int, ... }`, then `Section { fieldA = 10, ...}` is perfectly equivalent to writing `[Section]; fieldA = 10 ...` |
2021-02-24 19:23:52 +0100 | <dminuoso> | Nothing forces you to use the complete richness of the programming language |
2021-02-24 19:24:00 +0100 | <dminuoso> | The mere presence of Haskell does not devalue this |
2021-02-24 19:24:00 +0100 | <maerwald> | dminuoso: the API may |
2021-02-24 19:24:02 +0100 | <monochrom> | I don't think any inventor of config files intended Turing-completeness. They just took in too many feature requests (each individually not enough for Turing-completeness) and accidentally crossed the line. |
2021-02-24 19:24:11 +0100 | martins | (~martins@81.198.232.69) |
2021-02-24 19:24:17 +0100 | <maerwald> | dminuoso: an API can force you to use linear types, dependent types and whatnot :) |
2021-02-24 19:24:23 +0100 | <dminuoso> | monochrom: Sure, Im not talking about "some config language that accidentally became a turing complete language" |
2021-02-24 19:24:31 +0100 | <dminuoso> | But using a programming langauge for configuration is certainly not horrible.. |
2021-02-24 19:24:36 +0100 | <monochrom> | For support of my belief, just look at Excel and LAMBDA. >:) |
2021-02-24 19:24:37 +0100 | martins | (~martins@81.198.232.69) (Client Quit) |
2021-02-24 19:24:38 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-lsothnqwqqfmpidy) (Quit: Connection closed for inactivity) |
2021-02-24 19:24:43 +0100 | <dminuoso> | maerwald: or it does not |
2021-02-24 19:25:00 +0100 | <maerwald> | dminuoso: yeah, so O(x) is? |
2021-02-24 19:25:05 +0100 | <maerwald> | worst case |
2021-02-24 19:25:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-24 19:25:18 +0100 | <maerwald> | don't rely on hope |
2021-02-24 19:25:36 +0100 | <dminuoso> | monochrom: Or just powerpoint? >:) |
2021-02-24 19:25:38 +0100 | <maerwald> | (or people) |
2021-02-24 19:25:56 +0100 | <dminuoso> | maerwald: Just because an API can be bad, doesnt mean all programming language based configuration styles are horrible. |
2021-02-24 19:25:57 +0100 | <monochrom> | hee hee I love the powerpoint one. |
2021-02-24 19:26:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 19:26:05 +0100 | <dminuoso> | This rather sounds like you had some bad experience with some. |
2021-02-24 19:26:22 +0100 | <maerwald> | dminuoso: no, it's about not allowing ppl to make horrible things |
2021-02-24 19:26:41 +0100 | <dminuoso> | Well, since Im the one writing the config, Im fine wielding a chainsaw. |
2021-02-24 19:26:43 +0100 | <dminuoso> | I can handle it |
2021-02-24 19:26:50 +0100 | <maerwald> | if you give 10 ppl C++, you will get 9 horrible solutions |
2021-02-24 19:27:02 +0100 | geekosaur | guesses you will get 10 |
2021-02-24 19:27:08 +0100 | <maerwald> | ok, fair |
2021-02-24 19:27:11 +0100 | <dolio> | 'Nothing forces you to use all of Haskell,' doesn't help you operate on those configurations, because nothing is preventing the configuration from using all of Haskell. |
2021-02-24 19:27:16 +0100 | monochrom | guesses 12. |
2021-02-24 19:27:33 +0100 | <dminuoso> | dolio: It really depends on whether a seperation between people who configure it and people who program is intended. |
2021-02-24 19:27:34 +0100 | <maerwald> | I'm trying to be diplomatic here :p |
2021-02-24 19:27:42 +0100 | <maerwald> | let's assume there's one good C++ programmer |
2021-02-24 19:27:46 +0100 | monochrom | likes to say "if there are 10 books/people then there are 11 opinions" |
2021-02-24 19:27:58 +0100 | knupfer1 | (~Thunderbi@200116b82c64550001cedb7d844841a5.dip.versatel-1u1.de) |
2021-02-24 19:28:08 +0100 | <dolio> | No, the people don't matter. It is a limitation on tools. |
2021-02-24 19:28:08 +0100 | <monochrom> | because you need to take into account how some people can't even make up their minds. |
2021-02-24 19:28:49 +0100 | <monochrom> | When I have n students I know I'll be getting 1.1n horrible solutions. |
2021-02-24 19:28:51 +0100 | <maerwald> | really... the reason I prefer haskell over C++ is not because it's more expressive, but it's LESS expressive |
2021-02-24 19:29:04 +0100 | <monochrom> | This is known as creativity. |
2021-02-24 19:29:22 +0100 | knupfer | (~Thunderbi@200116b82ce9b80069be852dc8e82fbe.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-02-24 19:29:22 +0100 | knupfer1 | knupfer |
2021-02-24 19:30:14 +0100 | <maerwald> | and now you need devs with 20 years of experience, who an navigate through all the problems and pitfalls of C++, while still maintaining there mental health |
2021-02-24 19:30:37 +0100 | <dminuoso> | In our case, we need a radius server that is deeply coupled into code. The code *is* the configuration. |
2021-02-24 19:30:37 +0100 | <maerwald> | or you just use a non-turing complete config format |
2021-02-24 19:30:45 +0100 | <dolio> | It doesn't matter if you are the person writing the configuration and the person operating on the configuration. If you increase the capabilities that the configuration can express, you decrease the abilities that things that operate on the configuration can do (at least, without significant difficulty). |
2021-02-24 19:31:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 19:31:26 +0100 | <dminuoso> | dolio: Seeing as in our business we ship code changes on a weekly basis to some products, I'd consider these code changes as configuration changes. |
2021-02-24 19:31:33 +0100 | <dminuoso> | They are changes to the runtime behavior of these applications. |
2021-02-24 19:31:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 19:31:41 +0100 | <dminuoso> | Is this configuration? Depends on who you ask. |
2021-02-24 19:31:46 +0100 | <monochrom> | #haskell gains a part-time job of tech support for xmonad. That's the evidence I present to this discussion. |
2021-02-24 19:32:21 +0100 | <dminuoso> | monochrom: Many xmonad support seekers appear to be non-haskellers though. |
2021-02-24 19:32:44 +0100 | <dminuoso> | In our (arguably limited) case it's expected that the people interacting with the code are proficient in the language. |
2021-02-24 19:32:59 +0100 | <maerwald> | yes and now they get dragged into a language that many ppl need months to learn and study before they can write a program :> |
2021-02-24 19:33:04 +0100 | <geekosaur> | funny thing, last time you threw a hissyfit about it (a) it wasn't even about xmonad, but xmobar (b) and was more about arch anyway iirc |
2021-02-24 19:33:11 +0100 | <monochrom> | That's a failed expectation. |
2021-02-24 19:33:16 +0100 | <dminuoso> | (And yes, we even have some config file to configure some peripheral stuff, like the binding address/port for the radius server - so that the server guys can tweak it if need be) |
2021-02-24 19:33:35 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 256 seconds) |
2021-02-24 19:34:10 +0100 | <maerwald> | I'd say yes... you can ofc design your config format turing complete. But then I'd argue you care little about your users. The power users can modify your code anyway. |
2021-02-24 19:34:57 +0100 | <maerwald> | Not caring about users is fine too. I think XMonad was more of an experiment than a commitment. |
2021-02-24 19:35:03 +0100 | <monochrom> | I am looking like I'm taking side when I am not, but if "expect fluency in Haskell" fails, why can't "expect no abuse of Turing-completeness" fail too? |
2021-02-24 19:35:26 +0100 | <dminuoso> | For something like xmonad.. I quite enjoy it. But I didnt enjoy programming xmonad until I became proficient in Haskell |
2021-02-24 19:36:34 +0100 | <monochrom> | I might even stretch that arch is involved because, only because, xmonad requires so much recompilation... |
2021-02-24 19:36:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 19:37:15 +0100 | <dminuoso> | "Tt really depends on whether a seperation between people who configure it and people who program is intended." |
2021-02-24 19:37:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 19:37:21 +0100 | <dminuoso> | (And who the target audience for your config/code is) |
2021-02-24 19:37:39 +0100 | <dminuoso> | If you just want wide-spread haskell-muggle adoption, then yeah, using haskell to configure your program is probably not the best of ideas. |
2021-02-24 19:37:51 +0100 | kuribas | (~user@ptr-25vy0ia1ougr5zd5t67.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-02-24 19:38:47 +0100 | otulp | (~otulp@ti0187q162-6639.bb.online.no) |
2021-02-24 19:39:22 +0100 | <maerwald> | that's why nix is awful too: it doesn't really have a config format... it's just a turing complete language and everything goes |
2021-02-24 19:39:39 +0100 | <maerwald> | and you can see that by all the stuff that happens in the ecosystem |
2021-02-24 19:39:49 +0100 | <maerwald> | which *forces* you to keep up with all that |
2021-02-24 19:39:59 +0100 | fendor | (~fendor@91.141.3.187.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-24 19:40:04 +0100 | <dminuoso> | maerwald: I have mixed feelings about that part. We're starting to reroll our entire infrastructure (encompassing roughly 200 VMs and 20 servers) in all of nixos. |
2021-02-24 19:40:16 +0100 | <dminuoso> | Many of these systems need complex intertwined configuration |
2021-02-24 19:40:17 +0100 | <monochrom> | I also doubt that Turing-completeness is the only factor, FWIW. |
2021-02-24 19:40:27 +0100 | <dminuoso> | nix is the only power tool we think can manage this. |
2021-02-24 19:40:30 +0100 | <maerwald> | monochrom: the other factor is git |
2021-02-24 19:40:31 +0100 | <dolio> | Also SysV init. :þ |
2021-02-24 19:40:38 +0100 | <monochrom> | It increases probability of awfulness, yes. |
2021-02-24 19:41:09 +0100 | <dminuoso> | maerwald: So for that use case, nix is really well suited, with all the negative parts it has. |
2021-02-24 19:42:04 +0100 | <maerwald> | when bugfixing is quick and swift, because you just pushed a new commit... you don't get hate and shame anymore for writing shi**y code. Now everything is agile and open development. No one sleeps a night before doing a release, because you can re-release the next day |
2021-02-24 19:42:10 +0100 | <dolio> | Just because it's the only tool that can solve the problem doesn't mean it couldn't be designed better. |
2021-02-24 19:42:26 +0100 | <dminuoso> | Absolutely, but the turing power is certainly not the negative side here. |
2021-02-24 19:42:34 +0100 | <monochrom> | GHC and Hugs and I believe every published Haskell implementation has unsafePerformIO. maerwald predicted total apocalyse based on that. Somehow it didn't happen. Not even remotely close to awfulness. That's an interesting outcome I can't explain but like to think about. |
2021-02-24 19:43:04 +0100 | <dminuoso> | From my point, nix suffers mainly from 1) lack of types, 2) lack of a strong module system, 3) complete and utter lack of documentation and centralized ways to find documentation, and 4) some syntax quirks that are really annoying. |
2021-02-24 19:43:32 +0100 | <dminuoso> | 3) is perhaps the biggest problem of them all |
2021-02-24 19:43:38 +0100 | <maerwald> | dminuoso: no, it lacks a config format =) |
2021-02-24 19:43:46 +0100 | fendor | (~fendor@91.141.3.187.wireless.dyn.drei.com) |
2021-02-24 19:43:58 +0100 | <dminuoso> | maerwald: Dunno, in nixos you have very specifiable config formats.. |
2021-02-24 19:44:04 +0100 | <dminuoso> | in form of nixos modules |
2021-02-24 19:44:27 +0100 | <dminuoso> | But the tie into software is ugly, and usually needs some intermediate configuration language |
2021-02-24 19:44:35 +0100 | <maerwald> | I mean a non-turing complete one... and a separation between configuration and packaging (there is none) |
2021-02-24 19:44:57 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 264 seconds) |
2021-02-24 19:45:00 +0100 | <maerwald> | most distros have a very thick line between packaging and config |
2021-02-24 19:45:36 +0100 | <maerwald> | because packaging is awful |
2021-02-24 19:46:16 +0100 | <maerwald> | and you're sorry about it, but you need more expressiveness, because of the madness you're dealing with (see, someone else forces you into it) |
2021-02-24 19:47:01 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-24 19:47:25 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-24 19:47:56 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
2021-02-24 19:47:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-24 19:48:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 19:48:55 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-02-24 19:52:02 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-02-24 19:52:05 +0100 | <monochrom> | I'll try this theory: Perhaps meaningful names have a much tighter grip on people than I can fathom. People look at the "unsafe" in the name "unsafePerformIO" and are really deterred. Compare to for example I don't know type casting in C and null in Java. They are not spelled "unsafe(int*)" or "unsafeNull", so people use them freely. |
2021-02-24 19:52:33 +0100 | jacks2 | (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (EOF)) |
2021-02-24 19:53:33 +0100 | jhbrown94 | (32e080ea@50-224-128-234-static.hfc.comcastbusiness.net) |
2021-02-24 19:53:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-24 19:54:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 19:54:39 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) |
2021-02-24 19:54:58 +0100 | <maerwald> | monochrom: I'm not sure if "unsafeFoo" in the nodejs world would make any difference to coding practices |
2021-02-24 19:55:10 +0100 | <swarmcollective> | unsafeNull and unsafeCast would be Excellent! :D |
2021-02-24 19:56:25 +0100 | urodna | (~urodna@unaffiliated/urodna) (Ping timeout: 240 seconds) |
2021-02-24 19:57:32 +0100 | <swarmcollective> | At least they are starting to put Optional<> in java frameworks instead of relying on null. ;) That's a step. |
2021-02-24 19:58:25 +0100 | augnun | (~augnun@2804:14c:658b:41bb:3dc0:3938:a79e:b2ee) (Ping timeout: 272 seconds) |
2021-02-24 19:58:28 +0100 | <ski> | monochrom : syntactic salt has a place, yes |
2021-02-24 19:59:33 +0100 | <maerwald> | monochrom: and in C++ they would probably consider unsaf_foo a faster foo and not worry |
2021-02-24 19:59:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 20:00:16 +0100 | <maerwald> | "only breaks with -O3, so don't use -O3" |
2021-02-24 20:00:28 +0100 | <swarmcollective> | True, safety is "slower". Ha! |
2021-02-24 20:00:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:00:57 +0100 | <dolio> | It might be laziness. |
2021-02-24 20:01:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) |
2021-02-24 20:01:11 +0100 | <dolio> | Sprinkling unsafePerformIO around just doesn't work very well. |
2021-02-24 20:01:22 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2021-02-24 20:01:42 +0100 | <dolio> | So it doesn't matter that it exists, it's better to do things the right way. |
2021-02-24 20:01:44 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-24 20:02:20 +0100 | <maerwald> | well, the only good reason to use it IS in fact performance optimizations hidden under a seemingly pure API surface |
2021-02-24 20:02:36 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
2021-02-24 20:02:53 +0100 | <dolio> | Not seemingly, effectively. |
2021-02-24 20:02:58 +0100 | jhbrown94 | (32e080ea@50-224-128-234-static.hfc.comcastbusiness.net) (Quit: Connection closed) |
2021-02-24 20:03:15 +0100 | <dolio> | If it doesn't actually act pure, it's going to be really annoying. |
2021-02-24 20:03:16 +0100 | <maerwald> | dolio: that probably depends on the compiled, I'd say |
2021-02-24 20:03:25 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-24 20:03:31 +0100 | <maerwald> | so sure, they'll have tesed it with GHC |
2021-02-24 20:03:43 +0100 | <maerwald> | but I don't bet money that it works somewhere else |
2021-02-24 20:04:01 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-02-24 20:04:07 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2021-02-24 20:05:01 +0100 | <maerwald> | my pain is affecting my typing accuracy... it's a good sign to stop and watch netflix :D |
2021-02-24 20:05:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 20:06:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:07:06 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 20:07:21 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-24 20:10:28 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-02-24 20:10:45 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 264 seconds) |
2021-02-24 20:16:02 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-24 20:16:16 +0100 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds) |
2021-02-24 20:17:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-24 20:17:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:18:09 +0100 | pengjiz | (~user@2601:547:902:6d00::1) |
2021-02-24 20:20:39 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) |
2021-02-24 20:23:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-24 20:23:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:23:31 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-24 20:24:48 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-24 20:25:02 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 20:27:07 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-eebherdsvusazjal) (Quit: Connection closed for inactivity) |
2021-02-24 20:27:48 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 20:28:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-24 20:29:03 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 20:29:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:29:19 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) (Remote host closed the connection) |
2021-02-24 20:31:14 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-24 20:31:31 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 20:31:50 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) |
2021-02-24 20:32:21 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 264 seconds) |
2021-02-24 20:33:03 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) (Remote host closed the connection) |
2021-02-24 20:33:30 +0100 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) |
2021-02-24 20:33:38 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 20:34:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-24 20:34:47 +0100 | tachylyte | (~tachylyte@host86-142-90-26.range86-142.btcentralplus.com) (Quit: leaving) |
2021-02-24 20:34:47 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-24 20:34:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:36:13 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-24 20:39:11 +0100 | carlomagno | (~cararell@148.87.23.13) (Remote host closed the connection) |
2021-02-24 20:39:19 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 20:40:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-24 20:40:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-24 20:41:43 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 20:43:18 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:49bc:1f9e:3510:3fc5) |
2021-02-24 20:44:27 +0100 | [1]MrMobius | (~MrMobius@208.58.206.154) |
2021-02-24 20:44:46 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-24 20:45:02 +0100 | MrMobius | (~MrMobius@208.58.206.154) (Ping timeout: 264 seconds) |
2021-02-24 20:45:03 +0100 | [1]MrMobius | MrMobius |
2021-02-24 20:48:45 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-24 20:49:04 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-24 20:50:26 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-24 20:54:21 +0100 | contiver | (~contiver@84-115-64-144.wifi.dynamic.surfer.at) |
2021-02-24 20:57:16 +0100 | leo___ | (~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-24 20:59:56 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2021-02-24 21:00:21 +0100 | pera | (~pera@unaffiliated/pera) (Quit: leaving) |
2021-02-24 21:01:58 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-24 21:02:21 +0100 | contiver | (~contiver@84-115-64-144.wifi.dynamic.surfer.at) (Ping timeout: 264 seconds) |
2021-02-24 21:03:51 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-02-24 21:04:45 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-24 21:05:21 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 264 seconds) |
2021-02-24 21:07:29 +0100 | forgottenone | (~forgotten@176.42.20.136) (Quit: Konversation terminated!) |
2021-02-24 21:07:53 +0100 | petersen | (~petersen@redhat/juhp) |
2021-02-24 21:08:25 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-02-24 21:08:46 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) |
2021-02-24 21:10:16 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
2021-02-24 21:10:25 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-02-24 21:10:56 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-24 21:11:22 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-02-24 21:11:27 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 21:12:36 +0100 | <justsomeguy> | Is it impossible to define an instance of Functor for the type ''data K a b = K a''? I keep on getting type errors if I try something like ''instance Functor (K a) where { fmap f (K a) = K (f a) }''. |
2021-02-24 21:12:56 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
2021-02-24 21:12:58 +0100 | <koz_> | justsomeguy: That's just Const. |
2021-02-24 21:13:07 +0100 | <koz_> | So it is very possible. |
2021-02-24 21:13:33 +0100 | <koz_> | The problem you're having is that 'f' has a different type to what you're thinking. |
2021-02-24 21:13:41 +0100 | <koz_> | It's not a -> c, it's _b_ -> c. |
2021-02-24 21:14:02 +0100 | <koz_> | In Const, the second type parameter is phantom. |
2021-02-24 21:14:08 +0100 | <koz_> | So you can change it to whatever whenever. |
2021-02-24 21:14:20 +0100 | <koz_> | So you just ignore the function and rebuild the Const with the same value 'inside' it always had. |
2021-02-24 21:14:38 +0100 | <koz_> | You can think of 'Const a b' as 'an a pretending to be a b'. |
2021-02-24 21:14:51 +0100 | <koz_> | So we can have it pretend to be a c, and you only pass the function so fmap is happy. |
2021-02-24 21:14:56 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-02-24 21:15:04 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-02-24 21:16:16 +0100 | notzmv | (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds) |
2021-02-24 21:17:55 +0100 | acidjnk_new | (~acidjnk@p200300d0c73909529c208343cf3ed1b3.dip0.t-ipconnect.de) |
2021-02-24 21:17:57 +0100 | __minoru__shirae | (~shiraeesh@77.94.25.253) |
2021-02-24 21:18:09 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-24 21:18:13 +0100 | minoru_shiraeesh | (~shiraeesh@5.101.59.211) (Ping timeout: 260 seconds) |
2021-02-24 21:18:23 +0100 | <kw> | How can I convince folks that `fromIntegral` is worse than `unsafePerformIO`? |
2021-02-24 21:18:24 +0100 | <monochrom> | fmap f (K a) = K a |
2021-02-24 21:19:07 +0100 | <monochrom> | You can't. It's falsee. |
2021-02-24 21:19:24 +0100 | <kw> | Any way to get it renamed to `unasafeCoerceIntegral` ? |
2021-02-24 21:19:36 +0100 | <koz_> | kw: Write your own Prelude. |
2021-02-24 21:19:49 +0100 | <monochrom> | Over my dead body and from merijn's cold dead claws. |
2021-02-24 21:19:53 +0100 | <EvanR> | how is fromIntegral bad |
2021-02-24 21:20:09 +0100 | <koz_> | EvanR: I think kw got bitten by implicit narrowing. |
2021-02-24 21:20:17 +0100 | <monochrom> | "I disagree with fromIntegral but I'd defend its rights with my life" |
2021-02-24 21:20:24 +0100 | <koz_> | monochrom: Wait, merijn has claws and not tentacles? |
2021-02-24 21:20:25 +0100 | <kw> | Because it's unsafe coercion of integral types. |
2021-02-24 21:20:25 +0100 | <kw> | koz_: yeah, pretty much. |
2021-02-24 21:20:36 +0100 | <monochrom> | fromIntegral is bad but "worse than unsafePerformIO" are you serious. |
2021-02-24 21:20:39 +0100 | <EvanR> | is unsafe the "unsustainable" |
2021-02-24 21:20:43 +0100 | <EvanR> | the new |
2021-02-24 21:20:55 +0100 | <int-e> | it doesn't break the type system, so it's safe :P |
2021-02-24 21:20:56 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
2021-02-24 21:21:08 +0100 | <monochrom> | s/serious/lunatic/ |
2021-02-24 21:21:09 +0100 | <merijn> | fromIntegral is terrible, but unsafePerformIO is infinitely worse |
2021-02-24 21:21:25 +0100 | <kw> | Yeah, and `unsafePerformIO` is just the natural Comonadic extraction function for the IO monad. |
2021-02-24 21:21:33 +0100 | <EvanR> | in some cases i would like a more targeted conversion function |
2021-02-24 21:21:35 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
2021-02-24 21:21:36 +0100 | <merijn> | kw: Except it's not |
2021-02-24 21:21:49 +0100 | <koz_> | Not least of all because IO isn't a comonad. |
2021-02-24 21:21:49 +0100 | <merijn> | kw: Because IO doesn't obey Comonad laws |
2021-02-24 21:22:18 +0100 | <EvanR> | is quantum mechanics a comonad though? |
2021-02-24 21:22:24 +0100 | <monochrom> | Use https://hackage.haskell.org/package/int-cast if you're concerned. |
2021-02-24 21:22:24 +0100 | <int-e> | impurity aside, unsafePerformIO does break the type system by allowing you to make a polymorphic ioref |
2021-02-24 21:22:26 +0100 | <merijn> | I mean, if IO is a Comonad, then so is literally any type of kind "* -> *" by virtue of unsafeCoerce |
2021-02-24 21:22:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 21:22:39 +0100 | <kw> | Let me just put it this way: people get that `unsafePerformIO` is unsafe, but I see `fromIntegral` thrown around like candy with no indication of the intervening types. |
2021-02-24 21:22:41 +0100 | <monochrom> | But call-for-crusades will get you nowhere. |
2021-02-24 21:22:57 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 21:22:59 +0100 | <kw> | Far enough. |
2021-02-24 21:23:07 +0100 | <EvanR> | monochrom: for instance, convert from int to double |
2021-02-24 21:23:32 +0100 | <int-e> | I agree that fromIntegral should make you pause and think. I don't agree with the idea that it's unsafe. |
2021-02-24 21:23:46 +0100 | <merijn> | int-e: I do |
2021-02-24 21:23:51 +0100 | <kw> | monochrom: int-cast looks awesome; thanks! |
2021-02-24 21:23:52 +0100 | <int-e> | it's not even a partial function |
2021-02-24 21:24:01 +0100 | <merijn> | Anything that can be reviewed by 4 people and have bugs is unsafe >.> |
2021-02-24 21:24:25 +0100 | <monochrom> | unsafeUseComputer |
2021-02-24 21:24:26 +0100 | <EvanR> | > fromIntegral (-1) :: Natural |
2021-02-24 21:24:27 +0100 | <lambdabot> | error: |
2021-02-24 21:24:28 +0100 | <lambdabot> | Not in scope: type constructor or class ‘Natural’ |
2021-02-24 21:24:34 +0100 | <kw> | :t fromIntegral :: Integer -> Word |
2021-02-24 21:24:35 +0100 | <lambdabot> | Integer -> Word |
2021-02-24 21:24:36 +0100 | <int-e> | merijn: okay, just prefix all function names wity "unsafe" then |
2021-02-24 21:25:03 +0100 | <int-e> | . o O ( unsafeId :: a -> a ) |
2021-02-24 21:25:03 +0100 | <merijn> | int-e: There's plenty of functions where that's not the case |
2021-02-24 21:25:23 +0100 | <kw> | Is 'Word' even a numeric type? Is it supposed to be a machine-width natural, or just a sequence of bits? |
2021-02-24 21:25:28 +0100 | <monochrom> | I'm pretty sure all shrink-wrap software and downloaded software already says "I am unsafe". |
2021-02-24 21:25:49 +0100 | <fendor> | > fromIntegral (2 ^ 64 :: Integer) :: Int |
2021-02-24 21:25:51 +0100 | <lambdabot> | 0 |
2021-02-24 21:25:55 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-02-24 21:26:20 +0100 | <koz_> | kw: It's both. Unfortunately. |
2021-02-24 21:26:24 +0100 | <monochrom> | Except for some IBM software, the EULA of which is 30 pages detailing your rights. |
2021-02-24 21:26:31 +0100 | <kw> | > fromIntegral (-1 :: Int) :: Word |
2021-02-24 21:26:32 +0100 | <lambdabot> | 18446744073709551615 |
2021-02-24 21:26:37 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 21:26:42 +0100 | <int-e> | > S.length $ iterate (\x -> x <> x) (S.singleton ()) !! 63 |
2021-02-24 21:26:42 +0100 | monochrom | was impressed with OS/2 EULA |
2021-02-24 21:26:43 +0100 | <lambdabot> | error: |
2021-02-24 21:26:43 +0100 | <lambdabot> | Not in scope: ‘S.length’ |
2021-02-24 21:26:43 +0100 | <lambdabot> | Perhaps you meant one of these: |
2021-02-24 21:26:52 +0100 | <EvanR> | Word is a number. Sequence of bits is up to your interpretation |
2021-02-24 21:27:40 +0100 | <justsomeguy> | Thanks for the enlightenment, koz_. |
2021-02-24 21:27:52 +0100 | <int-e> | > Seq.length $ iterate (\x -> x <> x) (Seq.singleton ()) !! 63 -- crusaders take note |
2021-02-24 21:27:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-02-24 21:27:53 +0100 | <lambdabot> | -9223372036854775808 |
2021-02-24 21:28:09 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-02-24 21:28:25 +0100 | <kw> | At least Seq explicitly has an unchecked maximum size. |
2021-02-24 21:28:55 +0100 | <int-e> | and fromIntegral does modular reduction |
2021-02-24 21:29:00 +0100 | int-e | shrugs |
2021-02-24 21:29:46 +0100 | <koz_> | justsomeguy: No problem. |
2021-02-24 21:29:57 +0100 | <EvanR> | toInteger seems solidly total, fromInteger might not be |
2021-02-24 21:29:59 +0100 | <merijn> | int-e: The problem is that it's API makes it *incredibly* awkward to do what people actually *want* to do |
2021-02-24 21:30:16 +0100 | <merijn> | What people *want* is bounds checked conversion, and that doesn't exist |
2021-02-24 21:30:23 +0100 | <int-e> | I would rather reserve "unsafe" for functions that are almost always dubious... and I think fromIntegral doesn't clear that threshold to my mind. |
2021-02-24 21:30:26 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
2021-02-24 21:30:28 +0100 | <kw> | I love `fromInteger` and `toInteger` . It's `fromIntegral` I can't stand. |
2021-02-24 21:30:32 +0100 | <merijn> | Building your own bounds checked conversion on top of fromIntegral is borderline impossible |
2021-02-24 21:31:10 +0100 | <EvanR> | fromInteger is potentially 'as bad' as head, tail |
2021-02-24 21:32:50 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-24 21:33:25 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-24 21:33:32 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 21:34:03 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-24 21:34:35 +0100 | <justsomeguy> | Why is Functor defined only for type constructors of one argument? Intuitively, I'd think that it's desirable to be able to map over other structures, too, and I think the functor laws can still be upheld for type constructors with more arguments, too. |
2021-02-24 21:34:57 +0100 | <glguy> | :t fmap |
2021-02-24 21:34:58 +0100 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
2021-02-24 21:34:59 +0100 | <koz_> | justsomeguy: Because Functor means something quite specific. |
2021-02-24 21:35:02 +0100 | <kw> | justsomeguy: How would you define it? |
2021-02-24 21:35:11 +0100 | <merijn> | justsomeguy: N-functors are a thing conceptually, but Haskell doesn't let you define them |
2021-02-24 21:35:14 +0100 | <koz_> | If you're looking for stuff that goes beyond that, consider Bifunctor and Profunctor. |
2021-02-24 21:35:26 +0100 | <koz_> | (however, these are fairly different) |
2021-02-24 21:35:29 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-24 21:36:37 +0100 | <justsomeguy> | kw: Intuitively: A structure preserving mapping between some container and that same container with some operation performed on the "contained" stuff. |
2021-02-24 21:36:44 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-24 21:37:13 +0100 | <kw> | justsomeguy: And how would you define the operation on multiple types of stuff? |
2021-02-24 21:37:18 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-24 21:37:44 +0100 | Pickchea | (~private@unaffiliated/pickchea) (Quit: Leaving) |
2021-02-24 21:38:09 +0100 | <justsomeguy> | The operation would have to be overloaded to support all the types of contained stuff, or it would be invalid. |
2021-02-24 21:38:27 +0100 | <kw> | Like, say I have `xy :: (String, Int)`. What does mapping over that look like? |
2021-02-24 21:39:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 21:40:59 +0100 | <kw> | Does your ` fmap'` take a `(String -> a, Int -> b)` ? |
2021-02-24 21:41:03 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Remote host closed the connection) |
2021-02-24 21:42:01 +0100 | <kw> | Could maybe do something like that with a type family. |
2021-02-24 21:42:17 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) |
2021-02-24 21:42:32 +0100 | <kw> | But working with type-level tuples always seems like a huge pain in the ass. |
2021-02-24 21:42:43 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
2021-02-24 21:43:00 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) |
2021-02-24 21:43:12 +0100 | <justsomeguy> | Hmm... let's say the code is ''fmap (\x -> take 3 $ repeat x)'', and it's applied to ''xy''. ("this",3) would become (["this","this","this"],[3,3,3]). Does that make sense? |
2021-02-24 21:43:25 +0100 | ixlun | (~user@213.205.241.202) |
2021-02-24 21:43:59 +0100 | <kw> | justsomeguy: But then it would be useless for, say, adding 1 to the Int. |
2021-02-24 21:44:15 +0100 | <brkscnce> | hey, if I'm defining a static chessboard I'm going to be traversing to perform checks, should I go with immutable arrays as a data structure? |
2021-02-24 21:44:21 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-24 21:44:26 +0100 | <koz_> | In fact, the only reason this works is because 'take 3 . repeat' doesn't care whatsoever about the type of its argument. |
2021-02-24 21:44:46 +0100 | <koz_> | So instead of (a -> b), your fmap would have to take '(forall a . a -> b)'. |
2021-02-24 21:44:58 +0100 | <justsomeguy> | kw: If the tuple was instead (1 :: Int, 2 :: Float), then you can do ''fmap (+3) (1 :: Int, 2 :: Float)'' and get ''(4,5.0)''. |
2021-02-24 21:44:58 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) (Read error: Connection reset by peer) |
2021-02-24 21:45:13 +0100 | <koz_> | justsomeguy: Yeah, except now what signature to give fmap? |
2021-02-24 21:45:23 +0100 | <koz_> | 'Do the sensible thing' is not a signature. |
2021-02-24 21:45:32 +0100 | <koz_> | Neither is 'allow every special case I can come up with'. |
2021-02-24 21:46:59 +0100 | <justsomeguy> | Yeah, I haven't thought it through. I don't see why it isn't possible to create a new type signature that's polymorphic, though. |
2021-02-24 21:47:08 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) |
2021-02-24 21:47:10 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) (Remote host closed the connection) |
2021-02-24 21:48:12 +0100 | <koz_> | You could come up with variants - I provided two. But for arbitrary N, N-functors aren't really something you can define in Haskell without resorting to really gory methods. |
2021-02-24 21:48:13 +0100 | <kw> | In the end, it's much simpler and easier to have 'things that are functors in their rightmost type parameter' and 'things that are functors in ther rightmost two type parameters' than to try to define 'things that are functors in a type-level tuple of their type parameters'. |
2021-02-24 21:49:01 +0100 | <koz_> | Since your fmap becomes a dependent type on how many type parameters you feel like having, and their types. |
2021-02-24 21:49:11 +0100 | <koz_> | s/a dependent type/dependently typed/ |
2021-02-24 21:49:29 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-24 21:49:34 +0100 | <justsomeguy> | Oh, I guess it is. |
2021-02-24 21:49:38 +0100 | <koz_> | Since you'd need the equivalent of '[arbitrary tuple of these types] -> [arbitrary tuple of same shape, but different types]'. |
2021-02-24 21:49:55 +0100 | <koz_> | _Can_ you spell that in Haskell? If you use GHC, throw a tonne of extensions at it, then ladle ten kinds of gore on top, yes. |
2021-02-24 21:50:10 +0100 | <koz_> | Will that be usable, give sensible error messages, and not compile forever? Don't count on it. |
2021-02-24 21:50:52 +0100 | <justsomeguy> | Is is possible instead to just not have our hypothetical NaryFunctor defined for tuples, but only for types like [] a or Map. |
2021-02-24 21:50:55 +0100 | <justsomeguy> | ? |
2021-02-24 21:51:02 +0100 | <koz_> | justsomeguy: See what I said above. |
2021-02-24 21:51:07 +0100 | <koz_> | It still applies here. |
2021-02-24 21:51:20 +0100 | <koz_> | This is not a problem of what instances you allow. |
2021-02-24 21:51:26 +0100 | <koz_> | It's a problem of spelling the type class itself. |
2021-02-24 21:52:53 +0100 | <EvanR> | are you trying to lift multiple functions at once |
2021-02-24 21:53:00 +0100 | <EvanR> | like bifunctor |
2021-02-24 21:53:03 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) |
2021-02-24 21:54:09 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 21:54:14 +0100 | <EvanR> | because that by itself already leads you to variadic functions |
2021-02-24 21:54:31 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
2021-02-24 21:55:35 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 21:57:59 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Client Quit) |
2021-02-24 21:58:12 +0100 | <justsomeguy> | EvanR: I was just curious as to why Functor is implemented the way it is. I don't have a particular use case in mind. |
2021-02-24 21:59:44 +0100 | <monochrom> | Are you forgetting that "instance Functor ((,) a)" pretty much ties your hands? Is that already covered? |
2021-02-24 22:00:05 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 22:00:19 +0100 | <monochrom> | For conceptuallly "fmap f (x, y) = (f x, f y)", don't use (,), write your own "data Pair = MkPair a a". |
2021-02-24 22:00:35 +0100 | <monochrom> | err data Pair a = MkPair a a |
2021-02-24 22:01:08 +0100 | <monochrom> | Extra credit for seeing how to make it a lawful Monad instance. |
2021-02-24 22:01:32 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-02-24 22:01:38 +0100 | <monochrom> | An MSc certificate for seeing why it is the only choice for a lawful Monad instance. |
2021-02-24 22:01:51 +0100 | <monochrom> | (I just got it last night.) |
2021-02-24 22:02:35 +0100 | <EvanR> | yes master |
2021-02-24 22:05:18 +0100 | <monochrom> | Or rather, "∀b. (x->y) -> (a,x) -> (a,y)" pretty much ties your hands. |
2021-02-24 22:05:43 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:4e81:bfc6:428b:4821) (Ping timeout: 272 seconds) |
2021-02-24 22:06:15 +0100 | <monochrom> | err, ∀x,y . (x->y) -> (a,x) -> (a,y) |
2021-02-24 22:06:25 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-24 22:07:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) (Remote host closed the connection) |
2021-02-24 22:08:02 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-02-24 22:08:56 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-24 22:09:30 +0100 | <EvanR> | are there 4 ways to make Pair a monad |
2021-02-24 22:09:53 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-02-24 22:11:25 +0100 | carlomagno | (~cararell@148.87.23.11) (Ping timeout: 260 seconds) |
2021-02-24 22:11:53 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-02-24 22:13:04 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 22:14:42 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-24 22:14:43 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) (Read error: Connection reset by peer) |
2021-02-24 22:14:48 +0100 | pavonia^\_^\ | (~user@unaffiliated/siracusa) |
2021-02-24 22:15:01 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2021-02-24 22:15:28 +0100 | <Ferdirand> | interesting |
2021-02-24 22:16:18 +0100 | <ezzieyguywuf> | dminuoso: but why reimplement dmenu/rofi in xmonad, if it's already a great standalone? #unix-philosophy, no? |
2021-02-24 22:16:35 +0100 | <Ferdirand> | if List is a monad, and lists of at least two elements are a closed subset under join/pure/fmap |
2021-02-24 22:16:53 +0100 | <Ferdirand> | and if pairs are projections of the first and last element of such lists |
2021-02-24 22:17:23 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:4773:d7d4:420a:eae0) |
2021-02-24 22:17:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 22:18:09 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-24 22:18:16 +0100 | <Ferdirand> | non-empty lists, rather |
2021-02-24 22:20:31 +0100 | <dolio> | Why reimplement dwm in Haskell and call it xmonad? |
2021-02-24 22:21:04 +0100 | <geekosaur> | because C is a lousy language for EDSLs |
2021-02-24 22:21:16 +0100 | <koz_> | s/for EDSLs// |
2021-02-24 22:21:31 +0100 | <geekosaur> | (I'm more or less quoting sjanssen) |
2021-02-24 22:22:41 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) |
2021-02-24 22:24:16 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
2021-02-24 22:31:00 +0100 | ixlun | (~user@213.205.241.202) (Remote host closed the connection) |
2021-02-24 22:31:20 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-24 22:31:46 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-24 22:34:35 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
2021-02-24 22:36:13 +0100 | son0p | (~son0p@181.58.39.182) (Quit: leaving) |
2021-02-24 22:36:33 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds) |
2021-02-24 22:38:01 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-02-24 22:41:40 +0100 | geekosaur | (82650c7a@130.101.12.122) (Quit: Connection closed) |
2021-02-24 22:42:33 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) (Ping timeout: 264 seconds) |
2021-02-24 22:42:49 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-02-24 22:43:50 +0100 | son0p | (~son0p@181.136.122.143) |
2021-02-24 22:44:21 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Ping timeout: 272 seconds) |
2021-02-24 22:45:18 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) |
2021-02-24 22:45:19 +0100 | kw | (d4662d5d@212.102.45.93) (Quit: Connection closed) |
2021-02-24 22:47:03 +0100 | alx741 | (~alx741@186.178.108.179) (Ping timeout: 246 seconds) |
2021-02-24 22:48:10 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:6d81:661e:8f9e:1f6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-24 22:48:30 +0100 | kw | (d4662d5d@212.102.45.93) |
2021-02-24 22:49:30 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-24 22:52:26 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-02-24 22:54:12 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-fajfitegppdbkpgx) |
2021-02-24 22:54:20 +0100 | fendor_ | (~fendor@91.141.0.220.wireless.dyn.drei.com) |
2021-02-24 22:55:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 22:56:39 +0100 | <monochrom> | EvanR: No, there is only one way. Check the monad identity laws, they force your hands. |
2021-02-24 22:57:25 +0100 | ddellacosta | (~ddellacos@86.106.143.111) |
2021-02-24 22:57:31 +0100 | <monochrom> | In this case I think the join version of the monad definition is the easiest to work with. |
2021-02-24 22:57:47 +0100 | fendor | (~fendor@91.141.3.187.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
2021-02-24 22:58:51 +0100 | infinisil | (~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!) |
2021-02-24 22:59:14 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) (Quit: Connection closed) |
2021-02-24 22:59:14 +0100 | <dolio> | Ferdirand: It is not closed under pure. The monad on `Pair` is different than the one for lists. |
2021-02-24 22:59:23 +0100 | infinisil | (~infinisil@NixOS/user/infinisil) |
2021-02-24 23:00:12 +0100 | alx741 | (~alx741@181.196.69.27) |
2021-02-24 23:00:34 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-02-24 23:02:06 +0100 | <monochrom> | This is such a litmus test of how much you really "understand" monads. :) |
2021-02-24 23:03:08 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-02-24 23:03:08 +0100 | <monochrom> | I.e., you are not done just because you have coded up a candidate that type-checks and adds no bottom. |
2021-02-24 23:03:09 +0100 | ddellacosta | (~ddellacos@86.106.143.111) (Remote host closed the connection) |
2021-02-24 23:04:25 +0100 | <monochrom> | To be fair, being able to code up total, type-checked functions is already better than the level of "I have read a blog that says monads are about sequencing". |
2021-02-24 23:04:54 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
2021-02-24 23:05:27 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) |
2021-02-24 23:05:53 +0100 | vk3wtf | (~doc@203.221.224.44) (Quit: WeeChat 2.7.1) |
2021-02-24 23:06:12 +0100 | vk3wtf | (~doc@203.221.224.44) |
2021-02-24 23:07:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) |
2021-02-24 23:08:13 +0100 | <EvanR> | i have basic category theory by tom leinster. It doesn't even cover monads! |
2021-02-24 23:08:20 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-24 23:08:23 +0100 | <infinisil> | I wouldn't be surprised if idris could write a monad instance automatically |
2021-02-24 23:08:25 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds) |
2021-02-24 23:08:40 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-24 23:10:11 +0100 | vk3wtf | (~doc@203.221.224.44) (Client Quit) |
2021-02-24 23:12:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) (Ping timeout: 264 seconds) |
2021-02-24 23:12:45 +0100 | vk3wtf | (~doc@203.221.224.44) |
2021-02-24 23:13:05 +0100 | <NieDzejkob_> | I want to make my expressions compare as equal when they're alpha-equivalent. Is there a more concise way of writing this Eq instance? https://paste.tomsmeding.com/jWzci40D |
2021-02-24 23:13:53 +0100 | wpcarro_ | wpcarro |
2021-02-24 23:14:11 +0100 | vk3wtf | (~doc@203.221.224.44) (Client Quit) |
2021-02-24 23:14:23 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-02-24 23:14:30 +0100 | <monochrom> | If Lam doesn't have the Symbol field, then it's "deriving Eq". :) |
2021-02-24 23:14:32 +0100 | vk3wtf | (~doc@203.221.224.44) |
2021-02-24 23:15:31 +0100 | <int-e> | well, thius looks wrong... |
2021-02-24 23:15:39 +0100 | zmv- | (~zmv@191.255.89.231) |
2021-02-24 23:16:00 +0100 | <int-e> | wouldn't it make \x. x = \y. x |
2021-02-24 23:16:58 +0100 | <int-e> | Or is "Bound" a de Bruijn index? |
2021-02-24 23:19:17 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-24 23:20:38 +0100 | Tops2 | (~Tobias@dyndsl-091-249-082-052.ewe-ip-backbone.de) |
2021-02-24 23:20:56 +0100 | knupfer | (~Thunderbi@200116b82c64550001cedb7d844841a5.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2021-02-24 23:23:00 +0100 | <koz_> | What is the kind of IsList's type parameter? |
2021-02-24 23:23:31 +0100 | <koz_> | I assume Type - am I right? |
2021-02-24 23:23:34 +0100 | <int-e> | NieDzejkob_: Anyway, no, I don't think it gets more concise than that... well, not without resorting to silly things like using generics to replace all the Symbol values in Lam constructors by a fixed dummy symbol and then comparing the results... which does *not* improve readability. |
2021-02-24 23:23:42 +0100 | __minoru__shirae | (~shiraeesh@77.94.25.253) (Read error: Connection reset by peer) |
2021-02-24 23:24:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) |
2021-02-24 23:24:07 +0100 | alx741 | (~alx741@181.196.69.27) (Quit: alx741) |
2021-02-24 23:24:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-24 23:24:56 +0100 | carlomagno | (~cararell@148.87.23.11) |
2021-02-24 23:24:59 +0100 | arw | (~arw@impulse.informatik.uni-erlangen.de) |
2021-02-24 23:26:06 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Disconnected by services) |
2021-02-24 23:26:07 +0100 | hyperisco_ | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-02-24 23:27:31 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-24 23:27:32 +0100 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-02-24 23:27:39 +0100 | <dolio> | koz_: I think so. |
2021-02-24 23:27:45 +0100 | <koz_> | OK, cool. |
2021-02-24 23:28:20 +0100 | __minoru__shirae | (~shiraeesh@77.94.25.253) |
2021-02-24 23:30:25 +0100 | jess | (jess@freenode/staff/jess) (Quit: Leaving) |
2021-02-24 23:31:02 +0100 | <int-e> | NieDzejkob_: With syb, it would be something like s == t = let normalize = everywhere (\t -> case cast t of Just (Lam _ t e) -> Lam dummySymbol t e; _ -> t) in normalize s == normalize t -- untested, and it's been a while since I used generics |
2021-02-24 23:31:19 +0100 | adium | (adium@unaffiliated/adium) |
2021-02-24 23:32:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-24 23:32:32 +0100 | <int-e> | Anyway I think I'd prefer the explicit recursion. |
2021-02-24 23:33:32 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
2021-02-24 23:34:57 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 260 seconds) |
2021-02-24 23:36:34 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-24 23:38:18 +0100 | <dolio> | It seems unfortunate that the work rewriting the tree could just be checking equality instead. :) |
2021-02-24 23:38:51 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 23:39:27 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-02-24 23:41:15 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2021-02-24 23:41:57 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2021-02-24 23:42:15 +0100 | <ukari> | I want to know how to use reflex primitives (not reflex-dom) but drown in the complex. And I try to write an example which print "test" every second but fails. Could anyone shows the right example? https://gist.github.com/ukari/22b75e7fde47d1ff0c11d8d6affcc290 |
2021-02-24 23:42:20 +0100 | <monochrom> | "Let fusion optimize that." |
2021-02-24 23:42:54 +0100 | <dolio> | What fusion? :þ |
2021-02-24 23:44:39 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-02-24 23:44:45 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-02-24 23:44:45 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-02-24 23:44:45 +0100 | hseg_ | (~gesh@IGLD-84-228-239-97.inter.net.il) |
2021-02-24 23:45:45 +0100 | <Axman6> | Thanks VMWare |
2021-02-24 23:47:30 +0100 | stree | (~stree@68.36.8.116) |
2021-02-24 23:48:00 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) (Ping timeout: 260 seconds) |
2021-02-24 23:48:50 +0100 | <int-e> | NieDzejkob_: also this is not applicable because we can't get at the derived Eq instance's code and also define our own Eq instance. So never mind |
2021-02-24 23:49:39 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-02-24 23:49:47 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-24 23:49:57 +0100 | <int-e> | Do we have generic schemes for zip-like functions somewhere? |
2021-02-24 23:51:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-24 23:53:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-24 23:55:25 +0100 | conal | (~conal@64.71.133.70) |
2021-02-24 23:55:26 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-24 23:55:44 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-02-24 23:56:01 +0100 | hyperisco_ | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!) |
2021-02-24 23:56:16 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-02-24 23:57:47 +0100 | <dolio> | One could consider a newtype around Symbol such that (==) is always true. Then use that in the spots where symbol equality is unnecessary. |
2021-02-24 23:57:59 +0100 | conal_ | (~conal@64.71.133.70) |
2021-02-24 23:57:59 +0100 | <Axman6> | with singletonsa, is there a way to go from a Int (or Word, or Natural etc.) to a an expression which knows which Nat that is equivalent to at runtime? |
2021-02-24 23:58:44 +0100 | <Axman6> | it's been too long since I've looked at how you use singletons and can't remember what to look for (and there are _so many instances_ D: ) |
2021-02-24 23:59:21 +0100 | <dolio> | Or just a parameterized newtype for ignoring anything. |