Logs on 2020-10-28 (freenode/#haskell)
| 00:00:01 | × | Perlboy quits (~Perlboy@178.239.168.171) () |
| 00:01:03 | <sandmwitch> | Another strong contender: DigitalKiwicked |
| 00:01:04 | <WitchKiwi> | i was thinking GhostKiwi |
| 00:01:29 | <WitchKiwi> | i love Wicked |
| 00:01:49 | <WitchKiwi> | DigitalKiWicked |
| 00:01:59 | <WitchKiwi> | fun fact: my gmail name is Ki Wi |
| 00:02:13 | <sandmwitch> | v. oriental |
| 00:02:16 | WitchKiwi | is now known as DigitalKiWicked |
| 00:02:29 | <DigitalKiWicked> | quora banned me |
| 00:03:25 | → | banner joins (~banner@116-255-17-180.ip4.superloop.com) |
| 00:03:40 | <DigitalKiWicked> | kiwitch |
| 00:04:34 | <DigitalKiWicked> | "are you a bird or a fruit" "sandwich" |
| 00:04:54 | <sandmwitch> | I've only been banned from an online community once, and I couldn't even be upset about it because the message telling me why was just a link to this video: https://www.youtube.com/watch?v=p12coHOA51Q |
| 00:05:11 | <sandmwitch> | Still no idea what I did wrong. haha |
| 00:06:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 00:06:19 | <Axman6> | dat clipping |
| 00:06:49 | <sandmwitch> | it is the Flash way |
| 00:06:50 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 00:07:26 | <Axman6> | my DAC is wasted on this trash. but I would also not be mad if that's how I were banned |
| 00:08:36 | → | obihann joins (~jhann@156.34.160.69) |
| 00:08:55 | hekkaidekapus | thanks sandmwitch for being literally kicked out of the room. I sweared I’d behave but it has been many consecutives minutes of loud giggles… |
| 00:09:34 | <DigitalKiWicked> | Quora |
| 00:09:34 | <DigitalKiWicked> | Quora Moderation flagged your profile as not conforming to Quora's Real Name Policy. |
| 00:09:34 | <DigitalKiWicked> | Quora Moderation blocked you from editing on Quora for this reason: |
| 00:09:34 | <DigitalKiWicked> | Blocked from editing due to an unverified name. For more information, see Quora's policy on using real names: https://www.quora.com/Do-I-have-.... |
| 00:09:35 | <DigitalKiWicked> | You will not be able to add questions or write answers at this time. |
| 00:11:06 | <DigitalKiWicked> | guess they don't want my free labor |
| 00:11:18 | <Rembane> | DigitalKiWicked: So you had a so awesome name that you got blocked? |
| 00:11:47 | → | dme2 joins (~user@c-24-1-191-153.hsd1.il.comcast.net) |
| 00:13:07 | × | ransom quits (~c4264035@2601:285:201:6720:a129:4845:9b41:4504) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:13:45 | × | obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds) |
| 00:14:38 | → | polyrain joins (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) |
| 00:16:56 | × | macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection) |
| 00:20:20 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 00:21:22 | → | mmohammadi9812 joins (~mmohammad@2.178.146.18) |
| 00:21:54 | → | fabianhjr joins (~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1) |
| 00:21:54 | × | fabianhjr quits (~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1) (Remote host closed the connection) |
| 00:23:24 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds) |
| 00:25:53 | → | polyrain_ joins (~polyrain@58.161.83.164) |
| 00:27:44 | × | polyrain quits (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Ping timeout: 240 seconds) |
| 00:31:44 | → | fendor_ joins (~fendor@91.141.3.89.wireless.dyn.drei.com) |
| 00:33:01 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:33:09 | → | cylon007 joins (~user@64.119.200.11) |
| 00:33:24 | <cylon007> | /? |
| 00:33:39 | <sandmwitch> | /! |
| 00:34:08 | × | fendor quits (~fendor@91.141.2.36.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 00:34:34 | → | conal joins (~conal@64.71.133.70) |
| 00:34:39 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 00:34:55 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 00:35:28 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 00:35:47 | × | dme2 quits (~user@c-24-1-191-153.hsd1.il.comcast.net) (Ping timeout: 258 seconds) |
| 00:35:47 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 00:36:01 | × | cylon007 quits (~user@64.119.200.11) (Client Quit) |
| 00:36:05 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 00:36:05 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 00:36:16 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 00:36:34 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:36:38 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 00:37:04 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 00:37:19 | → | elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 00:37:22 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 00:37:53 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 00:38:49 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 00:41:16 | → | Bill--Door joins (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) |
| 00:41:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 00:43:35 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 00:44:40 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer) |
| 00:45:10 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 00:48:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 00:49:21 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:52:23 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
| 00:52:45 | → | Lord_of_Life_ joins (~Lord@46.217.221.241) |
| 00:53:23 | × | nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer) |
| 00:54:41 | → | igustin joins (~igustin@185.204.1.185) |
| 00:54:48 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds) |
| 00:55:00 | × | jrm quits (~jrm@freebsd/developer/jrm) (Quit: ciao) |
| 00:55:56 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
| 00:56:50 | → | jrm joins (~jrm@freebsd/developer/jrm) |
| 00:58:26 | → | deftly joins (~user@209.58.189.165) |
| 00:58:26 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 01:00:42 | × | mbomba quits (~mbomba@142.114.9.241) (Ping timeout: 256 seconds) |
| 01:01:14 | → | christo joins (~chris@81.96.113.213) |
| 01:03:36 | → | conal joins (~conal@64.71.133.70) |
| 01:04:02 | × | banner quits (~banner@116-255-17-180.ip4.superloop.com) (Quit: Leaving) |
| 01:04:40 | × | Madars quits (~null@unaffiliated/madars) (Ping timeout: 256 seconds) |
| 01:07:37 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds) |
| 01:07:47 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds) |
| 01:08:10 | → | Madars joins (~null@unaffiliated/madars) |
| 01:09:13 | × | dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds) |
| 01:09:40 | × | blissful quits (~azuline@unaffiliated/azuline) (Quit: The Lounge - https://thelounge.chat) |
| 01:13:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:14:29 | → | plutoniix joins (~q@175.176.222.7) |
| 01:15:04 | × | Lord_of_Life_ quits (~Lord@46.217.221.241) (Ping timeout: 240 seconds) |
| 01:17:37 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds) |
| 01:18:39 | → | Lord_of_Life joins (~Lord@46.217.221.153) |
| 01:19:40 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 01:23:22 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 01:23:54 | → | nuncanada joins (~dude@179.235.160.168) |
| 01:26:19 | × | m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds) |
| 01:27:06 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
| 01:31:44 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:34:57 | × | alp quits (~alp@2a01:e0a:58b:4920:95e9:ca1e:6b04:cf54) (Ping timeout: 272 seconds) |
| 01:36:03 | × | darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 260 seconds) |
| 01:38:34 | → | jle` joins (~mstksg@unaffiliated/mstksg) |
| 01:39:16 | → | RecursiveG joins (~recursive@li810-210.members.linode.com) |
| 01:40:01 | × | RecursiveG quits (~recursive@li810-210.members.linode.com) (Client Quit) |
| 01:40:08 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 01:40:40 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 01:42:35 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Quit: Leaving) |
| 01:42:38 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ) |
| 01:44:15 | → | RecursiveG joins (~recursive@li810-210.members.linode.com) |
| 01:45:29 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 01:45:53 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 01:47:12 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection) |
| 01:47:44 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 01:51:26 | × | polyrain_ quits (~polyrain@58.161.83.164) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:51:41 | → | jbox joins (~atlas@unaffiliated/jbox) |
| 01:52:04 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 01:56:04 | × | firstlove quits (~firstlove@58.246.122.242) (Remote host closed the connection) |
| 01:58:17 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 01:58:49 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 01:59:43 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 02:01:47 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
| 02:01:48 | → | GyroW_ joins (~GyroW@d54C03E98.access.telenet.be) |
| 02:01:48 | × | GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 02:01:48 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 02:02:19 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:04:57 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:06:05 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:07:03 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
| 02:08:43 | × | jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 260 seconds) |
| 02:09:55 | → | obihann joins (~jhann@156.34.160.69) |
| 02:10:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 02:10:58 | × | st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Ping timeout: 246 seconds) |
| 02:11:10 | → | vacm joins (~vacwm@70.23.92.191) |
| 02:11:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:12:22 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) (Quit: oisdk) |
| 02:12:22 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:14:44 | × | obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds) |
| 02:15:36 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 02:18:54 | × | Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 265 seconds) |
| 02:18:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:19:58 | hackage | agda-unused 0.1.0 - Check for unused code in an Agda project. https://hackage.haskell.org/package/agda-unused-0.1.0 (msuperdock) |
| 02:23:24 | × | Bill--Door quits (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) (Remote host closed the connection) |
| 02:24:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 02:24:29 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:26:21 | → | darjeeling_ joins (~darjeelin@112.16.171.8) |
| 02:26:56 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 02:26:56 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 02:26:56 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 02:27:45 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 02:30:28 | hackage | barbies-th 0.1.7 - Create strippable HKD via TH https://hackage.haskell.org/package/barbies-th-0.1.7 (FumiakiKinoshita) |
| 02:31:25 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
| 02:31:45 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:34:24 | × | darjeeling_ quits (~darjeelin@112.16.171.8) (Ping timeout: 240 seconds) |
| 02:37:58 | → | mbomba joins (~mbomba@142.114.9.241) |
| 02:40:38 | → | toorevitimirp joins (~tooreviti@117.182.180.36) |
| 02:42:41 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:42:42 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 02:43:19 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:45:01 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 02:46:37 | × | acidjnk_new quits (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 02:51:24 | × | jakob_ quits (~textual@p57b0eae0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
| 02:52:41 | × | plutoniix quits (~q@175.176.222.7) (Quit: Leaving) |
| 02:53:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:57:12 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 02:58:53 | × | ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection) |
| 02:59:27 | × | xff0x quits (~fox@2001:1a81:5219:2300:29ba:4988:f159:6286) (Ping timeout: 260 seconds) |
| 03:00:01 | × | igustin quits (~igustin@185.204.1.185) () |
| 03:00:28 | → | ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf) |
| 03:01:17 | → | xff0x joins (~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2) |
| 03:04:04 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
| 03:07:37 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 03:09:24 | → | mbomba joins (~mbomba@142.114.9.241) |
| 03:10:42 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 03:12:51 | <Kolkrabe> | What are "strippable HKDs"? (I presume it has nothing to do with the currency of Hong Kong) |
| 03:13:03 | × | ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds) |
| 03:13:18 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services))) |
| 03:13:18 | <Axman6> | higher kinded data |
| 03:13:23 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 03:14:17 | <Axman6> | I can't renenber what strippable means in this context, though it may be that when your functor is Identity there's no wrapping of the fields in identity (but maybe that was another package which did that) |
| 03:16:59 | <Kolkrabe> | Is it like wrapping fields of a datatype into another datatype? |
| 03:17:42 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 03:17:56 | × | Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3) |
| 03:18:19 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 260 seconds) |
| 03:18:31 | <Kolkrabe> | I'm looking at the example at http://hackage.haskell.org/package/barbies-1.1.3.0/docs/Data-Barbie-Bare.html |
| 03:19:21 | <Axman6> | basically - instead of defining your types like Data Foo = Foo { foo :: Int, bar :: Bool } you use data Foo f = Foo {foo :: f Int, bar :: f Bool}. Then a lot of nice things fall out of doing that - Foo Identity is basically the original type, Foo (Const String) lets you associate a string with every field, Foo (Either String) might be the result of parsing a Foo where you can collect errors for each field, and if all fields were Rights you pa |
| 03:19:21 | <Axman6> | rsed it successfully |
| 03:20:53 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds) |
| 03:20:58 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 03:21:27 | × | solonarv quits (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 03:21:28 | <Axman6> | one really nice thing you can do is the transformation from Vector (Foo Identity) to Foo Vector - a.k.a the vector of structs to struct of vectors transformation |
| 03:22:12 | × | eruditass quits (uid248673@gateway/web/irccloud.com/x-upuflkjgqfommgrg) (Ping timeout: 260 seconds) |
| 03:22:12 | × | ReinH__ quits (sid179972@gateway/web/irccloud.com/x-vgpjckyigmgjdwtk) (Ping timeout: 260 seconds) |
| 03:22:12 | × | rdivyanshu quits (sid322626@gateway/web/irccloud.com/x-otfoczynxqkuwcfm) (Ping timeout: 260 seconds) |
| 03:22:17 | → | plutoniix joins (~q@175.176.222.7) |
| 03:22:25 | × | alanz quits (sid110616@gateway/web/irccloud.com/x-hhuchzrtvkxyanvu) (Ping timeout: 240 seconds) |
| 03:22:28 | × | Cir0X quits (sid221743@gateway/web/irccloud.com/x-sfiedvvxkgjnutkr) (Read error: Connection reset by peer) |
| 03:22:29 | × | AndreasK quits (sid320732@gateway/web/irccloud.com/x-rxqfxdsbssdfwfxd) (Read error: Connection reset by peer) |
| 03:22:29 | × | bradparker quits (sid262931@gateway/web/irccloud.com/x-kzdpaybrmmwnrdgh) (Read error: Connection reset by peer) |
| 03:22:29 | × | joshmeredith quits (sid387798@gateway/web/irccloud.com/x-hdepxcnffbqdlwvu) (Read error: Connection reset by peer) |
| 03:22:30 | × | ebutleriv quits (sid217783@gateway/web/irccloud.com/x-cvawhvfjdshsscgr) (Read error: Connection reset by peer) |
| 03:22:30 | × | cvlad- quits (sid203065@gateway/web/irccloud.com/x-efqqsgkcshqvhkds) (Read error: Connection reset by peer) |
| 03:22:30 | × | banjiewen_ quits (sid115913@gateway/web/irccloud.com/x-prbnvikrvoskgqwb) (Read error: Connection reset by peer) |
| 03:22:32 | × | jared-w quits (uid405292@gateway/web/irccloud.com/x-hoqehiufvhduodif) (Ping timeout: 260 seconds) |
| 03:22:32 | × | cemerick quits (sid54985@gateway/web/irccloud.com/x-gqtgtcmcxeexxtnf) (Ping timeout: 260 seconds) |
| 03:22:35 | × | natim87 quits (sid286962@gateway/web/irccloud.com/x-ceyxlbqjhgkntuzg) (Read error: Connection reset by peer) |
| 03:22:35 | × | davetapley quits (sid666@gateway/web/irccloud.com/x-unkevmoregbjgeww) (Read error: Connection reset by peer) |
| 03:22:36 | × | benwr____ quits (sid372383@gateway/web/irccloud.com/x-kvsrlvuwekbjywwv) (Read error: Connection reset by peer) |
| 03:22:36 | × | totbwf quits (sid402332@gateway/web/irccloud.com/x-ymdhjktodciveoos) (Read error: Connection reset by peer) |
| 03:22:43 | × | SrPx quits (sid108780@gateway/web/irccloud.com/x-bqucgfmlfmdjtbdg) (Read error: Connection reset by peer) |
| 03:22:53 | → | AndreasK joins (sid320732@gateway/web/irccloud.com/x-ktiwazcixhtnosgk) |
| 03:22:56 | → | ebutleriv joins (sid217783@gateway/web/irccloud.com/x-kvxiagmqenenwcwd) |
| 03:22:57 | → | benwr____ joins (sid372383@gateway/web/irccloud.com/x-fpmmjvddoaxuhwfl) |
| 03:23:21 | → | SrPx joins (sid108780@gateway/web/irccloud.com/x-uslzvcburhozaynt) |
| 03:23:23 | → | davetapley joins (sid666@gateway/web/irccloud.com/x-robbsvqvrfwhlocr) |
| 03:23:24 | → | alanz joins (sid110616@gateway/web/irccloud.com/x-kaaptnygtinjlvts) |
| 03:23:29 | → | rdivyanshu joins (sid322626@gateway/web/irccloud.com/x-vijvgbwevjdmeabn) |
| 03:23:32 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 03:23:34 | → | bradparker joins (sid262931@gateway/web/irccloud.com/x-cpaqunedaxagfosc) |
| 03:23:37 | → | Cir0X joins (sid221743@gateway/web/irccloud.com/x-vbsqpqvnwnaxxlao) |
| 03:23:37 | → | joshmeredith joins (sid387798@gateway/web/irccloud.com/x-fahcpupvewgkoceh) |
| 03:23:37 | → | totbwf joins (sid402332@gateway/web/irccloud.com/x-sxpcryhpiyewihxs) |
| 03:23:39 | → | cvlad- joins (sid203065@gateway/web/irccloud.com/x-dghqjpkfmvjbucbi) |
| 03:23:39 | → | natim87 joins (sid286962@gateway/web/irccloud.com/x-bwmegmbyiecjxmkz) |
| 03:23:41 | → | ReinH__ joins (sid179972@gateway/web/irccloud.com/x-kynfnrknqktyblak) |
| 03:23:45 | → | banjiewen_ joins (sid115913@gateway/web/irccloud.com/x-eopdvyfizptvmxgr) |
| 03:23:57 | × | lally quits (sid388228@gateway/web/irccloud.com/x-iepgjmxehrzuvipm) (Ping timeout: 260 seconds) |
| 03:23:57 | × | systemfault quits (sid267009@gateway/web/irccloud.com/x-htxicjxaklgtpnib) (Ping timeout: 260 seconds) |
| 03:24:02 | → | cemerick joins (sid54985@gateway/web/irccloud.com/x-syfoeolkqemrbwow) |
| 03:24:51 | → | lally joins (sid388228@gateway/web/irccloud.com/x-vliwvdsdwmscsdor) |
| 03:25:01 | → | systemfault joins (sid267009@gateway/web/irccloud.com/x-cuwcujscdtdsdgqf) |
| 03:25:06 | → | jared-w joins (uid405292@gateway/web/irccloud.com/x-hjvulmngvzyqxsmb) |
| 03:25:11 | → | eruditass joins (uid248673@gateway/web/irccloud.com/x-fakbfhwrqsthhqfr) |
| 03:25:42 | <Kolkrabe> | Axman6: I see, thanks. Would be also useful for parse trees where you want to have different trees with source position information attached or not |
| 03:25:51 | → | christo joins (~chris@81.96.113.213) |
| 03:27:35 | → | petersen joins (~petersen@redhat/juhp) |
| 03:28:51 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 03:29:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 03:30:07 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds) |
| 03:30:27 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds) |
| 03:30:58 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
| 03:31:00 | → | bartemius joins (~bartemius@109.252.20.20) |
| 03:33:04 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 03:34:11 | × | theDon quits (~td@muedsl-82-207-238-193.citykom.de) (Ping timeout: 260 seconds) |
| 03:35:05 | × | bartemius quits (~bartemius@109.252.20.20) (Ping timeout: 240 seconds) |
| 03:35:49 | → | theDon joins (~td@muedsl-82-207-238-123.citykom.de) |
| 03:40:12 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:43:32 | <koz_> | Kolkrabe: Yeah, it can be used for that too. |
| 03:43:48 | <koz_> | HKD does have some downsides though. |
| 03:47:21 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 03:48:32 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:52:40 | × | lucasb quits (uid333435@gateway/web/irccloud.com/x-qizvrgxqojerddcd) (Quit: Connection closed for inactivity) |
| 03:53:35 | → | scf-1 joins (~scf-1@84.39.116.180) |
| 03:56:46 | → | Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch) |
| 03:56:48 | <Orbstheorem> | #nixos |
| 03:57:16 | <Orbstheorem> | (sorry for the noise) |
| 03:57:31 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 03:58:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:59:33 | × | jedws quits (~jedws@101.184.193.144) (Remote host closed the connection) |
| 03:59:44 | × | mmohammadi9812 quits (~mmohammad@2.178.146.18) (Quit: Quit) |
| 04:00:00 | → | mmohammadi9812 joins (~mmohammad@2.178.146.18) |
| 04:00:17 | → | jedws joins (~jedws@101.184.193.144) |
| 04:00:26 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 04:00:39 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Read error: Connection reset by peer) |
| 04:01:15 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 260 seconds) |
| 04:01:19 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 04:01:39 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
| 04:03:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:05:16 | → | falafel joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 04:06:34 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
| 04:06:38 | ← | jbox parts (~atlas@unaffiliated/jbox) ("WeeChat 2.9") |
| 04:07:02 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 04:07:20 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 04:07:20 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 04:07:20 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 04:07:38 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 04:10:04 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 04:11:05 | → | obihann joins (~jhann@156.34.160.69) |
| 04:14:24 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
| 04:15:15 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 04:15:37 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 04:15:53 | × | obihann quits (~jhann@156.34.160.69) (Ping timeout: 260 seconds) |
| 04:16:23 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 04:18:58 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 04:20:34 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:23:36 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer) |
| 04:24:07 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 04:25:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 04:34:22 | × | plutoniix quits (~q@175.176.222.7) (Quit: Leaving) |
| 04:37:05 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 04:37:07 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 04:37:25 | × | FreeBird_ quits (~freebirdl@101.228.42.108) (Remote host closed the connection) |
| 04:38:30 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 04:39:32 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 04:39:39 | × | jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:39:58 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) |
| 04:43:35 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 04:43:52 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 04:44:40 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
| 04:47:26 | <crestfallen> | http://ix.io/2CfR hi the ghci session I have commented out at the bottom of this paste gave unexpected results. how did the zero in (Just 0) end up in the tree? thamks |
| 04:48:37 | <sandmwitch> | Well... I mean, -5 is not > 0, so |
| 04:49:01 | <koz_> | Yeah, pretty much exactly this. |
| 04:49:24 | <crestfallen> | (aa was originally : aa x = if even x then Just (div x 2) else Nothing ) |
| 04:49:42 | <crestfallen> | so with Nothing it fails, I see that |
| 04:50:21 | <crestfallen> | But I thought that if anything fails the predicate then I would have Just 0 returned |
| 04:51:08 | <sandmwitch> | What does "if anything fails the predicate then I would have Just 0 returned" mean? |
| 04:51:26 | <sandmwitch> | Are you saying that you expect that `trevarse aa foo = Just 0` whenever there is a negative number somewhere in `foo`? |
| 04:51:36 | <sandmwitch> | If so, why do you expect that? |
| 04:51:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:51:45 | <sandmwitch> | (trevarse -> traverse, obviously) |
| 04:52:45 | <crestfallen> | so if we used this func, and gave it the list [2,4,6] we'd have Just [1,2,3] |
| 04:53:34 | <crestfallen> | so every member of the list needs to be even. but the other function I figured would return (Just 0) |
| 04:56:28 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 265 seconds) |
| 04:56:42 | <sandmwitch> | Why did you figure that, though? |
| 04:57:08 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 04:57:16 | × | falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 260 seconds) |
| 04:57:18 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 04:57:18 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 04:57:18 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 04:57:46 | × | fraktor quits (~walt@129.93.191.18) (Quit: WeeChat 2.8) |
| 04:58:08 | × | mmohammadi9812 quits (~mmohammad@2.178.146.18) (Ping timeout: 256 seconds) |
| 04:58:37 | → | bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
| 04:59:13 | <crestfallen> | because whatever goes after the else clause would be returned as (Just 0) ; I didn't expect 0 to be integrated into (Con 0) like that. weird |
| 04:59:46 | <sandmwitch> | The then/else divide is not special. The Just/Nothing divide is special. |
| 04:59:55 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:00:22 | → | mmohammadi9812 joins (~mmohammad@2.178.187.147) |
| 05:00:29 | <sandmwitch> | (And the *reason* it is special is because the Applicative instance for Maybe does different things depending on whether it sees Just or Nothing.) |
| 05:01:15 | <crestfallen> | sandmwitch: thanks not sure I see exactly what's happening |
| 05:02:18 | <crestfallen> | I thought Just 0 would be a return value |
| 05:02:41 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 05:04:26 | <koz_> | :t traverse |
| 05:04:27 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
| 05:04:33 | <koz_> | Note what happens to the 'f'. |
| 05:05:47 | → | Tario joins (~Tario@201.192.165.173) |
| 05:05:59 | <crestfallen> | in the return? : f (t b) koz_ |
| 05:06:30 | <koz_> | crestfallen: Yeah, exactly. That's what makes 'traverse' what it is. Now, notice where that 'f' is in the function argument to traverse. |
| 05:06:39 | <koz_> | Now, look at your situation - what is 'f' in your case. |
| 05:06:43 | <koz_> | Take. Due. Care. |
| 05:07:47 | <crestfallen> | f is Maybe.. in this case Just |
| 05:08:06 | <koz_> | The first was right, then you sank yourself. Again, please do not confuse the value level and the type level. |
| 05:08:11 | → | tdhttt joins (~tdhttt@static-198-54-131-149.cust.tzulo.com) |
| 05:08:24 | <crestfallen> | hold on |
| 05:08:26 | <koz_> | So therefore, given your 'aa', you'll _always_ end up with Just [some tree inside]. |
| 05:08:47 | <koz_> | Because no matter which branch you take, you'll get a Just. |
| 05:08:47 | → | christo joins (~chris@81.96.113.213) |
| 05:09:07 | <koz_> | And since in your case, f ~ Maybe, the expected result is 'Maybe (Tree Int)'. |
| 05:09:11 | <koz_> | Which is exactly what you're seeing. |
| 05:09:20 | <koz_> | s/result/result type/ |
| 05:10:07 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 05:10:48 | <crestfallen> | ... |
| 05:15:09 | <crestfallen> | so koz_ that behavior is interesting. it seems like the logic in the if / then statement has changed. (Just 0) is feeding the value to the rhs branch : (Con 0). trying to wrap my head around that |
| 05:15:36 | <koz_> | No, the logic in the if-then-else hasn't 'changed', whatever that means. |
| 05:15:47 | <koz_> | Look at your definition of 'traverse'. |
| 05:15:54 | <koz_> | (for your Tree type). |
| 05:16:00 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 258 seconds) |
| 05:16:08 | → | xxxzzzqqaa` joins (3dded63f@61-222-214-63.HINET-IP.hinet.net) |
| 05:16:29 | <koz_> | That behaviour _is_ interesting, but the if-then-else you have there is literally the least interesting part of it. |
| 05:16:35 | <koz_> | It's all about the traverse definition. |
| 05:16:53 | <crestfallen> | what I meant was ... else Nothing changes the logic |
| 05:17:00 | <koz_> | It does. |
| 05:17:10 | <koz_> | And that's because of _the traverse definition_. |
| 05:17:16 | <koz_> | I cannot stress enough just how much it matters. |
| 05:17:31 | <Axman6> | returning Nothing anywhere from the function passed to traverse causes the result to be Nothing, since that's what the applicative instance for Nothing requires |
| 05:17:34 | <Axman6> | uh, for Maybe |
| 05:18:14 | <crestfallen> | right. let me re-paste one sec |
| 05:18:14 | <koz_> | Axman6: Well, assuming it's not conditional on the values 'in' the Traversable somehow. |
| 05:18:17 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 05:18:20 | <Axman6> | iun traverse fn (Con a) = Con <$> (fn a), if fn returns Nothing, then the Con being fmapped over that Nothing still gives you as Nothing |
| 05:18:42 | <Axman6> | @src Functor @Maybe |
| 05:18:42 | <lambdabot> | Source not found. Do you think like you type? |
| 05:19:13 | <koz_> | Sassy lambdabot. |
| 05:19:42 | <crestfallen> | sorry just to keep a reference http://ix.io/2CfX |
| 05:19:50 | <Axman6> | fmap f (Just a) = Just (f a); fmap _ Nothing = Nothing |
| 05:22:18 | → | notzmv joins (~user@unaffiliated/zmv) |
| 05:23:35 | <crestfallen> | so the first Just in aa is the constructor for Maybe Tree a. the second Just : else (Just 0) is actually being fmapped over |
| 05:23:41 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:23:46 | → | day_ joins (~Unknown@unaffiliated/day) |
| 05:25:06 | <crestfallen> | Axman6: am I correct? |
| 05:25:19 | <Axman6> | I don't think so, you seem very confused |
| 05:26:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 05:26:45 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
| 05:26:45 | day_ | is now known as day |
| 05:27:16 | <Axman6> | I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ??? |
| 05:27:46 | <crestfallen> | Axman6: no I get it. in aa there is no failure at all. so (Con a) on the right hand branch is going to take the 0. |
| 05:27:49 | <Axman6> | just keep substituting the definitions for traverse, once you have none left, substitute in the definition for bb, in the Con 9 case |
| 05:27:58 | <dminuoso> | TIL, operator dont have to be functions. :> |
| 05:28:11 | <dminuoso> | % (.>>) = ">>" |
| 05:28:12 | <yahb> | dminuoso: |
| 05:28:26 | <Axman6> | % :t (%) |
| 05:28:26 | <yahb> | Axman6: Integral a => a -> a -> Ratio a |
| 05:28:34 | <Axman6> | % :t (.>>) |
| 05:28:34 | <yahb> | Axman6: [Char] |
| 05:28:52 | <koz_> | Oh wow, TIL indeed. |
| 05:29:11 | <Axman6> | crestfallen: I would _strongly_ recommend you go the evaluation by hand I suggested above |
| 05:29:25 | <dminuoso> | Im using this in a code generator with haskell-src-exts, such that I can do |
| 05:29:25 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 05:30:05 | <dminuoso> | let (.>>) = op (sym ">>") in infixApp fooE (.>>) barE |
| 05:32:44 | → | Sanchayan joins (~Sanchayan@122.167.95.166) |
| 05:32:48 | <dminuoso> | (Though ultimately I think Im going to use QQ instead, since [hs| $fooE >> $barE |] is a bit more readable) |
| 05:33:44 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 05:34:48 | <dsal> | :t infixApp |
| 05:34:49 | <lambdabot> | error: Variable not in scope: infixApp |
| 05:35:50 | <koz_> | dminuoso: I recently wrote my first quasi-quoters, and it was honestly rather pleasant. |
| 05:36:05 | <dsal> | oooh |
| 05:36:57 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-vkinnmkhoknarggj) (Quit: Connection closed for inactivity) |
| 05:38:23 | <dminuoso> | koz_: Yeah, Im fond of QQ myself. I have some for IP/mac literals, especially in tests this is convenient. :) |
| 05:38:56 | <koz_> | I'm definitely adding them to my arsenal for the future. |
| 05:39:04 | <dminuoso> | http://hackage.haskell.org/package/hexquote-0.1/docs/Data-Hex-Quote.html this is a cute one as well |
| 05:39:11 | <dminuoso> | That find usage in one of my projects tests a lot |
| 05:42:42 | × | sandmwitch quits (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 05:42:50 | <crestfallen> | Axman6: koz_: please look at > traverse bb list http://ix.io/2Cg1 |
| 05:44:03 | → | dmwit joins (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) |
| 05:44:52 | dmwit | is now known as dmwitch |
| 05:46:07 | crestfallen | is now known as wretchswollen |
| 05:51:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 05:51:25 | × | taurux quits (~taurux@net-188-216-37-152.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 05:51:29 | <Axman6> | wretchswollen: what about it? |
| 05:52:49 | <Axman6> | wretchswollen: try using this: bb x = if even x then Right (x `div` 2) else Left (show x) |
| 05:54:00 | → | taurux joins (~taurux@net-188-216-13-237.cust.vodafonedsl.it) |
| 05:54:16 | <dminuoso> | wretchswollen: You seem to be confusing Traversable with Filterable (see `witherable` package) |
| 05:54:50 | <dminuoso> | (A poor mans witherable on just [] is `mapMaybe` in case you are looking for that) |
| 05:56:04 | <dminuoso> | (Or I guess Witherable rather than Filterable) |
| 05:57:26 | <wretchswollen> | with list each member needs to be even. so if it's traverse bb [2,4,6] then we get Just [1,2,3]. so the program doesn't get to the else statement |
| 05:57:40 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:58:40 | <wretchswollen> | it builds Maybe List a without getting to the else statement |
| 05:59:06 | <dminuoso> | wretchswollen: `Nothing` *is* Maybe [Int] too |
| 05:59:23 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:59:29 | <Axman6> | wretchswollen: why won';t you do the thing I've now told you three times you should do? step. through. the. functions. by. expanding. their. definitions |
| 05:59:41 | <Axman6> | you will see what's happening nearly immediately |
| 05:59:58 | <Axman6> | but instead yuou keep asking the same question and not understanding the answers |
| 06:00:01 | × | scf-1 quits (~scf-1@84.39.116.180) () |
| 06:00:20 | <dsal> | To write good code, one must become one with the compiler. |
| 06:00:20 | <Axman6> | you have the wrong intuition, you can fix than by actually stepping through the evaluation |
| 06:00:26 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 06:00:40 | → | mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
| 06:00:49 | <Axman6> | I started the work for you, all you need to dfo is contunue it |
| 06:00:51 | <Axman6> | continue* |
| 06:01:40 | <wretchswollen> | theres a lot going on. |
| 06:01:46 | <Axman6> | yes |
| 06:01:50 | <Axman6> | so you take it one step at a time |
| 06:01:55 | <Axman6> | like I told you to |
| 06:02:20 | × | rinwa quits (~rinwa@5.102.238.236) (Ping timeout: 272 seconds) |
| 06:02:20 | <wretchswollen> | I don't have scrollback on this blasted chat client |
| 06:02:28 | <Axman6> | I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ??? |
| 06:02:30 | <dminuoso> | wretchswollen: Check the topic |
| 06:02:34 | <dminuoso> | We have a log. |
| 06:02:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 06:03:15 | <Axman6> | @where paste |
| 06:03:15 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 06:06:29 | <Axman6> | wretchswollen: https://paste.tomsmeding.com/7TIQdWo7 |
| 06:06:55 | <Axman6> | I took a few steps at a time there, you can spread it out more if you want |
| 06:08:25 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 06:08:37 | × | tdhttt quits (~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 264 seconds) |
| 06:09:00 | <wretchswollen> | Axman6: thanks so much. I should probably revisit this tomm. dminuoso thanks kindly |
| 06:09:32 | → | tdhttt joins (~tdhttt@static-198-54-131-149.cust.tzulo.com) |
| 06:11:46 | → | obihann joins (~jhann@156.34.160.69) |
| 06:12:54 | <wretchswollen> | Axman6: yeah ok so doing > traverse aa (Con (-5)) ==> Just (Con 0) |
| 06:15:09 | <Axman6> | yes |
| 06:15:37 | <Axman6> | which is _exactly_ what the definition of traverse says will happen if your applicative is Maybe |
| 06:16:14 | <wretchswollen> | so what happens is essentially: Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0) |
| 06:16:42 | <wretchswollen> | hold on checking that.. |
| 06:16:52 | <Axman6> | sort of, the Add <$> is needed in front of that to make it type check |
| 06:17:01 | × | obihann quits (~jhann@156.34.160.69) (Ping timeout: 246 seconds) |
| 06:17:10 | <Axman6> | you get Add <$> Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0) |
| 06:20:39 | <wretchswollen> | that's pretty interesting thanks Axman6 |
| 06:20:40 | <Axman6> | which becomes Just (\x -> Add (Add (Add (Con 8) (Con 9))) x) <*> Just (Con 0) |
| 06:20:57 | <Axman6> | % :t (<*> @Maybe) |
| 06:20:57 | <yahb> | Axman6: ; <interactive>:1:6: error: parse error on input `@' |
| 06:21:02 | <Axman6> | % :t (<*>) @Maybe |
| 06:21:03 | <yahb> | Axman6: Maybe (a -> b) -> Maybe a -> Maybe b |
| 06:21:52 | → | m4v1 joins (~m4v@185.244.214.217) |
| 06:21:56 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 06:22:02 | → | _vaibhavingale_ joins (~Adium@42.106.216.64) |
| 06:23:19 | → | zaquest joins (~notzaques@5.128.210.178) |
| 06:25:01 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 06:26:28 | × | jud^ quits (~jud@cpe-70-113-106-222.austin.res.rr.com) (Ping timeout: 246 seconds) |
| 06:27:21 | → | jedws joins (~jedws@101.184.193.144) |
| 06:30:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:31:21 | → | ecphras joins (~gschare@cpe-23-242-214-143.socal.res.rr.com) |
| 06:34:00 | × | ecphras quits (~gschare@cpe-23-242-214-143.socal.res.rr.com) (Client Quit) |
| 06:36:30 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 06:38:15 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 06:41:53 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 06:44:49 | → | nsyde joins (~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 06:45:24 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
| 06:46:26 | × | nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 256 seconds) |
| 06:46:52 | × | caubert quits (~mrbentari@207.246.80.112) (Quit: WeeChat 2.9) |
| 06:47:02 | → | mrbentarikau joins (~mrbentari@207.246.80.112) |
| 06:47:20 | mrbentarikau | is now known as caubert |
| 06:49:02 | × | kori quits (~kori@arrowheads/kori) (Quit: WeeChat 2.8) |
| 06:50:28 | → | bitmagie joins (~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de) |
| 06:53:00 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds) |
| 06:53:03 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:53:30 | → | tuple joins (~igloo@66.115.157.61) |
| 06:53:49 | × | tuple quits (~igloo@66.115.157.61) (Client Quit) |
| 06:54:56 | × | jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:57:57 | → | keep_learning joins (~keep_lear@43.231.26.152) |
| 06:58:50 | → | | joins (183f4752@c-24-63-71-82.hsd1.ma.comcast.net) |
| 06:59:14 | | | is now known as Guest35321 |
| 07:00:28 | → | asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
| 07:01:50 | → | mimi1vx joins (~mimi@tulipan.habr.nat.praha12.net) |
| 07:02:47 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 07:03:52 | → | plutoniix joins (~q@175.176.222.7) |
| 07:04:09 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 07:04:55 | × | mimi_vx quits (~mimi@2a01:490:16:1026:9954:a30:869a:297e) (Ping timeout: 272 seconds) |
| 07:05:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 07:06:56 | → | jedws joins (~jedws@101.184.193.144) |
| 07:11:32 | → | _vaibhavingale_1 joins (~Adium@203.188.228.9) |
| 07:12:05 | × | _vaibhavingale_ quits (~Adium@42.106.216.64) (Read error: Connection reset by peer) |
| 07:15:14 | → | alp joins (~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0) |
| 07:15:29 | × | nsyde quits (~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 07:16:04 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 07:22:36 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:24:57 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 07:26:14 | × | sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine) |
| 07:27:05 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 07:27:56 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 07:27:56 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 07:27:56 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 07:29:04 | → | ulidtko|k joins (~ulidtko@193.111.48.79) |
| 07:29:20 | × | ulidtko quits (~ulidtko@193.111.48.79) (Remote host closed the connection) |
| 07:32:09 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:32:36 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 07:35:27 | hackage | deriving-show-simple 0 - Derive a Show instance without field selector names https://hackage.haskell.org/package/deriving-show-simple-0 (FumiakiKinoshita) |
| 07:38:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:44:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 07:46:45 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 07:46:50 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:49:07 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 07:49:38 | → | mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 07:50:31 | → | dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 07:50:57 | hackage | hslua-module-doclayout 0.2.0.1 - Lua module wrapping Text.DocLayout. https://hackage.haskell.org/package/hslua-module-doclayout-0.2.0.1 (tarleb) |
| 07:55:00 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Read error: Connection reset by peer) |
| 07:55:12 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 07:55:27 | × | Lord_of_Life quits (~Lord@46.217.221.153) (Changing host) |
| 07:55:27 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 07:56:28 | → | rinwa joins (~rinwa@5.102.238.236) |
| 07:57:48 | × | xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection) |
| 07:59:53 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds) |
| 08:03:23 | → | raichoo joins (~raichoo@213.240.178.58) |
| 08:03:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:04:02 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:10:05 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 08:13:05 | × | avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:13:17 | <dminuoso> | binary question, when I have a tree of Get primitives, is there a good rule of thumb where to isolate? |
| 08:14:47 | → | idhugo joins (~idhugo@users-1190.st.net.au.dk) |
| 08:16:25 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 08:18:05 | × | jespada quits (~jespada@90.254.243.98) (Ping timeout: 258 seconds) |
| 08:20:47 | → | jespada joins (~jespada@90.254.243.98) |
| 08:23:06 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 08:28:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 08:29:57 | <eedgit> | Why are these named 'op' / 'e' - is it completely random or does it have some significance? (can't google 'cause its too short :( ) |
| 08:29:57 | <eedgit> | https://dpaste.org/cht0 |
| 08:30:31 | <dminuoso> | The 'e' is likely random |
| 08:30:39 | <dminuoso> | And 'op' is just to suggest this is likely to be used with some kind of "operator" |
| 08:30:45 | <dminuoso> | Think: |
| 08:30:52 | <dminuoso> | % foldr (+) 0 [1,2,3,4,5] |
| 08:30:52 | <yahb> | dminuoso: 15 |
| 08:31:27 | <eedgit> | thank you! I thought that might be operator. Is there a big list of commonly used vars / built in ones |
| 08:31:36 | <eedgit> | To a novice it's like staring at a bowl of alphabet soup sometimes |
| 08:35:38 | <merijn> | eedgit: I don't think there is a list, some common ones would be f/g/h for functions, i/j/k for indices, any single letter for just "a value of some polymorphic type" |
| 08:36:10 | <merijn> | eedgit: oh, and of course the (x:xs) idiom (following from 1 item, multiple itemS you get 1 x, multiple xS) |
| 08:36:22 | → | kish joins (~oracle@unaffiliated/oracle) |
| 08:38:28 | <merijn> | eedgit: I might call the 'e' "acc" (for accumulator or something), but it's not really clear what a "better" name would be. |
| 08:39:56 | <eedgit> | `acc` is much better thanks |
| 08:41:11 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:41:32 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 08:44:02 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 08:44:32 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 08:46:03 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 08:46:07 | × | jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:46:49 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 08:47:07 | <dminuoso> | eedgit: I tend to not like `acc` because it leads to a more imperative thinking. |
| 08:47:56 | <dminuoso> | https://wiki.haskell.org/wikiupload/3/3e/Right-fold-transformation.png |
| 08:48:28 | <dminuoso> | So if we foldr a list, then that second argument really is just what the empty list at the end gets replaced with. |
| 08:51:22 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Ping timeout: 265 seconds) |
| 08:52:33 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 08:53:19 | × | avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Client Quit) |
| 08:53:51 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 08:54:32 | <tomsmeding> | "imperative thinking" certainly fits the time of year, does it not? |
| 08:55:06 | <merijn> | Nothing wrong with imperative Haskell :) |
| 08:55:10 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 08:56:56 | <merijn> | https://twitter.com/k0001/status/1295846402648682496 :p |
| 08:57:49 | → | _vaibhavingale_ joins (~Adium@203.188.228.9) |
| 08:58:22 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 08:58:49 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 08:58:52 | <tomsmeding> | lol |
| 08:59:10 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-hxonwkkgkhrxlnbv) (Quit: Connection closed for inactivity) |
| 08:59:21 | <tomsmeding> | depends on the domain of course |
| 08:59:23 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 08:59:37 | × | _vaibhavingale_1 quits (~Adium@203.188.228.9) (Ping timeout: 264 seconds) |
| 08:59:38 | <Rembane> | As long as you don't think imperitavel... yeah... you can program using the style. *nods sagely* |
| 09:00:02 | × | m4v1 quits (~m4v@185.244.214.217) () |
| 09:00:59 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 09:01:08 | <eedgit> | dminuoso that's hurting my head a bit. Is the distinction you're making that it's 'folded' into the end, rather than accumulated in a new variable? |
| 09:02:42 | <tomsmeding> | eedgit: 'foldr op e l' really just replaces the (:) in l with op, and the [] in l with e |
| 09:03:14 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 09:03:26 | <tomsmeding> | foldr op e (1 : (2 : (3 : [])) = 1 `op` (2 `op` (3 `op` e)) |
| 09:03:30 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 09:03:30 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 09:03:30 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 09:03:44 | <tomsmeding> | hence 'e' for "empty list" |
| 09:04:28 | <tomsmeding> | oh that's what the picture says, lol |
| 09:04:46 | <eedgit> | ahh ok, think I've got it (*whiteboarding intensifies*) |
| 09:04:49 | <eedgit> | ty |
| 09:05:49 | <tomsmeding> | and if you at some point think, hey you can generalise this idea of "replacing constructors" to other data types: welcome to the theory of folds :) |
| 09:09:11 | <eedgit> | still not entirely sure it's not witchcraft. My original implementation was pretty long but by looking at other solutions I'm down to a handful of variables |
| 09:09:28 | → | Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it) |
| 09:09:33 | <eedgit> | Is there a simpler / more native way than flattening and using foldr for rose-trees ? |
| 09:10:10 | <dminuoso> | eedgit: So, `flattening` *is* already fully descriptive of the fold. |
| 09:10:45 | <dminuoso> | We could think of Foldable having two equivalent signature methods `toList` and `foldr` (or perhaps foldMap instead of foldr). |
| 09:11:28 | <dminuoso> | (Im not actually sure why toList is not a method of Foldable) |
| 09:12:32 | <dminuoso> | But yes, you could essentially rip down the implementation of toList, and use that to implement a foldr directly |
| 09:12:56 | <Axman6> | is there any optimisations to he had with toList /= foldr (:) []? |
| 09:13:05 | <dminuoso> | Where, if you look at the above scheme, instead of putting in a `:` you just put in the argument `f` and, and instead of the `[]` at the end you put in the z |
| 09:13:42 | <dminuoso> | So if you had some implementation `flatten ... = x : ...; flatten ... = []` |
| 09:13:47 | <dminuoso> | You could, instead, replace that implementation as |
| 09:14:11 | <dminuoso> | instance Foldable YourTree where foldr f _z ... = x `f` ...; foldr _f z ... = z |
| 09:14:13 | <dminuoso> | Mechanically |
| 09:14:17 | <dminuoso> | (You dont even have to think about it) |
| 09:14:36 | <dminuoso> | And then the `flatten` you have for free via `toList` |
| 09:15:09 | <dminuoso> | Axman6: Well, less fusion/deforestation I guess? |
| 09:15:26 | <dminuoso> | (By "less" I mean "less required") |
| 09:15:35 | → | quaestor joins (~quaestor@griffith.christophrauch.de) |
| 09:15:35 | <Axman6> | but surely that would have happened in your foldr definition |
| 09:15:54 | <dminuoso> | If the foldr has to decompose a list again, that surely hinders optimizations |
| 09:16:23 | <dminuoso> | If we dont even allow generating a list, we dont have to do deforestation in the first place. |
| 09:16:58 | hackage | ukrainian-phonetics-basic 0.1.6.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.6.0 (OleksandrZhabenko) |
| 09:17:32 | × | bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
| 09:17:58 | hackage | mmsyn6ukr 0.8.2.0 - A musical instrument synthesizer or a tool for Ukrainian language listening https://hackage.haskell.org/package/mmsyn6ukr-0.8.2.0 (OleksandrZhabenko) |
| 09:19:01 | × | mmohammadi9812 quits (~mmohammad@2.178.187.147) (Ping timeout: 246 seconds) |
| 09:19:38 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 09:19:47 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 09:20:05 | → | mbomba joins (~mbomba@142.114.9.241) |
| 09:22:20 | <eedgit> | Makes sense, thanks |
| 09:22:50 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds) |
| 09:23:13 | → | knupfer joins (~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de) |
| 09:23:29 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 09:23:39 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 09:23:39 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 09:23:39 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 09:23:41 | × | knupfer quits (~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de) (Remote host closed the connection) |
| 09:23:45 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 09:23:48 | → | knupfer joins (~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de) |
| 09:24:08 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 09:24:57 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:26:52 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 09:27:12 | → | benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
| 09:27:52 | → | avoandmayo joins (~textual@122.58.158.238) |
| 09:29:10 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 09:30:05 | → | mmohammadi9812 joins (~mmohammad@2.178.160.31) |
| 09:30:46 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 09:32:54 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 09:35:04 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 09:36:22 | × | avoandmayo quits (~textual@122.58.158.238) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:40:15 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 09:42:12 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 09:42:37 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
| 09:42:59 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 09:43:09 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 09:44:52 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:45:53 | → | kuribas joins (~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be) |
| 09:48:52 | × | xxxzzzqqaa` quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection) |
| 09:50:34 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 09:51:49 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:52:14 | × | avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:54:24 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 09:54:42 | → | PeErLesS joins (~PeErLesS@s91904426.blix.com) |
| 09:55:05 | PeErLesS | is now known as Guest65945 |
| 09:55:08 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 10:00:28 | hackage | th-lego 0.2 - Template Haskell construction utilities https://hackage.haskell.org/package/th-lego-0.2 (NikitaVolkov) |
| 10:01:48 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
| 10:02:57 | hackage | wai-saml2 0.2.1.1 - SAML2 assertion validation as WAI middleware https://hackage.haskell.org/package/wai-saml2-0.2.1.1 (mbg) |
| 10:04:21 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 10:04:45 | → | m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
| 10:04:47 | × | Alleria_ quits (~AllahuAkb@2604:2000:1484:26:6857:8c0f:5834:bc03) (Ping timeout: 246 seconds) |
| 10:05:24 | → | Alleria_ joins (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c) |
| 10:05:28 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 10:09:01 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 10:09:03 | → | wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 10:09:45 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 10:10:02 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 10:10:29 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 10:10:33 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 10:11:03 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 10:11:05 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
| 10:13:21 | → | obihann joins (~jhann@156.34.160.69) |
| 10:14:01 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 10:16:23 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
| 10:16:46 | → | jedws joins (~jedws@101.184.193.144) |
| 10:16:46 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |
| 10:16:56 | × | mbomba quits (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
| 10:17:22 | → | vacm joins (~vacwm@70.23.92.191) |
| 10:17:37 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 10:20:33 | × | vacm quits (~vacwm@70.23.92.191) (Client Quit) |
| 10:20:44 | × | rprije quits (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 272 seconds) |
| 10:22:04 | × | obihann quits (~jhann@156.34.160.69) (Ping timeout: 240 seconds) |
| 10:24:46 | → | jakob_ joins (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) |
| 10:25:38 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:25:58 | → | acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) |
| 10:26:46 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:27:25 | → | ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
| 10:28:26 | → | obihann joins (~jhann@156.34.160.69) |
| 10:29:44 | × | jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:30:20 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 10:32:17 | <dminuoso> | data ConDecl l where ConDecl l (Name l) [Type l] | ... |
| 10:32:26 | <dminuoso> | This is from haskell-src-exts, what is this type list? |
| 10:32:45 | <dminuoso> | Is that possibly for DatatypeContexts? |
| 10:34:34 | <dminuoso> | Oh shoot me. |
| 10:34:42 | <dminuoso> | Haskell for beginners. |
| 10:36:13 | × | Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds) |
| 10:37:37 | → | bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) |
| 10:43:15 | → | darjeeling_ joins (~darjeelin@115.215.42.47) |
| 10:43:30 | → | bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
| 10:46:52 | × | jneira quits (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Ping timeout: 246 seconds) |
| 10:49:25 | → | jedws joins (~jedws@101.184.193.144) |
| 10:50:08 | → | Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net) |
| 10:53:20 | <tomsmeding> | I believe there was a conversation here a few days back with a beginning haskell programmer that had trouble distinguishing [a] on the type level and a singleton list on the value level |
| 10:54:09 | → | jess-o-lantern joins (jess@freenode/staff/jess) |
| 10:54:50 | <tomsmeding> | oh wait I'm misunderstanding your misunderstanding am I not |
| 10:55:08 | <tomsmeding> | yay |
| 10:55:25 | <lortabac> | types and data constructors with the same name were my main source of confusion when I was a beginner |
| 10:56:56 | <tomsmeding> | understandable |
| 10:57:31 | × | Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 265 seconds) |
| 10:57:49 | × | aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 264 seconds) |
| 10:58:16 | <dminuoso> | tomsmeding: Haha, I was just wondering "what in the name does a data constructor declaration need a type for" |
| 10:58:24 | <dminuoso> | My brain stopped working there for a good 5 minutes. |
| 10:58:47 | → | carlomagno1 joins (~cararell@148.87.23.8) |
| 10:58:48 | <tomsmeding> | it's also kind of confusing |
| 10:59:04 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 240 seconds) |
| 10:59:15 | <tomsmeding> | "data constructor" is probably a value-level constructor, which takes value-level arguments |
| 10:59:43 | <tomsmeding> | so on the surface, having no idea about the organisation of haskell-src-exts, I'd assume that those types are the instantiations of the type variables of the data type or something? |
| 10:59:49 | <tomsmeding> | but that makes no sense in the context of a parser |
| 10:59:51 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 11:00:00 | × | fendor_ quits (~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection) |
| 11:00:11 | <tomsmeding> | and if it's really a data _type_ declaration, then please do not call that a "data cosntructor" |
| 11:01:18 | → | fendor joins (~fendor@91.141.3.89.wireless.dyn.drei.com) |
| 11:01:34 | × | carlomagno quits (~cararell@148.87.23.12) (Ping timeout: 246 seconds) |
| 11:02:35 | <dminuoso> | tomsmeding: `data Foo = Bar Int` |
| 11:02:39 | <dminuoso> | Here the `Int` is meant |
| 11:02:55 | <dminuoso> | (The declaration of the data constructor Bar does take a number of types) |
| 11:03:06 | <tomsmeding> | lol |
| 11:03:07 | × | jedws quits (~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:03:22 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 260 seconds) |
| 11:03:33 | <tomsmeding> | I guess we can share the bullet |
| 11:10:46 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 11:11:17 | × | mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds) |
| 11:12:37 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 11:17:44 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds) |
| 11:18:24 | → | Guest18 joins (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) |
| 11:19:24 | × | knupfer quits (~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 11:19:46 | <dminuoso> | tomsmeding: Indeed, I was in a similar mindset as you. "This makes no sense" |
| 11:21:18 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:24:51 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 11:25:51 | × | alp quits (~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0) (Ping timeout: 272 seconds) |
| 11:26:16 | → | idhugo_ joins (~idhugo@users-1190.st.net.au.dk) |
| 11:26:37 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 11:26:49 | × | idhugo quits (~idhugo@users-1190.st.net.au.dk) (Read error: Connection reset by peer) |
| 11:27:02 | × | nerdypepper quits (nerdypeppe@152.67.160.69) (Remote host closed the connection) |
| 11:27:04 | × | nkly quits (~nkly@ip5f5bd51d.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds) |
| 11:27:15 | → | nerdypepper joins (nerdypeppe@152.67.160.69) |
| 11:27:47 | → | cheater joins (~user@unaffiliated/cheater) |
| 11:27:56 | × | dragestil quits (~quassel@185.137.175.104) (Remote host closed the connection) |
| 11:29:06 | → | dragestil joins (~quassel@185.137.175.104) |
| 11:29:39 | → | nkly joins (~nkly@2a02:8109:9ac0:4a4c::9b9d) |
| 11:30:24 | × | xff0x quits (~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2) (Ping timeout: 240 seconds) |
| 11:31:08 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 11:31:09 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 11:31:27 | → | xff0x joins (~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8) |
| 11:34:29 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 11:35:07 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 11:36:47 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 11:37:46 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 11:39:16 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer) |
| 11:42:43 | × | plutoniix quits (~q@175.176.222.7) (Quit: Leaving) |
| 11:46:20 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 11:47:05 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 11:47:15 | × | acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 11:47:38 | → | acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) |
| 11:48:33 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 11:49:45 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
| 11:51:18 | × | bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 11:51:29 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Client Quit) |
| 11:56:34 | → | alp joins (~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb) |
| 11:59:07 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 12:00:01 | × | Guest65945 quits (~PeErLesS@s91904426.blix.com) () |
| 12:01:57 | → | bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) |
| 12:03:23 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 12:03:44 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds) |
| 12:03:49 | × | deftly quits (~user@209.58.189.165) (Ping timeout: 264 seconds) |
| 12:04:00 | × | bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Client Quit) |
| 12:04:42 | → | bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) |
| 12:05:42 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 12:07:46 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer) |
| 12:08:04 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 12:08:52 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 12:09:30 | → | wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 12:10:02 | × | Kolkrabe quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 12:13:45 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 12:14:43 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 12:15:12 | → | ech joins (~user@gateway/tor-sasl/ech) |
| 12:17:31 | × | Guest18 quits (567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed) |
| 12:19:12 | × | p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 265 seconds) |
| 12:19:12 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
| 12:19:21 | × | bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Quit: WeeChat 2.9) |
| 12:19:37 | → | bennofs1 joins (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) |
| 12:23:45 | × | nuncanada quits (~dude@179.235.160.168) (Ping timeout: 240 seconds) |
| 12:25:14 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 12:27:07 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:27:24 | × | acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 12:28:57 | → | boxscape joins (577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194) |
| 12:30:02 | × | Guest35321 quits (183f4752@c-24-63-71-82.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 12:31:30 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 12:31:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 12:32:25 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
| 12:33:44 | × | MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 256 seconds) |
| 12:34:25 | × | PlasmaStrike quits (~mattplasm@38.73.141.198) (Ping timeout: 264 seconds) |
| 12:36:07 | × | Foritus quits (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 12:37:22 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 12:37:50 | → | MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone) |
| 12:39:49 | → | Tops2 joins (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) |
| 12:39:52 | → | Foritus joins (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) |
| 12:40:40 | × | bliminse quits (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) (Ping timeout: 260 seconds) |
| 12:41:18 | → | bliminse joins (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) |
| 12:41:44 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:41:57 | × | Alleria_ quits (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c) (Ping timeout: 260 seconds) |
| 12:42:15 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 12:42:47 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 12:44:08 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 12:46:12 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 12:47:27 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 12:47:29 | → | solonarv joins (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr) |
| 12:48:43 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 12:50:07 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:2ef5:ab40:91d2:d4c8) (Ping timeout: 260 seconds) |
| 12:52:35 | × | mmohammadi9812 quits (~mmohammad@2.178.160.31) (Quit: Quit) |
| 12:52:48 | → | mmohammadi9812 joins (~mmohammad@2.178.160.31) |
| 12:53:07 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 12:53:39 | × | idhugo_ quits (~idhugo@users-1190.st.net.au.dk) (Quit: Leaving) |
| 12:54:52 | × | wallacer3 quits (~quassel@ns3134113.ip-37-187-4.eu) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:57:55 | → | Alleria_ joins (~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c) |
| 12:59:35 | × | koz_ quits (~koz@2404:4408:4303:8800:4270:af80:81b7:2f9) (Ping timeout: 272 seconds) |
| 12:59:58 | → | GyroW_ joins (~GyroW@d54C03E98.access.telenet.be) |
| 12:59:58 | × | GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 12:59:58 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 13:00:27 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 13:00:44 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
| 13:01:38 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:a7:5aa8:702f:4d52) |
| 13:02:38 | → | koz joins (~koz@121.99.240.58) |
| 13:07:03 | × | lemmih quits (~lemmih@2406:3003:2072:44:21d6:f064:b28b:f0d4) (Remote host closed the connection) |
| 13:07:19 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 13:07:23 | → | lemmih joins (~lemmih@2406:3003:2072:44:c5c7:520:a681:5f3f) |
| 13:08:50 | → | geekosaur85 joins (82659a09@host154-009.vpn.uakron.edu) |
| 13:09:08 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 13:10:54 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 13:11:14 | × | geekosaur85 quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 13:12:00 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 13:13:34 | × | pie_ quits (~pie_bnc]@unaffiliated/pie-/x-0787662) (Quit: pie_) |
| 13:13:34 | × | vancz quits (~vancz@unaffiliated/vancz) (Quit: vancz) |
| 13:13:54 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-plvaooheqznjbhqg) (Quit: Connection closed for inactivity) |
| 13:14:41 | → | pie_ joins (~pie_bnc]@unaffiliated/pie-/x-0787662) |
| 13:14:41 | → | vancz joins (~vancz@unaffiliated/vancz) |
| 13:17:09 | → | whatisRT joins (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) |
| 13:20:29 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 13:21:22 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 13:22:40 | → | Tario joins (~Tario@201.192.165.173) |
| 13:23:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:23:22 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 13:23:34 | → | Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net) |
| 13:24:03 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
| 13:25:15 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 13:25:15 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 13:25:15 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 13:26:04 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 13:26:16 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 13:27:52 | → | WhereIsMySpoon joins (~WhereIsMy@178.239.168.171) |
| 13:29:35 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 13:32:08 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection) |
| 13:32:23 | → | Tops21 joins (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) |
| 13:32:37 | × | Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds) |
| 13:33:05 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 13:33:24 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Read error: Connection reset by peer) |
| 13:34:04 | → | acidjnk_new joins (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) |
| 13:35:44 | × | Tops2 quits (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
| 13:36:44 | <hyperisco> | I am using dhall as a library and would like to _encode_ data and write it to a file. How can I do that? I see the ToDhall class but I am not sure where to go from there |
| 13:38:55 | → | Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net) |
| 13:39:25 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 13:39:48 | → | mirrorbird joins (~psutcliff@m83-187-163-53.cust.tele2.se) |
| 13:40:27 | hackage | keycloak-hs 2.0.0 - https://hackage.haskell.org/package/keycloak-hs-2.0.0 (CorentinDupont) |
| 13:41:23 | × | taurux quits (~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
| 13:41:51 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 13:42:34 | → | ystael joins (~ystael@209.6.50.55) |
| 13:43:10 | → | taurux joins (~taurux@net-188-216-13-237.cust.vodafonedsl.it) |
| 13:43:34 | × | ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer) |
| 13:44:46 | → | justsomeguy joins (~justsomeg@216.186.218.241) |
| 13:44:46 | × | justsomeguy quits (~justsomeg@216.186.218.241) (Changing host) |
| 13:44:46 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 13:46:02 | → | Wuzzy joins (~Wuzzy@p5790ef06.dip0.t-ipconnect.de) |
| 13:46:04 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:47:33 | → | ystael joins (~ystael@209.6.50.55) |
| 13:48:52 | <dminuoso> | Can you emit newlines with CPP macros? |
| 13:49:10 | <Uniaika> | should you? :P |
| 13:49:29 | <dminuoso> | I want to define a bunch of instances with a single macro. |
| 13:49:31 | <dminuoso> | So yes. |
| 13:49:41 | <Uniaika> | I think you can |
| 13:50:28 | × | Neo-- quits (~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 256 seconds) |
| 13:52:24 | × | xff0x quits (~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8) (Ping timeout: 240 seconds) |
| 13:53:40 | → | xff0x joins (~fox@83.236.18.113) |
| 13:57:08 | → | ddellacosta joins (~dd@86.106.121.168) |
| 13:57:43 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 258 seconds) |
| 14:00:47 | → | Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net) |
| 14:02:55 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds) |
| 14:04:23 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:06:44 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
| 14:07:38 | <siraben> | Anyone using Emacs and got hlint + LSP to work together? |
| 14:07:44 | <siraben> | I want to see hlint hints when using haskell-lsp but the manual doesn't seem to say anything about it |
| 14:09:02 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 14:10:33 | → | son0p joins (~son0p@181.136.122.143) |
| 14:11:24 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 240 seconds) |
| 14:12:14 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 14:13:24 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:15:12 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
| 14:15:23 | → | GyroW joins (~GyroW@d54c03e98.access.telenet.be) |
| 14:15:23 | × | GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
| 14:15:23 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 14:16:58 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 14:20:47 | <lyxia> | hyperisco: there is a Pretty instance, maybe that's the right way? |
| 14:22:52 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds) |
| 14:24:52 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 14:25:05 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 14:25:25 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 14:25:43 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:25:47 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 14:25:53 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 14:26:12 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 14:26:41 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 14:27:00 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 14:27:29 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 14:28:27 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 14:28:42 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 14:29:15 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 14:29:37 | → | nados joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 14:32:28 | → | idhugo joins (~idhugo@eduroam06.au.dk) |
| 14:32:38 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:33:59 | → | ph88 joins (~ph88@2a02:8109:9e40:2704:f4dc:2c7e:f773:7bca) |
| 14:36:02 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 14:36:19 | → | ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net) |
| 14:36:19 | × | ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
| 14:36:19 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 14:36:57 | × | koz quits (~koz@121.99.240.58) (Remote host closed the connection) |
| 14:37:42 | → | koz joins (~koz@121.99.240.58) |
| 14:37:46 | <tomsmeding> | dminuoso: no you can't |
| 14:37:49 | <tomsmeding> | this is also annoying in C |
| 14:38:12 | <tomsmeding> | at least -- you can't, unless the haskell CPP is a different one than the regular CPP from C/C++ |
| 14:38:36 | <dminuoso> | I think the CPP is the one from.. well.. I dont know.. |
| 14:38:48 | <dminuoso> | The documentation seemed a bit fuzzy |
| 14:39:54 | <tomsmeding> | notable is that in C, the only place in the syntax that requires a hard newline is in CPP directives; since CPP macros can't generate new macros, it's therefore unnecessary for macros to be able to generate newliens |
| 14:40:11 | <tomsmeding> | and it turns out that they actually can't |
| 14:40:23 | <merijn> | GHC CPP is pretty much unspecified |
| 14:40:53 | <merijn> | It uses a super hacky setup of non-standard backwards compat flags/modes of the C compiler with a bunch of parsing rules changed to do CPP |
| 14:40:55 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/native-cpp |
| 14:40:59 | <merijn> | It's 100% vile hacks, basically |
| 14:41:23 | <dminuoso> | So if I want something clean, it's TH? |
| 14:42:02 | <tomsmeding> | generate TH with CPP! |
| 14:42:21 | <tomsmeding> | that's got to be the ugliest combination of extensions yet |
| 14:42:43 | <dminuoso> | tomsmeding: I can think of one better |
| 14:43:12 | <dminuoso> | Add RebindableSyntax to change how the Q monad works |
| 14:44:06 | <tomsmeding> | juicy |
| 14:44:58 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 14:45:16 | → | motherfsck joins (~motherfsc@unaffiliated/motherfsck) |
| 14:45:20 | <dminuoso> | Or maybe we can do something fancy with Arrows |
| 14:45:23 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 14:45:41 | <dminuoso> | (Are there still packages in use that even use the Arrows extension?) |
| 14:45:49 | <merijn> | TH is also ill-defined, but in a less broken and vile way :p |
| 14:46:02 | <merijn> | As in, at least TH is well-specified if you don't attempt to cross-compile |
| 14:46:25 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 14:46:42 | <dminuoso> | merijn: Is that because of reflection, where you could for instance look at `sizeOf (undefined :: Int)`? |
| 14:46:48 | <dminuoso> | (inside TH) |
| 14:47:14 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 14:49:11 | <merijn> | dminuoso: Yeah |
| 14:49:23 | <merijn> | And then you get hairy questions like "which Int"? |
| 14:49:37 | <dminuoso> | what do you mean by which? |
| 14:49:39 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit) |
| 14:49:47 | × | alp quits (~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb) (Ping timeout: 272 seconds) |
| 14:49:50 | <merijn> | as in "on the target architecture" or "on the build architecture" |
| 14:49:55 | <dminuoso> | right |
| 14:50:27 | <merijn> | But if you don't cross-compile it's not ambiguous |
| 14:50:32 | <dminuoso> | Is that why TH is not allowed in the stage 1 compiler? |
| 14:50:41 | <merijn> | This is also why cross-compiling TH is probably forever doomed |
| 14:50:44 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 14:51:26 | <merijn> | Would've had to have explicit platform support build in from the get-go, but figuring out what it's "supposed" to do is hard |
| 14:52:21 | → | alp joins (~alp@88.126.45.36) |
| 14:52:53 | → | Ariakenom joins (~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se) |
| 14:52:53 | → | knupfer joins (~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de) |
| 14:53:11 | <Ariakenom> | async exceptions, yay or nay? |
| 14:53:23 | <monsterchrom> | \∩/ |
| 14:53:27 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 14:53:47 | <merijn> | Ariakenom: Depends, do you like going depressed drinking binges? |
| 14:53:53 | <merijn> | s/going/going on |
| 14:53:56 | × | knupfer quits (~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de) (Remote host closed the connection) |
| 14:54:09 | → | knupfer joins (~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de) |
| 14:54:22 | <noctux> | "how I developed a drinking habit with the help of #haskell" |
| 14:54:52 | <merijn> | Ariakenom: If yes, probably fine. If you have mercy on your liver, probably best avoid them as much as possible :) |
| 14:55:03 | <merijn> | Also reduces the amount of uncontrollable sobbing in your life |
| 14:55:13 | <Ariakenom> | :p |
| 14:55:17 | <dminuoso> | Ariakenom: Can you specify the question? |
| 14:55:39 | <Ariakenom> | dminuoso: would you prefer if they didnt exist in haskell |
| 14:55:58 | → | conal joins (~conal@64.71.133.70) |
| 14:56:01 | <dminuoso> | Hard to say, they're quite convenient for killing threads. |
| 14:56:03 | <merijn> | Ariakenom: I wish we had more control of what/where/when you could throw them |
| 14:56:13 | <merijn> | But I wish we had first class concurrency too |
| 14:56:28 | <dminuoso> | Without it, killing threads would require yield points and cooperatoin |
| 14:56:42 | <merijn> | dminuoso: It still does :p |
| 14:56:45 | <dminuoso> | heh |
| 14:56:56 | <dminuoso> | merijn: except GHC takes care of the yield points for me. |
| 14:57:02 | <dminuoso> | It does a mostly good job |
| 14:57:07 | <merijn> | Sure, but still! |
| 14:57:15 | <dminuoso> | okay fine |
| 14:57:29 | <dminuoso> | Without it, killing threads would require manual yield points and manual cooperation. |
| 14:57:29 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 14:57:41 | <dminuoso> | Which is hard to get right |
| 14:57:51 | <Ariakenom> | I once wrote some concurrent code in python where I added yield points and timeouts everywhere. that would have been much easier in haskell, I tihnk |
| 14:57:57 | <dminuoso> | I think, a notable fraction of async exception pain is because Control.Exception is messed up |
| 14:58:02 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 14:58:08 | <dminuoso> | But if you use UnliftIO.Exception for example, most of that is gone |
| 14:58:43 | <Ariakenom> | I like asyncs but I havent run into much trouble |
| 14:58:44 | × | idhugo quits (~idhugo@eduroam06.au.dk) (Ping timeout: 240 seconds) |
| 14:59:00 | <merijn> | Ariakenom: That's because there's no trouble, right up until the point everything is broken :p |
| 14:59:10 | <merijn> | And then it's impossible to debug :p |
| 14:59:34 | <dminuoso> | Ariakenom: To be exact, Control.Exception doesn't make a clear distinction between async and sync exceptions. That's sadly an antipattern |
| 14:59:43 | <Ariakenom> | agreed |
| 14:59:55 | <dminuoso> | We shouldnt hand you tools you can use to accidentally recover from an async exceptoin |
| 15:00:02 | × | WhereIsMySpoon quits (~WhereIsMy@178.239.168.171) () |
| 15:00:04 | <merijn> | Naah |
| 15:00:06 | <dminuoso> | (If you want to shoot yourself in the foot, make your own shotgun) |
| 15:00:17 | <merijn> | The problem with Control.Exception is that it messed up masking stuff |
| 15:00:25 | <dminuoso> | merijn: no it *is* a problem |
| 15:00:41 | <Ariakenom> | veryUninterruptibleIAmBusyMask |
| 15:01:07 | → | Saukk joins (~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0) |
| 15:01:12 | <dminuoso> | merijn: Oh you mean how mask doesn't actually mask? |
| 15:01:18 | <dminuoso> | or not completely, anyhow |
| 15:01:38 | <Ariakenom> | funny thing. in python, Ctrl-C aka SIGINT aka KeyboardInterrupt is basically an async exception. but because asyncs arent a thing in python it can break most anything |
| 15:01:49 | <merijn> | I meant that catch and co should use uninterruptibleMask for cleanup, but don't |
| 15:01:53 | <dminuoso> | Perhaps we should rename mask/uninterruptableMask to mask/interruptableMask |
| 15:02:06 | <dminuoso> | (oh well, they should be flipped on one side) |
| 15:02:07 | <merijn> | There's a mailing list thread by me from 2013 |
| 15:02:18 | × | Sanchayan quits (~Sanchayan@122.167.95.166) (Quit: leaving) |
| 15:02:19 | <dminuoso> | merijn: And I propose that catch shouldn't even catch async exceptions. |
| 15:02:42 | <merijn> | dminuoso: That's a user decision, tbh |
| 15:02:54 | <dminuoso> | I personally avoid all of that pain since all my apps use unliftio anyway, so I just use UnliftIO.Exception instead of Control.Exceptoin |
| 15:03:01 | <dminuoso> | which has the "fixed semantics" |
| 15:03:14 | <Ariakenom> | I at least prefer haskell embracing asyncs to python having it as a broken special case. half way isnt great |
| 15:03:39 | <dminuoso> | (it takes just a single `f catch (\(e :: SomeExceptoin) -> ...)` and your thread becomes unkillable |
| 15:03:51 | <dminuoso> | These catch-all points do exist |
| 15:04:05 | <merijn> | dminuoso: Well, then we should *instead* ban SomeException :p |
| 15:04:12 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:04:15 | <merijn> | I'm much more on-board for that |
| 15:04:43 | <dminuoso> | merijn: I dont care about the how really, in the current state of things, it's easier to tweak the combinators to selectively ignore async exceptions if they provide recovery |
| 15:04:58 | <merijn> | dminuoso: The current state of unchecked exceptions is a stupid mess too |
| 15:04:59 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 15:05:03 | <dminuoso> | such that async exceptions are just for acts of violence |
| 15:05:33 | <dminuoso> | (because if you wanted to use them for communication, just use stm instead...) |
| 15:05:34 | <merijn> | I should start a patreon to fund me working on a GHC fork full of "non fancy type" breaking extensions :p |
| 15:05:35 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 15:05:35 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 15:05:35 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 15:06:11 | <dminuoso> | merijn: If only you could *sell* all your grand ideas but one, then you'd have enough money to fund yourself working on the remaining one. |
| 15:06:15 | <Ariakenom> | merijn's ghc cleaning fund |
| 15:06:25 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 15:07:03 | <merijn> | dminuoso: My grand ideas are *good* and as you know, you can't get people to listen to good ideas even if you pay them :p |
| 15:07:36 | <dminuoso> | Of course, everyone thinks their ideas are good. |
| 15:07:51 | <dminuoso> | It makes you wonder why nobody will listen to them! |
| 15:07:51 | <merijn> | Mine actualy, that's why no one listens to them! |
| 15:08:52 | → | polyrain joins (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) |
| 15:09:20 | × | Saukk quits (~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0) (Remote host closed the connection) |
| 15:09:48 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 260 seconds) |
| 15:11:17 | → | vacm joins (~vacwm@70.23.92.191) |
| 15:12:13 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 15:12:33 | × | vacm quits (~vacwm@70.23.92.191) (Client Quit) |
| 15:13:57 | <__monty__> | Interesting use of moduse tollens. |
| 15:15:27 | hackage | happstack-clientsession 7.3.2 - client-side session data https://hackage.haskell.org/package/happstack-clientsession-7.3.2 (JeremyShaw) |
| 15:17:42 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 15:18:01 | nitrix | is now known as nitrix-or-treat |
| 15:18:36 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 15:20:44 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 240 seconds) |
| 15:21:57 | hackage | ukrainian-phonetics-basic 0.1.7.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.7.0 (OleksandrZhabenko) |
| 15:22:31 | × | toorevitimirp quits (~tooreviti@117.182.180.36) (Remote host closed the connection) |
| 15:22:38 | → | son0p joins (~son0p@181.136.122.143) |
| 15:22:58 | hackage | keycloak-hs 2.0.1 - https://hackage.haskell.org/package/keycloak-hs-2.0.1 (CorentinDupont) |
| 15:24:24 | × | acidjnk_new quits (~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:24:59 | → | Ariakenom_ joins (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) |
| 15:27:34 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 15:27:44 | → | ggole joins (~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42) |
| 15:28:14 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:28:34 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 15:29:10 | × | Ariakenom quits (~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
| 15:32:13 | → | helpmeguys joins (676c5f93@103.108.95.147) |
| 15:32:52 | <helpmeguys> | Is it possible to write a Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements. Note: the complement of a set contains all the elements in [1..n] that are not members of the given set. Show the outputs for n=6. |
| 15:34:17 | <dminuoso> | helpmeguys: When you say complement, do you mean that as relative complement with respect to [1..n]? |
| 15:34:37 | <helpmeguys> | Yes, under that assumption. |
| 15:34:55 | <dminuoso> | helpmeguys: The answer is yes. |
| 15:35:28 | <helpmeguys> | Can I get an example of such a program? |
| 15:36:08 | <dminuoso> | You mean a solution to your homework assignment? |
| 15:36:16 | <Uniaika> | (shots fired) |
| 15:36:17 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 15:36:18 | <helpmeguys> | No |
| 15:36:22 | <dminuoso> | :> |
| 15:36:26 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 15:36:29 | <dminuoso> | No but seriously, this does sound like a homework assignment. |
| 15:36:30 | <helpmeguys> | I am just looking up old questions |
| 15:36:44 | <dminuoso> | What have you tried? |
| 15:38:43 | <helpmeguys> | Binary trees |
| 15:38:47 | <helpmeguys> | And all |
| 15:39:01 | <helpmeguys> | Cyclic groups |
| 15:39:41 | <dminuoso> | Maybe I understand the task wrong, but this seems like a very simple one liner.. |
| 15:40:07 | <helpmeguys> | Please |
| 15:40:09 | <helpmeguys> | Help me |
| 15:40:22 | <helpmeguys> | I just want to see the code. |
| 15:40:29 | <helpmeguys> | It will relax my mind |
| 15:40:42 | <dminuoso> | Dunno, I still think this is a homework assignment. |
| 15:40:51 | <ghoulguy> | helpmeguys, give it a shot and then paste what you try on a pastebin to share/get help |
| 15:41:00 | <ghoulguy> | It will help relax your mind |
| 15:41:13 | <dminuoso> | I mean if this is an old question, you surely have an answer already, or have enough competency to solve this yourself. |
| 15:41:23 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 15:41:37 | <dminuoso> | And Im also not sure how binary trees or cyclic groups are even remotely useful here |
| 15:42:03 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:42:05 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 240 seconds) |
| 15:42:30 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 15:42:32 | <dminuoso> | It should also be said, that lists dont form proper sets as they have internal ordering. |
| 15:42:43 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 15:42:52 | <dminuoso> | So that begs another question whether [1,2] = [2,1] for the purpose of this excercise |
| 15:43:11 | <dminuoso> | (or what a subset even means) |
| 15:43:20 | <ghoulguy> | I'm imagining: *Help> homework 4 |
| 15:43:20 | <ghoulguy> | [[0,1],[0,2],[0,3],[1,2],[1,3],[2,3]] |
| 15:43:50 | <dminuoso> | ghoulguy: For the purpose of golfing, did you do the naive thing? |
| 15:44:25 | <ghoulguy> | I didn't use anything from Data.List, if that's what you're asking. |
| 15:44:47 | <helpmeguys> | *Help> homework 4 |
| 15:44:55 | <helpmeguys> | Is that hint? |
| 15:45:50 | → | christo joins (~chris@81.96.113.213) |
| 15:46:58 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 258 seconds) |
| 15:47:25 | × | boxscape quits (577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194) (Quit: Connection closed) |
| 15:49:20 | → | Tario joins (~Tario@201.192.165.173) |
| 15:49:30 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 15:50:07 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:50:07 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 15:50:26 | <ghoulguy> | dminuoso, That implementation tries to maximize sharing and minimize retraversing any lists |
| 15:51:06 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-dqhgzgfgsjzhioqy) |
| 15:52:08 | → | idhugo joins (~idhugo@563472ae.rev.stofanet.dk) |
| 15:53:52 | → | wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 15:54:39 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 15:55:21 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 15:55:41 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds) |
| 15:55:49 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 15:55:49 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 15:55:49 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 15:56:39 | → | ddellacosta joins (~dd@86.106.121.168) |
| 15:58:03 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 15:59:26 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:00:45 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 16:02:31 | × | bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
| 16:03:15 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 16:03:39 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 16:03:57 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds) |
| 16:03:58 | → | Tario joins (~Tario@201.192.165.173) |
| 16:04:44 | × | bennofs1 quits (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 16:06:30 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 16:07:44 | × | MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 240 seconds) |
| 16:07:57 | → | vacm joins (~vacwm@70.23.92.191) |
| 16:08:38 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 16:09:24 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds) |
| 16:09:51 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 16:09:51 | × | vacm quits (~vacwm@70.23.92.191) (Client Quit) |
| 16:12:21 | → | MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone) |
| 16:12:27 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 16:13:22 | <typetetris> | Can I disable a redundant constraint warning for a single function within a file? |
| 16:13:38 | <geekosaur> | not currently |
| 16:13:39 | <ghoulguy> | typetetris: I'd be surprised |
| 16:14:06 | × | ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
| 16:14:14 | <helpmeguys> | Please |
| 16:14:17 | <helpmeguys> | Help me |
| 16:14:25 | <helpmeguys> | I will study better next time |
| 16:14:29 | <helpmeguys> | Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements? |
| 16:14:31 | <helpmeguys> | I promise |
| 16:14:35 | <helpmeguys> | I will work hard |
| 16:14:37 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds) |
| 16:14:41 | <dminuoso> | typetetris: A long while ago, the ability to disable diagnostics per region was asked for orphans and overlapping names. The discussion quickly devolved into "lets build this right and put in an entire architecture for this for all diagnostics" |
| 16:14:47 | <dminuoso> | And then it stopped. |
| 16:14:50 | <dminuoso> | That was about 10 years ago I think? |
| 16:15:08 | <ghoulguy> | helpmeguys: study for what? |
| 16:15:17 | <helpmeguys> | For my diploma |
| 16:15:20 | <merijn> | dminuoso: I've had this discussion as recent as 2 years ago when I proposed an "ADOPT" macro for orphan instances |
| 16:15:43 | <merijn> | (yes, I think I'm verry funny) |
| 16:15:43 | <dminuoso> | merijn: Indeed. I think we're at a stage where it's fine to just hack ADOPT in, and deprecate it if or when we get that architecture |
| 16:15:46 | <typetetris> | Sometimes ghc complains HasCallStack would be redundant ... but I don't see how it comes into the signature otherwise. |
| 16:16:10 | <helpmeguys> | Please |
| 16:16:15 | <helpmeguys> | Can someone tell me :) |
| 16:16:20 | <helpmeguys> | Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements? |
| 16:16:22 | <dminuoso> | Because the benefit of ADOPT greatly outweighs the heavy and unbearable engineering complexity (that nobody wants to do) that nobody needs anyway. |
| 16:16:40 | <dminuoso> | Out of all the things, I think ADOPT is pretty much the only one where I really want the diagnostics but the ability to selectively disable them |
| 16:16:44 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 16:16:52 | <dminuoso> | I've went as far as always using Orphan modules precisely because of this |
| 16:16:55 | <typetetris> | What is ADOPT? |
| 16:17:06 | <dminuoso> | typetetris: A proposed addition to suppress orphan instance warnings |
| 16:17:14 | <typetetris> | Thanks. |
| 16:17:21 | <dminuoso> | say `instance {-# ADOPT #-} C T` |
| 16:18:25 | <dminuoso> | merijn: Maybe we should restart the discussion and lobby for "lets fix this now, and deprecate it if this imaginary and impossible infrastructure ever arrives" |
| 16:18:29 | <dminuoso> | Im up for it |
| 16:18:42 | <dminuoso> | (the technical implementation should be very simple) |
| 16:18:46 | <davean> | We kinda got it for overlapping? |
| 16:18:49 | <merijn> | dminuoso: Good luck :) |
| 16:19:09 | <merijn> | typetetris: A made up pragma for silencing orphan instance warnings |
| 16:19:21 | <dminuoso> | davean: No, in case of overlapping it doesn't just suppress a warning, it affects instance resolution |
| 16:19:31 | <dminuoso> | ADOPT is really just about suppressing a warning |
| 16:19:39 | <merijn> | typetetris: Because the only current alternative is to disable *all* orphan instances, rather than specific ones |
| 16:20:18 | <typetetris> | merijn: Yes, a more specific pragma would be better. |
| 16:21:57 | <dminuoso> | typetetris: The rough argument against it was "yet another syntax change, causing more friction on libraries like haskell-src - and while we're at it, we should have an infrastructure in place where we could selectively disable any diagnostic on arbitrary code regions" |
| 16:22:06 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9) |
| 16:22:09 | <dminuoso> | You know, just the thing that requires tremendous engineering and effort |
| 16:22:23 | <dminuoso> | Except, we don't really need it for anything but orphan warnings realistically. |
| 16:22:26 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 16:22:58 | <typetetris> | dminuoso: .... yeah, sounds like YAGNI |
| 16:23:23 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 16:23:43 | <dminuoso> | typetetris: To be fair, GHC has frequently suffered from ad-hoc additions to its syntax like that. |
| 16:24:27 | <dminuoso> | So rather than "changing the syntax with extra bits every time you come up with the new idea", it's not completely unwise to think about "if we do this, we should find a general solution once and for all" |
| 16:24:32 | <typetetris> | Is there a timeline for the primops to speed up effect libraries in sight? |
| 16:24:41 | <typetetris> | Forgot how they have been called. |
| 16:26:16 | → | vacm joins (~vacwm@70.23.92.191) |
| 16:26:36 | koz | is now known as koz_ |
| 16:26:51 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 16:27:15 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 16:27:28 | <lyxia> | typetetris: you can look up the proposal and its discussion on Github https://github.com/ghc-proposals/ghc-proposals/pull/313 |
| 16:28:07 | <helpmeguys> | Okay |
| 16:28:11 | <helpmeguys> | My test is up |
| 16:28:16 | <helpmeguys> | At-least tell me now |
| 16:28:17 | <helpmeguys> | :) |
| 16:28:25 | <ghoulguy> | helpmeguys: What test? |
| 16:28:40 | <helpmeguys> | FBI Cybersec Command |
| 16:28:53 | ChanServ | sets mode +q *!*@103.108.95.147 |
| 16:29:28 | × | helpmeguys quits (676c5f93@103.108.95.147) (Remote host closed the connection) |
| 16:29:37 | <dminuoso> | Thank you whoever did that. |
| 16:29:58 | × | alp quits (~alp@88.126.45.36) (Ping timeout: 272 seconds) |
| 16:31:31 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 16:31:55 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 16:34:53 | × | polyrain quits (~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:36:13 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 16:38:12 | × | koz_ quits (~koz@121.99.240.58) (Ping timeout: 260 seconds) |
| 16:38:16 | × | Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 246 seconds) |
| 16:39:03 | → | alp joins (~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1) |
| 16:40:15 | <noctux> | hmm, ghoulguy, is there actually a "nice" oneliner solution? |
| 16:40:22 | → | Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus) |
| 16:40:29 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-npushggnkcvoclse) |
| 16:40:40 | <noctux> | my most (codeminimal) one was with permutations and nub |
| 16:40:45 | → | koz joins (~koz@121.99.240.58) |
| 16:41:09 | <ghoulguy> | noctux: If the goal is 'short' then using: filter and subsequences |
| 16:41:20 | koz | is now known as koz_ |
| 16:41:32 | <noctux> | ah, damn it... |
| 16:41:59 | <noctux> | subsequences actually includes "ac" from "abc"... |
| 16:42:08 | <noctux> | someone should learn to read docs :P |
| 16:42:11 | <noctux> | ghoulguy: thanks! |
| 16:42:23 | <ghoulguy> | I wouldn't use that in general, though |
| 16:43:24 | <noctux> | sure, was just out of codegolf-interest |
| 16:43:57 | hackage | esqueleto 3.3.4.1 - Type-safe EDSL for SQL queries on persistent backends. https://hackage.haskell.org/package/esqueleto-3.3.4.1 (parsonsmatt) |
| 16:44:36 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 16:44:53 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 16:45:20 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
| 16:45:38 | → | dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 16:46:31 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-roarfkilnkqrlcqj) |
| 16:48:24 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:49:32 | × | alp quits (~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1) (Ping timeout: 260 seconds) |
| 16:50:11 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 16:52:32 | → | shafox joins (~Srain@106.51.234.111) |
| 16:54:57 | → | Ariakenom joins (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) |
| 16:58:19 | → | justsomeguy joins (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) |
| 16:58:19 | × | justsomeguy quits (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host) |
| 16:58:19 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 16:58:35 | × | knupfer quits (~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de) (Quit: knupfer) |
| 16:58:46 | → | knupfer joins (~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de) |
| 16:59:02 | × | knupfer quits (~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de) (Client Quit) |
| 16:59:12 | → | knupfer joins (~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de) |
| 16:59:31 | × | knupfer quits (~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de) (Client Quit) |
| 16:59:48 | → | knupfer joins (~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de) |
| 17:02:50 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:03:25 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds) |
| 17:03:41 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 17:04:24 | <devalot> | Haskell Cafe is still using mailman 2 and it appears there are issues with SPF and DMARC. As an example, I posted a message a few weeks ago. One person responded directly to me and the list. Neither message is in the archive. Is it just me or do others have problems with the mailing list? |
| 17:07:31 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 17:11:17 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:12:44 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 17:12:46 | → | aidecoe joins (~aidecoe@unaffiliated/aidecoe) |
| 17:16:04 | → | uhrenmacher joins (~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de) |
| 17:17:57 | hackage | keycloak-hs 2.0.2 - https://hackage.haskell.org/package/keycloak-hs-2.0.2 (CorentinDupont) |
| 17:18:34 | <geekosaur> | devalot, try in #haskell-infrastructure |
| 17:19:46 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 17:20:14 | → | britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) |
| 17:20:54 | × | Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving) |
| 17:24:02 | → | kayvan joins (~user@52-119-115-243.PUBLIC.monkeybrains.net) |
| 17:24:39 | × | uhrenmacher quits (~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de) (Quit: ) |
| 17:24:57 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
| 17:26:28 | hackage | cut-the-crap 2.2.0 - Cuts out uninteresting parts of videos by detecting silences. https://hackage.haskell.org/package/cut-the-crap-2.2.0 (Jappie) |
| 17:32:04 | <justsomeguy> | Hi there -- I'm on HPFP, chapter 8, learning about the basics of recursion. I'm writing a recursive function to multiply two numbers by repeatedly adding, and having trouble figuring out what I'm doing wrong. It works for positive inputs, but reverses the sign for negative inputs. Would someone mind taking a look at my code and giving me a hint? https://github.com/kingparra/multiply/blob/master/src/Lib.hs |
| 17:32:49 | <lyxia> | devalot: I've noticed that happening also a few weeks ago. |
| 17:33:48 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:34:06 | × | ggole quits (~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42) (Quit: Leaving) |
| 17:35:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 17:36:06 | <justsomeguy> | Ah, ok, seems I hadn't considered the case where y is negative. |
| 17:36:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:38:09 | × | thunderrd quits (~thunderrd@183.182.111.47) (Ping timeout: 272 seconds) |
| 17:39:53 | → | rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) |
| 17:43:21 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 17:47:58 | → | pjb joins (~t@2a01cb04063ec5000c3dc2e28b3d9ccb.ipv6.abo.wanadoo.fr) |
| 17:48:10 | → | Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 17:48:14 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
| 17:50:46 | → | thunderrd joins (~thunderrd@183.182.115.112) |
| 17:51:10 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds) |
| 17:51:57 | × | Chi1thangoo quits (~Chi1thang@87.112.60.168) (Read error: Connection reset by peer) |
| 17:54:10 | × | kayvan quits (~user@52-119-115-243.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 17:54:18 | → | akad joins (~akad@109107030050.radomsko.vectranet.pl) |
| 17:54:54 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 17:55:33 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Max SendQ exceeded) |
| 17:55:38 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 17:56:03 | → | hololeap joins (~hololeap@unaffiliated/hololeap) |
| 17:56:31 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 17:56:44 | × | rx_ quits (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Ping timeout: 240 seconds) |
| 17:56:51 | <typetetris> | https://github.com/ghc-proposals/ghc-proposals/pull/313 was touched last time in September ... hopefully it doesn't fizzle out. |
| 17:58:31 | × | asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
| 17:59:01 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 17:59:24 | → | rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) |
| 17:59:46 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 18:00:00 | → | ixlun joins (~matthew@213.205.241.94) |
| 18:00:11 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 18:00:31 | × | britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep) |
| 18:01:12 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 18:01:45 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 18:02:04 | <ixlun> | Hi all, I was wondering if someone may |
| 18:02:16 | <ixlun> | be able to help me with some performance issues |
| 18:02:42 | <ixlun> | After 1 min of execution I'm getting: total alloc = 60,821,691,232 bytes |
| 18:03:07 | <ixlun> | so I'm presuming I've got a space leak somehwere |
| 18:03:25 | × | Ariakenom_ quits (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving) |
| 18:04:42 | <ixlun> | apparently, (!) in https://termbin.com/7iia is responsible for a large part of that |
| 18:04:42 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 18:05:02 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 18:05:27 | × | kuribas quits (~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 18:05:31 | <monsterchrom> | IIRC "total alloc" means nothing when taken out of context. |
| 18:06:12 | <monsterchrom> | The correct first step is to look at "resident memory" only. |
| 18:07:09 | <monsterchrom> | And the best way is to use the unix/linux programs "top" or "htop" to look at RSS only. Not even "virtual whatever", that's a lie. |
| 18:07:23 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 18:10:43 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 18:10:50 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 18:12:23 | × | Kaivo quits (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Ping timeout: 260 seconds) |
| 18:13:08 | <ixlun> | Hmm, I don't think it looks that terrible, |
| 18:13:24 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 18:13:27 | <ixlun> | but doesn't the above imply lots and lots of GC is occuring? |
| 18:13:53 | → | bennofs1 joins (~benno@dslb-178-000-065-150.178.000.pools.vodafone-ip.de) |
| 18:13:53 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 18:14:01 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 18:14:39 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 18:14:41 | <dolio> | Space leaks aren't the same as doing lots of GC. |
| 18:14:42 | <monsterchrom> | Yes, that does. |
| 18:14:51 | <monsterchrom> | And what dolio said. |
| 18:15:39 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 18:16:03 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 18:17:44 | → | jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-fexhchkhagwtqfyl) |
| 18:17:44 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 18:18:22 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 18:19:00 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 18:19:11 | <rx_> | what column is rss? |
| 18:19:32 | <monsterchrom> | Sorry, RES |
| 18:20:25 | × | taurux quits (~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 18:21:46 | → | ranman1 joins (~ranman@217.146.82.202) |
| 18:22:12 | → | taurux joins (~taurux@net-188-216-115-134.cust.vodafonedsl.it) |
| 18:24:26 | <ixlun> | Hmm, I think I need to do some reasrch on optimising Haskell |
| 18:24:27 | hackage | polysemy-methodology 0.1.0.0 - Domain modelling algebra for polysemy https://hackage.haskell.org/package/polysemy-methodology-0.1.0.0 (locallycompact) |
| 18:26:46 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 18:30:03 | → | ishutin_ joins (~Ishutin@92-249-182-32.pool.digikabel.hu) |
| 18:32:49 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:33:13 | × | ishutin quits (~Ishutin@80-95-82-226.pool.digikabel.hu) (Ping timeout: 256 seconds) |
| 18:34:24 | × | idhugo quits (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 240 seconds) |
| 18:34:58 | hackage | hex-text 0.1.0.2 - ByteString-Text hexidecimal conversions https://hackage.haskell.org/package/hex-text-0.1.0.2 (chris_martin) |
| 18:35:31 | × | dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 246 seconds) |
| 18:37:01 | × | kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 18:37:10 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
| 18:38:25 | → | kish joins (~oracle@unaffiliated/oracle) |
| 18:41:38 | → | dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net) |
| 18:41:58 | → | wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 18:43:10 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 18:44:02 | → | damianfral4 joins (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
| 18:45:30 | × | Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds) |
| 18:45:46 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:46:25 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 18:46:25 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Remote host closed the connection) |
| 18:46:40 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds) |
| 18:47:57 | ← | rx_ parts (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) () |
| 18:48:12 | × | nyaomi quits (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Quit: meow) |
| 18:51:03 | → | rx_ joins (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) |
| 18:51:45 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
| 18:51:47 | <rx_> | hm, so `let double x = 2 * x; let quadruple x = quadruple (double x)` almost crashed my computer |
| 18:52:01 | <rx_> | why's that? |
| 18:52:10 | <rx_> | using ghci |
| 18:52:34 | <geekosaur> | because quadruple calls itself immediately |
| 18:52:35 | × | dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 18:52:58 | <rx_> | but it's not defined |
| 18:53:09 | <geekosaur> | it's defined recursively at that point |
| 18:53:17 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 18:53:20 | <rx_> | ok |
| 18:53:36 | <rx_> | can I limit the "heap" space |
| 18:53:41 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer) |
| 18:53:43 | <geekosaur> | let defines things recursively. this is a feature when used appropriately since infinite values are useful when they're productive |
| 18:53:59 | → | Kolkrabe joins (~user@unaffiliated/siracusa) |
| 18:54:09 | <geekosaur> | > let ones = 1 : ones in take 10 ones |
| 18:54:12 | <lambdabot> | [1,1,1,1,1,1,1,1,1,1] |
| 18:54:45 | → | GyroW_ joins (~GyroW@d54C03E98.access.telenet.be) |
| 18:54:45 | × | GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 18:54:45 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 18:54:49 | → | fabianhjr joins (~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3) |
| 18:54:49 | × | fabianhjr quits (~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3) (Client Quit) |
| 18:55:07 | <geekosaur> | there are ways to limit heap but it'll still crash ghci |
| 18:55:09 | <rx_> | that's haskell after the : ? |
| 18:55:29 | <geekosaur> | yes |
| 18:55:44 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 18:56:04 | <geekosaur> | (x:xs) is the fundamental way of building a list |
| 18:56:13 | <rx_> | oh yeah |
| 18:56:23 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 18:56:29 | <rx_> | I thought it was a separator for a moment |
| 18:56:31 | <rx_> | thanks |
| 18:59:57 | hackage | vimeta 0.3.0.1 - Frontend for video metadata tagging tools https://hackage.haskell.org/package/vimeta-0.3.0.1 (PeterJones) |
| 19:00:14 | × | knupfer quits (~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de) (Remote host closed the connection) |
| 19:00:23 | → | knupfer joins (~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de) |
| 19:00:24 | × | mirrorbird quits (~psutcliff@m83-187-163-53.cust.tele2.se) (Ping timeout: 240 seconds) |
| 19:00:49 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 19:01:05 | → | nineonine joins (~textual@216.81.48.202) |
| 19:01:12 | → | alp joins (~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6) |
| 19:03:27 | <dminuoso> | rx_: As a useful note, (:) is actually just a data constructor that happens to look like an operator. :) |
| 19:03:29 | → | conal joins (~conal@64.71.133.70) |
| 19:03:30 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:04:04 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds) |
| 19:04:21 | <dminuoso> | One could assume list was defined as `data [a] = a : [a] | []` - or alternatively as `data List a = Cons a [a] | Nil`. In this second version `Cons` takes the role of (:) :) |
| 19:04:29 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 19:05:11 | <rx_> | what does caps mean in hs ? |
| 19:05:22 | <rx_> | library function? |
| 19:05:33 | <geekosaur> | initial capital is a constructor, vs. a variable/binding |
| 19:05:46 | <rx_> | oh ok |
| 19:06:22 | <geekosaur> | this is important in pattersn so it knows which parts are structural to be matched against, vs. which parts are data that can be bound to |
| 19:06:40 | → | bartemius joins (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
| 19:06:55 | <dminuoso> | Oh, I messed up the second declaration. That should have read `data List a = Cons a (List a) | Nil` of course. |
| 19:06:59 | → | fmeyer joins (~fmeyer@p4fc127b6.dip0.t-ipconnect.de) |
| 19:07:06 | <dminuoso> | % data List a = Cons a (List a) | Nil |
| 19:07:06 | <yahb> | dminuoso: |
| 19:07:25 | × | tdhttt quits (~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 240 seconds) |
| 19:07:49 | <geekosaur> | when using infix constructors, initial colon (:) is "capital" (borrowed from list syntax) |
| 19:07:56 | × | ulidtko|k quits (~ulidtko@193.111.48.79) (Remote host closed the connection) |
| 19:08:02 | <rx_> | hmm, there is no way out of the quadruple function is there |
| 19:08:14 | → | ulidtko|k joins (~ulidtko@193.111.48.79) |
| 19:08:25 | <geekosaur> | not as written. but did you want double (double x) ? |
| 19:08:38 | <rx_> | I'm tracing through it but I realize it needs a way out |
| 19:08:48 | <rx_> | ah no, just going through the haskell wikibook |
| 19:09:16 | <rx_> | clever question by the author I guess :] |
| 19:09:16 | <hyperisco> | okay I hate exceptions in Haskell now |
| 19:09:17 | <geekosaur> | either that, or a way to produce a partial result before it recurses (like the `ones` example) |
| 19:09:33 | <hyperisco> | so about them checked exceptions |
| 19:09:35 | <geekosaur> | hyperisco, what took you so long? |
| 19:09:49 | <hyperisco> | I have never written a program that does IO in Haskell until now lol |
| 19:09:49 | × | damianfral4 quits (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 264 seconds) |
| 19:09:58 | → | tdhttt joins (~tdhttt@2600:8802:2203:2500:49a:4401:3967:ca62) |
| 19:09:59 | <hyperisco> | you know how Haskell is also a research language? |
| 19:10:11 | <hyperisco> | so anyways, every exception is a SomeException right? |
| 19:10:17 | <geekosaur> | yes |
| 19:10:22 | <hyperisco> | okay then it is fixed |
| 19:10:51 | <hyperisco> | I am just in two minds that you either have unityped errors or you have checked errors, and checked errors are not really so useful |
| 19:11:02 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 19:11:29 | <hyperisco> | a half-way of unchecked I dunno what type you're throwing is unpleasant |
| 19:11:39 | <dsal> | I'm a pretty non-fan of checked exceptions. I've gone from "I hate exceptions in Haskell" to "Eh" |
| 19:12:03 | <dminuoso> | dsal: Are you opposed to the general idea of it, or to specific implementations of it? |
| 19:12:11 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 19:12:11 | <dminuoso> | Because why would you willingly discard information? |
| 19:12:21 | <dsal> | I've only experienced in Java, and most of what I've done there is get rid of things. |
| 19:13:08 | <dsal> | It just seems to sprawl without bounds and get wrapped in other thing that make it somewhat lossy. I don't think it *can't* be done, but the Java experiment was very bad. |
| 19:13:10 | <hyperisco> | dminuoso, you'd willingly discard information when there is no decisions to be made on the basis of that information |
| 19:13:25 | <hyperisco> | because, otherwise, it is extra effort to keep around |
| 19:13:27 | <geekosaur> | ^ |
| 19:13:47 | <dminuoso> | hyperisco: Why do decisions need to be made? Isn't it enough to have some kind of proof your program is right? |
| 19:13:50 | <dsal> | Yeah, like, I'd be fine with a handler somewhere that could infer what exceptions were in scope. |
| 19:13:58 | <hyperisco> | and it just seems to be that, for many uses, a string message and maybe a stack trace and maybe a source line suffices |
| 19:14:02 | <dminuoso> | In a similar sense to how type systems dont make active decisions for you, they just filter out bad programs. |
| 19:14:25 | <dsal> | i.e., when you go to write an exception handler, it would be aware of the things that might be thrown. If you're not writing an exception handler, you shouldn't have to say anything. |
| 19:14:30 | <dminuoso> | "Oops forgot to catch an exception here" can lead to brittle software in production. |
| 19:14:53 | <dsal> | I've seen far more bugs from "I was forced to deal with an exception here" than forgetting to catch them. |
| 19:15:03 | <dsal> | Crashes > bad behavior. |
| 19:15:13 | <hyperisco> | dminuoso, what is the point of having more than one exception type? |
| 19:15:16 | <dminuoso> | Not sure whether the > denotes badness or goodness. |
| 19:15:26 | <rx_> | dminuoso, it seems hard to solve just forgetting to do something |
| 19:15:35 | <dsal> | Heh. I'd rather have software crash than behave incorrectly. |
| 19:15:58 | <dminuoso> | dsal: Depends on what the cost of crash recovery is. |
| 19:16:03 | <dsal> | But I'd be open to "what kinds of crashes might occur here" |
| 19:16:29 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:16:40 | <dminuoso> | hyperisco: The same point of having more than one data type? |
| 19:16:42 | <dsal> | The cost of crash recovery is probably less than the cost of "the software just did the wrong thing that was kind of undefined" |
| 19:16:52 | <dminuoso> | The ability to pattern match on it, and make decisions. |
| 19:17:05 | <dsal> | I used to write a lot of erlang, though, where crashing is great. |
| 19:17:05 | <hyperisco> | dminuoso, I think that is a good hypothesis but my experience is that it does not bear out |
| 19:17:11 | <dminuoso> | dsal: Id argue that depends greatly on the problem domain of your software. |
| 19:17:45 | <dminuoso> | hyperisco: So perhaps the right ergonomics haven't been discovered or implemented yet. Im merely suggesting that in principle checked exceptions seems like a desirable thing. |
| 19:17:57 | <dsal> | Maybe, but I'd think undefined behavior is generally worse than crashed program. |
| 19:18:10 | <hyperisco> | dminuoso, I found some utility with file system operations, because you can glean the state of the file system (or at least what the state was) by which exception was thrown |
| 19:18:16 | <dminuoso> | Because I'd rather have my compiler tell me "you have an uncaught exception here" than to discover this at runtime. |
| 19:18:22 | <dminuoso> | I mean folks, that's precisely why we love our typesystem. |
| 19:18:27 | <dsal> | dminuoso: I'm not sure I disagree with you in general. It wouldn't be the only thing Java got very wrong. |
| 19:18:54 | → | akad_ joins (~akad@109107030050.radomsko.vectranet.pl) |
| 19:19:16 | × | akad quits (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 246 seconds) |
| 19:19:20 | <hyperisco> | dminuoso, if the ergonomics were sufficient that you could largely ignore it when it is not needed then the cost of having it around would be near zero and I wouldn't complain :) |
| 19:19:32 | × | Tops21 quits (~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Quit: Leaving.) |
| 19:19:35 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:19:40 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 260 seconds) |
| 19:19:54 | <dsal> | I think most places there's a try block in java, nobody should be dealing with exceptions at all. A catch block does one of three things: 1. Rewraps an exception to satisfy the type system, 2. possibly does something sensible, 3. introduces a bug. |
| 19:19:59 | <dsal> | These are the things I'd want to avoid. |
| 19:20:39 | → | mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
| 19:21:02 | <dsal> | #2 there is OK. Most places there's a try block, we probably just want finally. That's easy to do in Haskell already. So the checked exceptions system needs to let me ignore exceptions where I need them. Then I'm happy with the compiler letting me know I introduced a new exception that I've not considered. |
| 19:21:06 | <hyperisco> | dminuoso, I think type inference demonstrates a strong antagonism to types |
| 19:21:08 | <dsal> | Hopefully I can also still do partial exception handler. |
| 19:21:19 | <dminuoso> | dsal: Interestingly, in Haskell we have related issues with recovery mechanisms in Control.Exception - a plain `catch f (\(e :: SomeException) -> ...)` will catch and recover from async exceptions. |
| 19:21:21 | <dsal> | Wait, what? |
| 19:21:53 | <hyperisco> | dminuoso, I think it says we want automatic analysis without the expense of explaining ourselves |
| 19:22:08 | × | rx_ quits (63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Quit: Connection closed) |
| 19:22:14 | <dminuoso> | hyperisco: I'd say type inference is a compromise. |
| 19:22:17 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 19:22:34 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 19:22:34 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 19:22:34 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 19:22:44 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 19:22:51 | <dsal> | dminuoso: Yeah, I think it can be better. I'm going to go ahead and say your initial assessment of my opinion is probably right. Something hurt me, but that doesn't mean all things will. |
| 19:23:05 | <hyperisco> | and I'd admit that probably the worst annoyance of Java that C# fixed was type inference for variable declarations |
| 19:23:08 | <dminuoso> | So a system of checked exceptions should, ideally, have a similar model of type inference, where the type checker would automatically deduce what exceptions can be thrown, which exceptions are removed, and so forth. |
| 19:23:23 | → | acidjnk_new joins (~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de) |
| 19:23:35 | <dsal> | Type inference just prevents you from having to talk about types all over the place. You *need* to talk about your types in some place. |
| 19:23:41 | <dminuoso> | In a way where you can suddenly hop in and declare some fact, and then let the checker verify whether this leads to conflicts with all the inferred things |
| 19:24:00 | <dminuoso> | dsal: Right! The more you elaborate, the better type errors get. |
| 19:24:14 | × | sphalerite quits (~sphalerit@NixOS/user/lheckemann) (Quit: nixos 20.09, here I come!) |
| 19:24:36 | <dminuoso> | I mean we see this in multiple levels. It frequently happens that I encounter GHC errors in all the wrong places, because of the way type inference works. |
| 19:24:51 | <hyperisco> | even on TLDs is a burden |
| 19:25:02 | <hyperisco> | literally dozens of exception types build up |
| 19:25:29 | <hyperisco> | are you going to keep typing those all out? unlikely |
| 19:26:19 | × | dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing) |
| 19:26:50 | → | conal joins (~conal@64.71.133.70) |
| 19:27:51 | → | dexterlb joins (~dexterlb@2a01:9e40:2:2::2) |
| 19:28:12 | <hyperisco> | probably there is a type synonym at the top of the file for the union of all exceptions thrown by definitions in that file, because then it is much shorter and less noisy |
| 19:28:34 | × | nineonine quits (~textual@216.81.48.202) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:29:11 | <hyperisco> | but then you're weakening all your definitions, and largely forgoing any purpose the feature had in the first place |
| 19:30:30 | <hyperisco> | I feel like some of you are in the "wouldn't it be great if" stage of the discussion, and I am in the "it wasn't so great" part of the discussion |
| 19:31:09 | <hyperisco> | but I haven't applied checked exceptions to every domain of programming… like I said, some use in file system APIs. Could be others. |
| 19:31:28 | <dolio> | Which one wasn't great? |
| 19:31:44 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
| 19:32:05 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:32:05 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 19:32:37 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 19:33:36 | <hyperisco> | checked exceptions as a type list / row type |
| 19:33:56 | × | mmohammadi9812 quits (~mmohammad@2.178.160.31) (Read error: Connection reset by peer) |
| 19:34:02 | <dolio> | In what context? Haskell? |
| 19:34:06 | → | mmohammadi9812 joins (~mmohammad@2.178.160.31) |
| 19:34:17 | <hyperisco> | I was using PureScript but I don't see why the conclusions wouldn't port |
| 19:35:14 | × | jakob_ quits (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
| 19:35:14 | <hyperisco> | related, that is a language that had a concept of effect rows and removed them, was a hugely breaking change |
| 19:35:51 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:36:45 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 19:36:54 | → | user01_ joins (~user01@179.181.12.232) |
| 19:37:08 | ← | user01_ parts (~user01@179.181.12.232) ("Leaving") |
| 19:37:52 | <dolio> | Well, any judgment based on an expectation of GHC type programming doesn't sound relevant, for instance, because I would imagine the point would be to design an exception system with usability in mind, and complicated GHC type hackery is usually the antithesis of that. |
| 19:38:02 | <davean> | I've used it in a few Haskell projects. |
| 19:38:06 | <davean> | It wasn't terrible. |
| 19:38:18 | → | jneira joins (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) |
| 19:38:23 | × | shafox quits (~Srain@106.51.234.111) (Read error: Connection reset by peer) |
| 19:38:26 | <davean> | I didn't keep using it. |
| 19:38:53 | geekosaur | can't help but think "wasn't terrible" is not a usability milestone to reach for |
| 19:39:02 | <hyperisco> | there could be a more palatable system out there… but I think we can look at Java and see that isn't it either, though that seems contended. I'm not Java programmer |
| 19:39:23 | <dolio> | Anything concluded based on Java is also irrelevant. |
| 19:39:51 | <davean> | http://hackage.haskell.org/package/control-monad-exception is the one I used IIRC. |
| 19:40:03 | <hyperisco> | you should consider it relevant, because if you exclude yourself from tried examples then how do you avoid repeating them |
| 19:40:42 | <hyperisco> | your chance of success in designing a better system is lessened if you don't fill these potholes first |
| 19:40:53 | <dolio> | No, the point is to design a good system, so saying that Java's isn't good doesn't mean that there can't be a good one. This is just the argument that all type systems are bad because Java's is bad. |
| 19:41:08 | <hyperisco> | that wasn't my argument, but never mind |
| 19:41:29 | <davean> | Is this discussion going anywhere useful? |
| 19:41:36 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
| 19:42:12 | <dminuoso> | And who knows, perhaps there's some cool ways to build a workable idea into the Haskell type system that either nobody has thought of before, or it hasn't risen to popularity yet. |
| 19:42:52 | × | Athas quits (athas@2a01:7c8:aaac:1cf:3df1:2652:30d1:76b7) (Quit: ZNC - http://znc.sourceforge.net) |
| 19:43:02 | → | Athas joins (athas@2a01:7c8:aaac:1cf:a58f:f586:d8cf:e687) |
| 19:43:46 | <dminuoso> | I guess the real problem is type inference at the end, it seems like an almost trivial task to build checked exceptions without the backdoors Java has. |
| 19:44:15 | <hyperisco> | I think it starts with another look at exactly what the problem is and allowing new ideas to come in |
| 19:45:09 | → | u0_a298 joins (~user@47.206.148.226) |
| 19:45:24 | <dolio> | If the other example is PureScript's Eff, then I think it also isn't a very good example. It was kind of the most bare bones step in that direction, missing a lot of stuff that could potentially make such a system useful. At least, if I recall correctly. |
| 19:45:51 | <hyperisco> | the need to throw multiple exception types, and now how do we analyse that with types or other static analysis, are the assumptions that need to be revisited |
| 19:46:21 | <dminuoso> | The last time I had this type of discussion, it was theorized that checked exceptions might perhaps best live in separate type system. |
| 19:46:42 | <dminuoso> | Id have to dig my logs to find the exact arguments for this |
| 19:46:44 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
| 19:46:51 | <hyperisco> | dolio, it was done away with because it was more work for the programmer without substantial (or I might argue any) payoff |
| 19:46:57 | × | mmohammadi9812 quits (~mmohammad@2.178.160.31) (Read error: Connection reset by peer) |
| 19:47:07 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 19:47:23 | → | mmohammadi9812 joins (~mmohammad@2.178.160.31) |
| 19:47:24 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 19:47:45 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 19:48:06 | <hyperisco> | and it relates because the symptoms are similar… it accumulated effects as a row type, there weren't interesting ways to discharge most of them, so all rows tended to be widened to the union of all effects |
| 19:48:08 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 19:48:14 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 19:48:16 | <dolio> | It was like, 'what if instead of IO there were a bunch of fine grained but still opaque monads, but that's it.' And it turns out that isn't super useful for browser stuff. Just keeping track of FileInput vs. FileOutput in a completely non-acionable way is not useful. |
| 19:48:36 | <dolio> | Non-actionable, even. |
| 19:48:40 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 19:48:59 | <hyperisco> | this concept of effects was without the utility of interpretation, so it isn't to be compared to effect systems |
| 19:50:29 | <hyperisco> | dolio, no it was even sillier than that, it was more like you had a NOW effect if you called Date.getNow(), and a AJAX effect if you used XmlHttpRequest, and several other made up… lets say "tags" |
| 19:50:44 | × | nek0 quits (~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
| 19:51:04 | × | alp quits (~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6) (Ping timeout: 240 seconds) |
| 19:51:05 | <hyperisco> | the only one I can argue had utility was the EXCEPTION effect, which is caused by throw and could be discharged with a catch |
| 19:51:34 | <hyperisco> | what is the use of a type… it is found through the ways it is introduced and the ways in which it is eliminated |
| 19:51:39 | <dolio> | Yeah. Just tracking whether or not you use getNow in particular is not useful. |
| 19:51:57 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 19:52:18 | <hyperisco> | the effect rows in PS were almost all with introductions and without eliminations, and so that is how I'd argue they had no use |
| 19:52:39 | <dolio> | Yeah, but exceptions can be caught. |
| 19:52:44 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 19:52:46 | <hyperisco> | they let you look at a definition and say "oh that uses XmlHttpRequest somewhere" and then not do anything about it, seemingly |
| 19:52:56 | <dolio> | So they are unlike that kind of useless tracking. |
| 19:53:15 | <hyperisco> | yes, _when_ they can be sensibly caught |
| 19:53:39 | <hyperisco> | and why would you catch them? because you know what they mean and you can decide something based on that meaning |
| 19:54:03 | <hyperisco> | and it seems to be that, many times, that just isn't the case |
| 19:54:11 | → | conal joins (~conal@64.71.133.70) |
| 19:55:01 | <hyperisco> | so a solution should account for the reality that, much of the time, it is an unneeded facility |
| 19:55:26 | <geekosaur> | that seems to depend on what you're using it for. service? you probably want to catch a lot of stuff for resource management reasons if nothing else. simple client? probably just let it abort |
| 19:56:26 | → | crestfallen joins (~john@128.32.176.159) |
| 19:58:35 | × | u0_a298 quits (~user@47.206.148.226) (Read error: Connection reset by peer) |
| 19:59:05 | → | u0_a298 joins (~user@47.206.148.226) |
| 20:00:04 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 240 seconds) |
| 20:01:08 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 20:01:54 | × | bartemius quits (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
| 20:02:04 | <hyperisco> | so I said I hated Haskell exceptions just a while ago… why… well lets ignore the conclusion that all exceptions are a SomeException and can be caught that way |
| 20:02:19 | <hyperisco> | lets say to catch a thrown exception you had to name the type of that exception exactly |
| 20:02:46 | × | dopplerg- quits (~dop@titan.pathogen.is) (Ping timeout: 256 seconds) |
| 20:02:51 | <geekosaur> | the ergonomics of that are also something of a problem imo |
| 20:02:58 | × | ixlun quits (~matthew@213.205.241.94) (Read error: Connection reset by peer) |
| 20:03:02 | <hyperisco> | then there is a documentation problem of knowing how to catch an exception, because you know not which exception type is thrown or where it is thrown |
| 20:03:29 | <hyperisco> | and that is something checked exceptions would fix, yes, but so does catching SomeException |
| 20:03:32 | × | u0_a298 quits (~user@47.206.148.226) (Ping timeout: 260 seconds) |
| 20:03:35 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 20:03:37 | → | nineonine joins (~textual@216.81.48.202) |
| 20:03:46 | <dminuoso> | A particularly fancy bit about Haskell and checked exceptions is async exceptions. |
| 20:04:19 | <dminuoso> | That alone should thwart an attempt at a complete, type-driven, way of checked exceptions. |
| 20:04:31 | → | hiroaki joins (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) |
| 20:04:32 | <dminuoso> | I just realized. |
| 20:04:40 | <hyperisco> | so then we can either assume all IO throws or we could talk about adding the one bit of information to determine if it throws |
| 20:05:00 | <dminuoso> | hyperisco: It throws. at any time, that means catching doesnt ever remove exceptions |
| 20:05:06 | <dminuoso> | because after its caught, it could be thrown to you again. |
| 20:05:21 | <hyperisco> | sure |
| 20:06:53 | <hyperisco> | just sussing out that there are different facets to what we might consider the problem to be, and it would be smart to not immediately conflate them to necessitate a unified solution |
| 20:08:12 | × | dopplergange quits (~dop@titan.pathogen.is) (Ping timeout: 260 seconds) |
| 20:08:58 | → | Deide joins (~Deide@217.155.19.23) |
| 20:11:27 | hackage | uuagc 0.9.53.1 - Attribute Grammar System of Universiteit Utrecht https://hackage.haskell.org/package/uuagc-0.9.53.1 (JeroenBransen) |
| 20:11:34 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 20:11:48 | <dminuoso> | I guess the above again recognizes, that async exceptions shouldn't share code with regular exceptions. They should be borderline uncatchable. |
| 20:12:49 | <dolio> | Yeah, it doesn't make much sense for async exceptions to be checked. |
| 20:12:59 | → | onealmond joins (~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net) |
| 20:13:07 | geekosaur | still thinks most non-async exceptions should be ExceptT |
| 20:13:13 | <geekosaur> | or similar |
| 20:13:25 | → | rprije joins (~rprije@194-193-168-77.tpgi.com.au) |
| 20:14:03 | → | nuxdie_ joins (uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr) |
| 20:14:06 | <geekosaur> | except there's a bootstrapping problem between base and mtl if we do that |
| 20:14:27 | <hyperisco> | indeed that was the term implementation of the checked exceptions I did use |
| 20:14:47 | × | nuxdie_ quits (uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr) (Client Quit) |
| 20:14:52 | <hyperisco> | is as simple as ExceptT and the error type is a variant type, using whatever fancy type features for polymorphic unions |
| 20:16:08 | → | ystael joins (~ystael@209.6.50.55) |
| 20:16:27 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds) |
| 20:17:10 | <hyperisco> | and as complicated as not all monads work as transformers |
| 20:17:20 | → | nuxdie joins (uid343142@gateway/web/irccloud.com/x-eubxksbuxauhuttg) |
| 20:18:19 | → | nyaomi joins (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) |
| 20:19:35 | <hyperisco> | well what do I mean… I mean that stacking ExceptT on another monad does not necessarily give you the semantics you want, which was the case with PureScript's Aff |
| 20:19:55 | × | Reiser quits (~0a2a0001@static.210.242.216.95.clients.your-server.de) (Changing host) |
| 20:19:55 | → | Reiser joins (~0a2a0001@unaffiliated/reisen) |
| 20:21:28 | <hyperisco> | why? because if you have an M a you can lift it to ExceptT e M a , but if you take an ExceptT e M a you cannot necessarily lower it to M a |
| 20:21:55 | <hyperisco> | and you would need to do that if definitions on M a themselves took an M a |
| 20:22:09 | <hyperisco> | such as… bracketing |
| 20:22:10 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 20:24:37 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 20:25:19 | → | blissful joins (~azuline@unaffiliated/azuline) |
| 20:25:57 | × | dopplergange quits (~dop@titan.pathogen.is) (Read error: Connection reset by peer) |
| 20:26:10 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 20:29:32 | → | acidjnk_new2 joins (~acidjnk@p200300d0c7226033a9f8e60d1c4e3d2a.dip0.t-ipconnect.de) |
| 20:29:43 | × | notnatebtw quits (~nate@125.161.130.165) (Quit: WeeChat 2.9) |
| 20:29:47 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 20:30:25 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 20:30:36 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
| 20:30:44 | × | acidjnk_new quits (~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 20:31:07 | <hyperisco> | how can I touch a file with Haskell IO? I am on Windows |
| 20:31:18 | <hyperisco> | I have tried appendFile path "" and this seems to leave the file untouched |
| 20:32:02 | × | _vaibhavingale_ quits (~Adium@203.188.228.9) (Quit: Leaving.) |
| 20:32:06 | × | rinwa quits (~rinwa@5.102.238.236) (Quit: WeeChat 1.9.1) |
| 20:32:43 | <hyperisco> | I also tried opening the file in append mode, writing the empty string, and closing the handle, and also that left the file untouched |
| 20:33:16 | → | jakob_ joins (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) |
| 20:33:31 | <geekosaur> | afaik you need to use system-specific stuff,e.g. there's a touchFile in the unix package and I don't know off the top of my head what the win32 equivalent is |
| 20:34:00 | <hyperisco> | what if, like a madman, I rename the file |
| 20:35:44 | × | knupfer quits (~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de) (Quit: knupfer) |
| 20:35:45 | → | knupfer1 joins (~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de) |
| 20:36:03 | <geekosaur> | no idea, sorry |
| 20:36:10 | → | wretchswollen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 20:36:24 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 20:37:19 | → | aarvar joins (~foewfoiew@50.35.43.33) |
| 20:37:20 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
| 20:37:39 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 20:37:39 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 20:37:39 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:38:10 | × | knupfer1 quits (~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de) (Client Quit) |
| 20:38:12 | → | knupfer joins (~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de) |
| 20:38:45 | × | mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds) |
| 20:39:04 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 258 seconds) |
| 20:39:13 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:40:16 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 20:41:01 | × | wretchswollen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 20:41:26 | × | Graypup_ quits (Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in) |
| 20:43:32 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 20:43:54 | → | sphalerite joins (~sphalerit@NixOS/user/lheckemann) |
| 20:44:21 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 20:44:23 | → | alp joins (~alp@2a01:e0a:58b:4920:31ac:4738:735:9459) |
| 20:44:31 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-olrayksqtbhbbqvo) |
| 20:45:26 | × | dopplergange quits (~dop@titan.pathogen.is) (Quit: ZNC 1.7.5 - https://znc.in) |
| 20:45:36 | × | crestfallen quits (~john@128.32.176.159) (Ping timeout: 256 seconds) |
| 20:46:36 | → | falafel joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 20:48:26 | × | darjeeling_ quits (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds) |
| 20:49:32 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 20:51:30 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:52:52 | → | chaosmasttter joins (~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de) |
| 20:53:33 | → | Graypup_ joins (Graypup@lfcode.ca) |
| 20:54:27 | hackage | tasty-rerun 1.1.18 - Rerun only tests which failed in a previous test run https://hackage.haskell.org/package/tasty-rerun-1.1.18 (Bodigrim) |
| 20:56:38 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca) |
| 20:56:40 | → | dopplerg- joins (~dop@199.58.187.26) |
| 20:57:25 | × | dopplergange quits (~dop@titan.pathogen.is) (Ping timeout: 240 seconds) |
| 21:00:01 | × | ranman1 quits (~ranman@217.146.82.202) () |
| 21:00:17 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 21:00:44 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 21:02:04 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
| 21:02:55 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:07:46 | × | dopplerg- quits (~dop@199.58.187.26) (Ping timeout: 256 seconds) |
| 21:08:39 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 21:09:32 | → | darjeeling_ joins (~darjeelin@115.215.42.47) |
| 21:10:05 | × | alp quits (~alp@2a01:e0a:58b:4920:31ac:4738:735:9459) (Remote host closed the connection) |
| 21:10:25 | → | alp joins (~alp@2a01:e0a:58b:4920:494c:d829:c480:230f) |
| 21:17:04 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 21:18:24 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host) |
| 21:18:30 | → | takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be) |
| 21:19:23 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 21:23:02 | → | one_almond joins (~onealmond@185.195.232.170) |
| 21:23:18 | × | one_almond quits (~onealmond@185.195.232.170) (Remote host closed the connection) |
| 21:23:50 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 21:25:27 | × | falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection) |
| 21:25:44 | → | falafel joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 21:26:03 | × | onealmond quits (~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net) (Ping timeout: 256 seconds) |
| 21:26:22 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 21:29:21 | × | Ariakenom quits (~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving) |
| 21:34:47 | × | invaser quits (~Thunderbi@31.148.23.125) (Quit: invaser) |
| 21:35:06 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 21:36:18 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 21:36:44 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 21:38:10 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 21:39:05 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
| 21:39:34 | × | chaosmasttter quits (~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 21:39:43 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:40:16 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 21:42:04 | × | nyaomi quits (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Ping timeout: 240 seconds) |
| 21:42:44 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
| 21:43:21 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 21:44:34 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 21:44:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 21:44:49 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 21:44:49 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 21:44:49 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 21:45:33 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!) |
| 21:46:29 | × | takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:52:56 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:52:58 | hackage | keycloak-hs 2.0.3 - https://hackage.haskell.org/package/keycloak-hs-2.0.3 (CorentinDupont) |
| 21:53:35 | <koz_> | Does foldM _require_ a Monad constraint to make sense, or could foldA actually exist? |
| 21:54:22 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
| 21:56:38 | <joel135> | hmm |
| 21:56:50 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) |
| 21:59:16 | × | drewolson quits (~drewolson@64.227.24.16) (*.net *.split) |
| 21:59:16 | × | qz quits (~quetzal@li272-85.members.linode.com) (*.net *.split) |
| 21:59:16 | × | glamas quits (~glamas@107.182.17.237) (*.net *.split) |
| 21:59:16 | × | gekh quits (~gkh@thor.kevinhill.nl) (*.net *.split) |
| 21:59:16 | × | zopsi quits (~zopsi@irc.dir.ac) (*.net *.split) |
| 21:59:16 | × | tv- quits (~tv@unaffiliated/tv-) (*.net *.split) |
| 21:59:16 | × | Flonk quits (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (*.net *.split) |
| 21:59:16 | × | digia quits (~digia@unaffiliated/digia) (*.net *.split) |
| 21:59:16 | × | NieDzejkob quits (~quassel@188.123.215.55) (*.net *.split) |
| 21:59:16 | × | clynamen quits (~clynamen@109.116.4.71) (*.net *.split) |
| 21:59:16 | × | rzmt quits (~rzmt@87-92-180-112.rev.dnainternet.fi) (*.net *.split) |
| 21:59:16 | × | bobbytables quits (~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com) (*.net *.split) |
| 21:59:16 | × | amatecha__ quits (sid10006@gateway/web/irccloud.com/x-uwkjukjibnksfmha) (*.net *.split) |
| 21:59:16 | × | spoonm quits (spoonm@gunma.spoonm.org) (*.net *.split) |
| 21:59:16 | × | milessabin quits (sid86799@gateway/web/irccloud.com/x-rqchthtgtmeyzixk) (*.net *.split) |
| 21:59:16 | × | seliopou quits (seliopou@entropy.tmok.com) (*.net *.split) |
| 21:59:16 | × | stvc quits (~stvc@192.241.166.39) (*.net *.split) |
| 21:59:16 | × | marble_visions quits (~user@68.183.79.8) (*.net *.split) |
| 21:59:16 | × | HiRE_ quits (~HiRE@104.128.237.40) (*.net *.split) |
| 21:59:16 | × | bsima quits (~bsima@simatime.com) (*.net *.split) |
| 21:59:16 | × | tstat quits (~tstat@165.227.66.131) (*.net *.split) |
| 21:59:16 | × | eagleflo quits (~aku@eagleflow.fi) (*.net *.split) |
| 21:59:16 | × | Someguy123 quits (~someguy@unaffiliated/compgenius999) (*.net *.split) |
| 21:59:16 | × | madog quits (~madog@163.ip-51-254-203.eu) (*.net *.split) |
| 21:59:16 | × | sayak1 quits (~sayak@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
| 21:59:16 | × | sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split) |
| 21:59:23 | → | madog joins (~madog@163.ip-51-254-203.eu) |
| 21:59:24 | → | jedws joins (~jedws@101.184.193.144) |
| 21:59:25 | → | eagleflo joins (~aku@eagleflow.fi) |
| 21:59:26 | → | glamas joins (~glamas@107.182.17.237) |
| 21:59:26 | → | spoonm joins (spoonm@gunma.spoonm.org) |
| 21:59:26 | → | seliopou joins (seliopou@entropy.tmok.com) |
| 21:59:27 | → | NieDzejkob joins (~quassel@188.123.215.55) |
| 21:59:27 | → | rzmt joins (~rzmt@87-92-180-112.rev.dnainternet.fi) |
| 21:59:30 | → | drewolson joins (~drewolson@64.227.24.16) |
| 21:59:30 | → | milessabin joins (sid86799@gateway/web/irccloud.com/x-tsnesmrcjrlroviv) |
| 21:59:31 | → | digia joins (~digia@unaffiliated/digia) |
| 21:59:32 | → | sayak1 joins (~sayak@static.11.113.47.78.clients.your-server.de) |
| 21:59:32 | → | qz joins (~quetzal@li272-85.members.linode.com) |
| 21:59:32 | → | clynamen joins (~clynamen@109.116.4.71) |
| 21:59:34 | → | bobbytables joins (~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com) |
| 21:59:36 | → | marble_visions joins (~user@68.183.79.8) |
| 21:59:38 | → | HiRE joins (~HiRE@2602:ffc5:20::1:512e) |
| 21:59:39 | → | bsima joins (~bsima@simatime.com) |
| 21:59:41 | → | stvc joins (~stvc@192.241.166.39) |
| 21:59:46 | → | gekh joins (~gkh@thor.kevinhill.nl) |
| 21:59:50 | → | zopsi joins (~zopsi@irc.dir.ac) |
| 22:00:00 | → | Flonk joins (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) |
| 22:00:07 | → | amatecha__ joins (sid10006@gateway/web/irccloud.com/x-umzvzowaztsfellj) |
| 22:01:40 | × | esph quits (~weechat@unaffiliated/esph) (Read error: Connection reset by peer) |
| 22:02:01 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 264 seconds) |
| 22:02:01 | × | nckx quits (~nckx@tobias.gr) (Ping timeout: 264 seconds) |
| 22:02:09 | → | tv- joins (~tv@unaffiliated/tv-) |
| 22:02:10 | → | sim590 joins (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
| 22:02:10 | <jle`> | :t foldM |
| 22:02:11 | <lambdabot> | (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b |
| 22:02:20 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 22:02:21 | <jle`> | yea that needs to be monady |
| 22:02:36 | <jle`> | since you have to bind the 'b' to use the (b -> a -> m b) |
| 22:02:37 | <koz_> | I guess if it was an 'effectful foldMap' it wouldn't? |
| 22:02:47 | → | nckx joins (~nckx@tobias.gr) |
| 22:02:49 | × | tv- quits (~tv@unaffiliated/tv-) (Client Quit) |
| 22:03:10 | → | tv- joins (~tv@unaffiliated/tv-) |
| 22:03:37 | → | esph joins (~weechat@unaffiliated/esph) |
| 22:03:39 | <jle`> | yeah, like traverse_ |
| 22:03:45 | <jle`> | er, traverse |
| 22:03:50 | → | crestfallen joins (~john@128.32.176.159) |
| 22:03:51 | <koz_> | Yeah, except a general monoid instead of (). |
| 22:04:01 | <jle`> | in this case the "next `m b` to use" depends on the result of a previous action |
| 22:04:05 | <jle`> | :t traverse |
| 22:04:06 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
| 22:04:13 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 22:04:17 | <jle`> | but for traverse, the "next `f b`" can be decided without any previous actions |
| 22:04:23 | <koz_> | It'd be like 'foldMapA :: (Applicative f, Monoid m, Traversable t) => (a -> f m) -> t a -> f m' |
| 22:04:24 | <Uniaika> | (obligatory slides for Traverse: https://clementd-files.cellar-c2.services.clever-cloud.com/lambdalille-traverse.html#1.0 ) |
| 22:04:36 | <jle`> | koz_: that's foldMap with Ap, yeah |
| 22:04:44 | × | mmohammadi9812 quits (~mmohammad@2.178.160.31) (Ping timeout: 240 seconds) |
| 22:04:51 | <koz_> | It's not _quite_ a generalized traverse_. |
| 22:04:55 | <koz_> | (stronger constraint needed) |
| 22:05:06 | <jle`> | :t \f -> getAp . foldMap (Ap . f) |
| 22:05:07 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
| 22:05:19 | <jle`> | hm, that's weird |
| 22:05:32 | <jle`> | it should have the same type as yours |
| 22:05:34 | <koz_> | Monoid (Ap f a) holds whenever Applicative f, right? |
| 22:05:53 | <jle`> | (Applicative f, Monoid a) => Monoid (Ap f a) |
| 22:06:07 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 22:06:18 | <jle`> | i'm pretty sure your foldMapA is equivalent to traverse_ |
| 22:06:37 | <koz_> | :t traverse_ |
| 22:06:38 | <lambdabot> | (Foldable t, Applicative f) => (a -> f b) -> t a -> f () |
| 22:07:02 | <jle`> | use [b] for m |
| 22:07:02 | → | Someguy123 joins (~someguy@unaffiliated/compgenius999) |
| 22:07:02 | <koz_> | Except that instead of (), we can get back any Monoid m. |
| 22:07:42 | <jle`> | i think you can implement both in terms of each other |
| 22:09:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:09:51 | <koz_> | I think there's a catch here somewhere. |
| 22:09:51 | <jle`> | you'd just use Const m or something like that |
| 22:09:51 | <jle`> | for your Applicative |
| 22:09:51 | <jle`> | Compose f (Const m) |
| 22:09:59 | <koz_> | Ah, I see. |
| 22:10:04 | <koz_> | Yeah that'd work. |
| 22:10:11 | → | nyaomi joins (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) |
| 22:10:19 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 22:10:36 | <koz_> | Would be great to have a helper doing that, admittedly. |
| 22:10:57 | <koz_> | It reminds me of something I saw in the churros library which permitted a similar generalization. |
| 22:11:20 | <jle`> | % :t \ff -> fmap getConst . getCompose . traverse_ (Compose . fmap Const . ff) |
| 22:11:21 | <yahb> | jle`: (Foldable t, Applicative f, Monoid b) => (a -> f b) -> t a -> f b |
| 22:11:40 | <jle`> | but it'd be easier to write in terms of foldMap |
| 22:12:10 | <jle`> | % :t \ff -> getAp . foldMap (Ap . ff) |
| 22:12:10 | <yahb> | jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1 |
| 22:12:31 | <jle`> | huh you could even flip the Const if you use Ap |
| 22:12:57 | → | notnatebtw joins (~nate@125.161.130.165) |
| 22:12:58 | <koz_> | That's actually interesting - foldMap and foldr can implement each other, but if you throw in effects, you actually can't do that. |
| 22:13:13 | <jle`> | % :t \ff -> getAp . getConst . traverse_ (Const . Ap . ff) |
| 22:13:13 | <yahb> | jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1 |
| 22:13:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 22:13:36 | <jle`> | koz_: well it's kind of up to what you think is the rightful generalization of foldr |
| 22:13:49 | → | t1m joins (4dde69fc@gateway/web/ajax/mibbit.com/session) |
| 22:13:57 | <jle`> | and foldM isn't necessarily the natural generalization from an applicative standpoint |
| 22:14:05 | <koz_> | What's another view? |
| 22:14:32 | <jle`> | maybe foldr :: (f a -> f b -> f b) -> f b -> t a -> f b ? |
| 22:14:48 | <jle`> | although...i guess that's more of a specialization than a generalization |
| 22:15:23 | <koz_> | Yeah, it's not actually similar to the foldMapA above, since you gotta stick effects in both negative and positive positions. |
| 22:15:47 | <koz_> | (in the function argument) |
| 22:16:06 | <jle`> | hm, i think you can implement foldMapM in terms of foldM |
| 22:16:08 | × | t1m quits (4dde69fc@gateway/web/ajax/mibbit.com/session) (Disconnected by services) |
| 22:16:11 | <jle`> | you just need Monad in both cases |
| 22:16:14 | <jle`> | so they can still implement 'each other' |
| 22:16:35 | <jle`> | and you can always use foldMapA with monads too |
| 22:16:39 | <koz_> | Yes, that's true. |
| 22:16:47 | <koz_> | But the reverse direction doesn't (necessarily) hold. |
| 22:16:48 | <jle`> | so, you can implement foldM with foldMapA :) |
| 22:17:10 | <jle`> | hm, i wonder if you can implement foldMapA with foldM |
| 22:17:32 | <jle`> | i thiiink it should be possible actually |
| 22:17:32 | <koz_> | I mean, yeah. Your starting value is the mempty. |
| 22:17:38 | <jle`> | just use foldM to get [m a] |
| 22:17:42 | <jle`> | and foldMapA id |
| 22:17:45 | <koz_> | Lol. |
| 22:17:47 | <koz_> | Ah yes. |
| 22:17:51 | <koz_> | 'Hack everythign into list'. |
| 22:18:00 | <koz_> | Aka 'how all of Foldable works'. |
| 22:18:50 | <koz_> | Although realistically, by its very nature, 'toList' falls out of Traversable even if Foldable weren't a thing. |
| 22:19:29 | <koz_> | (or heck, toX, where X is some linear collection with concatenation and emptiness as concepts) |
| 22:19:45 | <koz_> | (or heck, it doesn't even technically have to be a _linear_ collection) |
| 22:19:54 | → | matt57 joins (d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com) |
| 22:24:08 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:24:18 | <jle`> | yeah, Foldable is baby Traversable :) |
| 22:25:16 | <koz_> | And basically, we get 'emptiness and concatenation' as a special case of Monoid. |
| 22:25:29 | <koz_> | Basically, it really is all traverse and monoids all the way down. |
| 22:25:33 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 22:27:22 | × | remexre quits (~nathan@207-153-38-50.fttp.usinternet.com) (Read error: Connection reset by peer) |
| 22:28:21 | → | britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) |
| 22:30:24 | × | ichimaru quits (~ichimaru@45.63.97.131) (Quit: ichimaru) |
| 22:31:13 | → | remexre joins (~nathan@207-153-38-50.fttp.usinternet.com) |
| 22:37:05 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 22:37:22 | × | matt57 quits (d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com) (Remote host closed the connection) |
| 22:39:25 | × | bitmagie quits (~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de) (Quit: bitmagie) |
| 22:39:34 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 22:39:52 | × | knupfer quits (~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de) (Remote host closed the connection) |
| 22:40:01 | → | knupfer joins (~Thunderbi@200116b82c88900041e2bae31fea6a53.dip.versatel-1u1.de) |
| 22:40:29 | → | christo joins (~chris@81.96.113.213) |
| 22:44:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:45:07 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 22:45:44 | → | day joins (~Unknown@unaffiliated/day) |
| 22:47:48 | × | fendor quits (~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:48:24 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 22:48:44 | → | mmohammadi9812 joins (~mmohammad@2.178.160.31) |
| 22:50:44 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
| 22:53:24 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 22:55:49 | × | vk3wtf quits (~doc@14-202-30-62.static.tpgi.com.au) (Quit: WeeChat 2.7.1) |
| 22:56:20 | → | vk3wtf joins (~doc@14-202-30-62.static.tpgi.com.au) |
| 22:57:37 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 22:58:07 | × | xsperry quits (~as@unaffiliated/xsperry) () |
| 22:58:49 | × | jakob_ quits (~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
| 22:59:32 | → | jakob_ joins (~textual@p57b0eae0.dip0.t-ipconnect.de) |
| 22:59:52 | × | crestfallen quits (~john@128.32.176.159) (Quit: Leaving) |
| 23:01:55 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 23:06:09 | → | crestfallen joins (~john@128.32.176.159) |
| 23:06:25 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:06:52 | × | britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep) |
| 23:07:26 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) |
| 23:09:35 | × | errst quits (~errst@unaffiliated/tirej) (Quit: Lost terminal) |
| 23:10:56 | → | britva joins (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) |
| 23:11:37 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 23:12:27 | × | knupfer quits (~Thunderbi@200116b82c88900041e2bae31fea6a53.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 23:15:41 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:15:49 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 23:16:00 | → | Tario joins (~Tario@201.192.165.173) |
| 23:16:04 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 23:17:10 | <crestfallen> | Hi .. I understand most of this paste. it clarifies that (->) is not a morphism (I guess a morphism cannot be binary?) ; and that fmap for Functor (-> r) is composition. So generally fmap is a morphism, perhaps the most basic one? https://termbin.com/evcw |
| 23:17:43 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 23:18:40 | <crestfallen> | I see how the expansion of (->) r (fmap) is composition. |
| 23:19:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 23:21:02 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 23:21:35 | <crestfallen> | so my question is, if the above is correct, are there morphisms more simple than fmap? |
| 23:21:59 | × | britva quits (~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep) |
| 23:22:10 | <bsima> | how do i convert a Decimal to a Float or Int? |
| 23:22:17 | × | ulidtko|k quits (~ulidtko@193.111.48.79) (Remote host closed the connection) |
| 23:22:33 | <Axman6> | what's a Decimal? |
| 23:22:36 | → | ulidtko|k joins (~ulidtko@193.111.48.79) |
| 23:22:38 | <bsima> | Data.Decimal |
| 23:22:39 | <ghoulguy> | probably: realToFrac and truncate |
| 23:22:56 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) |
| 23:23:06 | <ghoulguy> | truncate or round, depending on which behavior you want |
| 23:23:39 | <Axman6> | :t realToFrac |
| 23:23:40 | <lambdabot> | (Real a, Fractional b) => a -> b |
| 23:24:21 | <crestfallen> | or are there morphisms I've probably come across before? |
| 23:24:27 | <bsima> | i think realToFrac is what I wanted, thanks |
| 23:24:48 | × | falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 272 seconds) |
| 23:25:34 | <crestfallen> | also I'm trying to see if and how (->) r is partial application |
| 23:25:58 | <crestfallen> | a bit confused.. |
| 23:26:41 | <Axman6> | it's a partial application of the type (->) but doesn't represent partial application of functions to values - ((->) r) is all functions which can accept an r |
| 23:26:43 | <lyxia> | crestfallen: I'm not sure what you mean by "morphism" |
| 23:27:03 | <crestfallen> | https://termbin.com/evcw lyxia it's the blurb at the top |
| 23:27:45 | <crestfallen> | all functions which can accept an r Axman6 ... |
| 23:27:53 | <lyxia> | crestfallen: I don't find that paste particularly good, notably because it starts by using the word "morphism" in an unconventional way, if it makes sense at all. |
| 23:28:23 | <crestfallen> | really ok. lyxia thanks, what about below the paragraph though? |
| 23:29:47 | → | falafel joins (~falafel@71-34-132-121.clsp.qwest.net) |
| 23:30:17 | <lyxia> | The important part is that ((->) r) is a mapping from types to types, that's the first condition for something to be in the Functor class in Haskell. |
| 23:30:59 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 23:31:15 | <lyxia> | But it's worth mentioning that the Functor class in Haskell is itself a restriction of amuch more general idea of functors in category theory, where they don't necessarily map types to types. |
| 23:31:49 | → | mdrjr1 joins (~mdrjr@217.146.82.202) |
| 23:32:25 | <lyxia> | So this paragraph is talking in terms of categories about the very restricted notion of Functor in Haskell, that's bound to mix up ideas and confuse people. |
| 23:32:44 | <crestfallen> | yeah, i.e. an object doesn't need to be a type. like it can be a group I think lyxia |
| 23:32:51 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 23:33:13 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Quit: ChaiTRex) |
| 23:33:30 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 23:35:04 | → | christo joins (~chris@81.96.113.213) |
| 23:36:34 | <monsterchrom> | Who wrote that? |
| 23:36:43 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 23:36:56 | <crestfallen> | thanks lyxia and Axman6 monsterchrom one sec |
| 23:37:33 | <lyxia> | monsterchrom: did you change your nick |
| 23:37:41 | <monsterchrom> | There is a reason in a 1st-year linear algebra course we don't go "use the Yoneda lemma to prove that every elementary row operation is representable by multiplying by a matrix", even though it is totally true. |
| 23:37:50 | <monsterchrom> | Yeah Halloween theme |
| 23:38:01 | crestfallen | is now known as wretchswollen |
| 23:38:31 | <wretchswollen> | I need to find the source monsterchrom . I probably doctored the paragraph to the best of my understanding |
| 23:39:24 | <monsterchrom> | There is totally no point in bringing up objects and morphism in Haskell. Not even in the context of the Functor type class. |
| 23:39:38 | → | thir joins (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
| 23:40:03 | <lyxia> | ^ |
| 23:40:09 | <monsterchrom> | Alternatively if the purpose is learning category theory, then learn from a proper category theory book independent of Haskell. |
| 23:40:10 | <wretchswollen> | ok I read bartosz a bit and it often goes there.. |
| 23:40:24 | <wretchswollen> | I think it might be from that quarter |
| 23:40:42 | <monsterchrom> | I actually looked in Bartosz's and can't find it. |
| 23:40:54 | <wretchswollen> | not sure, I certainly didn't write it |
| 23:41:15 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:41:38 | <wretchswollen> | I'll delete it. I like the exercise of getting to fmap = (.) |
| 23:41:39 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 23:41:45 | <monsterchrom> | Bartosz's is a case of "category theory for programmers" so first of all if you are not already a good programmer, one that has written 1000 lines of correct code, you can't use it. |
| 23:42:26 | <monsterchrom> | I don't understand how one looks at "category theory for programmers" and infers "so this is good for learning both at the same time". |
| 23:42:45 | <wretchswollen> | yeah it's tough. sometimes things do stick. I got a lot from a lesson on the kleisli operator |
| 23:43:13 | × | avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:43:16 | <wretchswollen> | it helped me understand bind better |
| 23:43:43 | <monsterchrom> | Then again I also don't understand how there can be undergrad students who look at "prerequisite of this course" and can mentally edit it to "co-requsite of this course" and then email me "can I take your course and the prereq course at the same time? like it makes perfect sense?" |
| 23:43:44 | × | thir quits (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:44:30 | <wretchswollen> | I had it easy: I studied Literature and my mom taught me to read well. |
| 23:44:40 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 23:45:57 | <wretchswollen> | thanks monsterchrom that takes the load off. but to be honest I'm still thinking about Axman6 's " ((->) r) is all functions which can accept an r " |
| 23:46:14 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 23:46:45 | <koz_> | monsterchrom: I would make a funny joke here, but I don't think I can think of two things where 'pre-X' and 'co-X' both exist |
| 23:46:46 | → | whaletechno joins (~whaletech@unaffiliated/whaletechno) |
| 23:46:50 | <koz_> | Like, are cosheaves a thing? |
| 23:47:43 | × | jespada quits (~jespada@90.254.243.98) (Ping timeout: 256 seconds) |
| 23:47:47 | <wretchswollen> | yeah like I tried to sit in on abstract algebra, when pre algebra and calculus was 30 years old |
| 23:47:58 | <wretchswollen> | were* |
| 23:48:13 | <wretchswollen> | I meant preCalculus |
| 23:49:05 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds) |
| 23:49:26 | <wretchswollen> | but hey, I'm beginning to understand bind, and yesterday made a huge headway with traversable |
| 23:50:37 | → | tim joins (~user@S0106a84e3fe54613.ed.shawcable.net) |
| 23:50:48 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 23:50:48 | → | jespada joins (~jespada@90.254.243.98) |
| 23:50:53 | × | tim quits (~user@S0106a84e3fe54613.ed.shawcable.net) (Remote host closed the connection) |
| 23:51:38 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 23:51:40 | → | tput joins (~user@S0106a84e3fe54613.ed.shawcable.net) |
| 23:51:42 | <Axman6> | data Foo f = Foo { bar :: f Int,baz :: f Bool }; type ReadFoo = Foo ((->) String) -- ReadFoo ~= Foo {bar :: r -> Int, baz :: r -> Bool}. ((->) String) is the functor for functors which can accept Strings |
| 23:51:52 | → | jcowan joins (sid325434@gateway/web/irccloud.com/x-evadozowlzlhtjmy) |
| 23:52:09 | → | xocolatl joins (xocolatl@gateway/vpn/protonvpn/xocolatl) |
| 23:52:26 | ← | xocolatl parts (xocolatl@gateway/vpn/protonvpn/xocolatl) ("Leaving") |
| 23:52:57 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:53:38 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 23:53:38 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 23:53:39 | <jcowan> | A speculative question: I realize that Haskell patterns are fixed. But suppose they were extensible. What would matching against a procedure plausibly mean? |
| 23:53:39 | <Axman6> | for functions* |
| 23:54:02 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 23:54:07 | <Axman6> | jcowan: like view patterns? |
| 23:54:24 | <Axman6> | or something else |
| 23:55:49 | <wretchswollen> | working... |
| 23:56:08 | <tput> | I'm writing an fft as an exercise. I have a vector of values which I need to divide into two sub vectors, composed of every other element. How can I do this *quickly*? Basically I'm looking for a performant stride or slice. I'm happy to change from vector to array or any other similar datatype. |
| 23:56:55 | <wretchswollen> | thanks Axman6 |
| 23:56:59 | <Axman6> | tput: one way I've seen this done is how Repa would do it, where you just use functions to reindex into the original array |
| 23:57:03 | <koz_> | tput: By 'quickly' I assume you mean O(1)? |
| 23:57:29 | <jcowan> | Are view patterns implemented now? |
| 23:57:30 | <koz_> | If so, delayed arrays are indeed what you want - you'll be well-served by massiv, I think. |
| 23:57:43 | <Axman6> | they have been implemented for years jcowan |
| 23:57:44 | <tput> | yeah, I'd ideally like a reindexed view into the original data structure without copying |
| 23:58:00 | <koz_> | tput: Ah, then you can use generate from vector. |
| 23:58:15 | <koz_> | If you wanna be _sure_, then massiv's delayed arrays are what you're after. |
| 23:58:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 23:58:23 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 23:58:32 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 23:58:34 | <koz_> | generate will _likely_ fuse, but I can't promise much. |
| 23:58:44 | <Axman6> | > let f ((\x -> x `mod` 3 == 0 && x `mod` 5 == 0) -> True) = "FizzBuzz"; f x = show x in map f [1..20] |
| 23:58:46 | <lambdabot> | ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","FizzBuzz","16... |
| 23:59:03 | <jcowan> | Okay, thanks. I was under the impression they were part of Haskell at one time and then withdrawn. |
| 23:59:26 | × | falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 264 seconds) |
All times are in UTC on 2020-10-28.