2021-02-25 00:01:14 +0100 | jess | (jess@freenode/staff/jess) |
2021-02-25 00:01:28 +0100 | <dolio> | Axman6: It might not be an instance that you're looking for. But `Word -> (forall n. KnownNat n => r) -> r` |
2021-02-25 00:01:50 +0100 | <Axman6> | yeah that seems like the right thing |
2021-02-25 00:02:32 +0100 | <dolio> | Although perhaps just `Nat -> ...` because having one of those for every type with some kind of embedding into Nat would be a lot of functions. |
2021-02-25 00:03:26 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:b7bd:1d78:9a4c:6909) (Ping timeout: 240 seconds) |
2021-02-25 00:03:30 +0100 | henninb | (~henninb@63-228-50-251.mpls.qwest.net) |
2021-02-25 00:03:33 +0100 | <dolio> | Could also be a GADT version of that, though. |
2021-02-25 00:03:49 +0100 | <dolio> | Nat -> SomeKnownNat |
2021-02-25 00:04:16 +0100 | bergey` | (~user@107.181.19.30) (Ping timeout: 240 seconds) |
2021-02-25 00:04:57 +0100 | <Axman6> | I'm trying to see if there's a type safe optimisation for the NS coinstructor in generics-sop (/sop-core) which could avoid the use of unsafeCoerce; replace the implementation with data NS f xs = NS Word Any, so also need to ensure the Nat is < length xs at the type level |
2021-02-25 00:05:36 +0100 | random_learner | (2fe3acc8@047-227-172-200.res.spectrum.com) |
2021-02-25 00:05:58 +0100 | <Axman6> | there's a PR at the moment to maake the construction of NP more efficient and it'd be nice to also have NS allow for constant time decision of which constructor is represented in the sum type |
2021-02-25 00:08:40 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 00:09:07 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 00:10:09 +0100 | borne | (~fritjof@200116b8644ab70010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-25 00:13:34 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 00:14:04 +0100 | random_learner | (2fe3acc8@047-227-172-200.res.spectrum.com) (Quit: Connection closed) |
2021-02-25 00:14:24 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2021-02-25 00:14:40 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-25 00:17:55 +0100 | hseg_ | hseg |
2021-02-25 00:18:06 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
2021-02-25 00:18:08 +0100 | skregas | (~skregas@201.89-10-150.nextgentel.com) |
2021-02-25 00:18:24 +0100 | zmv- | (~zmv@191.255.89.231) (Ping timeout: 246 seconds) |
2021-02-25 00:19:24 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-25 00:19:31 +0100 | skregas | skregas_ |
2021-02-25 00:19:44 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 00:20:24 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-02-25 00:20:55 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2021-02-25 00:21:18 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-25 00:23:57 +0100 | fendor_ | (~fendor@91.141.0.220.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-02-25 00:24:21 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2021-02-25 00:24:30 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-02-25 00:25:05 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
2021-02-25 00:25:46 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-25 00:27:53 +0100 | henninb | (~henninb@63-228-50-251.mpls.qwest.net) (Quit: Lost terminal) |
2021-02-25 00:28:03 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-25 00:28:48 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:e8f2:5182:6f8d:ab15) (Remote host closed the connection) |
2021-02-25 00:36:26 +0100 | slack1256 | (~slack1256@45.4.2.52) |
2021-02-25 00:37:28 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 00:37:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-02-25 00:38:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-25 00:38:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 00:41:56 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-02-25 00:42:16 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
2021-02-25 00:42:32 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) (Remote host closed the connection) |
2021-02-25 00:43:15 +0100 | nehsou^ | (dsrt@ip98-184-89-2.mc.at.cox.net) () |
2021-02-25 00:44:33 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) |
2021-02-25 00:44:55 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 00:56:11 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 00:57:35 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 00:58:09 +0100 | maerwald | (~maerwald@mail.hasufell.de) (Ping timeout: 264 seconds) |
2021-02-25 01:00:26 +0100 | acidjnk_new | (~acidjnk@p200300d0c73909529c208343cf3ed1b3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-02-25 01:00:33 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 256 seconds) |
2021-02-25 01:01:47 +0100 | <nshepperd> | ukari: i tried using reflex, but couldn't make any sense of the docs, so i went with reactive-banana. which is unfortunate because I've heard reflex is more performant |
2021-02-25 01:02:12 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2021-02-25 01:03:22 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 01:04:22 +0100 | alx741 | (~alx741@181.196.69.27) |
2021-02-25 01:04:31 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 256 seconds) |
2021-02-25 01:05:29 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
2021-02-25 01:05:56 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) (Ping timeout: 240 seconds) |
2021-02-25 01:06:59 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-foajjiotajxkliux) |
2021-02-25 01:07:17 +0100 | maerwald | (~maerwald@mail.hasufell.de) |
2021-02-25 01:08:17 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:28b0:4c0c:b54b:e522) |
2021-02-25 01:08:39 +0100 | Tario | (~Tario@200.119.184.197) |
2021-02-25 01:10:54 +0100 | <MarcelineVQ> | nshepperd: ask Cale about it, he's got all kinds of examples and good ideas |
2021-02-25 01:11:05 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-02-25 01:11:35 +0100 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1) |
2021-02-25 01:11:54 +0100 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) |
2021-02-25 01:12:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 01:12:45 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) (Ping timeout: 240 seconds) |
2021-02-25 01:14:14 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-02-25 01:16:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 01:17:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-25 01:17:18 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-25 01:17:39 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-25 01:18:16 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-02-25 01:21:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-02-25 01:21:37 +0100 | phittacus | (bklmatrixo@gateway/shell/matrix.org/x-gwycjuommpiiwoem) (Ping timeout: 260 seconds) |
2021-02-25 01:21:38 +0100 | sagax | (~sagax_nb@213.138.71.146) (Ping timeout: 264 seconds) |
2021-02-25 01:22:08 +0100 | conal_ | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 01:23:26 +0100 | phittacus | (bklmatrixo@gateway/shell/matrix.org/x-ytpsxehmufedpsxo) |
2021-02-25 01:26:36 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 01:28:24 +0100 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-02-25 01:28:39 +0100 | <jackdk> | ukari: you were close. The return value of the thing you pass to `runHeadlessApp` is an `Event t ()` that tells Reflex when to stop. If you want to run forever, use `pure never` |
2021-02-25 01:29:02 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-25 01:29:18 +0100 | <jackdk> | ukari: check this out https://www.irccloud.com/pastebin/9EO7VeXV/Ticker.hs |
2021-02-25 01:30:12 +0100 | <jackdk> | ukari: also #reflex-frp is a good channel |
2021-02-25 01:30:16 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 240 seconds) |
2021-02-25 01:32:15 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-bteccupbxcrkcjlt) |
2021-02-25 01:32:15 +0100 | Tario | (~Tario@200.119.184.197) (Read error: Connection reset by peer) |
2021-02-25 01:32:44 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-25 01:33:59 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) |
2021-02-25 01:37:31 +0100 | <jackdk> | nshepperd: the reflex workshop vm helped me a lot, and your reactive-banana experience will probably transfer somewhat |
2021-02-25 01:38:28 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-25 01:38:38 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) |
2021-02-25 01:38:49 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 01:40:40 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-02-25 01:41:16 +0100 | entel | (uid256215@botters/entel) (Quit: Connection closed for inactivity) |
2021-02-25 01:44:03 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-02-25 01:44:17 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 01:44:42 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 01:49:35 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-02-25 01:52:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 01:53:35 +0100 | martins | (~martins@81.198.232.69) |
2021-02-25 01:53:49 +0100 | martins | (~martins@81.198.232.69) (Client Quit) |
2021-02-25 01:55:44 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 272 seconds) |
2021-02-25 01:55:45 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 264 seconds) |
2021-02-25 01:57:35 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 01:58:39 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) |
2021-02-25 01:59:10 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2021-02-25 02:00:36 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 246 seconds) |
2021-02-25 02:04:11 +0100 | martins | (~martins@81.198.232.69) |
2021-02-25 02:05:39 +0100 | martins | (~martins@81.198.232.69) (Client Quit) |
2021-02-25 02:06:08 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-25 02:07:41 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-25 02:08:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:65d8:c770:8e45:ea4c) |
2021-02-25 02:08:53 +0100 | stree | (~stree@68.36.8.116) |
2021-02-25 02:10:18 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-02-25 02:12:34 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-02-25 02:13:41 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-02-25 02:16:05 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-gtvjllhbyskilhtc) |
2021-02-25 02:18:57 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Quit: leaving) |
2021-02-25 02:19:00 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 02:19:55 +0100 | gentauro | (~gentauro@185.107.12.141) |
2021-02-25 02:20:49 +0100 | gentauro | (~gentauro@185.107.12.141) (Client Quit) |
2021-02-25 02:21:19 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-emqhyvlnnsxogtux) (Quit: Connection closed for inactivity) |
2021-02-25 02:21:44 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-02-25 02:23:12 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) (Ping timeout: 265 seconds) |
2021-02-25 02:23:23 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Client Quit) |
2021-02-25 02:23:39 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-02-25 02:23:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 02:24:51 +0100 | joecordi_ | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 02:24:51 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) (Remote host closed the connection) |
2021-02-25 02:26:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-25 02:26:53 +0100 | vgtw_ | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-25 02:26:56 +0100 | Jon | (jon@dow.land) (Remote host closed the connection) |
2021-02-25 02:27:14 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-25 02:27:16 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:65d8:c770:8e45:ea4c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 02:27:30 +0100 | Jon | (jon@dow.land) |
2021-02-25 02:27:36 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds) |
2021-02-25 02:27:37 +0100 | vgtw_ | vgtw |
2021-02-25 02:27:38 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 264 seconds) |
2021-02-25 02:27:56 +0100 | enikar | (~enikar@2001:41d0:2:8673::42) (Ping timeout: 240 seconds) |
2021-02-25 02:28:21 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 02:28:59 +0100 | zmv- | (~zmv@191.255.89.231) |
2021-02-25 02:29:16 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-25 02:29:17 +0100 | enikar | (~enikar@2001:41d0:2:8673::42) |
2021-02-25 02:31:49 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-25 02:33:06 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds) |
2021-02-25 02:35:54 +0100 | joecordi_ | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-25 02:38:01 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) |
2021-02-25 02:38:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-25 02:38:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 02:41:14 +0100 | joecordingley | (~joecordin@37.156.75.63) |
2021-02-25 02:45:49 +0100 | joecordingley | (~joecordin@37.156.75.63) (Ping timeout: 260 seconds) |
2021-02-25 02:48:04 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 02:53:11 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 02:53:54 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 02:54:06 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2021-02-25 02:56:05 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2021-02-25 02:57:26 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-25 02:58:30 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 02:58:45 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 02:58:53 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-25 02:58:55 +0100 | martins | (~martins@81.198.232.69) |
2021-02-25 02:58:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-02-25 02:59:44 +0100 | martins | (~martins@81.198.232.69) () |
2021-02-25 03:00:59 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-25 03:03:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2021-02-25 03:03:23 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 03:08:27 +0100 | xff0x | (~xff0x@2001:1a81:525a:9700:e2d:ed0e:1903:82db) (Ping timeout: 272 seconds) |
2021-02-25 03:09:52 +0100 | xff0x | (~xff0x@2001:1a81:5295:6100:414c:c2f4:f5f5:8081) |
2021-02-25 03:09:56 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
2021-02-25 03:09:58 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 03:10:25 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-02-25 03:11:42 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 03:11:59 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-02-25 03:14:29 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0) |
2021-02-25 03:14:47 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 03:16:11 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-25 03:16:25 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 03:18:08 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-25 03:18:46 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-25 03:19:16 +0100 | __minoru__shirae | (~shiraeesh@77.94.25.253) (Ping timeout: 240 seconds) |
2021-02-25 03:19:34 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.174) |
2021-02-25 03:23:21 +0100 | guest222 | (~user@61.148.245.136) (Ping timeout: 256 seconds) |
2021-02-25 03:24:59 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-25 03:25:06 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 03:27:31 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-25 03:29:21 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
2021-02-25 03:33:51 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-fajfitegppdbkpgx) (Quit: Connection closed for inactivity) |
2021-02-25 03:36:51 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 03:37:09 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-02-25 03:37:13 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-25 03:38:07 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 03:38:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-25 03:38:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 03:38:57 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
2021-02-25 03:38:58 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-02-25 03:39:23 +0100 | entel | (uid256215@botters/entel) |
2021-02-25 03:40:40 +0100 | Wuzzy | (~Wuzzy@p57a2f9e0.dip0.t-ipconnect.de) (Quit: Wuzzy) |
2021-02-25 03:41:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-25 03:41:52 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) |
2021-02-25 03:42:27 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 246 seconds) |
2021-02-25 03:42:33 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) (Ping timeout: 264 seconds) |
2021-02-25 03:46:37 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 03:48:04 +0100 | drbean_ | (~drbean@TC210-63-209-206.static.apol.com.tw) |
2021-02-25 03:49:16 +0100 | denisse_ | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-02-25 03:50:34 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-02-25 03:50:59 +0100 | denisse_ | denisse |
2021-02-25 03:51:37 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
2021-02-25 03:52:36 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 03:54:00 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 03:55:24 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 03:55:24 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2021-02-25 03:57:13 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 03:58:26 +0100 | alx741 | (~alx741@181.196.69.27) (Quit: alx741) |
2021-02-25 03:59:57 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2021-02-25 04:00:10 +0100 | carlomagno | (~cararell@148.87.23.11) (Quit: Leaving.) |
2021-02-25 04:03:35 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 04:03:44 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:5367:7819:3f66:284e) (Ping timeout: 240 seconds) |
2021-02-25 04:04:01 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e8ed:b8de:c4bc:271c) |
2021-02-25 04:08:37 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 04:10:04 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
2021-02-25 04:10:04 +0100 | egp_ | (~egp_@2.95.74.168) (Read error: Connection reset by peer) |
2021-02-25 04:10:22 +0100 | ezrakilty | (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
2021-02-25 04:11:26 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-02-25 04:14:37 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 04:16:14 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:6be:14ea:238:81cf) |
2021-02-25 04:16:45 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 246 seconds) |
2021-02-25 04:18:05 +0100 | slack1256 | (~slack1256@45.4.2.52) (Ping timeout: 240 seconds) |
2021-02-25 04:18:10 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-25 04:18:56 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-25 04:20:35 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-25 04:20:35 +0100 | finn_elija | Guest18260 |
2021-02-25 04:20:35 +0100 | FinnElija | finn_elija |
2021-02-25 04:22:36 +0100 | Tops2 | (~Tobias@dyndsl-091-249-082-052.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
2021-02-25 04:23:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 04:23:34 +0100 | Tops2 | (~Tobias@dyndsl-095-033-089-046.ewe-ip-backbone.de) |
2021-02-25 04:23:41 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 04:24:09 +0100 | Guest18260 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-25 04:24:33 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 04:29:21 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
2021-02-25 04:29:21 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-02-25 04:29:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e8ed:b8de:c4bc:271c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 04:30:09 +0100 | stree | (~stree@68.36.8.116) |
2021-02-25 04:31:27 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-25 04:38:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-25 04:38:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 04:38:39 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-25 04:38:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-25 04:40:53 +0100 | alexelcu | (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 04:41:11 +0100 | plutoniix | (~q@184.82.223.179) |
2021-02-25 04:41:13 +0100 | alexelcu | (~alexelcu@142.93.180.198) |
2021-02-25 04:42:18 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 04:43:48 +0100 | <dmwit> | Okay, so using pointer equality as a fast path isn't safe because maybe the value diverges. |
2021-02-25 04:44:05 +0100 | <dmwit> | You could deepseq both values before using that fast path, but then why bother with the fast path, right? |
2021-02-25 04:44:20 +0100 | <dmwit> | But Ed K taught us how to have a deepseq that fires the first time and never again. |
2021-02-25 04:44:37 +0100 | <dmwit> | Is there a library out there that uses this trick to give a pointer-equality based fast path for Eq? |
2021-02-25 04:45:50 +0100 | <dmwit> | (Namely, the trick is like data JustOnce a = JustOnce () a; justOnce a = JustOnce (a `deepseq` ()) a. And then don't export the value constructor. |
2021-02-25 04:45:53 +0100 | <dmwit> | ) |
2021-02-25 04:46:45 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-25 04:47:08 +0100 | <edwardk> | *cough* pattern synonyms |
2021-02-25 04:47:36 +0100 | <dmwit> | Yes, yes, you need a bunch of API for JustOnce to be comfortable. |
2021-02-25 04:48:30 +0100 | <edwardk> | i actually need to start using this trick with linear types hrmm |
2021-02-25 04:48:36 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 246 seconds) |
2021-02-25 04:48:59 +0100 | <dmwit> | Is that just because you're using linear types a lot lately, or do they give some interesting extra bit that's not obvious? |
2021-02-25 04:49:09 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2021-02-25 04:49:14 +0100 | <dmwit> | Well, never mind whether it's obvious or not. =P |
2021-02-25 04:49:33 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 04:50:37 +0100 | theDon | (~td@muedsl-82-207-238-135.citykom.de) (Ping timeout: 256 seconds) |
2021-02-25 04:52:09 +0100 | theDon | (~td@muedsl-82-207-238-098.citykom.de) |
2021-02-25 04:54:33 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2021-02-25 04:54:47 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 04:55:09 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 256 seconds) |
2021-02-25 04:56:15 +0100 | guest222 | (~user@49.5.6.87) |
2021-02-25 04:56:24 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-02-25 04:56:40 +0100 | <guest222> | why call fixed-point would create loop? |
2021-02-25 04:57:01 +0100 | <dmwit> | Because the way you compute the fixed point is by looping. |
2021-02-25 04:57:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-25 04:57:21 +0100 | <edwardk> | well, consumability basically comes down to squishing a thing down to leave level types we can know don't contain thunks and then copying |
2021-02-25 04:57:48 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-25 04:58:07 +0100 | <edwardk> | so if i can put a thing into a Once a instead of just an 'a' i can know it has been squeeze dry with a single deepseq and share that across future calls to consume |
2021-02-25 04:58:16 +0100 | <edwardk> | or dup |
2021-02-25 04:58:28 +0100 | <dmwit> | (Specifically: the least fixed point of f can be computed by going f (f (f (f (f ...)))), which is a loop.) |
2021-02-25 04:58:32 +0100 | ddellacosta | (~ddellacos@86.106.143.33) |
2021-02-25 04:58:48 +0100 | <edwardk> | er to leaf level |
2021-02-25 04:59:27 +0100 | <dmwit> | The idea being to drop even the very cheap seq on the ()? |
2021-02-25 04:59:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2021-02-25 04:59:45 +0100 | <dmwit> | But if you can drop the cheap seq, why not skip the Once and drop the deepseq in the first place? |
2021-02-25 04:59:51 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 05:00:05 +0100 | <edwardk> | more that the deepseq here is doing much the same work that i want consume/dup to do to ensure there's no as-yet-unconsumed linear resource dangling in a thunk |
2021-02-25 05:00:49 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Remote host closed the connection) |
2021-02-25 05:00:52 +0100 | <dmwit> | ...oh, interesting. |
2021-02-25 05:00:56 +0100 | <ski> | what kind of linear resource could be a problem ? |
2021-02-25 05:01:09 +0100 | <edwardk> | file handles, sockets, whatever. |
2021-02-25 05:01:23 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-25 05:01:26 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 256 seconds) |
2021-02-25 05:01:28 +0100 | <edwardk> | most things like arrays are really affine, so meh |
2021-02-25 05:01:36 +0100 | <ski> | what would be the problem, if you don't ensure this ? |
2021-02-25 05:01:46 +0100 | <edwardk> | its just a thought based on a passing comment in the code for consume for Int |
2021-02-25 05:01:51 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Remote host closed the connection) |
2021-02-25 05:01:59 +0100 | ddellac__ | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 05:02:11 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: Ping timeout (120 seconds)) |
2021-02-25 05:02:20 +0100 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-02-25 05:02:33 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-02-25 05:02:45 +0100 | ddellacosta | (~ddellacos@86.106.143.33) (Ping timeout: 240 seconds) |
2021-02-25 05:03:14 +0100 | <edwardk> | this is fairly loose in my brain. my intuitions have proven wrong like 2-3 times when digging in linear-base |
2021-02-25 05:03:28 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-25 05:03:45 +0100 | <edwardk> | so i'm choosing to overcompensate and take any positive warnings they give greater shrift than i otherwise might |
2021-02-25 05:04:24 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds) |
2021-02-25 05:05:06 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 272 seconds) |
2021-02-25 05:05:14 +0100 | <ski> | hm, okay |
2021-02-25 05:05:25 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Remote host closed the connection) |
2021-02-25 05:05:33 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 05:06:05 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 05:06:21 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-25 05:06:42 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-25 05:06:43 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 05:06:59 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 05:07:00 +0100 | smor | (~smor@97.115.144.35) |
2021-02-25 05:08:25 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e8ed:b8de:c4bc:271c) |
2021-02-25 05:10:18 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-25 05:10:29 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Remote host closed the connection) |
2021-02-25 05:10:40 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) |
2021-02-25 05:11:03 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-25 05:11:38 +0100 | rj | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-02-25 05:11:59 +0100 | Tops2 | (~Tobias@dyndsl-095-033-089-046.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-02-25 05:12:02 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Remote host closed the connection) |
2021-02-25 05:12:51 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) |
2021-02-25 05:13:28 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) |
2021-02-25 05:14:34 +0100 | smor | (~smor@97.115.144.35) (Changing host) |
2021-02-25 05:14:34 +0100 | smor | (~smor@unaffiliated/smor) |
2021-02-25 05:17:29 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 05:18:57 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 05:20:51 +0100 | bitmagie | (~Thunderbi@200116b806e06a00ddee379279106dee.dip.versatel-1u1.de) |
2021-02-25 05:22:20 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 05:26:16 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) (Remote host closed the connection) |
2021-02-25 05:26:35 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) |
2021-02-25 05:27:02 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 264 seconds) |
2021-02-25 05:28:15 +0100 | aggin | (~ecm@103.88.87.93) |
2021-02-25 05:28:36 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 05:28:57 +0100 | aggin | (~ecm@103.88.87.93) (Client Quit) |
2021-02-25 05:30:16 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-25 05:32:19 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 272 seconds) |
2021-02-25 05:32:33 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 05:32:50 +0100 | bitmagie1 | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 05:33:45 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 05:34:12 +0100 | bitmagie | (~Thunderbi@200116b806e06a00ddee379279106dee.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-25 05:34:12 +0100 | bitmagie1 | bitmagie |
2021-02-25 05:34:36 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 05:34:39 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-xfxeeejhmtblxsmq) () |
2021-02-25 05:38:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2021-02-25 05:38:26 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 05:38:33 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 05:40:30 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-gtvjllhbyskilhtc) (Quit: Connection closed for inactivity) |
2021-02-25 05:41:00 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 05:43:30 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 05:45:36 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 05:45:50 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-02-25 05:47:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-25 05:50:05 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 05:55:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-02-25 05:58:06 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 05:59:57 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 258 seconds) |
2021-02-25 06:00:24 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 06:01:22 +0100 | haskell58 | (7d8294d3@125.130.148.211) |
2021-02-25 06:01:54 +0100 | haskell58 | (7d8294d3@125.130.148.211) (Client Quit) |
2021-02-25 06:02:28 +0100 | forgottenone | (~forgotten@176.42.20.136) |
2021-02-25 06:04:51 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 06:05:06 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 06:05:43 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-25 06:06:01 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) (Ping timeout: 260 seconds) |
2021-02-25 06:07:16 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) (Ping timeout: 240 seconds) |
2021-02-25 06:08:05 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 06:14:15 +0100 | ddellac__ | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-25 06:14:25 +0100 | ystael | (~ystael@209.6.50.55) (Ping timeout: 260 seconds) |
2021-02-25 06:14:28 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 06:14:30 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 06:14:35 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-25 06:16:09 +0100 | smor | (~smor@unaffiliated/smor) (Remote host closed the connection) |
2021-02-25 06:18:40 +0100 | forgottenone | (~forgotten@176.42.20.136) (Quit: Konversation terminated!) |
2021-02-25 06:19:01 +0100 | smor | (~smor@unaffiliated/smor) |
2021-02-25 06:19:15 +0100 | fre | (~freusque@104.238.190.229) (Ping timeout: 246 seconds) |
2021-02-25 06:19:33 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-02-25 06:19:53 +0100 | nf | (~n@monade.li) (Ping timeout: 258 seconds) |
2021-02-25 06:22:21 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 06:23:17 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
2021-02-25 06:25:53 +0100 | forgottenone | (~forgotten@176.42.20.136) |
2021-02-25 06:27:33 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-02-25 06:29:58 +0100 | smor | (~smor@unaffiliated/smor) (Remote host closed the connection) |
2021-02-25 06:31:15 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-02-25 06:31:48 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-02-25 06:31:51 +0100 | nf | (~n@monade.li) |
2021-02-25 06:31:54 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-25 06:33:36 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-25 06:34:22 +0100 | fre | (~freusque@104.238.190.229) |
2021-02-25 06:34:32 +0100 | Natch | (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 265 seconds) |
2021-02-25 06:35:25 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 260 seconds) |
2021-02-25 06:37:10 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-25 06:37:39 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 06:37:42 +0100 | Natch | (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
2021-02-25 06:38:20 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 256 seconds) |
2021-02-25 06:39:09 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-25 06:40:35 +0100 | borne | (~fritjof@200116b8644ab70010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-02-25 06:42:24 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2021-02-25 06:42:58 +0100 | monochrom | (trebla@216.138.220.146) |
2021-02-25 06:43:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 06:45:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 06:48:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-02-25 06:49:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-25 06:50:39 +0100 | lemmih | (~lemmih@2406:3003:2072:44:15d3:24ba:467f:3d99) (Remote host closed the connection) |
2021-02-25 06:50:48 +0100 | stree | (~stree@68.36.8.116) |
2021-02-25 06:53:05 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2021-02-25 06:53:21 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-02-25 06:53:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 06:55:14 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-02-25 06:55:19 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-02-25 06:55:40 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 06:56:16 +0100 | lemmih | (~lemmih@2406:3003:2072:44:5428:f0dd:ed19:b4df) |
2021-02-25 06:57:37 +0100 | monochrom | (trebla@216.138.220.146) |
2021-02-25 06:59:15 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 07:00:00 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) (Quit: WeeChat 3.0.1) |
2021-02-25 07:01:00 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2021-02-25 07:01:17 +0100 | klardotsh | (~klardotsh@75-172-17-41.tukw.qwest.net) |
2021-02-25 07:03:53 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2021-02-25 07:04:15 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) |
2021-02-25 07:06:20 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 268 seconds) |
2021-02-25 07:06:55 +0100 | rotaerk | (~rotaerk@ender.afternet.org) (Ping timeout: 265 seconds) |
2021-02-25 07:07:30 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-25 07:08:04 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) (Read error: Connection reset by peer) |
2021-02-25 07:09:29 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 07:10:31 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 07:12:07 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) |
2021-02-25 07:12:08 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 07:12:08 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 07:12:13 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-25 07:12:36 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 07:14:46 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 07:14:58 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-25 07:19:17 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-02-25 07:23:50 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.174) (Ping timeout: 265 seconds) |
2021-02-25 07:24:47 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-25 07:24:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 07:26:22 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-25 07:28:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 07:29:21 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2021-02-25 07:29:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e8ed:b8de:c4bc:271c) (Ping timeout: 264 seconds) |
2021-02-25 07:31:22 +0100 | forgottenone | (~forgotten@176.42.20.136) (Quit: Konversation terminated!) |
2021-02-25 07:33:57 +0100 | egp_ | (~egp_@2.95.74.168) |
2021-02-25 07:33:58 +0100 | egp__ | (~egp_@2.95.74.168) |
2021-02-25 07:35:46 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2021-02-25 07:38:16 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
2021-02-25 07:38:59 +0100 | rotaerk | (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) |
2021-02-25 07:40:25 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 07:42:16 +0100 | koz | (~koz@121.99.240.58) |
2021-02-25 07:42:27 +0100 | koz_ | (~koz@2404:4408:4342:2a00:1958:92dc:60f3:680b) (Ping timeout: 260 seconds) |
2021-02-25 07:43:50 +0100 | rotaerk | (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 264 seconds) |
2021-02-25 07:45:13 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 07:51:22 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 07:51:25 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Ping timeout: 240 seconds) |
2021-02-25 07:52:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 07:55:26 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 07:55:59 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 272 seconds) |
2021-02-25 07:56:25 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 240 seconds) |
2021-02-25 07:57:35 +0100 | knupfer | (~Thunderbi@200116b82c5b7800ed680aab46f8abc5.dip.versatel-1u1.de) |
2021-02-25 07:58:34 +0100 | dumptruckman | (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd) (Quit: ZNC - http://znc.in) |
2021-02-25 07:58:56 +0100 | drbean_ | (~drbean@TC210-63-209-206.static.apol.com.tw) (Ping timeout: 240 seconds) |
2021-02-25 08:00:00 +0100 | pengjiz | (~user@2601:547:902:6d00::1) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-02-25 08:00:45 +0100 | aqd | (~aqd@84.20.147.33) |
2021-02-25 08:01:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 08:02:21 +0100 | joecordingley | (~joecordin@37.156.75.63) |
2021-02-25 08:02:43 +0100 | dumptruckman | (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd) |
2021-02-25 08:06:51 +0100 | joecordingley | (~joecordin@37.156.75.63) (Ping timeout: 265 seconds) |
2021-02-25 08:06:59 +0100 | <olligobber> | haskell doesn't have a 4 bit type in base? huh |
2021-02-25 08:07:16 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
2021-02-25 08:11:42 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 268 seconds) |
2021-02-25 08:13:22 +0100 | Chai-T-Rex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2021-02-25 08:13:40 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-02-25 08:13:56 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-25 08:14:35 +0100 | rotaerk | (~rotaerk@ender.afternet.org) |
2021-02-25 08:18:27 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 265 seconds) |
2021-02-25 08:18:36 +0100 | poscat | (~poscat@114.243.61.85) (Ping timeout: 246 seconds) |
2021-02-25 08:18:39 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 08:18:42 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-25 08:18:51 +0100 | idhugo_ | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Quit: Leaving) |
2021-02-25 08:19:05 +0100 | poscat | (~poscat@114.243.61.85) |
2021-02-25 08:19:35 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) |
2021-02-25 08:20:51 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 08:23:20 +0100 | poscat1 | (~poscat@2408:8207:4822:a280::1) |
2021-02-25 08:24:18 +0100 | poscat | (~poscat@114.243.61.85) (Ping timeout: 256 seconds) |
2021-02-25 08:25:36 +0100 | Graf_Blutwurst | (~grafblutw@adsl-178-38-234-220.adslplus.ch) |
2021-02-25 08:26:41 +0100 | <jle`> | do you mean like a literal half byte or like (Bool, Bool) |
2021-02-25 08:29:36 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-02-25 08:29:44 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 08:29:48 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-02-25 08:30:56 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-02-25 08:32:02 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-wygvvgugafrkzfoy) |
2021-02-25 08:32:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 08:34:25 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 08:36:11 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 08:36:25 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-25 08:41:29 +0100 | phpostrich | (~phpostric@cgn-barr-67-222-245-157.carolinaconnect.net) |
2021-02-25 08:41:39 +0100 | <phpostrich> | Ello |
2021-02-25 08:42:52 +0100 | <phpostrich> | I wanted to learn haskell but Idk if its worth my time... can anyone convince me to use it? |
2021-02-25 08:43:56 +0100 | average | (uid473595@gateway/web/irccloud.com/x-kftgzjbwgakalewc) (Quit: Connection closed for inactivity) |
2021-02-25 08:45:10 +0100 | <Uniaika> | uh |
2021-02-25 08:45:17 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 08:45:32 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 08:46:02 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 08:46:53 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 08:48:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 08:49:38 +0100 | <edwardk> | phpostrich: no |
2021-02-25 08:50:01 +0100 | phpostrich | (~phpostric@cgn-barr-67-222-245-157.carolinaconnect.net) ("Good Bye") |
2021-02-25 08:51:11 +0100 | <edwardk> | jle`: it'd have 4 bools. |
2021-02-25 08:51:56 +0100 | ByronJohnson | (~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds) |
2021-02-25 08:52:27 +0100 | Tene | (~tene@poipu/supporter/slacker/tene) (Ping timeout: 272 seconds) |
2021-02-25 08:52:36 +0100 | koz | koz_ |
2021-02-25 08:53:27 +0100 | <koz_> | Vector 4 Bit :P |
2021-02-25 08:53:49 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-25 08:55:39 +0100 | <olligobber> | Yeah, I'm using (Bool,Bool,Bool,Bool) |
2021-02-25 08:56:47 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 08:57:40 +0100 | geyaeb_ | (~geyaeb@gateway/tor-sasl/geyaeb) |
2021-02-25 08:58:36 +0100 | stree | (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
2021-02-25 08:58:39 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer) |
2021-02-25 08:58:47 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-02-25 08:59:11 +0100 | geyaeb | (~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds) |
2021-02-25 08:59:26 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-25 08:59:37 +0100 | <edwardk> | olligobber: i wrote one in a bdd library to represent binary functions |
2021-02-25 09:00:14 +0100 | <edwardk> | https://github.com/ekmett/coda/blob/master/wip/bdd/Data/BDD.hs#L455 |
2021-02-25 09:00:32 +0100 | <edwardk> | though i just wrote the bits stuff, none of the Num machinery |
2021-02-25 09:01:03 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:7b45:fc1a:7f85:7f18) |
2021-02-25 09:01:06 +0100 | <olligobber> | interesting |
2021-02-25 09:01:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-25 09:02:04 +0100 | <olligobber> | I'm mainly using it for hex digits |
2021-02-25 09:02:36 +0100 | <edwardk> | makes sense |
2021-02-25 09:02:39 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-25 09:02:55 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds) |
2021-02-25 09:03:37 +0100 | ByronJohnson | (~bairyn@unaffiliated/bob0) |
2021-02-25 09:03:53 +0100 | Tene | (~tene@mail.digitalkingdom.org) |
2021-02-25 09:03:53 +0100 | Tene | (~tene@mail.digitalkingdom.org) (Changing host) |
2021-02-25 09:03:53 +0100 | Tene | (~tene@poipu/supporter/slacker/tene) |
2021-02-25 09:06:24 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 09:06:59 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 09:09:15 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-02-25 09:12:20 +0100 | stree | (~stree@68.36.8.116) |
2021-02-25 09:13:34 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-foajjiotajxkliux) (Quit: Connection closed for inactivity) |
2021-02-25 09:14:15 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-02-25 09:15:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 09:16:18 +0100 | forgottenone | (~forgotten@176.88.28.250) |
2021-02-25 09:16:32 +0100 | skregas_ | (~skregas@201.89-10-150.nextgentel.com) (Ping timeout: 272 seconds) |
2021-02-25 09:16:39 +0100 | <koz_> | edwardk: I was looking at 'data Store i o r = Store (i -> r) o' from one of your old articles. You say it's an _indexed_ store comonad. How is that different from the regular store comonad? |
2021-02-25 09:16:46 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-02-25 09:17:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:28b0:4c0c:b54b:e522) (Remote host closed the connection) |
2021-02-25 09:17:35 +0100 | <brkscnce> | hey, is there some construct to reference a value computed within an expression multiple times in the expression? |
2021-02-25 09:18:17 +0100 | <brkscnce> | something like python's walrus operator I guess |
2021-02-25 09:18:57 +0100 | <edwardk> | i isn't necessarily o |
2021-02-25 09:19:16 +0100 | <edwardk> | start with 'indexed state' and it might be easier |
2021-02-25 09:19:28 +0100 | <edwardk> | s -> (a, s) becomes i -> (a, o) -- for state |
2021-02-25 09:19:45 +0100 | <koz_> | Ah, I see! |
2021-02-25 09:19:53 +0100 | <edwardk> | and you can talk about operations like pure :: a -> State i o a, and work out the operation for (>>=) |
2021-02-25 09:20:01 +0100 | <edwardk> | er pure :: a -> State i i a |
2021-02-25 09:20:15 +0100 | <koz_> | So the idea is that with _un_indexed st{ate,ore}, i ~ o? |
2021-02-25 09:20:20 +0100 | <edwardk> | yeah |
2021-02-25 09:20:40 +0100 | <edwardk> | this is what i usually label an 'atkey style' indexed monad |
2021-02-25 09:20:42 +0100 | <koz_> | OK, thanks, that makes sense now. |
2021-02-25 09:20:45 +0100 | <brkscnce> | trying to split a list, then decide on whether to include the first element of the second list in the first list instead based on a conditional |
2021-02-25 09:20:45 +0100 | <edwardk> | where you have two parameters |
2021-02-25 09:20:48 +0100 | <koz_> | I'm familiar with those. |
2021-02-25 09:21:03 +0100 | <edwardk> | another equivalently powerful way is to use one index surprisingly. but a different kind |
2021-02-25 09:21:25 +0100 | <edwardk> | this is the kleisli arrows of outrageous fortune paper by conor mcbride |
2021-02-25 09:21:34 +0100 | <edwardk> | as well as the conversion to-from atkey style |
2021-02-25 09:21:40 +0100 | <edwardk> | at least for the monad side |
2021-02-25 09:21:50 +0100 | <koz_> | I tried reading that paper, but Conor's writing style throws me for a loop. |
2021-02-25 09:21:55 +0100 | <edwardk> | i had to derive how to do it for the comonad side myself (it uses a rather different trick) |
2021-02-25 09:22:02 +0100 | <koz_> | Might be a good time to look at it again though. |
2021-02-25 09:22:07 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:4773:d7d4:420a:eae0) (Ping timeout: 272 seconds) |
2021-02-25 09:22:12 +0100 | <koz_> | Since I actually _understand_ your earlier derivations now. :P |
2021-02-25 09:22:13 +0100 | <edwardk> | i find it more interesting to just write down the types and play with them |
2021-02-25 09:23:20 +0100 | <edwardk> | i have an unpublished package here: https://github.com/ekmett/indexed/tree/master/src/Indexed |
2021-02-25 09:23:59 +0100 | <edwardk> | https://github.com/ekmett/indexed/blob/master/src/Indexed/Comonad/Store.hs#L30 is a mcbride style store comonad |
2021-02-25 09:24:02 +0100 | <edwardk> | for comparison |
2021-02-25 09:24:07 +0100 | <jle`> | categories are just indexed monoids, whats the problem |
2021-02-25 09:24:15 +0100 | totoro2021 | (~t@unaffiliated/totoro2021) (Read error: Connection reset by peer) |
2021-02-25 09:24:18 +0100 | <edwardk> | i prefer monoidoids |
2021-02-25 09:24:21 +0100 | <koz_> | jle`: :P |
2021-02-25 09:24:32 +0100 | <koz_> | ~> is an NT? |
2021-02-25 09:24:48 +0100 | <edwardk> | its the parametric monster we usually call a natural transformation but is stronger, yes |
2021-02-25 09:25:06 +0100 | <edwardk> | forall i. s i -> a i |
2021-02-25 09:25:23 +0100 | <koz_> | Yeah, that's the one I'm familiar with. |
2021-02-25 09:25:28 +0100 | <koz_> | Just wanted to make sure. |
2021-02-25 09:25:30 +0100 | totoro2021 | (~t@unaffiliated/totoro2021) |
2021-02-25 09:26:25 +0100 | <edwardk> | in haskell that is a bit stronger than what folks in category theory call a natural transformation. morally you can think of it as in category theory that for each object in the category (i) you get an arrow associated with it from f i -> g i. which _seems_ like what you get here at first glance. |
2021-02-25 09:26:45 +0100 | <edwardk> | then you realize instead of getting one arrow for each i you get one arrow in total, it can just be given all those types. |
2021-02-25 09:27:04 +0100 | <edwardk> | you don't get to know i and do different things based on that information as long as the little square commutes |
2021-02-25 09:27:24 +0100 | <edwardk> | so parametricity is a stronger constraint than what a category theorist means when they talk about natural transformations |
2021-02-25 09:27:35 +0100 | <edwardk> | so i get super anal retentive when someone applies that word here =) |
2021-02-25 09:27:49 +0100 | <koz_> | So what's the Edward-approved name for ~>? |
2021-02-25 09:27:56 +0100 | <edwardk> | I usually go with ~> |
2021-02-25 09:27:58 +0100 | <edwardk> | =) |
2021-02-25 09:28:03 +0100 | <koz_> | How do you pronounce that? |
2021-02-25 09:28:12 +0100 | <edwardk> | and make you try to figure out how to say "squiggly arrow" without sounding like a goofball |
2021-02-25 09:28:14 +0100 | thorsten` | (~Thorsten@ananke.uberspace.de) |
2021-02-25 09:28:23 +0100 | <edwardk> | that is the penance for abusing the term natural transformation for so long ;) |
2021-02-25 09:28:37 +0100 | <koz_> | Eh, I'll just say NT (as in, 'enn-tee'). |
2021-02-25 09:29:00 +0100 | edwardk | twitches. |
2021-02-25 09:29:03 +0100 | <koz_> | Then I can say it's a homophone that's completely unrelated to acronyms of anything. |
2021-02-25 09:29:06 +0100 | <koz_> | Because English. |
2021-02-25 09:29:55 +0100 | <edwardk> | https://www.cs.bham.ac.uk/~udr/papers/logical-relations-and-parametricity.pdf goes into the naturality vs. parametricity issue more deeply but it does get mathy fast |
2021-02-25 09:30:11 +0100 | <ukari> | jackdk, thank you |
2021-02-25 09:30:18 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-25 09:30:18 +0100 | <thorsten`> | Hi, I'm looking for a monad that models consuming elements from the head of a list. Is there any in base or transformers or should I just use State/StateT/ST? |
2021-02-25 09:30:20 +0100 | <koz_> | edwardk: I might have a look at it when it's not 9.30pm. |
2021-02-25 09:30:48 +0100 | <edwardk> | thorsten`: well. let's work it through for a sec |
2021-02-25 09:31:00 +0100 | <edwardk> | you could always use State [x] a |
2021-02-25 09:31:02 +0100 | <brkscnce> | the squiggly arrow thing reminds me of this smbc comic https://www.smbc-comics.com/?id=3278#comic |
2021-02-25 09:31:14 +0100 | <edwardk> | but there's a technically slightly tighter monad you could build based on something called an update monad |
2021-02-25 09:31:49 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2021-02-25 09:31:50 +0100 | <edwardk> | the issue with state is that state is a little 'too big' for the problem asked for. in that you can save the current string and restore back to it after other operations. |
2021-02-25 09:32:00 +0100 | <edwardk> | do you know what a monoid action is? |
2021-02-25 09:32:29 +0100 | <thorsten`> | in math; yes; in haskell: no |
2021-02-25 09:32:43 +0100 | <koz_> | Oh oh oh, we get an edwardk article in real time! |
2021-02-25 09:32:49 +0100 | koz_ | grabs popcorn. |
2021-02-25 09:33:00 +0100 | <edwardk> | ok, so let's think about a monoid acting on your list. the monoid i'm going to choose will be the natural numbers with addition |
2021-02-25 09:33:04 +0100 | <edwardk> | and the action will be 'drop' |
2021-02-25 09:33:15 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2021-02-25 09:33:22 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:b00a:55a1:d947:55ef) |
2021-02-25 09:33:24 +0100 | <edwardk> | so we can model the limited subset of state actions we want to take with a monad that looks like |
2021-02-25 09:33:45 +0100 | <edwardk> | newtype M x a = M { runM :: [x] -> (a, Int) } |
2021-02-25 09:34:00 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-25 09:34:04 +0100 | <edwardk> | instead of being able to get _any_ list out, all you get is the monoid that acts on the input you've seen |
2021-02-25 09:34:20 +0100 | <edwardk> | then applying drop with that number to the current list gives you the new tail that you can feed to the rest of (>>=) |
2021-02-25 09:35:05 +0100 | <edwardk> | i wrote an older article on this topic: https://www.schoolofhaskell.com/user/edwardk/heap-of-successes |
2021-02-25 09:35:27 +0100 | <edwardk> | based on an old paper on "How to replace failure with a list of successes" which is one of the earliest parser combinator approaches |
2021-02-25 09:36:27 +0100 | <edwardk> | the goal there was to derive a slightly more efficient applicative for list-of-successes style parsing |
2021-02-25 09:36:57 +0100 | <edwardk> | anyways, is it practically better than state? not entirely clear |
2021-02-25 09:37:17 +0100 | <edwardk> | it has the downside that the action has to be applied over and over, so you 'drop' the same elements from the list in the left associated (>>=) case |
2021-02-25 09:37:59 +0100 | ski | . o O ( `Codensity' ? ) |
2021-02-25 09:38:06 +0100 | <koz_> | Was about to say... |
2021-02-25 09:38:09 +0100 | <edwardk> | so you don't want to do this left associated, which means moving to a cps'd version of the monad to rule it out completely or using codensity or another trick, or just accepting that you work with state and that the only operations you really want to do are to drop |
2021-02-25 09:38:10 +0100 | <edwardk> | yeah |
2021-02-25 09:38:22 +0100 | <edwardk> | codensity is one solution, a cps'd state monad is another |
2021-02-25 09:38:29 +0100 | <edwardk> | er cps'd update monad |
2021-02-25 09:38:53 +0100 | <edwardk> | codensity is too big when directly applied, so the cps'd update monad is arguably better |
2021-02-25 09:39:08 +0100 | <ski> | thorsten` : iirc, "consuming elements from the head of a list" is sometimes called `Supply' ? |
2021-02-25 09:39:16 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 09:39:17 +0100 | <edwardk> | another option is to move to a representation of the input that has constant time drop, then left associated or right associated don't matter |
2021-02-25 09:39:38 +0100 | <thorsten`> | edwardk: thanks, I'll try it with the M you provided :) |
2021-02-25 09:39:41 +0100 | <edwardk> | e.g. replacing the [a] with a Vector a or some unboxed thing. |
2021-02-25 09:40:07 +0100 | <edwardk> | thorsten`: in practice? i'd probably use State in production code. for learning? i'd probably build M. |
2021-02-25 09:40:22 +0100 | <ski> | too big, in what sense ? |
2021-02-25 09:40:36 +0100 | <koz_> | ski: Does too much stuff I think. |
2021-02-25 09:40:37 +0100 | <ski> | @unmtl ContT o (StateT s m) a |
2021-02-25 09:40:37 +0100 | <lambdabot> | (a -> s -> m (o, s)) -> s -> m (o, s) |
2021-02-25 09:40:39 +0100 | <ski> | @unmtl ContT o (ReaderT s m) a |
2021-02-25 09:40:39 +0100 | <lambdabot> | (a -> s -> m o) -> s -> m o |
2021-02-25 09:40:48 +0100 | <edwardk> | in the same sense that codensity reader is bigger than reader |
2021-02-25 09:41:04 +0100 | <ski> | the latte is what you want (with `forall o.') ? |
2021-02-25 09:41:23 +0100 | <edwardk> | yeah with the output s being an Int |
2021-02-25 09:41:28 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-25 09:41:36 +0100 | <edwardk> | and the input one [x] |
2021-02-25 09:41:37 +0100 | <ski> | @unmtl StateT s (ContT o m) a |
2021-02-25 09:41:38 +0100 | <lambdabot> | s -> (a -> s -> m o) -> m o |
2021-02-25 09:41:45 +0100 | <thorsten`> | ski: ah, is see, Since I only need it in one place, I think I'd rather use state or a self-built than introducing a dependency to transformers-supply |
2021-02-25 09:42:41 +0100 | <ski> | edwardk : `forall o. (a -> Int -> m o) -> [x] -> m o' ? |
2021-02-25 09:42:52 +0100 | <edwardk> | if it must be a transformer, yes. |
2021-02-25 09:42:56 +0100 | <ski> | yea |
2021-02-25 09:43:23 +0100 | <ski> | (just asking for the transformer to get two for the price of one) |
2021-02-25 09:43:47 +0100 | <edwardk> | yeah, that is the 'right sized' version of it. this is basically the same approach from my 'free monads for less' article series |
2021-02-25 09:43:56 +0100 | <edwardk> | where codensity was sufficient but did way too much |
2021-02-25 09:45:42 +0100 | edwardk | stares down quite how many representation-indexed monads he has to write and decides maybe he should read some random webnovel instead |
2021-02-25 09:47:07 +0100 | edwardk | then looks up at state and realizes he doesn't know hw to simultaneously index on both the representation of s and a nicely. |
2021-02-25 09:47:08 +0100 | <ski> | now i'm wondering whether `StateT s (Codensity m) a ~= s -> Codensity m (a,s) ~= forall o. s -> (a -> s -> m o) -> m o' would avoid the left-associativity problem |
2021-02-25 09:48:10 +0100 | <edwardk> | quite likely we wound up using a cps'd monad like that as the base monad in the monad transformer stack for scalaz and that was enough to prevent all the derived monads from blowing the stack |
2021-02-25 09:48:18 +0100 | koz_ | just read 'coupdate comonad' and giggled. |
2021-02-25 09:48:20 +0100 | <edwardk> | so while i haven't thought this through rigorously it feels right |
2021-02-25 09:48:44 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 256 seconds) |
2021-02-25 09:48:45 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-25 09:49:05 +0100 | esp32_prog | (~esp32_pro@185.195.233.147) (Ping timeout: 240 seconds) |
2021-02-25 09:50:06 +0100 | <edwardk> | koz_: i still want 'relative lenses' made out of coupdate comonad coalgebras where you get a restricted update vocabulary rather than the ability to set all values in the target type regardless of where you came from |
2021-02-25 09:50:45 +0100 | <koz_> | edwardk: Getter and setter technology for Haskell. :P |
2021-02-25 09:50:53 +0100 | ski | . o O ( "co-(update monad algebras)" ) |
2021-02-25 09:51:26 +0100 | <edwardk> | something like (a -> f i) -> s -> f j -- where i is a monoid that acts on a, and j is a monoid that acts on s. |
2021-02-25 09:51:30 +0100 | <ski> | how's it relative, or restricted ? |
2021-02-25 09:51:41 +0100 | <edwardk> | and then the lens is sort of a translation between update languages |
2021-02-25 09:51:47 +0100 | <ski> | hm |
2021-02-25 09:52:22 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 09:53:34 +0100 | <Franciman> | Hi, I was reading that https://hackage.haskell.org/package/contravariant-1.4/docs/Data-Functor-Contravariant.html if a type is both a functor and a contravariant (lawfully) then I can prove that |
2021-02-25 09:53:40 +0100 | <Franciman> | fmap f = contramap f = phantom |
2021-02-25 09:53:44 +0100 | <edwardk> | its restricted for the same reason that an update monad is a 'restricted' state monad. |
2021-02-25 09:53:45 +0100 | <Franciman> | how can I prove it? |
2021-02-25 09:53:53 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) |
2021-02-25 09:54:07 +0100 | <edwardk> | with a state monad holding, say, all the file handles you've seen and some details about them, you have to worry about the unrestricted power of get/set |
2021-02-25 09:54:52 +0100 | <ski> | edwardk : mhm. you can only specify increments/diffs, relative to the current position, rather that substituting an arbitrary new one for the old |
2021-02-25 09:54:56 +0100 | <edwardk> | Franciman: my recollection was that the proof used the free theorems for fmap/contramap |
2021-02-25 09:55:31 +0100 | <edwardk> | ski: exactly. so if i give you a limited vocabulary for your monoidal updates (or categorical updates if you index this whole construction) then i can know its made out of legal steps |
2021-02-25 09:55:34 +0100 | <ski> | edwardk : what about the ability to change the type of the target of the lens ? |
2021-02-25 09:55:41 +0100 | <Franciman> | thanks edwardk |
2021-02-25 09:55:52 +0100 | <edwardk> | ski: replace monoid actions with category actions |
2021-02-25 09:56:03 +0100 | <ski> | you use a "category action" instead of a monoid action ? |
2021-02-25 09:56:05 +0100 | <ski> | ah |
2021-02-25 09:56:06 +0100 | <edwardk> | becomes harder to state in haskell |
2021-02-25 09:56:10 +0100 | <ski> | mm |
2021-02-25 09:56:34 +0100 | ski | . o O ( "vertical categorification" ) |
2021-02-25 09:57:04 +0100 | <edwardk> | just like how its hard to _really_ give correct types to incremental programs as you have some term x in type a. and some update that is actually dependent on the term x you have in type a. |
2021-02-25 09:57:26 +0100 | <ski> | (hm, i guess it's "horizontal". easy to confuse these ones) |
2021-02-25 09:57:28 +0100 | <edwardk> | proper incremental changes require a sort of dependent type |
2021-02-25 09:57:46 +0100 | acidjnk_new | (~acidjnk@p200300d0c739092208198526eb118d06.dip0.t-ipconnect.de) |
2021-02-25 09:58:22 +0100 | <ski> | ("horizontal" being to replace a single object with multiple ones. "vertical" being to introduce "morphisms between my morphisms !?". and there's also "replace undirected by directed") |
2021-02-25 09:58:47 +0100 | <edwardk> | similarly "real" update monads want a more accurate type than just a monoid acting on a state. tarmo uustalu's paper on the topic gives a more accurate condition |
2021-02-25 09:59:27 +0100 | <ski> | edwardk : re correct types for incremental/adaptive computation .. yea, i remember some paper about incremental lambda-calculus mentioned that |
2021-02-25 09:59:30 +0100 | <edwardk> | https://danel.ahman.ee/papers/types13postproc.pdf |
2021-02-25 09:59:55 +0100 | <edwardk> | is the better update monad paper than the rant above. |
2021-02-25 10:00:08 +0100 | <ski> | ok, ty |
2021-02-25 10:00:30 +0100 | <edwardk> | and its why i tend to think of lots of things in 'directed containers' style vocabulary |
2021-02-25 10:00:39 +0100 | <edwardk> | unfortunately i can't quite express it right in haskell |
2021-02-25 10:01:04 +0100 | <edwardk> | so i limit myself to the monoid-based parody of the idea given above which works for simple things i might update |
2021-02-25 10:01:21 +0100 | <ski> | makes sense |
2021-02-25 10:03:30 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
2021-02-25 10:04:26 +0100 | <edwardk> | currently bending my brain around representation polymorphic ST before trying to move to tougher prey |
2021-02-25 10:05:26 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:6be:14ea:238:81cf) (Ping timeout: 240 seconds) |
2021-02-25 10:05:27 +0100 | <edwardk> | writing bindST felt like it was quite an accomplishment the other night |
2021-02-25 10:05:39 +0100 | <edwardk> | that Lev trick i mentioned turned out to be the key to making it possible at all |
2021-02-25 10:05:47 +0100 | whald | (~trem@2a02:810a:8100:11a6:15b2:7454:c339:fb18) (Remote host closed the connection) |
2021-02-25 10:05:59 +0100 | <edwardk> | without it i think bindST has to live in a class parameterized on both source and target representation |
2021-02-25 10:06:11 +0100 | <edwardk> | and that rather drastically limits the viability of the technique |
2021-02-25 10:06:29 +0100 | <ski> | "A Theory of Changes for Higher-Order Languages: Incrementalizing λ-Calculi by Static Differentiation" by Yufei Cai,Paulo G. Giarrusso (pgiarrusso),Tillmann Rendel,Klaus Ostermann in 2014-06-(09-11) at <https://www.informatik.uni-marburg.de/~pgiarrusso/papers/pldi14-ilc-author-final.pdf>,"Incremental λ-Calculus" <https://www.informatik.uni-marburg.de/~pgiarrusso/ILC/> was the paper i was thinking about |
2021-02-25 10:06:35 +0100 | <ski> | above, mentioning needing dependent types to allow the admissible changes to depend on the current position |
2021-02-25 10:06:50 +0100 | <edwardk> | yeah |
2021-02-25 10:07:27 +0100 | <ski> | now you're parameterizing just on target ? |
2021-02-25 10:07:39 +0100 | <edwardk> | i split the class |
2021-02-25 10:07:47 +0100 | <edwardk> | by using Lev to pull off the trick |
2021-02-25 10:08:20 +0100 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
2021-02-25 10:08:31 +0100 | <edwardk> | mkSTRes :: forall r (b :: TYPE r) s. STRep r => State# s -> Lev b -> (# State# s, b #) -- is the secret |
2021-02-25 10:09:19 +0100 | Feuermagier_ | octopus |
2021-02-25 10:09:21 +0100 | <edwardk> | er rather bindST is easy |
2021-02-25 10:09:24 +0100 | <edwardk> | fmapST is hard |
2021-02-25 10:09:25 +0100 | <edwardk> | sorry |
2021-02-25 10:09:29 +0100 | octopus | octopus120 |
2021-02-25 10:09:31 +0100 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) |
2021-02-25 10:09:42 +0100 | <edwardk> | for a 'linear' ST that is representation polymorphic i get something like: |
2021-02-25 10:10:15 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds) |
2021-02-25 10:10:38 +0100 | <edwardk> | https://www.irccloud.com/pastebin/YcMvs6bX/ST.hs |
2021-02-25 10:10:43 +0100 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 268 seconds) |
2021-02-25 10:10:49 +0100 | <octopus120> | interesting |
2021-02-25 10:11:03 +0100 | octopus120 | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) () |
2021-02-25 10:11:17 +0100 | <edwardk> | case unST m s of (# s', a #) -> mkSTRes s' (f a) -- is the meat of this |
2021-02-25 10:11:34 +0100 | <ski> | `mkSTRes' is basically just a pairing, that works representation-polymorphically ? |
2021-02-25 10:11:37 +0100 | <edwardk> | remember i can't apply a function to an argument without knowing the representation of that argument. |
2021-02-25 10:12:02 +0100 | <edwardk> | so if i go to write case unST m s of (# s', a #) -> (# s', f a #) -- i get stuck |
2021-02-25 10:12:07 +0100 | <edwardk> | i can compute -> f a there |
2021-02-25 10:12:14 +0100 | <edwardk> | but i can't put it into the (# , #) |
2021-02-25 10:12:24 +0100 | <edwardk> | because i don't know the representation of the output of f a |
2021-02-25 10:12:45 +0100 | <ski> | mhm |
2021-02-25 10:12:59 +0100 | <ski> | ah, `mkSTRes' is a method |
2021-02-25 10:13:08 +0100 | <edwardk> | but... Lev is basically the wrapper being built by f a, i lift 'f a' into a calculation that will return its result when you peel the (()~()) => ... off |
2021-02-25 10:13:30 +0100 | average | (uid473595@gateway/web/irccloud.com/x-zorlcjntmtivoxma) |
2021-02-25 10:13:32 +0100 | <edwardk> | and then the mkSTRes on the target type can invoke that get the answer and put it in the (#, #) |
2021-02-25 10:14:06 +0100 | <edwardk> | with that i get the option to define a representation polymorphic functor one of several ways and i'm not sure which i like |
2021-02-25 10:14:19 +0100 | <edwardk> | class Functor (f :: forall (r :: RuntimeRep). TYPE r -> TYPE s) where; type FunctorRep f :: RuntimeRep -> Constraint; fmap :: forall r (a :: TYPE r) rb (b :: TYPE rb). (FunctorRep f r, FunctorRep f rb) => (a -> b) -> f a -> f b -- is one such option |
2021-02-25 10:14:39 +0100 | <edwardk> | this however limits me to only functors that work for all representations |
2021-02-25 10:14:58 +0100 | <edwardk> | or rather for whatever ones have my particular FunctorRep class instantiated |
2021-02-25 10:15:08 +0100 | <edwardk> | which i'd do the same backpack dance i'm doing for all of unlifted for at least the base ones |
2021-02-25 10:15:19 +0100 | <edwardk> | another option is something like |
2021-02-25 10:15:34 +0100 | <edwardk> | class JankyFunctor (f :: TYPE r -> TYPE s) (g :: TYPE r' -> TYPE s') | f r -> s, g r' -> s', f r' -> g, g r -> f where jmap :: forall (a :: TYPE r) (b :: TYPE r'). (a -> b) -> f a -> g b |
2021-02-25 10:15:52 +0100 | <edwardk> | where you give me instances pointwise. |
2021-02-25 10:16:18 +0100 | <ski> | hm, so `f b' could be an unboxed tuple, e.g. ? |
2021-02-25 10:16:28 +0100 | <edwardk> | but this turns out to burn me when it comes to my Maybe and List definitions in the package. |
2021-02-25 10:16:29 +0100 | <edwardk> | yeah |
2021-02-25 10:16:41 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-25 10:16:44 +0100 | integerDivision | (d5b21a29@gateway/web/cgi-irc/kiwiirc.com/ip.213.178.26.41) |
2021-02-25 10:16:48 +0100 | <edwardk> | JankyFunctor is pretty robust. i can use it for Maybe# which is going to produce an unboxed sum, etc. |
2021-02-25 10:17:17 +0100 | <edwardk> | but its not good enough for List where List is actually a type family so it can include [] and Maybe which is actually a type family so it can include Prelude.Maybe |
2021-02-25 10:17:33 +0100 | <edwardk> | because i can't write JankyFunctor List List |
2021-02-25 10:17:35 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-02-25 10:17:48 +0100 | <edwardk> | or JankyFunctor (List @r) (List @s) -- because List is a synonym |
2021-02-25 10:17:55 +0100 | <edwardk> | so to fix that i need to split JankyFunctor in half |
2021-02-25 10:18:00 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 10:18:01 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:9310:964a:9231:59c9) |
2021-02-25 10:18:20 +0100 | <edwardk> | and turn the inference rules that determine g from f and the second representation into one class, and the way back into another. |
2021-02-25 10:18:38 +0100 | <edwardk> | just like i did with Wrapped and Rewrapped in lens to make inference work a bit better |
2021-02-25 10:18:39 +0100 | <ski> | hm, `JankyFunctor' makes me think of natural transformations |
2021-02-25 10:18:48 +0100 | <edwardk> | it should =) |
2021-02-25 10:19:13 +0100 | <ski> | (using the diagonal in the naturality square, instead of the plain "uniindexed" map, for each index) |
2021-02-25 10:19:21 +0100 | <edwardk> | except here unlike in the parametric crappy haskell case the 'points' matter. |
2021-02-25 10:19:25 +0100 | <edwardk> | yep |
2021-02-25 10:20:27 +0100 | <edwardk> | so with the split JankyFunctor i could basically make it say that coming from Prelude.Maybe you can infer any member of the type family Maybe @r |
2021-02-25 10:20:39 +0100 | <ski> | i've noticed libary functions commonly offering `forall a b. (a -> b) -> (F a -> G b)' instead of, or in addition to, `forall a. F a -> G a' |
2021-02-25 10:21:09 +0100 | <edwardk> | and then if the type family was closed and switched between Prelude.Maybe and a fixed data family MaybeFam then i could have the other instance mapping from MaybeFam also to the type family |
2021-02-25 10:21:22 +0100 | <edwardk> | and then JankyFunctor's split twin properly handles my List and Maybe type families |
2021-02-25 10:21:28 +0100 | <ski> | or, hm, something like that, at least |
2021-02-25 10:22:28 +0100 | functionalSalad | (d5b21a29@gateway/web/cgi-irc/kiwiirc.com/ip.213.178.26.41) |
2021-02-25 10:22:44 +0100 | <edwardk> | anyways with that in place i'd be able to work in IO returning unlifted values from individual combinators or ST s, etc. |
2021-02-25 10:22:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 10:22:54 +0100 | <edwardk> | the next hurdle is of course State s a |
2021-02-25 10:23:02 +0100 | <edwardk> | which is a nightmare because of the (s, a) |
2021-02-25 10:23:13 +0100 | <edwardk> | CPSing it can let me play Lev games i think |
2021-02-25 10:23:39 +0100 | <ski> | but prevents some lazy games, yes ? |
2021-02-25 10:23:39 +0100 | functionalSalad | (d5b21a29@gateway/web/cgi-irc/kiwiirc.com/ip.213.178.26.41) (Client Quit) |
2021-02-25 10:23:43 +0100 | <edwardk> | and of course there's the ReaderT IO pattern which might reduce the pressure |
2021-02-25 10:23:44 +0100 | <edwardk> | yeah |
2021-02-25 10:24:06 +0100 | <edwardk> | but then having a strict (# #) tuple in the result would also |
2021-02-25 10:24:19 +0100 | <ski> | mm |
2021-02-25 10:24:28 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 10:24:44 +0100 | <edwardk> | so i'm slowly butting into the ceiling for this crazy unlifted approach |
2021-02-25 10:24:45 +0100 | <ski> | (i was thinking of some left-recursion example) |
2021-02-25 10:24:50 +0100 | <edwardk> | yeah |
2021-02-25 10:25:56 +0100 | <ski> | (monochrom had some nice examples of this, iirc, on <lpaste.net> .. also some fun `unsafeInterleaveST' ones) |
2021-02-25 10:26:25 +0100 | <edwardk> | my usual goto is the foo = do fail "don't launch missiles"; put "ok" |
2021-02-25 10:26:38 +0100 | <ski> | hehe, yah |
2021-02-25 10:27:01 +0100 | <ski> | (still not really getting how the `JankyFunctor' would apply/help with what you're doing) |
2021-02-25 10:27:37 +0100 | <edwardk> | the goal was to get (>>=) , etc. to just work with representation polymorphic functors |
2021-02-25 10:27:45 +0100 | <edwardk> | even if the arrows you feed me for fmap, etc. change reps |
2021-02-25 10:28:11 +0100 | <edwardk> | :t enumFromThenTo |
2021-02-25 10:28:12 +0100 | <lambdabot> | Enum a => a -> a -> a -> [a] |
2021-02-25 10:28:13 +0100 | <ski> | "representation polymorphic functors" meaning what .. or how does it help ? |
2021-02-25 10:28:19 +0100 | kuribas | (~user@ptr-25vy0i970oqtzc3b45o.18120a2.ip6.access.telenet.be) |
2021-02-25 10:28:26 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Ping timeout: 240 seconds) |
2021-02-25 10:28:52 +0100 | <edwardk> | the default definition of that builds up a list of values of type Int, but then if i instantiate that for an a of kind TYPE 'DoubleRep or something i have to convert the list to one of a different type |
2021-02-25 10:28:58 +0100 | <edwardk> | it'd be nice if 'map' just worked here |
2021-02-25 10:29:10 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
2021-02-25 10:29:22 +0100 | <ski> | mhm |
2021-02-25 10:29:23 +0100 | <edwardk> | Just 1# :: Maybe Int# |
2021-02-25 10:29:31 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 10:29:33 +0100 | <edwardk> | is the easiest way to see it |
2021-02-25 10:30:15 +0100 | <edwardk> | or Maybe (MutVar# RealWold Foo) |
2021-02-25 10:30:24 +0100 | <edwardk> | holding an unlifted MutVar# directly |
2021-02-25 10:30:27 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 268 seconds) |
2021-02-25 10:30:37 +0100 | <edwardk> | now use (>>=) on that Maybe |
2021-02-25 10:30:51 +0100 | <edwardk> | or let an IO action return the raw unlifted Array# |
2021-02-25 10:31:08 +0100 | <edwardk> | rather than having to open up IO and go in and fiddle with State# RealWorld yourself |
2021-02-25 10:31:18 +0100 | <edwardk> | and then put it in a box before a user sees it |
2021-02-25 10:32:04 +0100 | <edwardk> | i'd _like_ to put programming with unlifted values on nearly equal footing to programming with lifted ones |
2021-02-25 10:32:11 +0100 | <edwardk> | with the standard classes just working |
2021-02-25 10:32:20 +0100 | <edwardk> | in practice i anticipate this needs more compiler support |
2021-02-25 10:32:25 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 10:32:27 +0100 | <ski> | the unlifted `MutVar# s a' is the reference/pointer/address directly to the cell, yes ? |
2021-02-25 10:32:32 +0100 | <edwardk> | but without a decent prototype of the vision its hard to get others on board |
2021-02-25 10:32:33 +0100 | <edwardk> | yeah |
2021-02-25 10:32:52 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 10:32:54 +0100 | <edwardk> | data IORef s a = IORef (MutVar# s a) -- is the box around the mutvar |
2021-02-25 10:33:19 +0100 | <edwardk> | the MutVar# s a is a mutable reference cell on the heap that holds a pointer to the actual object |
2021-02-25 10:34:18 +0100 | <edwardk> | but with type IORef# = MutVar# RealWorld -- newIORef# :: a -> IO (IORef# a)) |
2021-02-25 10:34:56 +0100 | <edwardk> | gives me back the naked MutVar# and then i can put it in my constructor with my own box, and use the nice do notation even though its unlifted, etc. |
2021-02-25 10:35:04 +0100 | dsrt^ | (dsrt@ip98-184-89-2.mc.at.cox.net) |
2021-02-25 10:35:27 +0100 | <ski> | sometimes i've wanted to be able to rephrase e.g. `newtype Foobar a = MkFooBar (ReaderT R (State S) a)' as `newtype Foobar :: * -> * = MkFooBar (ReaderT R (State S))' .. iow have the target type of `newtype's not necessarily be `*' |
2021-02-25 10:35:52 +0100 | <edwardk> | we have unlifted newtypes now |
2021-02-25 10:36:07 +0100 | <ski> | now it can be `#' (i use that as an abbreviation for the details), as well, which is an improvement |
2021-02-25 10:36:09 +0100 | <edwardk> | its not quite there |
2021-02-25 10:36:19 +0100 | <edwardk> | but its getting closer |
2021-02-25 10:36:35 +0100 | <edwardk> | i advocated for the newtypes over kind i -> ... as well at the time |
2021-02-25 10:36:43 +0100 | <edwardk> | using Coercible as a justification |
2021-02-25 10:36:50 +0100 | <edwardk> | but simon didn't buy it |
2021-02-25 10:37:06 +0100 | <edwardk> | i'll keep making the case |
2021-02-25 10:37:12 +0100 | ski | smiles |
2021-02-25 10:37:33 +0100 | <ski> | i'm not quite sure how it would work .. but i think it would be nice, if we could get a reasonable story |
2021-02-25 10:37:49 +0100 | <edwardk> | i think the issue is the constructor doesn't make sense |
2021-02-25 10:37:50 +0100 | leo___ | (~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net) |
2021-02-25 10:37:57 +0100 | <ski> | yea .. |
2021-02-25 10:38:13 +0100 | <edwardk> | so you can only coerce |
2021-02-25 10:38:22 +0100 | <edwardk> | and we don't have a syntax for that |
2021-02-25 10:38:25 +0100 | <ski> | (i've been pondering a little some ideas about internal language in functor categories ..) |
2021-02-25 10:39:39 +0100 | <edwardk> | another option would be some scarier rules about coercible that looked at the definition of a newtype and checked to see if it could be eta-reduced like that |
2021-02-25 10:39:51 +0100 | <edwardk> | and gave the more general Coercible definition |
2021-02-25 10:40:30 +0100 | <edwardk> | Then the Coercible for Foo a to Bar b would be build off of Coercible Foo Bar and Coercible a b |
2021-02-25 10:41:14 +0100 | <edwardk> | right now you have to fully saturate which blocks a number of usecases |
2021-02-25 10:42:25 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Quit: Leaving) |
2021-02-25 10:42:44 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-wygvvgugafrkzfoy) (Quit: Connection closed for inactivity) |
2021-02-25 10:43:33 +0100 | <ski> | also reminds me i've wanted to be able to say things like `newtype c (Foo a) = FmapFoo (c (Bar a Int))' where say `Foo :: * -> K',`Bar :: * -> * -> K' and `FmapFoo :: forall (c :: K -> *). c (Bar a Int) -> c (Foo a)' |
2021-02-25 10:44:03 +0100 | <edwardk> | yeah, that rhymes here |
2021-02-25 10:44:16 +0100 | afidegnum | (~afidegnum@102.176.65.99) (Ping timeout: 240 seconds) |
2021-02-25 10:44:28 +0100 | <edwardk> | ok, sleepy time. i have a stupid early day tomorrow |
2021-02-25 10:44:42 +0100 | <ski> | .. also wanting to be able to redeclare a `newtype', with a different data constructor, as long as the representations are coercible |
2021-02-25 10:44:59 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
2021-02-25 10:45:24 +0100 | <edwardk> | pattern synonyms? |
2021-02-25 10:45:54 +0100 | <ski> | so we could both have `newtype State s a = MkState (s -> (s,a))' and `newtype State s a = StateFromStateT (StateT Identity s a)' at the same time |
2021-02-25 10:46:07 +0100 | <ski> | yea .. i guess |
2021-02-25 10:46:17 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-02-25 10:46:27 +0100 | afidegnum | (~afidegnum@102.176.65.243) |
2021-02-25 10:46:46 +0100 | <ski> | (well, or possibly the latter being a synonym, `StateT' still being a a `newtype') |
2021-02-25 10:47:32 +0100 | <ski> | have fun with `Lev' |
2021-02-25 10:51:57 +0100 | catt | (~r@31.127.31.99) |
2021-02-25 10:53:12 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2021-02-25 10:54:19 +0100 | DataComp_ | (~lumeng@50.43.26.251) |
2021-02-25 10:54:23 +0100 | MVQq | (~anja@198.254.199.42) |
2021-02-25 10:54:27 +0100 | vchlup_ | (~vchlup@nat.brnet.cz) |
2021-02-25 10:54:34 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Ping timeout: 265 seconds) |
2021-02-25 10:54:39 +0100 | dcoutts_ | (~dcoutts@unaffiliated/dcoutts) |
2021-02-25 10:54:40 +0100 | travisb_ | (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-02-25 10:54:43 +0100 | ralu9 | (~ralu@static.211.245.203.116.clients.your-server.de) |
2021-02-25 10:54:49 +0100 | dh | (dh@bsd.ee) (Disconnected by services) |
2021-02-25 10:54:55 +0100 | dh_ | (dh@bsd.ee) |
2021-02-25 10:55:03 +0100 | concept27 | (~concept2@unaffiliated/tubo) |
2021-02-25 10:55:05 +0100 | MasseR3 | (~MasseR@51.15.143.128) |
2021-02-25 10:55:20 +0100 | madnificent_ | (~madnifice@static.210.74.63.178.clients.your-server.de) |
2021-02-25 10:55:20 +0100 | lockshaw_ | (~lockshaw@165.22.163.71) |
2021-02-25 10:55:36 +0100 | LittleFox94 | (~littlefox@rondra.lf-net.org) |
2021-02-25 10:55:36 +0100 | dave_uy3 | (~david@108.61.193.26) |
2021-02-25 10:55:44 +0100 | koz | (~koz@2404:4408:4342:2a00:1958:92dc:60f3:680b) |
2021-02-25 10:55:52 +0100 | maerwald_ | (~maerwald@mail.hasufell.de) |
2021-02-25 10:55:55 +0100 | datajerk_ | (~datajerk@sense.net) |
2021-02-25 10:55:59 +0100 | sepples_ | (~sepples@67.205.168.224) |
2021-02-25 10:56:00 +0100 | mrusme | (~mrus@128.199.8.231) |
2021-02-25 10:56:09 +0100 | dorkside1 | (~tdbgamer@208.190.197.222) |
2021-02-25 10:56:37 +0100 | xlei_ | (znc@unaffiliated/xlei) |
2021-02-25 10:56:41 +0100 | Bergle_3 | (~Bergle_4@101.165.90.119) |
2021-02-25 10:56:47 +0100 | hexo| | (~hexo@83.167.228.130) |
2021-02-25 10:57:12 +0100 | smerdyakov7 | (~dan@5.146.194.90) |
2021-02-25 10:57:32 +0100 | Sparad0x | (~etienne@ns3123347.ip-51-68-152.eu) |
2021-02-25 10:57:53 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 10:58:00 +0100 | hyiltiz__ | (~quassel@31.220.5.250) |
2021-02-25 10:58:11 +0100 | dwts_ | (pid@gateway/shell/blinkenshell.org/x-cbprcwhcmsnoinei) |
2021-02-25 10:58:18 +0100 | theDon_ | (~td@muedsl-82-207-238-098.citykom.de) |
2021-02-25 10:58:18 +0100 | justsome1 | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-25 10:58:27 +0100 | charukiewicz_ | (~quassel@irouteince04.i.subnet.rcn.com) |
2021-02-25 10:58:27 +0100 | TommyC7 | (~TommyC@unaffiliated/sepulchralbloom) |
2021-02-25 10:58:41 +0100 | mmarusea1ph2 | (~mihai@198.199.100.72) |
2021-02-25 10:58:41 +0100 | lkurusa_ | (~lkurusa@209.250.237.122) |
2021-02-25 10:58:45 +0100 | hpc_ | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2021-02-25 10:58:50 +0100 | hiredman_ | (~hiredman@volyova.ec2.thelastcitadel.com) |
2021-02-25 10:58:55 +0100 | tomku|two | (~tomku@unaffiliated/tomku) |
2021-02-25 10:58:58 +0100 | saurik_ | (saurik@carrier.saurik.com) |
2021-02-25 10:58:59 +0100 | retlo | (~retlo@172.245.134.89) |
2021-02-25 10:59:11 +0100 | lekc | (~Neuromanc@unaffiliated/neuromancer) |
2021-02-25 10:59:12 +0100 | cole-h_ | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-25 10:59:19 +0100 | rotaerk_ | (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) |
2021-02-25 10:59:31 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) (Disconnected by services) |
2021-02-25 10:59:33 +0100 | Katarushisu3 | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
2021-02-25 10:59:35 +0100 | lekc | Neuromancer |
2021-02-25 11:00:07 +0100 | omnitrogen_ | (~omnitroge@vps-c9700282.vps.ovh.net) |
2021-02-25 11:00:09 +0100 | meck_ | (~meck@li1809-18.members.linode.com) |
2021-02-25 11:00:16 +0100 | mstksg | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2021-02-25 11:00:16 +0100 | mstksg | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2021-02-25 11:00:16 +0100 | mstksg | (~mstksg@unaffiliated/mstksg) |
2021-02-25 11:00:25 +0100 | tolt_ | (~weechat-h@li219-154.members.linode.com) |
2021-02-25 11:00:27 +0100 | earthy_ | (~arthurvl@deban2.xs4all.space) |
2021-02-25 11:00:38 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-25 11:00:39 +0100 | Chobbes_ | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-02-25 11:00:44 +0100 | tv1 | (~tv@unaffiliated/tv) |
2021-02-25 11:00:49 +0100 | lassulus_ | (~lassulus@NixOS/user/lassulus) |
2021-02-25 11:01:04 +0100 | cyphase_eviltwin | (~cyphase@unaffiliated/cyphase) |
2021-02-25 11:01:21 +0100 | chirpsal1 | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-02-25 11:01:57 +0100 | kloeri_ | (~kloeri@freenode/staff/exherbo.kloeri) |
2021-02-25 11:02:57 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-25 11:03:09 +0100 | stree | (~stree@68.36.8.116) (*.net *.split) |
2021-02-25 11:03:09 +0100 | rotaerk | (~rotaerk@ender.afternet.org) (*.net *.split) |
2021-02-25 11:03:09 +0100 | koz_ | (~koz@121.99.240.58) (*.net *.split) |
2021-02-25 11:03:09 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (*.net *.split) |
2021-02-25 11:03:09 +0100 | DataComputist | (~lumeng@50.43.26.251) (*.net *.split) |
2021-02-25 11:03:09 +0100 | theDon | (~td@muedsl-82-207-238-098.citykom.de) (*.net *.split) |
2021-02-25 11:03:09 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (*.net *.split) |
2021-02-25 11:03:10 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) (*.net *.split) |
2021-02-25 11:03:10 +0100 | maerwald | (~maerwald@mail.hasufell.de) (*.net *.split) |
2021-02-25 11:03:10 +0100 | vchlup | (~vchlup@nat.brnet.cz) (*.net *.split) |
2021-02-25 11:03:10 +0100 | petersen | (~petersen@redhat/juhp) (*.net *.split) |
2021-02-25 11:03:10 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (*.net *.split) |
2021-02-25 11:03:10 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (*.net *.split) |
2021-02-25 11:03:10 +0100 | Katarushisu | (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (*.net *.split) |
2021-02-25 11:03:10 +0100 | dwts | (pid@gateway/shell/blinkenshell.org/x-iihycrpwtmkkjrix) (*.net *.split) |
2021-02-25 11:03:10 +0100 | hexo- | (~hexo@83.167.228.130) (*.net *.split) |
2021-02-25 11:03:11 +0100 | meck | (~meck@li1809-18.members.linode.com) (*.net *.split) |
2021-02-25 11:03:11 +0100 | madnificent | (~madnifice@static.210.74.63.178.clients.your-server.de) (*.net *.split) |
2021-02-25 11:03:11 +0100 | gienah | (~mwright@gentoo/developer/gienah) (*.net *.split) |
2021-02-25 11:03:11 +0100 | MarcelineVQ | (~anja@198.254.199.42) (*.net *.split) |
2021-02-25 11:03:11 +0100 | tomku | (~tomku@unaffiliated/tomku) (*.net *.split) |
2021-02-25 11:03:11 +0100 | datajerk | (~datajerk@sense.net) (*.net *.split) |
2021-02-25 11:03:11 +0100 | mrus | (~mrus@128.199.8.231) (*.net *.split) |
2021-02-25 11:03:12 +0100 | dorkside | (~tdbgamer@208.190.197.222) (*.net *.split) |
2021-02-25 11:03:12 +0100 | smerdyakov | (~dan@5.146.194.90) (*.net *.split) |
2021-02-25 11:03:12 +0100 | dave_uy | (~david@108.61.193.26) (*.net *.split) |
2021-02-25 11:03:12 +0100 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) (*.net *.split) |
2021-02-25 11:03:12 +0100 | shailangsa | (~shailangs@host86-186-191-40.range86-186.btcentralplus.com) (*.net *.split) |
2021-02-25 11:03:12 +0100 | mmaruseacph2 | (~mihai@198.199.100.72) (*.net *.split) |
2021-02-25 11:03:12 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) (*.net *.split) |
2021-02-25 11:03:12 +0100 | yahb | (xsbot@haskell/bot/yahb) (*.net *.split) |
2021-02-25 11:03:12 +0100 | thecoffemaker | (~thecoffem@unaffiliated/thecoffemaker) (*.net *.split) |
2021-02-25 11:03:12 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) (*.net *.split) |
2021-02-25 11:03:12 +0100 | dcoutts | (~dcoutts@unaffiliated/dcoutts) (*.net *.split) |
2021-02-25 11:03:12 +0100 | LittleFox | (~littlefox@rondra.lf-net.org) (*.net *.split) |
2021-02-25 11:03:12 +0100 | tv | (~tv@unaffiliated/tv) (*.net *.split) |
2021-02-25 11:03:13 +0100 | tabemann | (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split) |
2021-02-25 11:03:13 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (*.net *.split) |
2021-02-25 11:03:13 +0100 | earthy | (~arthurvl@deban2.xs4all.space) (*.net *.split) |
2021-02-25 11:03:13 +0100 | noctux | (~noctux@unaffiliated/noctux) (*.net *.split) |
2021-02-25 11:03:13 +0100 | swater | (bouhier200@perso.iiens.net) (*.net *.split) |
2021-02-25 11:03:13 +0100 | c-rog | (~c-rog@traffic.simst.im) (*.net *.split) |
2021-02-25 11:03:13 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) (*.net *.split) |
2021-02-25 11:03:13 +0100 | MasseR | (~MasseR@51.15.143.128) (*.net *.split) |
2021-02-25 11:03:13 +0100 | lkurusa | (~lkurusa@fedora/Levex) (*.net *.split) |
2021-02-25 11:03:13 +0100 | jle` | (~mstksg@unaffiliated/mstksg) (*.net *.split) |
2021-02-25 11:03:13 +0100 | omnitrogen | (~omnitroge@vps-c9700282.vps.ovh.net) (*.net *.split) |
2021-02-25 11:03:13 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (*.net *.split) |
2021-02-25 11:03:13 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (*.net *.split) |
2021-02-25 11:03:13 +0100 | Bergle_2 | (~Bergle_4@101.165.90.119) (*.net *.split) |
2021-02-25 11:03:13 +0100 | Sparadox | (~etienne@ns3123347.ip-51-68-152.eu) (*.net *.split) |
2021-02-25 11:03:13 +0100 | concept2 | (~concept2@unaffiliated/tubo) (*.net *.split) |
2021-02-25 11:03:13 +0100 | kloeri | (~kloeri@freenode/staff/exherbo.kloeri) (*.net *.split) |
2021-02-25 11:03:13 +0100 | Reiser | (~0a2a0001@static.210.242.216.95.clients.your-server.de) (*.net *.split) |
2021-02-25 11:03:14 +0100 | saurik | (saurik@carrier.saurik.com) (*.net *.split) |
2021-02-25 11:03:14 +0100 | \2E0KNO | (~retlo@172.245.134.89) (*.net *.split) |
2021-02-25 11:03:14 +0100 | xlei | (znc@unaffiliated/xlei) (*.net *.split) |
2021-02-25 11:03:14 +0100 | lockshaw | (~lockshaw@165.22.163.71) (*.net *.split) |
2021-02-25 11:03:14 +0100 | sssb54 | (~ssssb56@vps-b2931db6.vps.ovh.ca) (*.net *.split) |
2021-02-25 11:03:14 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
2021-02-25 11:03:14 +0100 | sepples | (~sepples@67.205.168.224) (*.net *.split) |
2021-02-25 11:03:14 +0100 | hiredman | (~hiredman@volyova.ec2.thelastcitadel.com) (*.net *.split) |
2021-02-25 11:03:15 +0100 | ralu9 | ralu |
2021-02-25 11:03:15 +0100 | MasseR3 | MasseR |
2021-02-25 11:03:15 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-02-25 11:03:15 +0100 | Katarushisu3 | Katarushisu |
2021-02-25 11:03:15 +0100 | meck_ | meck |
2021-02-25 11:03:15 +0100 | concept27 | concept2 |
2021-02-25 11:03:15 +0100 | dorkside1 | dorkside |
2021-02-25 11:03:15 +0100 | xlei_ | xlei |
2021-02-25 11:03:15 +0100 | thecoffemaker_ | (~thecoffem@125-121-245-190.fibertel.com.ar) |
2021-02-25 11:03:15 +0100 | lassulus_ | lassulus |
2021-02-25 11:03:23 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-02-25 11:03:28 +0100 | smerdyakov7 | smerdyakov |
2021-02-25 11:03:31 +0100 | omnitrogen_ | omnitrogen |
2021-02-25 11:03:49 +0100 | gienah | (~mwright@gentoo/developer/gienah) |
2021-02-25 11:04:01 +0100 | yahb | (xsbot@haskell/bot/yahb) |
2021-02-25 11:04:43 +0100 | swater | (bouhier200@perso.iiens.net) |
2021-02-25 11:05:57 +0100 | zmv- | (~zmv@191.255.89.231) (Ping timeout: 264 seconds) |
2021-02-25 11:05:57 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-02-25 11:05:57 +0100 | Firedancer | (sid336191@gateway/web/irccloud.com/x-fizivvwzbeaikpdv) (Ping timeout: 264 seconds) |
2021-02-25 11:05:59 +0100 | Reiser | (~0a2a0001@static.210.242.216.95.clients.your-server.de) |
2021-02-25 11:06:20 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2021-02-25 11:06:33 +0100 | jdt | (~jdt@208.85.233.130) (Ping timeout: 264 seconds) |
2021-02-25 11:06:54 +0100 | Firedancer | (sid336191@gateway/web/irccloud.com/x-eykckjivzotazeph) |
2021-02-25 11:06:58 +0100 | cyphase_eviltwin | cyphase_ |
2021-02-25 11:07:02 +0100 | cyphase_ | cyphase |
2021-02-25 11:07:09 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 264 seconds) |
2021-02-25 11:07:19 +0100 | cole-h_ | cole-h |
2021-02-25 11:08:10 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) |
2021-02-25 11:08:21 +0100 | jdt | (~jdt@208.85.233.130) |
2021-02-25 11:09:31 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-gewvwhbittubyvln) (Quit: Connection closed for inactivity) |
2021-02-25 11:11:33 +0100 | sssb54 | (~ssssb56@vps-b2931db6.vps.ovh.ca) |
2021-02-25 11:11:35 +0100 | tv1 | tv |
2021-02-25 11:12:01 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
2021-02-25 11:16:59 +0100 | Shailangsa_ | (~shailangs@host86-186-191-40.range86-186.btcentralplus.com) |
2021-02-25 11:18:32 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 11:19:57 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Quit: Leaving) |
2021-02-25 11:19:58 +0100 | saitamaplus | (uid272474@gateway/web/irccloud.com/x-pvdimpwkxzjbymuk) |
2021-02-25 11:20:09 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
2021-02-25 11:20:20 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-25 11:20:32 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-25 11:20:32 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-02-25 11:23:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 11:24:28 +0100 | pavonia^\_^\ | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-02-25 11:25:51 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-25 11:26:28 +0100 | maerwald_ | maerwald |
2021-02-25 11:28:12 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-02-25 11:28:43 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving) |
2021-02-25 11:30:15 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2021-02-25 11:30:24 +0100 | thorsten` | (~Thorsten@ananke.uberspace.de) ("WeeChat 2.7.1") |
2021-02-25 11:33:52 +0100 | <olligobber> | someone here mentioned a way of checking constants are well behaved at compile time |
2021-02-25 11:35:08 +0100 | <olligobber> | so if I have `free :: Char -> Maybe Free', I can use 'A' as a value of type Free since free 'A' = Just ..., but using '(' as a vlaue of type Free will fail at compile time because free '(' = Nothing |
2021-02-25 11:35:28 +0100 | <olligobber> | but I can't remember what it was called or how to find it |
2021-02-25 11:35:29 +0100 | <merijn> | @hackage validated-literals |
2021-02-25 11:35:29 +0100 | <lambdabot> | https://hackage.haskell.org/package/validated-literals |
2021-02-25 11:35:37 +0100 | <merijn> | That one, probably :p |
2021-02-25 11:36:09 +0100 | <olligobber> | ty |
2021-02-25 11:36:46 +0100 | <merijn> | olligobber: For maximum ease of use you'll want -XDeriveLift and derive Lift for Free |
2021-02-25 11:36:53 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2021-02-25 11:37:00 +0100 | <merijn> | Then you can just do instance Char Free where fromLiteral = free" |
2021-02-25 11:38:05 +0100 | <merijn> | (with a Lift instance on Free you 1) don't have to implement liftResult and 2) you'll compile the *result* of conversion into the exe, rather than having to redo it at runtime) |
2021-02-25 11:39:23 +0100 | <olligobber> | but not all valid Chars are valid Frees? |
2021-02-25 11:40:30 +0100 | <olligobber> | I don't understand Lift |
2021-02-25 11:41:03 +0100 | <ski> | (s/Char Free/Lift Char Free/ ?) |
2021-02-25 11:41:27 +0100 | <olligobber> | Lift only has one parameter |
2021-02-25 11:41:45 +0100 | <olligobber> | I think e means Validate Char Free |
2021-02-25 11:42:14 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-02-25 11:43:02 +0100 | <olligobber> | ah, I don't have validated literals installed :/ |
2021-02-25 11:43:34 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 11:43:39 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.137) |
2021-02-25 11:43:50 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 264 seconds) |
2021-02-25 11:44:24 +0100 | theDon_ | theDon |
2021-02-25 11:45:31 +0100 | CatWithMoustache | (~CatWithMo@gateway/tor-sasl/catwithmoustache) |
2021-02-25 11:45:50 +0100 | <olligobber> | how do I install packages? |
2021-02-25 11:46:06 +0100 | <Uniaika> | with Cabal |
2021-02-25 11:46:15 +0100 | <Uniaika> | olligobber: https://cabal.readthedocs.io/en/3.4/ |
2021-02-25 11:46:33 +0100 | danso | (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-02-25 11:46:50 +0100 | <olligobber> | "3.2. Building and installing packages To be written" |
2021-02-25 11:46:51 +0100 | <olligobber> | lol |
2021-02-25 11:47:28 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 11:47:34 +0100 | <Uniaika> | https://cabal.readthedocs.io/en/3.4/getting-started.html#creating-a-new-application |
2021-02-25 11:47:34 +0100 | dh_ | (dh@bsd.ee) (Quit: "Fhtagn-Nagh Yog Sothoth") |
2021-02-25 11:47:46 +0100 | dh | (dh@bsd.ee) |
2021-02-25 11:48:00 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 11:48:11 +0100 | integerDivision | (d5b21a29@gateway/web/cgi-irc/kiwiirc.com/ip.213.178.26.41) (Quit: Connection closed) |
2021-02-25 11:48:45 +0100 | coot_ | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 11:48:46 +0100 | coot_ | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-25 11:49:48 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 11:51:19 +0100 | CatWithMoustache | (~CatWithMo@gateway/tor-sasl/catwithmoustache) (Quit: Leaving) |
2021-02-25 11:51:24 +0100 | <olligobber> | I think I understand why I need lift |
2021-02-25 11:52:16 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-25 11:53:45 +0100 | ubert | (~Thunderbi@p200300ecdf25d946a0d2e31ed48a2cf4.dip0.t-ipconnect.de) |
2021-02-25 11:53:56 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-25 11:56:01 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 11:58:08 +0100 | kam1 | (~kam1@5.125.126.175) |
2021-02-25 12:00:03 +0100 | <mananamenos> | hi, what are the advantages that ones gets when defining something like `newtype App a = App (ReaderT SomeEnv IO a)`. Why not using directly `ReaderT SomeEnv IO a` with a type alias App for example? |
2021-02-25 12:01:06 +0100 | <__monty__> | mananamenos: String is a type synonym. Sometimes [Char] shines through in error messages. |
2021-02-25 12:01:37 +0100 | <__monty__> | It's also a new type so you can define typeclass instances for it. |
2021-02-25 12:02:04 +0100 | <mananamenos> | __monty__, i know, that's what i meant with type alias, sorry, wanted to say type synonym |
2021-02-25 12:02:30 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-25 12:03:04 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) |
2021-02-25 12:03:26 +0100 | <__monty__> | That's alright, I figured and answered the question as if you'd said type synonym : ) |
2021-02-25 12:03:42 +0100 | liff | (liff@kapsi.fi) () |
2021-02-25 12:04:00 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-25 12:05:04 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-02-25 12:05:26 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-25 12:05:46 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-25 12:05:46 +0100 | <__minoru__shirae> | is it possible to parameterize a type synonym? |
2021-02-25 12:06:06 +0100 | <__minoru__shirae> | if not, then it could be one of the reasons |
2021-02-25 12:07:32 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-25 12:07:54 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 12:07:55 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 12:07:56 +0100 | centril | (~centril@213-66-146-92-no250.tbcn.telia.com) (Ping timeout: 240 seconds) |
2021-02-25 12:08:22 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 12:10:07 +0100 | centril | (~centril@213-66-146-92-no250.tbcn.telia.com) |
2021-02-25 12:10:22 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 12:11:25 +0100 | sablib | (~sablib@59.173.155.233) (Ping timeout: 260 seconds) |
2021-02-25 12:11:51 +0100 | sablib | (~sablib@59.173.152.169) |
2021-02-25 12:12:37 +0100 | <__monty__> | > type YAMaybe a = Maybe a; let x = Nothing :: YAMaybe Bool in x |
2021-02-25 12:12:39 +0100 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘type’ |
2021-02-25 12:12:46 +0100 | <__monty__> | % type YAMaybe a = Maybe a; let x = Nothing :: YAMaybe Bool in x |
2021-02-25 12:12:47 +0100 | <yahb> | __monty__: ; <interactive>:32:62: error:; * Couldn't match type: Maybe Bool; with: Q [Dec]; Expected: DecsQ; Actual: YAMaybe Bool; * In the expression: x; In the expression: let x = Nothing :: YAMaybe Bool in x |
2021-02-25 12:13:09 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-02-25 12:13:11 +0100 | fr33domlover | (~fr33domlo@fsf/member/fr33domlover) (Quit: fr33domlover) |
2021-02-25 12:13:44 +0100 | fr33domlover | (~fr33domlo@fsf/member/fr33domlover) |
2021-02-25 12:15:28 +0100 | <ski> | __minoru__shirae : yes. but you can't partially apply it (which prevents making it an instance of a type class, sometimes) |
2021-02-25 12:15:43 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-25 12:16:43 +0100 | <ski> | (or, with `LiberalTypeSynonyms' you can partially apply it (possibly to zero parameters), if that partial application is itself passed as a parameter to another type *synonym*, which will eventually end up fully applying it) |
2021-02-25 12:16:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-25 12:18:05 +0100 | kloeri_ | kloeri |
2021-02-25 12:18:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:19:06 +0100 | tomsmeding | thinks yahb is quite confused there |
2021-02-25 12:19:09 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-amxewsahyzvflymf) |
2021-02-25 12:19:16 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 12:20:00 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 12:20:41 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 12:21:02 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Client Quit) |
2021-02-25 12:23:04 +0100 | <ski> | i guess it's interpreting the latter as an implicit declaration splice ? |
2021-02-25 12:23:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 12:23:59 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection) |
2021-02-25 12:24:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 12:24:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:24:35 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) |
2021-02-25 12:27:30 +0100 | zmv- | (~zmv@191.255.89.231) |
2021-02-25 12:28:07 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) |
2021-02-25 12:28:45 +0100 | <ph88> | hi all |
2021-02-25 12:29:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-25 12:29:54 +0100 | <ski> | lo any |
2021-02-25 12:30:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:31:29 +0100 | xff0x | (~xff0x@2001:1a81:5295:6100:414c:c2f4:f5f5:8081) (Ping timeout: 272 seconds) |
2021-02-25 12:31:52 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 12:32:02 +0100 | xff0x | (~xff0x@2001:1a81:5295:6100:2300:7794:1c77:29ff) |
2021-02-25 12:32:54 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-25 12:33:02 +0100 | <int-e> | ski dishing out complements |
2021-02-25 12:34:23 +0100 | ski | does the dishes |
2021-02-25 12:35:25 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) |
2021-02-25 12:35:33 +0100 | <ph88> | just did mine :P |
2021-02-25 12:36:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-25 12:36:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:37:02 +0100 | Guest_63 | (53d194a8@h83-209-148-168.cust.a3fiber.se) |
2021-02-25 12:37:39 +0100 | Guest_63 | (53d194a8@h83-209-148-168.cust.a3fiber.se) (Client Quit) |
2021-02-25 12:38:26 +0100 | <maerwald> | if you want to feel trolled... try to ctrl+c a cabal build inside a docker container |
2021-02-25 12:38:41 +0100 | Feuermagier | has a dishwasher and is very happy about it |
2021-02-25 12:38:44 +0100 | <ph88> | i am working on a language. I have the parsing done in megaparsec. Megaparsec gives the error location in case of wrong syntax (that's cool). But after that with the semantic analysis i would also like to know the source position in case things go wrong. I saw that megaparsec offers this function https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec.html#v:getSourcePos which is cool, but it says: This function is |
2021-02-25 12:38:44 +0100 | <ph88> | not cheap, do not call it e.g. on matching of every token, that's a bad idea. How can i best handle this situation ? |
2021-02-25 12:39:40 +0100 | <ph88> | i would like to get a source location for the semantic error and ideally also the call trace. I don't know how i could implement this other than storing the source position of each token in the concrete syntax tree and thus calling getSourcePos everywhere |
2021-02-25 12:40:23 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2021-02-25 12:40:28 +0100 | <ph88> | now i have the situation where i have userland exceptions (in my language, not haskell) and i have to go through the sources manually to figure out which exception from where it could be |
2021-02-25 12:42:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-25 12:42:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:43:25 +0100 | <edwardk> | this is why trifecta focused on making that function cheap ;) albeit at the cost of making the regular parser a bit more expensive |
2021-02-25 12:44:05 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
2021-02-25 12:44:21 +0100 | <edwardk> | megaparsec came along later and jettisoned all of that, though they got a lot of other stuff right |
2021-02-25 12:45:24 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-25 12:46:33 +0100 | NieDzejkob_ | (~quassel@195.149.98.3) ("https://quassel-irc.org - Chat comfortably. Anywhere.") |
2021-02-25 12:46:43 +0100 | NieDzejkob_ | (~quassel@195.149.98.3) |
2021-02-25 12:47:51 +0100 | <ph88> | i am a bit on a crossroads now. Changing megaparsec to another parser would not be my first choice (although might be necessary in this case). I could either go against the advice and use sourePos everywhere (i don't know exactly how much the slowdown will be). Or i could run a second parser (which i would have to develop) when the first own detects an exception, then i would get the slowdonwn only in the situation when a semantic |
2021-02-25 12:47:51 +0100 | <ph88> | error has occured. |
2021-02-25 12:48:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-02-25 12:48:24 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-25 12:48:37 +0100 | <ph88> | by the way .. nice error formatting in trifecta :) |
2021-02-25 12:48:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:48:46 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) |
2021-02-25 12:48:48 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) |
2021-02-25 12:49:18 +0100 | coot | (~coot@37.30.60.232.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 12:51:34 +0100 | <ski> | your userland exceptions happens during parsing of your language ? |
2021-02-25 12:51:55 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2021-02-25 12:53:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-25 12:54:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 12:54:35 +0100 | <swarmcollective> | True, safety is "slower". Ha! |
2021-02-25 12:54:37 +0100 | <swarmcollective> | True, safety is "slower". Ha! |
2021-02-25 12:55:04 +0100 | <ph88> | ski, no they don't happen during parsing of course. It happens when the userland code is evaluated. |
2021-02-25 12:55:41 +0100 | <ph88> | the problem is that only the parser can capture the source location which can be needed during further stages of analysis (beyond the parsing stage) |
2021-02-25 12:55:51 +0100 | <ski> | then i don't understand "Or i could run a second parser (which i would have to develop) when the first own detects an exception" |
2021-02-25 12:56:02 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 12:56:30 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-02-25 12:56:46 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-02-25 12:56:47 +0100 | <ph88> | then i can keep megaparsec working fast in the case where no exception occured. And suffer performance to run a second parser which keeps track of locations to give additional information in the exception case |
2021-02-25 12:57:32 +0100 | <ski> | it still sounds to me like your exceptions occurs during parse-time, rather than run-time |
2021-02-25 12:59:57 +0100 | <ph88> | hmm don't know how to explain it. Parsing stage is done .. language is running (being interpreted, not compiled to bytecode). Then userland exception occurs .. |
2021-02-25 13:00:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-25 13:00:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 13:02:40 +0100 | <ski> | and then you re-parse, having kept the source around ? |
2021-02-25 13:03:11 +0100 | <swarmcollective> | ph88, re: "other than storing the source position of each token in the concrete syntax tree" Could you build a matching tree of source positions and only reference it in the case of an exception? |
2021-02-25 13:03:36 +0100 | <ph88> | ski, yes keeping around the source location for each token on the reparse |
2021-02-25 13:03:39 +0100 | <swarmcollective> | That would keep the concrete syntax tree clean(er)? |
2021-02-25 13:04:23 +0100 | <ph88> | swarmcollective, yes exactly that "build a matching tree of source positions" the second parser could do in case of the exception |
2021-02-25 13:04:26 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 13:04:31 +0100 | <ski> | i think the perceived problem was that `getSourcePos' was stated to be expensive, and it'd be required to call that at least at exception raise/signalling positions, and also at every call site, if you want call trace to include location info |
2021-02-25 13:05:12 +0100 | <ski> | ph88 : not sure if you'd need it for every token. for every AST node would be not quite as expensive |
2021-02-25 13:05:12 +0100 | <edwardk> | ph88: with trifecta i mostly just wanted to move the bar on how nice error messages could be in haskell. before trifecta they were... sad, meanwhile clang looked amazing. |
2021-02-25 13:05:26 +0100 | <edwardk> | i'm really glad that others took the idea and ran with it |
2021-02-25 13:05:36 +0100 | ski | . o O ( monoidal parsing ) |
2021-02-25 13:05:40 +0100 | <edwardk> | i build trifecta mostly for me to use |
2021-02-25 13:05:55 +0100 | <edwardk> | yeah i do want to peel that bit of kit out of coda and figure out a way to ship it |
2021-02-25 13:06:08 +0100 | <edwardk> | er built |
2021-02-25 13:06:20 +0100 | <ph88> | ski, ya i guess only at call sites it would be needed which is not strictly every token .. good thinking |
2021-02-25 13:06:38 +0100 | <edwardk> | mostly annoyed at myself for taking the 'parsing trifecta' talk title and using it for the trifecta library that had nothing to do with the techniques from that talk ;) |
2021-02-25 13:06:56 +0100 | <ph88> | edwardk, yes i love that too ... got very much inspired by the error messages from rust and elm ... didn't know clang also made big steps in this direction |
2021-02-25 13:07:13 +0100 | coot | (~coot@37.30.60.232.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 13:07:20 +0100 | <edwardk> | clang was the first of the compilers to go all in with ^'s pointing to errors on lines and spans and fixits |
2021-02-25 13:07:20 +0100 | magnuscake | (~magnuscak@87.121.92.61) |
2021-02-25 13:07:29 +0100 | <ph88> | what talk are you refering to ? |
2021-02-25 13:07:40 +0100 | plutoniix | (~q@184.82.223.179) (Quit: Leaving) |
2021-02-25 13:08:04 +0100 | <edwardk> | http://comonad.com/reader/2009/iteratees-parsec-and-monoid/ |
2021-02-25 13:08:10 +0100 | <ph88> | https://elm-lang.org/news/the-syntax-cliff https://github.com/elm/error-message-catalog |
2021-02-25 13:08:12 +0100 | <edwardk> | i gave a couple others back in that era |
2021-02-25 13:08:13 +0100 | <ski> | edwardk : which was the talk about ? |
2021-02-25 13:08:23 +0100 | michalz | (~user@185.246.204.46) |
2021-02-25 13:08:25 +0100 | <ph88> | jeez that's quite the era ago :P |
2021-02-25 13:08:36 +0100 | <edwardk> | ways to carve up input on error productions, then splice parse results together |
2021-02-25 13:09:34 +0100 | <magnuscake> | Hello peeps. I'm having a hard time understanding how the following evaluates: |
2021-02-25 13:09:50 +0100 | <magnuscake> | fold :: (flip (*)) 1 [1..3] |
2021-02-25 13:09:57 +0100 | <magnuscake> | so for something like: |
2021-02-25 13:09:58 +0100 | <edwardk> | the monoid talk goes into some surprising detail looking back |
2021-02-25 13:10:04 +0100 | <ski> | (reminds me that OCaml conjures up possible inputs not matched by an inexhaustive pattern-matching) |
2021-02-25 13:10:19 +0100 | <magnuscake> | foldl :: (*) 1 [1..5] |
2021-02-25 13:10:27 +0100 | <edwardk> | no :: in there |
2021-02-25 13:10:32 +0100 | <ski> | magnuscake : i think you probably don't want the `::' ? |
2021-02-25 13:10:36 +0100 | <magnuscake> | whoops my bad |
2021-02-25 13:10:45 +0100 | <edwardk> | > foldl (*) 1 [1..5] :: Expr |
2021-02-25 13:10:47 +0100 | <lambdabot> | 1 * 1 * 2 * 3 * 4 * 5 |
2021-02-25 13:10:55 +0100 | <edwardk> | > foldl (flip (*)) 1 [1..5] :: Expr |
2021-02-25 13:10:55 +0100 | <ski> | edwardk beat me to it :) |
2021-02-25 13:10:56 +0100 | <lambdabot> | 5 * (4 * (3 * (2 * (1 * 1)))) |
2021-02-25 13:11:03 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 13:11:03 +0100 | <magnuscake> | foldl (*) 1 [1..5] |
2021-02-25 13:11:08 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 13:11:11 +0100 | <magnuscake> | Yeah |
2021-02-25 13:11:12 +0100 | <ski> | > foldl (**) 1 [1..5] :: Expr |
2021-02-25 13:11:14 +0100 | <lambdabot> | ((((1**1)**2)**3)**4)**5 |
2021-02-25 13:11:21 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 264 seconds) |
2021-02-25 13:11:28 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 13:11:36 +0100 | <magnuscake> | How does the evaluation work in for: |
2021-02-25 13:11:50 +0100 | <magnuscake> | foldl (flip (*)) 1 [1..5] |
2021-02-25 13:11:59 +0100 | <edwardk> | Expr is a type that has a Num instance, and tracks what operators you use. so it lets you kinda peek at what the fold is doing here (it comes from a library) |
2021-02-25 13:12:04 +0100 | nictki | (~nictki@b2b-78-94-64-166.unitymedia.biz) |
2021-02-25 13:12:04 +0100 | <magnuscake> | Since flip would need two arguments |
2021-02-25 13:12:14 +0100 | <edwardk> | :t foldl |
2021-02-25 13:12:15 +0100 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2021-02-25 13:12:19 +0100 | <edwardk> | ^- foldl gives it two args |
2021-02-25 13:12:25 +0100 | <ski> | @type flip (*) |
2021-02-25 13:12:26 +0100 | <lambdabot> | Num c => c -> c -> c |
2021-02-25 13:12:27 +0100 | <edwardk> | the result so far and the next entry in the list |
2021-02-25 13:12:49 +0100 | <edwardk> | sorry |
2021-02-25 13:13:00 +0100 | <edwardk> | flip takes one argument, which is a binary function and returns a binary function |
2021-02-25 13:13:06 +0100 | <edwardk> | that is one way to read flip's signature |
2021-02-25 13:13:07 +0100 | <edwardk> | :t flip |
2021-02-25 13:13:07 +0100 | <ski> | @type flip |
2021-02-25 13:13:08 +0100 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
2021-02-25 13:13:09 +0100 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
2021-02-25 13:13:20 +0100 | <ski> | flip :: (a -> b -> c) -> (b -> a -> c) |
2021-02-25 13:13:30 +0100 | <magnuscake> | I am guessing evaluation would look something like this: |
2021-02-25 13:13:43 +0100 | <magnuscake> | aassuming f = flip (:) |
2021-02-25 13:13:51 +0100 | <magnuscake> | ((([] `f` 1) `f` 2) `f` 3) |
2021-02-25 13:14:13 +0100 | <magnuscake> | Where does the second argument for flip come from |
2021-02-25 13:14:24 +0100 | <ski> | foldl (flip (*)) 1 [1 .. 5] |
2021-02-25 13:14:27 +0100 | <magnuscake> | Or third since the first is a function |
2021-02-25 13:14:31 +0100 | <edwardk> | you feed it a basecase |
2021-02-25 13:14:45 +0100 | <edwardk> | :t foldl |
2021-02-25 13:14:46 +0100 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2021-02-25 13:14:49 +0100 | <ski> | = foldl (flip (*)) (flip (*) 1 1) [2 .. 5] |
2021-02-25 13:15:03 +0100 | <ski> | = foldl (flip (*)) (flip (*) (flip (*) 1 1) 2) [3 .. 5] |
2021-02-25 13:15:13 +0100 | <ski> | = foldl (flip (*)) (flip (*) (flip (*) (flip (*) 1 1) 2) 3) [4 .. 5] |
2021-02-25 13:15:16 +0100 | <edwardk> | (b -> a -> b) is the function you want to fold with, the net 'b' is your base case, which gets passed as your first argument the first time, then you pass a list. |
2021-02-25 13:15:27 +0100 | <ski> | = foldl (flip (*)) (flip (*) (flip (*) (flip (*) (flip (*) 1 1) 2) 3) 4) [5 .. 5] |
2021-02-25 13:15:45 +0100 | <ski> | = foldl (flip (*)) (flip (*) (flip (*) (flip (*) (flip (*) (flip (*) 1 1) 2) 3) 4) 5) [] |
2021-02-25 13:15:49 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-02-25 13:15:52 +0100 | <edwardk> | ski is on a roll, i'll back off =) |
2021-02-25 13:15:54 +0100 | <ski> | = flip (*) (flip (*) (flip (*) (flip (*) (flip (*) 1 1) 2) 3) 4) 5 |
2021-02-25 13:16:13 +0100 | <ski> | = 5 * flip (*) (flip (*) (flip (*) (flip (*) 1 1) 2) 3) 4 |
2021-02-25 13:16:26 +0100 | <ski> | = 5 * (4 * flip (*) (flip (*) (flip (*) 1 1) 2) 3) |
2021-02-25 13:16:46 +0100 | <ski> | = 5 * (4 * (3 * flip (*) (flip (*) 1 1) 2)) |
2021-02-25 13:16:59 +0100 | <ski> | = 5 * (4 * (3 * (2 * flip (*) 1 1))) |
2021-02-25 13:17:16 +0100 | <ski> | = 5 * (4 * (3 * (2 * (1 * 1)))) |
2021-02-25 13:17:40 +0100 | <ski> | magnuscake : makes sense ? |
2021-02-25 13:18:03 +0100 | <magnuscake> | Oh absolutely. Hit it out of the field there mate |
2021-02-25 13:18:23 +0100 | <ski> | (and apparently this time Sigyn didn't make threatening noises in the background ..) |
2021-02-25 13:18:25 +0100 | <magnuscake> | That clears it up now. Thank you very much ski and edward |
2021-02-25 13:18:39 +0100 | <ski> | np |
2021-02-25 13:19:14 +0100 | <mouseghost> | wah that, foldr? |
2021-02-25 13:19:23 +0100 | <ski> | ? |
2021-02-25 13:19:32 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 260 seconds) |
2021-02-25 13:19:34 +0100 | <ski> | that's `foldl', not `foldr' |
2021-02-25 13:19:42 +0100 | <edwardk> | that was a foldl |
2021-02-25 13:19:45 +0100 | <mouseghost> | oh |
2021-02-25 13:19:58 +0100 | <mouseghost> | thats why im asking :D |
2021-02-25 13:20:04 +0100 | <ski> | would you like to see `foldr (*) 1 [1 .. 5]' or ? |
2021-02-25 13:20:09 +0100 | <mouseghost> | yes pwease |
2021-02-25 13:20:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 13:20:16 +0100 | <mouseghost> | though i suppose its going to be the other way round |
2021-02-25 13:20:17 +0100 | <ski> | (or maybe `foldr (flip (*)) 1 [1 .. 5]' ?) |
2021-02-25 13:20:32 +0100 | <ski> | which ? |
2021-02-25 13:20:49 +0100 | <mouseghost> | D: meyb the former.. |
2021-02-25 13:20:59 +0100 | <ski> | foldr (*) 1 [1 .. 5] |
2021-02-25 13:21:03 +0100 | <mouseghost> | yes |
2021-02-25 13:21:07 +0100 | <ski> | = 1 * foldr (*) 1 [2 .. 5] |
2021-02-25 13:21:16 +0100 | <ski> | = 1 * (2 * foldr (*) 1 [3 .. 5]) |
2021-02-25 13:21:26 +0100 | <ski> | = 1 * (2 * (3 * foldr (*) 1 [4 .. 5])) |
2021-02-25 13:21:35 +0100 | <ski> | = 1 * (2 * (3 * (4 * foldr (*) 1 [5 .. 5]))) |
2021-02-25 13:21:46 +0100 | <ski> | = 1 * (2 * (3 * (4 * (5 * foldr (*) 1 [])))) |
2021-02-25 13:21:51 +0100 | <ski> | = 1 * (2 * (3 * (4 * (5 * 1)))) |
2021-02-25 13:22:36 +0100 | <ski> | with `foldr (flip (*)) 1 [1 .. 5]', you'd end up with `((((1 * 5) * 4) * 3) * 2) * 1' in the end, instead, after reducing away all the `flip's |
2021-02-25 13:22:40 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-25 13:22:47 +0100 | <mouseghost> | hm i see |
2021-02-25 13:22:56 +0100 | <ski> | (try it out yourself, on paper, or in a text editor ?!) |
2021-02-25 13:23:32 +0100 | <mouseghost> | let me find a definition first :D |
2021-02-25 13:23:38 +0100 | <ski> | @src foldl |
2021-02-25 13:23:38 +0100 | <lambdabot> | foldl f z [] = z |
2021-02-25 13:23:38 +0100 | <lambdabot> | foldl f z (x:xs) = foldl f (f z x) xs |
2021-02-25 13:23:39 +0100 | <ski> | @src foldr |
2021-02-25 13:23:39 +0100 | <lambdabot> | foldr f z [] = z |
2021-02-25 13:23:39 +0100 | <lambdabot> | foldr f z (x:xs) = f x (foldr f z xs) |
2021-02-25 13:23:43 +0100 | <ski> | @src flip |
2021-02-25 13:23:43 +0100 | <lambdabot> | flip f x y = f y x |
2021-02-25 13:24:30 +0100 | <ski> | also `[m .. n]' is `m : [m+1 .. n]' if `m <= n', otherwise it's `[]' |
2021-02-25 13:25:07 +0100 | <mouseghost> | hm so thats the difference |
2021-02-25 13:25:11 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 13:25:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 13:25:29 +0100 | <magnuscake> | Is any point of having a foldl? I get foldr is similar to reduce() in JS and Python |
2021-02-25 13:25:30 +0100 | z0k | (~user@115-186-141-91.nayatel.pk) |
2021-02-25 13:25:32 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 13:25:32 +0100 | cdb | (~cdb@185.163.110.108) (Remote host closed the connection) |
2021-02-25 13:25:51 +0100 | <ski> | no, `foldl' is similar to `reduce' in some other languages, iirc |
2021-02-25 13:26:31 +0100 | <magnuscake> | Best of both world than I guess :) |
2021-02-25 13:27:18 +0100 | <ski> | `foldl' is iterative / tail-recursive (and therefore bulky / non-incremental), while `foldr' is not (it can be incremental, though, if the callback is non-strict in latter argument) |
2021-02-25 13:28:00 +0100 | Wuzzy | (~Wuzzy@p5790ec2c.dip0.t-ipconnect.de) |
2021-02-25 13:29:15 +0100 | <ski> | in a strict language, commonly an iterative version is preferable, in case both would be applicable. Haskell is non-strict though, and here it often makes more sense to be incremental instead (which means that you can now work on infinite lists, and work on very long lists without needing to scan ahead to the end before producing any output .. so your caller effectively can act as a coroutine with you, |
2021-02-25 13:29:21 +0100 | <ski> | consuming your incremental outputs) |
2021-02-25 13:29:51 +0100 | <ski> | also, note that usually, in Haskell, when you think you want foldl you actually want foldl' |
2021-02-25 13:30:15 +0100 | <ski> | foldl f z [ ] = z |
2021-02-25 13:30:16 +0100 | <ski> | er |
2021-02-25 13:30:18 +0100 | <ski> | foldl' f z [ ] = z |
2021-02-25 13:30:39 +0100 | <ski> | foldl' f z (x:xs) = (foldl' f $! f z x) xs |
2021-02-25 13:31:06 +0100 | <ski> | alternatively |
2021-02-25 13:31:12 +0100 | <ski> | foldl' f !z [ ] = z |
2021-02-25 13:31:25 +0100 | <ski> | foldl' f !z (x:xs) = foldl' f (f z x) xs |
2021-02-25 13:32:16 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 240 seconds) |
2021-02-25 13:32:16 +0100 | <magnuscake> | Yeah that actually makes sense |
2021-02-25 13:32:24 +0100 | <ski> | this means that it will force (to WHNF) the accumulator in each step, rather than just build up a possibly huge thunk at run-time, which will eventually get forced in the end (after `foldl' hits the base case anyway) |
2021-02-25 13:32:59 +0100 | <ski> | in my `foldl' example above, all the `flip's (and also the `*'s, although i didn't show that part) happens after `foldl' is done |
2021-02-25 13:33:08 +0100 | <ski> | with foldl' instead, you'd get |
2021-02-25 13:33:24 +0100 | <ski> | foldl' (flip (*)) 1 [1 .. 5] |
2021-02-25 13:33:45 +0100 | <ski> | = foldl' (flip (*)) (flip (*) 1 1) [2 .. 5] |
2021-02-25 13:33:53 +0100 | <ski> | = foldl' (flip (*)) (1 * 1) [2 .. 5] |
2021-02-25 13:34:00 +0100 | <ski> | = foldl' (flip (*)) 1 [2 .. 5] |
2021-02-25 13:34:09 +0100 | <ski> | = foldl' (flip (*)) (flip (*) 1 2) [3 .. 5] |
2021-02-25 13:34:16 +0100 | <ski> | = foldl' (flip (*)) (2 * 1) [3 .. 5] |
2021-02-25 13:34:24 +0100 | <ski> | = foldl' (flip (*)) 2 [3 .. 5] |
2021-02-25 13:34:33 +0100 | drbean_ | (~drbean@TC210-63-209-37.static.apol.com.tw) |
2021-02-25 13:34:40 +0100 | <ski> | = foldl' (flip (*)) (flip (*) 2 3) [4 .. 5] |
2021-02-25 13:34:49 +0100 | <ski> | = foldl' (flip (*)) (3 * 2) [4 .. 5] |
2021-02-25 13:34:54 +0100 | <ski> | = foldl' (flip (*)) 6 [4 .. 5] |
2021-02-25 13:35:06 +0100 | <ski> | = foldl' (flip (*)) (flip (*) 6 4) [5 .. 5] |
2021-02-25 13:35:16 +0100 | <ski> | = foldl' (flip (*)) (4 * 6) [5 .. 5] |
2021-02-25 13:35:21 +0100 | <ski> | = foldl' (flip (*)) 24 [5 .. 5] |
2021-02-25 13:35:38 +0100 | <ski> | = foldl' (flip (*)) (flip (*) 24 5) [] |
2021-02-25 13:35:49 +0100 | <ski> | = foldl' (flip (*)) (5 * 24) [] |
2021-02-25 13:35:53 +0100 | <ski> | = foldl' (flip (*)) 120 [] |
2021-02-25 13:35:57 +0100 | <ski> | = 120 |
2021-02-25 13:36:05 +0100 | <ph88> | having fun ski ? |
2021-02-25 13:36:21 +0100 | <ski> | (note that this appears a bit longer, because i skipped to tail end of the multiplications, before) |
2021-02-25 13:36:33 +0100 | <ski> | magnuscake : clear ? |
2021-02-25 13:36:36 +0100 | <ph88> | bpaste.net |
2021-02-25 13:36:36 +0100 | <magnuscake> | That is definitely cool mate |
2021-02-25 13:36:40 +0100 | <ph88> | nice pastebin for you ski |
2021-02-25 13:37:01 +0100 | <magnuscake> | Thanks loads. Will be adding that to my notes |
2021-02-25 13:37:02 +0100 | <ski> | ah, but pastebin's aren't interactive :/ |
2021-02-25 13:37:18 +0100 | <ph88> | ski, that's a cool idea, interactive pastebin ! |
2021-02-25 13:37:29 +0100 | <ph88> | well i guess you could just open ghci and copy paste that into it |
2021-02-25 13:37:34 +0100 | <ph88> | but still ... interactive pastebin :P |
2021-02-25 13:37:44 +0100 | <ph88> | i believe when tomsmeding builds it sm will host it xD |
2021-02-25 13:38:38 +0100 | <ph88> | by the way there is jupyter notebook for haskell too now ... but not sure if it there is a website that offers it |
2021-02-25 13:39:12 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) |
2021-02-25 13:40:39 +0100 | <ph88> | https://cocalc.com/projects/3d87e727-69f7-4ac5-81b2-867aee98eb45/files/Welcome%20to%20CoCalc.ipynb… |
2021-02-25 13:40:48 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 13:40:50 +0100 | zmv- | notzmv |
2021-02-25 13:40:53 +0100 | <ph88> | not sure how well that works and how it works with sharing / interactive .. but cool stuff |
2021-02-25 13:41:02 +0100 | notzmv | (~zmv@191.255.89.231) (Changing host) |
2021-02-25 13:41:02 +0100 | notzmv | (~zmv@unaffiliated/zmv) |
2021-02-25 13:41:04 +0100 | <ph88> | got the link from https://github.com/gibiansky/IHaskell |
2021-02-25 13:42:22 +0100 | coot | (~coot@37.30.60.232.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 13:43:27 +0100 | <mananamenos> | hmm, so I still have doubts and want to find more about the previously made question. What are the advantages of using `newtype App a = App (ReaderT SomeEnv IO a)`. Almost all apps create this app monad. Why don't they use ReaderT directly in this case? Then they wouldn't need to derive for example many classes as they do now..One reason I think I found is that it is good for testing |
2021-02-25 13:44:56 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 240 seconds) |
2021-02-25 13:45:05 +0100 | <merijn> | mananamenos: Which classes would you need to derive? |
2021-02-25 13:45:23 +0100 | marek | (~mmahut@209.250.249.245) (Changing host) |
2021-02-25 13:45:23 +0100 | marek | (~mmahut@fedora/pyxel) |
2021-02-25 13:46:10 +0100 | <ski> | magnuscake : another note. in the case of `foldr', the growing context of multiplications around the current foldr call is the stack you're seeing. in the case of foldl there is no such growing context/stack, since foldl is tail-recursive. however, the accumulator argument effectively simulates a stack, growing the heap instead. then, after foldl returns, all these flip and (*) calls are turned |
2021-02-25 13:46:16 +0100 | <ski> | into growing stack again, when traversing the expression to the innermost part to begin the multiplications there |
2021-02-25 13:46:25 +0100 | <ski> | while, in the foldl' case, you avoid this latter problem |
2021-02-25 13:47:32 +0100 | <ski> | magnuscake : implementation hiding. insulating users of `App' from accidentally depending on the particularly chosen representation. preventing them from directly accessing your innards |
2021-02-25 13:47:37 +0100 | <ski> | er |
2021-02-25 13:47:39 +0100 | <ski> | mananamenos ^ |
2021-02-25 13:48:01 +0100 | michalz | (~user@185.246.204.46) (Remote host closed the connection) |
2021-02-25 13:48:06 +0100 | <mananamenos> | merijn, the examples I've seen that use this App abstraction derive Functor, Monad, etc. What I meant is if they hadn't newtype App, they wouldn't even need to do that, as ReaderT is functor, monad etc |
2021-02-25 13:48:09 +0100 | magnuscake | (~magnuscak@87.121.92.61) (Quit: Leaving) |
2021-02-25 13:48:18 +0100 | michalz | (~user@185.246.204.39) |
2021-02-25 13:48:29 +0100 | <merijn> | mananamenos: But then changing the implementation of your library becomes a breaking change |
2021-02-25 13:48:42 +0100 | <merijn> | mananamenos: And any time you refactor internals you need to refactor everything |
2021-02-25 13:49:12 +0100 | <ski> | typically you'd not want to expose say `MonadReader SomeEnv App' and the like (sometimes i guess you might), but rather define your own operations, possibly wrappers around the basic operations on transformers |
2021-02-25 13:49:13 +0100 | <mananamenos> | merijn, can you give an example what "changing implementation" in this example would mean? I dont follow |
2021-02-25 13:49:18 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-02-25 13:49:34 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
2021-02-25 13:49:52 +0100 | <merijn> | mananamenos: You realise "whoops, I don't have logging!" and you add, for example LoggingT to that implementation |
2021-02-25 13:49:58 +0100 | <ski> | well, perhaps you'd like to change `ReaderT SomeEnv IO a' to `StateT SomeState (ReaderT SomeEnv IO) a' at some point |
2021-02-25 13:50:12 +0100 | <ski> | or perhaps to `ReaderT (SomeEnv,SomeOtherEnv) IO a' |
2021-02-25 13:50:56 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.137) (Ping timeout: 240 seconds) |
2021-02-25 13:51:22 +0100 | coot | (~coot@37.30.60.232.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 13:51:28 +0100 | danza | (~francesco@151.53.76.37) |
2021-02-25 13:51:38 +0100 | <mananamenos> | ski, and why newtype and not type? |
2021-02-25 13:52:12 +0100 | <ski> | because you can avoid exporting the data constructor of a `newtype', thereby avoiding exposing your implementation, keeping `App' abstract |
2021-02-25 13:52:18 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-02-25 13:52:20 +0100 | <ski> | can't (unfortunately) do that with type synonyms |
2021-02-25 13:52:27 +0100 | <ski> | (you can, in the MLs ..) |
2021-02-25 13:53:47 +0100 | nictki | (~nictki@b2b-78-94-64-166.unitymedia.biz) (Quit: leaving) |
2021-02-25 13:54:35 +0100 | <mananamenos> | merijn, ski, thank you. I think I understand it better but still would like to understand more :) Are some blog posts you know about this kind stuff? |
2021-02-25 13:55:07 +0100 | <ski> | not that i can recall, off the top of my head |
2021-02-25 13:55:32 +0100 | <ski> | (probably there are such blags, though. possibly also some page on the Haskell Wiki, or in the Wikibook) |
2021-02-25 13:56:53 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-02-25 13:58:22 +0100 | kw | (d4662d5d@212.102.45.93) (Ping timeout: 240 seconds) |
2021-02-25 13:58:55 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 14:01:48 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-25 14:04:21 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-25 14:06:10 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-25 14:06:29 +0100 | kam1 | (~kam1@5.125.126.175) (Quit: Quit) |
2021-02-25 14:06:39 +0100 | thorsten` | (~Thorsten@ananke.uberspace.de) |
2021-02-25 14:06:52 +0100 | kam1 | (~kam1@5.125.126.175) |
2021-02-25 14:07:25 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds) |
2021-02-25 14:08:25 +0100 | TMA | (tma@twin.jikos.cz) |
2021-02-25 14:09:30 +0100 | <mananamenos> | Is this example: https://hackage.haskell.org/package/monad-time-0.3.1.0/docs/Control-Monad-Time.html. Why does `m` must be a monad? Why does this class have this restriction? |
2021-02-25 14:09:42 +0100 | <mananamenos> | *In this example.. |
2021-02-25 14:10:20 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 14:10:47 +0100 | <merijn> | mananamenos: Well, what would you be able to do with currentTime if it wasn't? |
2021-02-25 14:10:50 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:49bc:1f9e:3510:3fc5) (Ping timeout: 264 seconds) |
2021-02-25 14:10:53 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 260 seconds) |
2021-02-25 14:11:12 +0100 | son0p | (~son0p@181.58.39.182) (Quit: leaving) |
2021-02-25 14:11:16 +0100 | <merijn> | Imagine no superclass constraint and "MonadTime m => m UTCTime", what can you do? |
2021-02-25 14:12:07 +0100 | <ski> | `Applicative' would probably work, i guess .. but it looks like the main instances are `IO' and monad transformer wrappings of that |
2021-02-25 14:12:39 +0100 | <mananamenos> | merijn, you mean that if it wasn't monad you would never be able to unwrap the value inside m, right? |
2021-02-25 14:13:22 +0100 | <ski> | ah .. it does use `OverlappingInstances' to handle `ReaderT UTCTime m' specially .. :/ |
2021-02-25 14:13:57 +0100 | <merijn> | mananamenos: Yes |
2021-02-25 14:14:41 +0100 | <ski> | if it was `Functor', you'd be able to `fmap' over it, generically (with no extra constraint) |
2021-02-25 14:15:01 +0100 | <ski> | i think it has superclass constraint, mostly for convenience |
2021-02-25 14:15:11 +0100 | <mananamenos> | hmm, merijn, but that restriction does not prevent me to implement `instance MonadTime IO...`, then I would be able to get time in IO monad. So still dont see what does the restriction m must be a monad adds |
2021-02-25 14:15:31 +0100 | <merijn> | mananamenos: That means you can only ever do something for a specific isntance |
2021-02-25 14:15:50 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-02-25 14:16:08 +0100 | <merijn> | mananamenos: You couldn't do, for example "MonadTime m => ReaderT Foo m ()" because you don't know 'm' is a Monad |
2021-02-25 14:16:34 +0100 | <ski> | (you'd have to do `(Monad m,MonadTime m) => ReaderT Foo m ()') |
2021-02-25 14:16:34 +0100 | <merijn> | mananamenos: Basically, then MonadTime is just "getCurrentTime :: IO UTCTime", but with extra steps |
2021-02-25 14:16:42 +0100 | <merijn> | You cannot use it polymorphically easily |
2021-02-25 14:16:48 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) |
2021-02-25 14:16:49 +0100 | <mananamenos> | merijn, right, so putting the restriction `m` must be a monad we become sure that anyone who will implement MonadTime will be able to use `do`, >>= |
2021-02-25 14:18:59 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-02-25 14:21:28 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 14:21:55 +0100 | esph | (~weechat@unaffiliated/esph) (Ping timeout: 265 seconds) |
2021-02-25 14:23:01 +0100 | <thorsten`> | How can I denote the 'dual' of the type `(->) a` of kind * -> *? If I put e.g. type To b a = a -> b ; type I f = f Int then `I (To Int)` fails to parse because 'To' should have 2 arguments. |
2021-02-25 14:24:02 +0100 | <maerwald> | how do you include the project version from foo.cabal into your source code at compile time? |
2021-02-25 14:25:37 +0100 | <thorsten`> | maerwald: https://stackoverflow.com/a/33176906/4400896 |
2021-02-25 14:26:24 +0100 | <merijn> | maerwald: Paths_x |
2021-02-25 14:26:27 +0100 | esph | (~weechat@unaffiliated/esph) |
2021-02-25 14:27:26 +0100 | reeiiko | (~reeiiko@185.163.110.108) |
2021-02-25 14:27:34 +0100 | hseg | (~gesh@IGLD-84-228-239-97.inter.net.il) (Quit: WeeChat 3.0) |
2021-02-25 14:27:55 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) |
2021-02-25 14:29:06 +0100 | <geekosaur> | thorsten`, there's an extension which delays expansion of type synonyms as long as they're ultimately fully saturated (LiberalTypeSynonyms) |
2021-02-25 14:29:38 +0100 | supercoven | (~Supercove@194.34.133.92) |
2021-02-25 14:30:47 +0100 | bennofs1 | (~benno@dslb-094-222-088-123.094.222.pools.vodafone-ip.de) |
2021-02-25 14:32:21 +0100 | <thorsten`> | ok, thanks geekosaur! |
2021-02-25 14:33:32 +0100 | carlomagno | (~cararell@148.87.23.9) |
2021-02-25 14:34:05 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) (Remote host closed the connection) |
2021-02-25 14:35:56 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 240 seconds) |
2021-02-25 14:37:10 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) |
2021-02-25 14:37:19 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-25 14:37:23 +0100 | bennofs1 | (~benno@dslb-094-222-088-123.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2021-02-25 14:37:39 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 14:37:40 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-xtlevgyyzcpkswkn) |
2021-02-25 14:39:31 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 272 seconds) |
2021-02-25 14:41:34 +0100 | _d0t | (void@gateway/vpn/mullvad/d0t/x-89419360) |
2021-02-25 14:41:57 +0100 | <_d0t> | ohai! How do I stop GHC from creating dynamic libraries? I use stack to build stuff. |
2021-02-25 14:42:37 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2021-02-25 14:43:50 +0100 | crobbins | (~crobbins@2601:2c1:200:ec50:1830:7dd4:a8d3:b056) (Ping timeout: 264 seconds) |
2021-02-25 14:44:42 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-25 14:45:39 +0100 | <sm[m]> | ph88: that's interesting about getSourcePos. I call it a lot. Does laziness come to the rescue at all, or it's cheap if you don't actually use the info ? |
2021-02-25 14:45:54 +0100 | <sm[m]> | also, how many calls would you be making ? have you measured the cost ? |
2021-02-25 14:46:39 +0100 | <ph88> | sm[m], i don't know about the details sorry. I have just read the documentation of megaparsec |
2021-02-25 14:47:00 +0100 | <sm[m]> | I'd measure it |
2021-02-25 14:47:22 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 14:47:41 +0100 | <ph88> | good idea |
2021-02-25 14:49:36 +0100 | toorevitimirp | (~tooreviti@117.182.181.253) (Ping timeout: 260 seconds) |
2021-02-25 14:52:13 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 14:52:34 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 14:52:36 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) |
2021-02-25 14:52:47 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 14:53:02 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
2021-02-25 14:53:25 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Client Quit) |
2021-02-25 14:53:52 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 14:54:19 +0100 | drbean_ | (~drbean@TC210-63-209-37.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-02-25 14:55:43 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 14:56:00 +0100 | bergey` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Remote host closed the connection) |
2021-02-25 14:56:22 +0100 | knupfer | (~Thunderbi@200116b82c5b7800ed680aab46f8abc5.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-02-25 14:56:28 +0100 | bergey`` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-02-25 14:56:37 +0100 | knupfer | (~Thunderbi@200116b82c5b78000cf80c553eaca855.dip.versatel-1u1.de) |
2021-02-25 14:57:02 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-25 14:58:11 +0100 | andi^ | (~andi-@NixOS/user/andi-) |
2021-02-25 14:58:17 +0100 | andi- | (~andi-@NixOS/user/andi-) (Ping timeout: 260 seconds) |
2021-02-25 14:58:56 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) |
2021-02-25 14:59:50 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Read error: Connection reset by peer) |
2021-02-25 15:00:22 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 15:00:46 +0100 | guest222 | (~user@49.5.6.87) (Remote host closed the connection) |
2021-02-25 15:00:54 +0100 | guest222 | (~user@49.5.6.87) |
2021-02-25 15:01:16 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-25 15:04:12 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 15:04:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-25 15:05:26 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 15:06:24 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection) |
2021-02-25 15:06:33 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) (Ping timeout: 264 seconds) |
2021-02-25 15:07:09 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:07:10 +0100 | <merijn> | It just says to not call it for "every token" |
2021-02-25 15:07:29 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 15:08:25 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-02-25 15:09:31 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-02-25 15:09:40 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-02-25 15:10:11 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:10:28 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-25 15:10:33 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 15:10:49 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) |
2021-02-25 15:11:11 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:11:18 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) (Quit: Connection closed) |
2021-02-25 15:11:33 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 15:11:46 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) |
2021-02-25 15:12:10 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:12:30 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 15:13:17 +0100 | <adamoden> | Hi, I've got a stupid-ass program that I'm writing for kicks a few years after taking a beginners course in Haskell and can barely string together a function at the moment. I've made slow progress in making my program run but right now I get compiler errors that I can't understand. Is there a chance of getting help understanding the errors if I |
2021-02-25 15:13:18 +0100 | <adamoden> | paste them along with my mess here? |
2021-02-25 15:14:08 +0100 | usr256 | (~usr25@unaffiliated/usr25) |
2021-02-25 15:14:09 +0100 | <geekosaur> | @where paste |
2021-02-25 15:14:10 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-02-25 15:14:34 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-25 15:15:05 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Ping timeout: 265 seconds) |
2021-02-25 15:15:29 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-02-25 15:15:58 +0100 | <adamoden> | I'll take the vbot anser as a yes. https://paste.tomsmeding.com/fPhBk9Of https://paste.tomsmeding.com/jvXjZ1FV |
2021-02-25 15:16:13 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:16:35 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 15:17:04 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
2021-02-25 15:17:13 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-25 15:17:16 +0100 | leo___ | (~leo@cpc96810-rdng27-2-0-cust409.15-3.cable.virginm.net) (Remote host closed the connection) |
2021-02-25 15:17:41 +0100 | <geekosaur> | short version is that somewhere you're passing a list into a context expecting a number, so it''s trying to find a Num instance for lists and failing |
2021-02-25 15:17:57 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) (Ping timeout: 264 seconds) |
2021-02-25 15:18:17 +0100 | <adamoden> | A crap. Thanks for the help. |
2021-02-25 15:18:54 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2021-02-25 15:20:24 +0100 | <geekosaur> | you also have what appears to be a typo on line 14 but the error messages don't go that far |
2021-02-25 15:20:29 +0100 | gitgood | (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) |
2021-02-25 15:21:40 +0100 | <adamoden> | I have typos everywhere :P Can't see where I pass a list instead of a number tho... |
2021-02-25 15:21:40 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 15:22:55 +0100 | <geekosaur> | see line 10 of the error messages, you have a list of lists where a list of (Enum a => a) is expected |
2021-02-25 15:23:25 +0100 | <maerwald> | merijn: semi-random question. What do you think about bash completion causing a network call? |
2021-02-25 15:23:26 +0100 | <geekosaur> | although I am confused by the error message paste because it looks like two different compiles going on |
2021-02-25 15:23:34 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 15:26:01 +0100 | <adamoden> | That might have been my issue. I'm doing this in Repl.it and when I ran the code again in a new window I only get an error for row 14. |
2021-02-25 15:26:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 15:26:28 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-02-25 15:27:46 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-25 15:28:02 +0100 | mmarusea1ph2 | (~mihai@198.199.100.72) (Quit: The past is dead and buried.) |
2021-02-25 15:28:15 +0100 | mmaruseacph2 | (~mihai@198.199.100.72) |
2021-02-25 15:28:22 +0100 | <geekosaur> | I think you need to fix that before you can get the other errors |
2021-02-25 15:28:29 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-25 15:28:45 +0100 | <geekosaur> | and I get quite a few other errors locally after I fix that, although some of them are because repl.it runs a very old ghc |
2021-02-25 15:28:55 +0100 | <geekosaur> | and some things have changed since then |
2021-02-25 15:29:54 +0100 | son0p | (~son0p@181.136.122.143) |
2021-02-25 15:31:24 +0100 | <geekosaur> | hm, but some of it is fundamental, like missing Show, Eq, and Ord instances |
2021-02-25 15:31:32 +0100 | <geekosaur> | being polymorphic has its costs |
2021-02-25 15:31:43 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) (Quit: Connection closed) |
2021-02-25 15:31:58 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) |
2021-02-25 15:32:00 +0100 | <adamoden> | I do as well. There are MANY problems with this program, the main one being that it does something entirely different than I want it to do in the end :P |
2021-02-25 15:32:19 +0100 | <adamoden> | I will download Haskell and to this locally then. |
2021-02-25 15:32:28 +0100 | slack1256 | (~slack1256@45.4.2.52) |
2021-02-25 15:32:29 +0100 | <swarmcollective> | adamoden, it is easier to use Int instead of a Num constraint. |
2021-02-25 15:33:08 +0100 | <swarmcollective> | I am able to get it to compile, at least. |
2021-02-25 15:33:27 +0100 | <geekosaur> | yeh, I'd just specialize to Int and String rather than try to be polymorphic and run into all the missing constraints you need |
2021-02-25 15:33:29 +0100 | <adamoden> | swarmcollective I wanted to do that but everything broke. I'll try again in a local compiler. |
2021-02-25 15:33:44 +0100 | <swarmcollective> | https://paste.tomsmeding.com/pwGShc2h |
2021-02-25 15:33:47 +0100 | <geekosaur> | and weird type errors |
2021-02-25 15:33:51 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-25 15:34:29 +0100 | <adamoden> | I think I need Enum for using pred tho, might be I'm wrong about that too. |
2021-02-25 15:34:52 +0100 | antimatroid | (~nick@124-169-88-177.tpgi.com.au) |
2021-02-25 15:35:06 +0100 | <geekosaur> | if you specify a type known to implement Enum, you don't have to also specify Enum |
2021-02-25 15:35:22 +0100 | <antimatroid> | https://nift.dev/ functionstein and templatestein now work with non-bracketed code blocks for loops etc., lots of people are playing with my website generator behind the scenes and have put up ads on youtube with several million views in the last few weeks.. You folks might quite like the shell extension flashell, along with the scripting language functionstein and template language templatestein.. |
2021-02-25 15:35:24 +0100 | <geekosaur> | String is [Char], Char has an Enum instance |
2021-02-25 15:35:29 +0100 | <antimatroid> | f++: https://pastebin.com/5FM7Hzef bash: https://pastebin.com/RTXXEHBg there's scripts to create and delete 100k empty files, the f++ script takes like ~3s whereas the bash script takes more like ~3m.. |
2021-02-25 15:35:34 +0100 | <adamoden> | Oki, good to know! |
2021-02-25 15:36:16 +0100 | <antimatroid> | you can even use the template language from nift to help add build-time programming to making haskell code to run |
2021-02-25 15:36:29 +0100 | antimatroid | (~nick@124-169-88-177.tpgi.com.au) () |
2021-02-25 15:36:34 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-25 15:37:48 +0100 | usr256 | (~usr25@unaffiliated/usr25) (Ping timeout: 256 seconds) |
2021-02-25 15:38:35 +0100 | <swarmcollective> | Looks like spam to me. :\ |
2021-02-25 15:41:34 +0100 | <swarmcollective> | adamoden, repl.it doesn't seem to want to display the output. I changed main to: main = putStrLn $ show $ (length a, a) |
2021-02-25 15:42:02 +0100 | <swarmcollective> | and it does not even display the length; when excluding a, it prints the length of 11. |
2021-02-25 15:42:44 +0100 | <swarmcollective> | Is there an easy way to convert a char to its ascii equivellent? |
2021-02-25 15:43:56 +0100 | <geekosaur> | ifyou mean numeric equivalent, fromEnum or ord |
2021-02-25 15:44:04 +0100 | <geekosaur> | toEnum or chr in the other direction |
2021-02-25 15:44:12 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) (Quit: Connection closed) |
2021-02-25 15:44:24 +0100 | <geekosaur> | (Data.Char import for chr/ord) |
2021-02-25 15:44:24 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) |
2021-02-25 15:44:35 +0100 | <swarmcollective> | Thanks geekosaur |
2021-02-25 15:45:55 +0100 | ephemera_ | (~E@122.34.1.187) (Quit: ephemera_) |
2021-02-25 15:46:15 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 246 seconds) |
2021-02-25 15:47:20 +0100 | <danza> | time to refresh some hoogle usage |
2021-02-25 15:47:28 +0100 | MrMobius | (~MrMobius@208.58.206.154) (Ping timeout: 265 seconds) |
2021-02-25 15:47:29 +0100 | ephemera_ | (~E@122.34.1.187) |
2021-02-25 15:47:31 +0100 | <danza> | @hoogle "Char -> Int" |
2021-02-25 15:47:32 +0100 | <lambdabot> | Data.Char digitToInt :: Char -> Int |
2021-02-25 15:47:32 +0100 | <lambdabot> | Data.Char ord :: Char -> Int |
2021-02-25 15:47:32 +0100 | <lambdabot> | GHC.Base ord :: Char -> Int |
2021-02-25 15:47:49 +0100 | [1]MrMobius | (~MrMobius@208.58.206.154) |
2021-02-25 15:48:29 +0100 | <swarmcollective> | Hmmm, repl.it still chokes even after using: main = putStrLn $ show $ (length a, map fromEnum a) |
2021-02-25 15:49:09 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2021-02-25 15:49:58 +0100 | <danza> | the Enum instance is nifty :) |
2021-02-25 15:50:03 +0100 | m4lvin | (~m4lvin@w4eg.de) |
2021-02-25 15:51:25 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-25 15:53:55 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 15:53:56 +0100 | <swarmcollective> | Ahhh, thanks GHCi... its because of infinite recursion. ;) |
2021-02-25 15:55:26 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-25 15:56:02 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-25 15:56:46 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 15:58:36 +0100 | <slack1256> | Would a data/codata distinction make sense on a non-total language? It seems we can get better distinction between lazy and strict parts of a language via this mechanism than for example, reflecting strictness or laziness at the type level. |
2021-02-25 15:59:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-02-25 16:00:43 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-25 16:00:56 +0100 | ystael | (~ystael@209.6.50.55) |
2021-02-25 16:02:05 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-25 16:03:37 +0100 | MVQq | (~anja@198.254.199.42) (Quit: q) |
2021-02-25 16:04:14 +0100 | MarcelineVQ | (~anja@198.254.199.42) |
2021-02-25 16:04:57 +0100 | Shailangsa_ | (~shailangs@host86-186-191-40.range86-186.btcentralplus.com) () |
2021-02-25 16:08:29 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 16:09:30 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 16:10:27 +0100 | <dolio> | slack1256: The distinction as usually specified does not make sense. |
2021-02-25 16:12:40 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-25 16:14:11 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 16:14:39 +0100 | <slack1256> | Between data and codata? I thought it was clear. Data defined by its constructors and codata defined by its destructors. To have proof on type-as-proposition with data you can use well formed recursion. To have a proof with codata you need to show "productiveness". |
2021-02-25 16:14:57 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 264 seconds) |
2021-02-25 16:15:29 +0100 | <dolio> | I mean it makes no sense in a non-total language. Everything is both data and codata. |
2021-02-25 16:15:35 +0100 | <dolio> | Inductive and coinductive. |
2021-02-25 16:15:47 +0100 | ystael | (~ystael@209.6.50.55) (Read error: Connection reset by peer) |
2021-02-25 16:16:20 +0100 | ystael | (~ystael@209.6.50.55) |
2021-02-25 16:17:43 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-25 16:17:54 +0100 | <slack1256> | Well it gets muddle up, but I think is not because we are on a non-total language, laziness gives data a certain codata behaviours. |
2021-02-25 16:18:15 +0100 | <slack1256> | For example lists and streams are the same under lazy eval. |
2021-02-25 16:19:05 +0100 | clynamen | (~clynamen@net-2-34-3-193.cust.vodafonedsl.it) |
2021-02-25 16:19:07 +0100 | clynamen_ | (~clynamen@net-93-66-46-121.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2021-02-25 16:19:21 +0100 | DarknessDad | (~LizardDad@c-98-236-134-69.hsd1.oh.comcast.net) |
2021-02-25 16:20:36 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) |
2021-02-25 16:21:18 +0100 | <dolio> | This is what I mean. You say that laziness causes codata behavior, but you are only comparing it to codata in a total language. In the semantics of non-total languages, everything is both data and codata, even the stuff that superficially looks like what you think of as data. |
2021-02-25 16:21:59 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-25 16:22:56 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 16:23:09 +0100 | <dolio> | If you define spine strict lists, `data SL a = Nil | Cons a !(SL a)`, it is the fixed point of a functor, `data F a x = N | C a !x` ... |
2021-02-25 16:23:32 +0100 | <dolio> | You can write `unfold step s = fmap (unfold step) (step s)` |
2021-02-25 16:23:58 +0100 | <dolio> | Then consider `C 5 :: s -> F Int s`. |
2021-02-25 16:24:40 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-25 16:24:41 +0100 | crobbins | (~crobbins@2600:380:b862:6852:6dfc:d2e7:3649:b8ed) |
2021-02-25 16:25:03 +0100 | <dolio> | `unfold (C 5) s = ⊥`, but also `unfold (C 5) s = map (unfold (C 5)) (C 5 s) = C 5 (unfold (C 5) s) = C 5 ⊥ = ⊥` |
2021-02-25 16:25:57 +0100 | <dolio> | So it satisfies the equations of the coalgebra homomorphism. |
2021-02-25 16:26:21 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
2021-02-25 16:26:53 +0100 | shailangsa | (~shailangs@host86-186-191-40.range86-186.btcentralplus.com) |
2021-02-25 16:27:32 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 260 seconds) |
2021-02-25 16:28:11 +0100 | <dolio> | So, 'strict' types are also coinductive, even though they superficially look like inductive data from a total language. |
2021-02-25 16:29:09 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-02-25 16:29:18 +0100 | <dolio> | The difference is no longer explainable as data vs. codata, inductive vs. coinductive. Instead they are fixed points of distinct functors. |
2021-02-25 16:30:53 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-25 16:33:18 +0100 | <boxscape> | hm it seems like multiplicity polymorphism for (possibly) linear function will be a mess if multiplicity 0 is ever allowed (i.e. graded typing). I think a function can be polymorphic over 1 and ω, over 0 and ω, but not over any other combination |
2021-02-25 16:33:34 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) |
2021-02-25 16:33:55 +0100 | <boxscape> | assuming ω means you're allowed to use the argument however many times you want |
2021-02-25 16:33:55 +0100 | <dolio> | You mean, the same function won't actually work for 0 and 1? |
2021-02-25 16:34:41 +0100 | <boxscape> | dolio what I mean is if you use an argument once, than %m-> would be a valid arrow only if m is not 0, for example |
2021-02-25 16:35:08 +0100 | <dolio> | I think you can probably only be polymorphic by not using the argument yourself. |
2021-02-25 16:35:22 +0100 | <boxscape> | ah |
2021-02-25 16:35:26 +0100 | <dolio> | You are polymorphic because you just pass the argument to another function. |
2021-02-25 16:35:38 +0100 | <dolio> | Which could be any multiplicity that matches. |
2021-02-25 16:36:05 +0100 | <boxscape> | right now you can have (\x -> x) :: (a %m-> a) in ghc 9.1 |
2021-02-25 16:36:40 +0100 | <boxscape> | oh wait |
2021-02-25 16:36:55 +0100 | <boxscape> | I think it ends up not actually being polymorphic if you do that |
2021-02-25 16:37:14 +0100 | <boxscape> | or maybe ghci just doesn't print multiplicity polymorphism by default |
2021-02-25 16:37:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-02-25 16:38:31 +0100 | <dolio> | What does it print for something like `(\f x -> f x) :: ((a %m-> b) -> (a %m-> b))` |
2021-02-25 16:38:39 +0100 | <Philonous> | I have a list of Handles and I'm looking for a function that returns the first that has inputs or blocks until one becomes available (like epoll) |
2021-02-25 16:39:17 +0100 | alx741 | (~alx741@181.196.69.27) |
2021-02-25 16:39:29 +0100 | <boxscape> | dolio it prints the type of that as `forall a b. (a -> b) -> a -> b` |
2021-02-25 16:39:58 +0100 | <boxscape> | and I can use the function I wrote above in both %One-> and %Many-> positions, so I guess it does, in fact, just not print it |
2021-02-25 16:40:31 +0100 | <dolio> | Isn't there also subtyping between multiplicities? |
2021-02-25 16:40:37 +0100 | <boxscape> | uhh possibly |
2021-02-25 16:40:51 +0100 | <dolio> | Which is more what you were talking about before. |
2021-02-25 16:41:12 +0100 | <boxscape> | hmm yeah |
2021-02-25 16:41:24 +0100 | <dolio> | I.E. a linear function can be promoted to an unrestricted function. |
2021-02-25 16:41:26 +0100 | <geekosaur> | Philonous, I suspect you'll have to make a binding to epoll |
2021-02-25 16:41:47 +0100 | knupfer | (~Thunderbi@200116b82c5b78000cf80c553eaca855.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-02-25 16:41:52 +0100 | <merijn> | You don't |
2021-02-25 16:41:55 +0100 | <merijn> | You can do this with STM |
2021-02-25 16:42:05 +0100 | <Philonous> | Ah, right |
2021-02-25 16:42:07 +0100 | crobbins | (~crobbins@2600:380:b862:6852:6dfc:d2e7:3649:b8ed) (Ping timeout: 260 seconds) |
2021-02-25 16:42:19 +0100 | <merijn> | Philonous: https://hackage.haskell.org/package/base-4.14.1.0/docs/Control-Concurrent.html#v:threadWaitReadSTM |
2021-02-25 16:44:00 +0100 | <boxscape> | anyone know where the Many and One data constructors for linear types are defined? |
2021-02-25 16:44:35 +0100 | crobbins | (~crobbins@2600:380:b86f:cfd2:64ef:f87:41ee:2ddd) |
2021-02-25 16:44:40 +0100 | <Philonous> | Maybe it's easier to just start n threads blocking on hWaitForInput and once one unblocks I just put the respective Handle into an {T}MVar |
2021-02-25 16:44:47 +0100 | <boxscape> | (they don't seem to say in the proposal) |
2021-02-25 16:45:37 +0100 | <boxscape> | ghci> id :: a %m-> a |
2021-02-25 16:45:38 +0100 | <boxscape> | Couldn't match type ‘'Many’ with ‘'Many’ |
2021-02-25 16:45:39 +0100 | <boxscape> | thanks |
2021-02-25 16:46:03 +0100 | <boxscape> | (though it makes sense that this wouldn't work) |
2021-02-25 16:46:34 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:1d7:97cc:1317:bca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 16:46:36 +0100 | crobbins | (~crobbins@2600:380:b86f:cfd2:64ef:f87:41ee:2ddd) (Remote host closed the connection) |
2021-02-25 16:47:34 +0100 | <boxscape> | it's defined in GHC.Types |
2021-02-25 16:48:16 +0100 | <Philonous> | Will ghc support multiplicity-polymorphism? |
2021-02-25 16:48:27 +0100 | <boxscape> | dolio:I.E. a linear function can be promoted to an unrestricted function. -- I don't think this is true; if I have a function `lid :: a %1-> a; lid x = x`, I get an error if I try `lid :: a -> a` |
2021-02-25 16:48:31 +0100 | <boxscape> | Philonous it does already |
2021-02-25 16:48:33 +0100 | <Philonous> | (Or whatever the correct term is) |
2021-02-25 16:48:34 +0100 | <boxscape> | in HEAD |
2021-02-25 16:48:41 +0100 | <Philonous> | Oh, nice. |
2021-02-25 16:49:43 +0100 | <dolio> | Maybe there is no subtyping, then. |
2021-02-25 16:50:17 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2021-02-25 16:50:22 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-25 16:50:47 +0100 | kam1 | (~kam1@5.125.126.175) (Ping timeout: 265 seconds) |
2021-02-25 16:50:51 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-02-25 16:52:02 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 256 seconds) |
2021-02-25 16:53:12 +0100 | Wuzzy | (~Wuzzy@p5790ec2c.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-02-25 16:53:28 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
2021-02-25 16:54:16 +0100 | notzmv | (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds) |
2021-02-25 16:54:30 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) (Quit: Connection closed) |
2021-02-25 16:54:42 +0100 | shatriff | (~vitaliish@protective.remission.volia.net) (Remote host closed the connection) |
2021-02-25 16:54:54 +0100 | shatriff | (~vitaliish@protective.remission.volia.net) |
2021-02-25 16:54:57 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:b00a:55a1:d947:55ef) (Ping timeout: 272 seconds) |
2021-02-25 16:57:44 +0100 | <dolio> | boxscape: I assume it works if you eta expand? But maybe that's all. That'd fit GHC's typical approach. |
2021-02-25 16:58:45 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-02-25 16:58:46 +0100 | <boxscape> | dolio yeah the lid example does work with eta expansion |
2021-02-25 16:59:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 17:00:07 +0100 | xosdy[m]1 | (xosdyaleth@gateway/shell/matrix.org/x-xunefsscnonbtgiv) (Quit: Idle for 30+ days) |
2021-02-25 17:00:34 +0100 | DarknessDad | (~LizardDad@c-98-236-134-69.hsd1.oh.comcast.net) (Read error: Connection reset by peer) |
2021-02-25 17:02:06 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 17:02:21 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 17:02:33 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 17:03:33 +0100 | slack1256 | (~slack1256@45.4.2.52) (Ping timeout: 260 seconds) |
2021-02-25 17:03:33 +0100 | marble_visions | (~user@68.183.79.8) (Quit: bye) |
2021-02-25 17:03:39 +0100 | <sm[m]> | ezzieyguywuf: a very good chance, you have to test both ghc versions and adapt to both either using CPP or the *-compat libs on hackage |
2021-02-25 17:03:56 +0100 | <Clint> | ~/win go #linguistics |
2021-02-25 17:04:00 +0100 | Clint | sighs. |
2021-02-25 17:04:12 +0100 | marble_visions | (~user@68.183.79.8) |
2021-02-25 17:04:13 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 17:04:19 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-02-25 17:04:45 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:05:02 +0100 | <ezzieyguywuf> | sm[m]: you're answering my questions from yesterday? |
2021-02-25 17:05:13 +0100 | <sm[m]> | ohh oops, darn client was scrolled to yesterday :) |
2021-02-25 17:05:17 +0100 | <ezzieyguywuf> | lol nbd |
2021-02-25 17:05:26 +0100 | <ezzieyguywuf> | just checking to make sure I didn't ask something today and forgot |
2021-02-25 17:05:41 +0100 | <sm[m]> | must.. sync.. with.. consensus.. time.. |
2021-02-25 17:06:55 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:d62a:148b:cd1:9dfb) |
2021-02-25 17:08:47 +0100 | gr33nbits | (~gr33nbits@a109-49-87-64.cpe.netcabo.pt) |
2021-02-25 17:08:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-25 17:09:55 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-02-25 17:10:41 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-25 17:10:47 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-25 17:10:47 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-02-25 17:13:08 +0100 | Davith | (56be7512@host86-190-117-18.range86-190.btcentralplus.com) |
2021-02-25 17:13:40 +0100 | Davith | (56be7512@host86-190-117-18.range86-190.btcentralplus.com) () |
2021-02-25 17:14:54 +0100 | Guest56442 | (~zmv@191.255.89.231) |
2021-02-25 17:15:03 +0100 | Pickchea | (~private@unaffiliated/pickchea) |
2021-02-25 17:15:10 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:15:16 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-25 17:15:49 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:16:24 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 265 seconds) |
2021-02-25 17:19:56 +0100 | acidjnk_new | (~acidjnk@p200300d0c739092208198526eb118d06.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-02-25 17:20:24 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 272 seconds) |
2021-02-25 17:20:29 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer) |
2021-02-25 17:20:55 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:21:25 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-25 17:22:53 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-kzbgzpokvgnzruvp) |
2021-02-25 17:23:31 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 17:24:16 +0100 | alecs[m] | (malumorema@gateway/shell/matrix.org/x-nmaaktphkqttrbsd) |
2021-02-25 17:25:16 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-25 17:25:31 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:25:33 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
2021-02-25 17:26:04 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:28:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
2021-02-25 17:28:49 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2021-02-25 17:30:09 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 17:30:18 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 17:30:19 +0100 | roconnor | (~roconnor@host-104-157-194-235.dyn.295.ca) |
2021-02-25 17:30:34 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 256 seconds) |
2021-02-25 17:31:14 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 17:33:00 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
2021-02-25 17:33:03 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 17:35:36 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2021-02-25 17:35:45 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds) |
2021-02-25 17:37:33 +0100 | justsome1 | (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 246 seconds) |
2021-02-25 17:38:21 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 264 seconds) |
2021-02-25 17:40:01 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2021-02-25 17:41:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 17:42:00 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) |
2021-02-25 17:43:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 17:43:28 +0100 | lazyshrk | (~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 17:43:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 17:44:11 +0100 | lazyshrk | (~lazyshrk@128.199.58.13) |
2021-02-25 17:48:41 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-25 17:48:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-25 17:49:10 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-25 17:49:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 17:50:15 +0100 | <koz> | Best line in any paper I've read this year: "Monoid-on-monoid action" |
2021-02-25 17:50:16 +0100 | aqd | (~aqd@84.20.147.33) (Ping timeout: 240 seconds) |
2021-02-25 17:51:22 +0100 | <monochrom> | heh |
2021-02-25 17:51:29 +0100 | tapas | topos |
2021-02-25 17:51:33 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 17:51:36 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) () |
2021-02-25 17:51:37 +0100 | <Taneb> | Does that just work out to be a monoid homomorphism? |
2021-02-25 17:51:54 +0100 | bergey`` | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Remote host closed the connection) |
2021-02-25 17:52:39 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 265 seconds) |
2021-02-25 17:52:51 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-25 17:53:42 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-25 17:53:49 +0100 | <koz> | Taneb: Yeah, I think so. |
2021-02-25 17:53:57 +0100 | <koz> | But it's still hilarious as a line. |
2021-02-25 17:54:39 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-02-25 17:54:39 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-02-25 17:54:39 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-02-25 17:55:05 +0100 | <monochrom> | But monoid actions (and group actions) are of value too, whether it is acting on yet another monoid. |
2021-02-25 17:55:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 17:55:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 17:56:16 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 240 seconds) |
2021-02-25 17:56:56 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds) |
2021-02-25 18:00:33 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 264 seconds) |
2021-02-25 18:00:42 +0100 | pera | (pera@gateway/vpn/mullvad/pera) |
2021-02-25 18:01:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 18:01:21 +0100 | andi^ | andi- |
2021-02-25 18:01:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 18:03:10 +0100 | crobbins | (~crobbins@c-73-76-34-113.hsd1.tx.comcast.net) |
2021-02-25 18:03:39 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-02-25 18:04:52 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 18:05:49 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 18:07:53 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Ping timeout: 272 seconds) |
2021-02-25 18:09:30 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-25 18:09:35 +0100 | Deide | (~Deide@217.155.19.23) |
2021-02-25 18:12:17 +0100 | augnun | (~augnun@2804:14c:658b:41bb:9900:3bb7:feab:98f9) |
2021-02-25 18:13:21 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 18:13:43 +0100 | mnrmnaugh | find |
2021-02-25 18:14:03 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-25 18:15:11 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 18:15:20 +0100 | <ski> | koz : mapping monoid elements to monoid homomorphisms ? like a bilinear transformation, but for monoids rather than for vector spaces ? |
2021-02-25 18:15:56 +0100 | <koz> | ski: It's from Brent Yorgey's paper about diagrams? |
2021-02-25 18:16:36 +0100 | Tops2 | (~Tobias@dyndsl-095-033-019-043.ewe-ip-backbone.de) |
2021-02-25 18:17:17 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) |
2021-02-25 18:19:21 +0100 | kuribas | (~user@ptr-25vy0i970oqtzc3b45o.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-02-25 18:19:41 +0100 | <ski> | hm, any link ? |
2021-02-25 18:19:56 +0100 | <koz> | https://repository.upenn.edu/cgi/viewcontent.cgi?article=1773&context=cis_papers |
2021-02-25 18:20:32 +0100 | find | mnrmnaugh |
2021-02-25 18:20:33 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 260 seconds) |
2021-02-25 18:21:57 +0100 | GZJ0X_ | (~gzj@unaffiliated/gzj) (Ping timeout: 260 seconds) |
2021-02-25 18:21:58 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2021-02-25 18:23:30 +0100 | <ski> | hm, we need a catchy term for the verb version of "function extensionality" |
2021-02-25 18:23:56 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection) |
2021-02-25 18:24:08 +0100 | <dolio> | How would the verb be used? |
2021-02-25 18:24:10 +0100 | <rednaZ[m]> | Is the result of `f x` used via a binder like `result = \ @ a_a2L5 -> f x` in core guaranteed to be shared although it is technically under a lambda (upper-case lambda)? |
2021-02-25 18:24:34 +0100 | <ski> | "Moreover, η-reducint (1) and (2) yeilds" (page 9 of aforementioned paper) |
2021-02-25 18:24:46 +0100 | <ski> | s/reducint/reducing/ |
2021-02-25 18:25:18 +0100 | <ski> | it ought to express that the listed equations are the "function extensionalized" versions of equations (1) and (2) |
2021-02-25 18:26:13 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 18:26:27 +0100 | <ski> | (also, i'm not too sure if it makes much sense to have an `Action' type class, for similar reasons for why there doesn't seem to be much utility to have a `NaturalTransformation' type class) |
2021-02-25 18:26:34 +0100 | <EvanR> | how about zonk |
2021-02-25 18:27:42 +0100 | adamoden | (bc970b1d@c188-151-11-29.bredband.comhem.se) (Ping timeout: 240 seconds) |
2021-02-25 18:30:35 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) |
2021-02-25 18:30:57 +0100 | <lyxia> | rednaZ[m]: that seems likely |
2021-02-25 18:31:30 +0100 | <ski> | "zonk" already has a (different) technical meaning. (see <https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/type-checker#user-content-types-var…>,<https://stackoverflow.com/questions/31889048/what-does-the-ghc-source-mean-by-zonk>) |
2021-02-25 18:31:36 +0100 | bitmagie | (~Thunderbi@200116b8061f5a00d5e2aa6a74fa294f.dip.versatel-1u1.de) (Client Quit) |
2021-02-25 18:32:01 +0100 | <EvanR> | good point, might want to avoid overloading |
2021-02-25 18:32:20 +0100 | boxscape | (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed) |
2021-02-25 18:32:40 +0100 | <ski> | (i guess we also need a plausible adjectival version) |
2021-02-25 18:32:49 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-25 18:33:07 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
2021-02-25 18:33:39 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-csqlidmiacqyvucp) |
2021-02-25 18:34:50 +0100 | cocytus | (~cocytus@cpe-76-95-48-109.socal.res.rr.com) |
2021-02-25 18:34:55 +0100 | waskell | (~quassel@d66-183-230-153.bchsia.telus.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-02-25 18:36:28 +0100 | <cocytus> | I booted up VSCode today and got this Haskell Extension error: haskell-language-server 1.0.0 for GHC 8.8.4 is not available on Windows_NT |
2021-02-25 18:36:37 +0100 | <cocytus> | Anyone else seeing this problem? |
2021-02-25 18:39:09 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) |
2021-02-25 18:39:38 +0100 | o1lo01ol1o | (~o1lo01ol1@89.214.192.84) |
2021-02-25 18:43:19 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 18:43:50 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-25 18:44:20 +0100 | danza | (~francesco@151.53.76.37) (Quit: Leaving) |
2021-02-25 18:45:12 +0100 | <fendor> | cocytus, You should probably report it in #haskell-language-server |
2021-02-25 18:45:38 +0100 | <fendor> | I bet jneira knows what's up |
2021-02-25 18:46:46 +0100 | <cocytus> | Will do. Didn't know that was a channel until now. Thanks. |
2021-02-25 18:47:21 +0100 | afidegnum | (~afidegnum@102.176.65.243) (Ping timeout: 264 seconds) |
2021-02-25 18:47:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-25 18:48:08 +0100 | tv- | (~tv@unaffiliated/tv-) ("WeeChat 2.9") |
2021-02-25 18:49:55 +0100 | Wuzzy | (~Wuzzy@p5790e3bb.dip0.t-ipconnect.de) |
2021-02-25 18:49:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 18:50:56 +0100 | <ski> | koz : ok, yes the action was mapping monoid elements to monoid homomorphisms, so it's like a "bimonoidal transformation" or whatever one should call it |
2021-02-25 18:52:45 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-02-25 18:52:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 18:53:42 +0100 | hiredman_ | hiredman |
2021-02-25 18:54:16 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Read error: Connection reset by peer) |
2021-02-25 18:54:33 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) |
2021-02-25 18:56:44 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-25 18:57:41 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-02-25 18:59:30 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) (Remote host closed the connection) |
2021-02-25 19:00:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-25 19:01:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 19:02:45 +0100 | <monochrom> | verb version of function extensionality: f is pointwise equal to g |
2021-02-25 19:04:04 +0100 | <EvanR> | is isn't that verbing |
2021-02-25 19:04:06 +0100 | <dolio> | That isn't the verb that was requested, though. Although I'm not really convinced of the necessity. |
2021-02-25 19:04:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
2021-02-25 19:05:02 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-25 19:05:25 +0100 | <dolio> | The verb was for rewriting a formula to use pointwise equality. |
2021-02-25 19:06:24 +0100 | <ski> | s/formula/defining equation/ |
2021-02-25 19:06:55 +0100 | <monochrom> | re-pointify :) |
2021-02-25 19:07:04 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-25 19:09:05 +0100 | <ski> | well, really for either direction i guess. although i had the other direction mostly in mind |
2021-02-25 19:09:53 +0100 | ski | . o O ( "repointificate","depointificate","pointificate" ) |
2021-02-25 19:10:02 +0100 | <koz> | I'm in favour of 'pointificate'. |
2021-02-25 19:10:15 +0100 | Wuzzy | (~Wuzzy@p5790e3bb.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-02-25 19:10:21 +0100 | <ski> | and the first two as specific directed versions of it ? |
2021-02-25 19:11:25 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-25 19:12:00 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 19:12:59 +0100 | <koz> | ski: Along with 'disappointificate'. |
2021-02-25 19:13:00 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-25 19:13:01 +0100 | <ski> | "indirectify" doesn't sound that great (is quite vague about what is indirect) .. i guess "extensionalify" or "extensionalize" isn't quite as bad |
2021-02-25 19:13:05 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) |
2021-02-25 19:14:05 +0100 | xsperry | (~as@unaffiliated/xsperry) () |
2021-02-25 19:15:51 +0100 | <ski> | koz : hm, so "appointificate" would be going from `map f . concat = concat . map (map f)' to `map f (concat xss) = concat (map (map f) xss)', and "disappointificate" the reverse direction, while "pointificate" refers to both ? |
2021-02-25 19:16:27 +0100 | <koz> | ski: Yes! |
2021-02-25 19:16:39 +0100 | <koz> | And people who do this are 'pointiffs'. |
2021-02-25 19:16:48 +0100 | <ski> | i like it |
2021-02-25 19:17:38 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-bteccupbxcrkcjlt) (Quit: Connection closed for inactivity) |
2021-02-25 19:17:39 +0100 | <ski> | so, it's settled then, at least tentatively ? |
2021-02-25 19:17:53 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-25 19:17:54 +0100 | <koz> | No objections here. |
2021-02-25 19:19:04 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-02-25 19:21:25 +0100 | Graf_Blutwurst | (~grafblutw@adsl-178-38-234-220.adslplus.ch) (Quit: WeeChat 3.0) |
2021-02-25 19:21:54 +0100 | waskell | (~quassel@d66-183-230-153.bchsia.telus.net) |
2021-02-25 19:24:48 +0100 | <ski> | (fwiw, to clarify, `f x = x^2' is an indirect definition of `f' in the sense that it defines `f' indirectly, by defining what the output `f x' is to be, for every possible input `x'. `f = \x -> x^2' would be a direct definition, in this sense, giving a meaning directly to `f'. ditto applies for defining relations, and defining subsets .. in fact, also applies to "message-dispatching" definitions (aka |
2021-02-25 19:24:54 +0100 | <ski> | "copatterns"), like `repeat :: a -> Stream a; repeat a = as where Head as = a; Tail as = as' and `iterate :: (a -> a) -> a -> Stream a; Head (iterate _ x) = x; Tail (iterate f x) = iterate f (f x)') |
2021-02-25 19:26:37 +0100 | dcoutts__ | (~duncan@85.186.125.91.dyn.plus.net) (Ping timeout: 260 seconds) |
2021-02-25 19:27:11 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-02-25 19:28:16 +0100 | skregas_ | (~skregas_@201.89-10-150.nextgentel.com) |
2021-02-25 19:29:23 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-saqaggydvtpkwddi) |
2021-02-25 19:30:38 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) |
2021-02-25 19:30:49 +0100 | <dolio> | This seems like being concerned with distinctions that don't really matter. |
2021-02-25 19:31:35 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
2021-02-25 19:31:39 +0100 | <dolio> | The 'direct' definition of f is 'directly' defining it to mean a function literal that defined by saying what the output is for every possible input. |
2021-02-25 19:32:51 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-02-25 19:34:56 +0100 | <ski> | yea, the point was the general shape `f x = ..x..' vs. `f = ... |
2021-02-25 19:34:57 +0100 | <ski> | ' |
2021-02-25 19:35:23 +0100 | merelyme | (~merelyme@185.153.177.12) |
2021-02-25 19:35:26 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:7b45:fc1a:7f85:7f18) (Ping timeout: 240 seconds) |
2021-02-25 19:37:09 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 19:37:14 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-25 19:37:18 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 19:37:26 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 19:38:36 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-02-25 19:39:56 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds) |
2021-02-25 19:41:28 +0100 | darjeeling_ | (~darjeelin@122.245.217.214) (Ping timeout: 256 seconds) |
2021-02-25 19:45:06 +0100 | meck | (~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 19:45:22 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 19:46:33 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 19:46:42 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 19:48:16 +0100 | meck | (~meck@li1809-18.members.linode.com) |
2021-02-25 19:50:59 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 19:51:06 +0100 | Pickchea | (~private@unaffiliated/pickchea) (Ping timeout: 256 seconds) |
2021-02-25 19:51:24 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 19:51:42 +0100 | <dminuoso> | ski: I recall a publication discussing the history of terminology in logic, do you happen to know what I’m thinking of? |
2021-02-25 19:52:07 +0100 | <dminuoso> | Im sure it was you who suggested it a while ago |
2021-02-25 19:52:27 +0100 | <dminuoso> | (I think it was some kind of article or letter from Frege, but I can’t seem to find it) |
2021-02-25 19:52:45 +0100 | mawk | (mawk@serveur.io) (Ping timeout: 256 seconds) |
2021-02-25 19:54:22 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-02-25 19:54:36 +0100 | merelyme | (~merelyme@185.153.177.12) (Remote host closed the connection) |
2021-02-25 19:54:42 +0100 | darjeeling_ | (~darjeelin@122.245.218.150) |
2021-02-25 19:58:07 +0100 | <ski> | hm .. doesn't seem to ring a bell |
2021-02-25 20:00:30 +0100 | <ski> | Frege has some interesting writings. like "Begriffsschrift","Function and Concept","What is a Function?","The Foundations of Arithmetic" |
2021-02-25 20:00:41 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-02-25 20:00:51 +0100 | conal | (~conal@64.71.133.70) |
2021-02-25 20:01:06 +0100 | <ski> | (probably "On Sense and Reference" and "Concept and Object" are also interesting, but i haven't read those) |
2021-02-25 20:01:27 +0100 | <ski> | Frege basically introduces macros at one point |
2021-02-25 20:02:47 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-25 20:02:47 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-25 20:03:21 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-25 20:03:23 +0100 | <ski> | (what he calls "function" we'd call an "expression with holes" (a meta-function, operating on fragments of language phrases by composing smaller ones into larger ones (no analysis)). what we call a "function (value)" he calls "course-of-values (of a function)", basically being the extension of the former) |
2021-02-25 20:03:23 +0100 | jpds_ | (~jpds@gateway/tor-sasl/jpds) |
2021-02-25 20:03:56 +0100 | <EvanR> | i read that part, and was wondering, how is his idea different from a lambda |
2021-02-25 20:04:19 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2021-02-25 20:04:26 +0100 | <EvanR> | other than being earlier in history than lambda calculus |
2021-02-25 20:04:35 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 20:05:17 +0100 | <ski> | "From Frege to Gödel: A Source Book in Mathematical Logic" edited by J. van Heijenoort in 1967 contains key original articles/papers (when appropriate, translated into english) of early logicians and writers on logic |
2021-02-25 20:05:21 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 264 seconds) |
2021-02-25 20:06:16 +0100 | <ski> | i don't think he has anything like the lambda notation for function values |
2021-02-25 20:06:37 +0100 | <EvanR> | no... not really. But is notation the only significant difference? |
2021-02-25 20:06:53 +0100 | <ski> | i'm not talking about concrete syntax, i'm talking about abstract syntax |
2021-02-25 20:07:01 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
2021-02-25 20:07:04 +0100 | <ski> | he has no notation for it |
2021-02-25 20:07:09 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 20:07:38 +0100 | <EvanR> | yes in begriffschrift he has a funky notation for this sentence with a hole in it, that you can fill in |
2021-02-25 20:07:52 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds) |
2021-02-25 20:07:52 +0100 | <ski> | (he talks about courses-of-values by using words, and by writing down formulae for their bodies. but no notation corresponding to the lambda notation, as i said) |
2021-02-25 20:08:04 +0100 | <ski> | yes, that's the meta-function i mentioned |
2021-02-25 20:08:10 +0100 | <EvanR> | kind of a square root looking thing |
2021-02-25 20:08:55 +0100 | <EvanR> | ok, meta-function |
2021-02-25 20:09:40 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-02-25 20:10:37 +0100 | <ski> | (if you're familiar with staged computation, it's a function operating on code expressions. specifically a (only) synthesizing one (not analysing, not pattern-matching on input expressions)) |
2021-02-25 20:11:29 +0100 | <ski> | hm, looking at <https://gallica.bnf.fr/ark:/12148/bpt6k65658c/f37.item> -- would you know in which section, or on which page, the notation you mentioned is at ? |
2021-02-25 20:13:01 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 20:13:15 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 20:14:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 20:14:14 +0100 | <EvanR> | ok, go back to page 19 and he's doing this https://i.imgur.com/vOOTd00.png |
2021-02-25 20:14:35 +0100 | <EvanR> | basically reserving a letter to be used in place of a whole in a formula |
2021-02-25 20:14:48 +0100 | <EvanR> | seems pretty lambda like |
2021-02-25 20:15:17 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-25 20:15:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-25 20:16:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 20:16:10 +0100 | <ski> | oh, that's a universal quantifier |
2021-02-25 20:16:23 +0100 | <EvanR> | drat |
2021-02-25 20:16:30 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 20:16:41 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-25 20:16:44 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 20:18:09 +0100 | <ski> | people later linearized that into ⌜(a) Φ(a)⌝, also adding ⌜(∃a) Φ(a)⌝ for the existential version. then, at some point people started using ⌜(∀a) Φ(a)⌝ for the former, and then also ⌜∀a Φ(a)⌝ and ⌜∃a Φ(a)⌝ |
2021-02-25 20:18:21 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
2021-02-25 20:18:30 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 20:18:40 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 20:21:12 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-25 20:22:49 +0100 | _d0t | (void@gateway/vpn/mullvad/d0t/x-89419360) (Ping timeout: 260 seconds) |
2021-02-25 20:24:27 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-25 20:26:40 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) (Quit: Connection closed) |
2021-02-25 20:26:41 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 20:27:22 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2021-02-25 20:27:40 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 20:27:55 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-25 20:29:44 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 265 seconds) |
2021-02-25 20:32:09 +0100 | yahb | (xsbot@haskell/bot/yahb) (Ping timeout: 260 seconds) |
2021-02-25 20:32:19 +0100 | yahb | (xsbot@178.219.36.155) |
2021-02-25 20:32:19 +0100 | yahb | (xsbot@178.219.36.155) (Changing host) |
2021-02-25 20:32:19 +0100 | yahb | (xsbot@haskell/bot/yahb) |
2021-02-25 20:34:31 +0100 | o1lo01ol_ | (~o1lo01ol1@95.69.63.87) |
2021-02-25 20:34:49 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-02-25 20:36:39 +0100 | o1lo01o__ | (~o1lo01ol1@95.69.63.87) |
2021-02-25 20:37:04 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) (Remote host closed the connection) |
2021-02-25 20:37:28 +0100 | o1lo01ol1o | (~o1lo01ol1@89.214.192.84) (Ping timeout: 260 seconds) |
2021-02-25 20:37:30 +0100 | gioyik_ | (~gioyik@gateway/tor-sasl/gioyik) |
2021-02-25 20:37:53 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) (Ping timeout: 272 seconds) |
2021-02-25 20:37:57 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-25 20:38:14 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-25 20:39:09 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 260 seconds) |
2021-02-25 20:40:05 +0100 | o1lo01ol_ | (~o1lo01ol1@95.69.63.87) (Ping timeout: 260 seconds) |
2021-02-25 20:40:21 +0100 | joecordingley | (~joecordin@2a01:4b00:868e:6b00:b1ca:7352:e00f:e9bd) () |
2021-02-25 20:41:18 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
2021-02-25 20:41:31 +0100 | <rednaZ[m]> | lyxia: Thanks. |
2021-02-25 20:41:54 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-25 20:43:32 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) |
2021-02-25 20:49:17 +0100 | ddellacosta | (~ddellacos@86.106.143.202) |
2021-02-25 20:49:30 +0100 | <mananamenos> | Why is it possible to derive a functor but not a monad? I've started reading a bit about free monads and as I understand they are used to turn a functor to a monad. |
2021-02-25 20:49:53 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Ping timeout: 260 seconds) |
2021-02-25 20:50:17 +0100 | <EvanR> | you can derive a free monad |
2021-02-25 20:50:32 +0100 | <EvanR> | since it's unique |
2021-02-25 20:52:06 +0100 | <tomsmeding> | mananamenos: many types don't have a unique valid monad instance; I'm not sure whether it's feasible to automatically detect for a given type whether there is only one |
2021-02-25 20:52:33 +0100 | <tomsmeding> | and picking one while there are more would be risky and not really useful |
2021-02-25 20:53:44 +0100 | <EvanR> | even if you could detect that... i boggle at how you would find the specialized monads for all the types |
2021-02-25 20:55:11 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 20:56:32 +0100 | <shapr> | silly question, can I use hoogle to search for instances? |
2021-02-25 20:57:32 +0100 | <chisui> | you can derive Monad for newtypes. If you want something more interesting you will have to write your own instance anyway. |
2021-02-25 20:58:53 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-25 20:59:32 +0100 | <monochrom> | I don't think monads can be derived at all. |
2021-02-25 21:00:30 +0100 | <ski> | for `newtype's, you're just inheriting the instance from the representation |
2021-02-25 21:00:38 +0100 | <davean> | mananamenos: theres no opptions in what a Functor is. Its very simple. Theres one type parameter, and it behaves exactly one way |
2021-02-25 21:00:53 +0100 | <davean> | Not true with a Monad. |
2021-02-25 21:01:36 +0100 | ski | . o O ( `newtype Foo a = MkFoo (MyMonadTransformer Foo a) deriving (Functor,Applicative,Monad)' ) |
2021-02-25 21:02:36 +0100 | supercoven | (~Supercove@194.34.133.92) (Ping timeout: 240 seconds) |
2021-02-25 21:02:38 +0100 | <monochrom> | For free monads, the monad you end with looks nothing like the functor you start with at all. |
2021-02-25 21:02:57 +0100 | <mananamenos> | davean, im looking at fmap and bind signatures and cannot see why one would be possible to derive and not the other. For example bind is `f a -> (a -> f b) -> f b`, unwrap from the context the first param and call the function passed by second param. |
2021-02-25 21:03:18 +0100 | ddellacosta | (~ddellacos@86.106.143.202) (Remote host closed the connection) |
2021-02-25 21:03:35 +0100 | <ski> | "unwrap" is ambiguous |
2021-02-25 21:03:36 +0100 | <mananamenos> | just want to understand better, because there is something fundamental i dont get it seems. |
2021-02-25 21:03:36 +0100 | <davean> | mananamenos: incorrect. |
2021-02-25 21:03:40 +0100 | <monochrom> | OK, apply what you said to "data S a = C a (S a)", see how far you get. |
2021-02-25 21:03:45 +0100 | <davean> | mananamenos: Theres nothing forcing the "f" part to be the same |
2021-02-25 21:04:07 +0100 | <davean> | In functor it specificly *is* forced to not change |
2021-02-25 21:04:18 +0100 | <monochrom> | IMO it's counterproductive to keep claiming "I don't see why not" without writing down your algorithm. |
2021-02-25 21:04:21 +0100 | <davean> | Only the target may change in functor, anything may change in monad |
2021-02-25 21:04:23 +0100 | <monochrom> | So where is your algorithm? |
2021-02-25 21:04:55 +0100 | <monochrom> | IMO no one is obliged to answer "why not". |
2021-02-25 21:05:05 +0100 | <ski> | why not ? |
2021-02-25 21:05:11 +0100 | <davean> | His algorithm can't exist because Monad is insufficiently defined to allow a decision |
2021-02-25 21:05:15 +0100 | <monochrom> | Instead, show your algorithm to justify "why it can be done". |
2021-02-25 21:05:22 +0100 | <mananamenos> | monochrom, relax dude, i've just started reading about this stuff :) did not want to offend or something |
2021-02-25 21:05:52 +0100 | <mananamenos> | just looking for high level advices from people here |
2021-02-25 21:06:02 +0100 | <Ferdirand> | mananamenos: you can start with: newtype Compose f g a = f (g a) |
2021-02-25 21:06:11 +0100 | <monochrom> | Sure, if you're just starting, you're also not ready for a proof of impossbility. |
2021-02-25 21:06:14 +0100 | <Ferdirand> | then try to write (Functor f, Functor g) => Functor (Compose f g) |
2021-02-25 21:06:23 +0100 | <ski> | well, advice is what you got :) |
2021-02-25 21:06:28 +0100 | <Ferdirand> | then do it for Applicative, then try to do it for Monad |
2021-02-25 21:06:28 +0100 | nopolitica | (~zul@46.39.255.115) |
2021-02-25 21:06:44 +0100 | <monochrom> | See this is what I keep saying. People play the "I'm beginner" card only when it's convenient. |
2021-02-25 21:07:02 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) (Ping timeout: 256 seconds) |
2021-02-25 21:07:18 +0100 | ddellacosta | (~ddellacos@86.106.143.189) |
2021-02-25 21:07:27 +0100 | <davean> | I'm confused by this claim a proof of impossability isn't super useful for a beginner |
2021-02-25 21:07:34 +0100 | <chisui> | In this case I find it more intuitive to think of a Monad as something that supports join :: f (f a) -> f a |
2021-02-25 21:07:38 +0100 | <davean> | I find them lovely learning tools |
2021-02-25 21:07:47 +0100 | petersen | (~petersen@redhat/juhp) |
2021-02-25 21:07:57 +0100 | <monochrom> | What I'm against is not asking "why not". It's insisting "I don't see why not, just do the following" for the 2nd time. |
2021-02-25 21:08:23 +0100 | <monochrom> | davean, I said "not ready", not "not valuable". |
2021-02-25 21:08:27 +0100 | Wuzzy | (~Wuzzy@p5b0df8ea.dip0.t-ipconnect.de) |
2021-02-25 21:08:27 +0100 | ski | nods to chisui |
2021-02-25 21:08:41 +0100 | <monochrom> | You ever showed the halting problem proof to 1st-year CS students? |
2021-02-25 21:08:42 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-25 21:08:54 +0100 | <davean> | monochrom: yes! It is what opened CS to me! |
2021-02-25 21:09:08 +0100 | <davean> | and the FLP impossability opened distributed systems to me! |
2021-02-25 21:09:21 +0100 | <ski> | "FLP" ? |
2021-02-25 21:09:31 +0100 | <davean> | a good impossability proof has been more than anything else a way for me to jump into and deeply understand a subjest almost instantly |
2021-02-25 21:10:12 +0100 | <davean> | ski: the "big" proof of impossabiltiy that made Distributed Systems its own subject - You can't have concenssus |
2021-02-25 21:10:36 +0100 | <monochrom> | Why argue with me? Go ahead show the proof you want to show. I can't stop you. |
2021-02-25 21:10:39 +0100 | <davean> | Its the *only* thing I had to see to udnerstand other distributed systems things |
2021-02-25 21:10:51 +0100 | <davean> | I sketched it above |
2021-02-25 21:11:09 +0100 | <monochrom> | OK, how much have you convinced the asker? |
2021-02-25 21:11:24 +0100 | <ski> | does the letters stand for anything ? |
2021-02-25 21:11:27 +0100 | <davean> | monochrom: frankly I don't know |
2021-02-25 21:11:33 +0100 | <davean> | ski: Fischer, Lynch and Patterson |
2021-02-25 21:11:37 +0100 | <ski> | okay, ty |
2021-02-25 21:11:53 +0100 | <davean> | monochrom: you spent the entire time shutting them down |
2021-02-25 21:11:54 +0100 | <swarmcollective> | I've learned a lot by taking suggestions here and putting them in a repl to see what works and what doesn't. |
2021-02-25 21:11:55 +0100 | <mananamenos> | davean, could you expand of this `Theres nothing forcing the "f" part to be the same`? |
2021-02-25 21:12:03 +0100 | <monochrom> | My guess is that the asker thinks your argument is irrelevant because they think they've found a way around it. So, failure. |
2021-02-25 21:12:37 +0100 | <shapr> | I kinda miss the old days when Haskell code didn't have much in the way of type signatures. I used to use Haskell as compile time Python. But now I'm starting to use coerce and it's about the same thing, so yay? |
2021-02-25 21:12:40 +0100 | <davean> | mananamenos: ok, so you have `f a -> (a -> f b) -> f b`, whats the relationship between the 3 'f's? |
2021-02-25 21:13:09 +0100 | <ski> | shapr : i think Hughes mostly codes without signatures ? |
2021-02-25 21:13:39 +0100 | <davean> | functor says the 'f' part must be unchanged, but in Monad each 'f' changes (doesn't have to mind you but theres nothing relating them other than that the monad laws hold) |
2021-02-25 21:14:07 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-25 21:14:26 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 21:14:31 +0100 | <mananamenos> | davean, that `f` is the same thing throughout the whole signature (if you pik f=IO, then it's IO throughout the whole signturare) |
2021-02-25 21:14:48 +0100 | <davean> | mananamenos: Thats a type, not a value |
2021-02-25 21:15:19 +0100 | <mananamenos> | aaaa |
2021-02-25 21:15:31 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 21:15:39 +0100 | <mananamenos> | i start seeing the light davean xD |
2021-02-25 21:15:51 +0100 | fendor | (~fendor@91.141.0.220.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2021-02-25 21:15:51 +0100 | <davean> | YOu are correct about them being equal type - they're all 'f', but you have no idea whats in it |
2021-02-25 21:16:01 +0100 | <ski> | monochrom : with `f a' and `a -> f b' as input types, you can get to `f (f b)' (assuming `f' is a `Functor'). the trouble then is (as chisui hinted at) how you get from `f (f b)' to a plain `f b'. it's this part that isn't unique (and can "change the `f'" as davean put it) |
2021-02-25 21:16:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-25 21:16:05 +0100 | <ski> | er, sigh |
2021-02-25 21:16:08 +0100 | <ski> | mananamenos ^ |
2021-02-25 21:16:24 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 21:16:27 +0100 | <monochrom> | I don't understand this "change f" wording. |
2021-02-25 21:17:23 +0100 | <ski> | they mean : change the "structure" represented by the `f' part of the value of type `f a', as opposed to just changing the "elements" part represented by `a' |
2021-02-25 21:17:26 +0100 | <shapr> | ski: any idea if Hoogle can search for instances? |
2021-02-25 21:17:51 +0100 | <ski> | maybe the website version ? |
2021-02-25 21:18:51 +0100 | <tomsmeding> | geekosaur: at some point you asked for https://paste.tomsmeding.com to support paste expiration; how does this look? :) (the options thing) |
2021-02-25 21:19:06 +0100 | <tomsmeding> | noooo wrong mention |
2021-02-25 21:19:21 +0100 | <geekosaur> | hm, I don't recall requesting that, I asked for line numbers which you granted :) |
2021-02-25 21:19:39 +0100 | <tomsmeding> | gentauro: it was you who requested that |
2021-02-25 21:19:45 +0100 | crobbins | (~crobbins@c-73-76-34-113.hsd1.tx.comcast.net) (Ping timeout: 264 seconds) |
2021-02-25 21:19:45 +0100 | <tomsmeding> | damn first letters of nicks :p |
2021-02-25 21:19:58 +0100 | <koz> | Did quick look impredicativity make it into GHC 9? |
2021-02-25 21:19:58 +0100 | <monochrom> | Presumably with "deriving Whatever" the deriver has access to the definition of the particular f, so if your argument is "you don't know what's f", that pretty weak. Cf. "deriving Functor" also has to work for many wildly differeent f's. |
2021-02-25 21:20:11 +0100 | <tomsmeding> | geekosaur: sorry :p |
2021-02-25 21:20:13 +0100 | koz | koz_ |
2021-02-25 21:20:21 +0100 | <davean> | monochrom: I specificly covered that |
2021-02-25 21:20:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-25 21:21:17 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 21:21:19 +0100 | fendor | (~fendor@178.115.128.24.wireless.dyn.drei.com) |
2021-02-25 21:21:34 +0100 | <davean> | ski: FLP is a really great paper if you want to understand what to think about and what can and can't be done without a shared time basis |
2021-02-25 21:21:47 +0100 | <ski> | tomsmeding : hm, while we're mentioning "nice to have", i suppose i should say that <lpaste.net> had the feature that someone could annotate an existing paste with another paste chunk (e.g. an answer, elaboration, or fix). (it was also possible to replace a version of a chunk with a new one, correcting some information. iirc, there was links available to see the previous versions, if you wanted to, but i |
2021-02-25 21:21:47 +0100 | <davean> | ski: after FLP and Common Knowlege pretty much everything else is just a toolkit IMO |
2021-02-25 21:21:51 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 21:21:53 +0100 | <ski> | might misremember that) |
2021-02-25 21:21:55 +0100 | <chisui> | you could also just use `DeriveAnyClass` that's how that works, right? |
2021-02-25 21:22:11 +0100 | <davean> | (Common Knowlege gives you the framework for what is a workable exception to FLP) |
2021-02-25 21:22:26 +0100 | <davean> | (Like a shared time basis) |
2021-02-25 21:22:40 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) |
2021-02-25 21:22:41 +0100 | <geekosaur> | ski, you remember correctly |
2021-02-25 21:23:01 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 21:23:08 +0100 | <tomsmeding> | ski: interesting! my time is up for tonight, but maybe next time I'm looking to do something :) |
2021-02-25 21:23:26 +0100 | <geekosaur> | diffs between versions of a paste was helpful |
2021-02-25 21:23:38 +0100 | <ski> | (the point of annotations would be that they appeared on the same page, rather a completely different paste that can be hard to find, e.g. later. and you don't have to switch pages to compare the original paste with the annotation) |
2021-02-25 21:24:09 +0100 | <ski> | tomsmeding : yea, no worry. i just thought i'd mention it, in case you hadn't thought of or considered the idea |
2021-02-25 21:24:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-25 21:24:28 +0100 | <ski> | (annotation and updating versions were different features, to be clear) |
2021-02-25 21:24:32 +0100 | <tomsmeding> | I hadn't :) |
2021-02-25 21:25:40 +0100 | <mananamenos> | davean, ski, chisui thank you! |
2021-02-25 21:25:52 +0100 | <ski> | yw |
2021-02-25 21:26:09 +0100 | <davean> | mananamenos: no problem |
2021-02-25 21:26:10 +0100 | ski | thinks monochrom also helped, fwiw |
2021-02-25 21:27:05 +0100 | <chisui> | any time |
2021-02-25 21:27:06 +0100 | <ski> | (negative help can be just as important as positive help. knowing what not to do vs. knowing what to do) |
2021-02-25 21:28:26 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 240 seconds) |
2021-02-25 21:29:12 +0100 | <monochrom> | I'm cranky because the world is devaluing due diligence and I'm fighting it. |
2021-02-25 21:29:30 +0100 | <ski> | keep fighting the good fight |
2021-02-25 21:29:48 +0100 | <monochrom> | Due diligence means if you think you have an idea how to do something, you actually carry it out for a couple of examples before you invite people to discuss it. |
2021-02-25 21:30:59 +0100 | <monochrom> | Last week I thought I saw how to make ZipList a monad. |
2021-02-25 21:30:59 +0100 | <davean> | monochrom: I don't think you're being honest with yourself here. I think you're demanding everyone learn and think the way you do |
2021-02-25 21:34:13 +0100 | ircbrowse_tom | (~ircbrowse@64.225.78.177) (ZNC 1.7.5+deb4 - https://znc.in) |
2021-02-25 21:39:30 +0100 | ircbrowse_tom_ | (~ircbrowse@64.225.78.177) |
2021-02-25 21:39:31 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-02-25 21:39:31 +0100 | Server | +CLnt |
2021-02-25 21:39:33 +0100 | retlo1 | (~retlo@172.245.134.89) |
2021-02-25 21:39:33 +0100 | srid | (sridmatrix@gateway/shell/matrix.org/x-asyxkxzqnxcrpgqz) (Ping timeout: 265 seconds) |
2021-02-25 21:39:34 +0100 | psydruid | (psydruidma@gateway/shell/matrix.org/x-gkeygehzefulhcqy) (Ping timeout: 265 seconds) |
2021-02-25 21:39:37 +0100 | nrdmn9 | (~nrdmn@95.129.53.118) |
2021-02-25 21:39:37 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-02-25 21:39:43 +0100 | jamestmartin | (~james@jtmar.me) |
2021-02-25 21:39:47 +0100 | cheers- | (~user@unaffiliated/cheers) |
2021-02-25 21:39:54 +0100 | parseval | (sid239098@gateway/web/irccloud.com/x-xtgzvtrnthigcynq) |
2021-02-25 21:39:56 +0100 | buggymcbugfix_ | (sid432603@gateway/web/irccloud.com/x-naqvoueakkcopuie) |
2021-02-25 21:39:56 +0100 | sm[m] | (simonmicma@gateway/shell/matrix.org/x-bgzcpqodewfewacu) (Ping timeout: 240 seconds) |
2021-02-25 21:40:00 +0100 | MrMuffles[m] | (mrmufflesm@gateway/shell/matrix.org/x-mrblnlwbznzgfknm) (Ping timeout: 268 seconds) |
2021-02-25 21:40:00 +0100 | betrion[m] | (betrionmat@gateway/shell/matrix.org/x-olmvksmarryfhawb) (Ping timeout: 268 seconds) |
2021-02-25 21:40:00 +0100 | alexfmpe | (alexfmpema@gateway/shell/matrix.org/x-smqfejcgpvfgbkxf) (Ping timeout: 268 seconds) |
2021-02-25 21:40:00 +0100 | tomsen[m] | (tfbiomatri@gateway/shell/matrix.org/x-srxhwciroichajqn) (Ping timeout: 268 seconds) |
2021-02-25 21:40:00 +0100 | CrabMan | (phi-matrix@gateway/shell/matrix.org/x-inxxpawmmofshkii) (Ping timeout: 268 seconds) |
2021-02-25 21:40:00 +0100 | lnxw37d4 | (lnxw37d4ma@gateway/shell/matrix.org/x-wuxiqkhdynxpuvsj) (Ping timeout: 268 seconds) |
2021-02-25 21:40:02 +0100 | monokrome|stole | (~monokrome@23-24-202-21-static.hfc.comcastbusiness.net) |
2021-02-25 21:40:05 +0100 | hsiktas[m] | (hsiktasmat@gateway/shell/matrix.org/x-uybiusisumxitdaa) (Ping timeout: 240 seconds) |
2021-02-25 21:40:08 +0100 | mursu_ | (~ngWalrus@2a03:b0c0:3:d0::5ebd:2001) |
2021-02-25 21:40:12 +0100 | mht | (~mht@mht.wtf) |
2021-02-25 21:40:13 +0100 | bram[m]1 | (bramvdbnet@gateway/shell/matrix.org/x-pynuwbnylnthgwie) (Ping timeout: 260 seconds) |
2021-02-25 21:40:16 +0100 | suzu | (~scaleuser@2001:bc8:1824:43f::1) |
2021-02-25 21:40:18 +0100 | mud | (kadobanemp@gateway/shell/matrix.org/x-hsvwcnlpdlaahtsv) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | meff[m]1 | (meffsunado@gateway/shell/matrix.org/x-xlarclvljsmhctte) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | a3f_ | (~a3f@chimeria.ext.pengutronix.de) |
2021-02-25 21:40:18 +0100 | Lurkki[m] | (lurkkipriv@gateway/shell/matrix.org/x-vlaovxmnmfvldkrr) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | Robin[m]2 | (robinrobin@gateway/shell/matrix.org/x-qphxaxtkmuztcpcw) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | utdemir[m] | (utdemirmat@gateway/shell/matrix.org/x-ooablpupuwhzomuh) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | sigmacool[m] | (sigmacoolm@gateway/shell/matrix.org/x-rymnviobwcpxiozr) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | ManofLetters[m] | (manoflette@gateway/shell/matrix.org/x-piojuxwadmoobdzz) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | enya[m] | (enyaismatr@gateway/shell/matrix.org/x-zbzyfyeroxeyoocq) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | mentaal[m] | (mentaalmat@gateway/shell/matrix.org/x-ukiqzdxfkqtlhpke) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | maerwald[m] | (maerwaldma@gateway/shell/matrix.org/x-vwszhcqtafaewwod) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | simara[m] | (simaramatr@gateway/shell/matrix.org/x-sojjxmanrmrsekzv) (Ping timeout: 246 seconds) |
2021-02-25 21:40:18 +0100 | jeffcasavant[m] | (jeffcasava@gateway/shell/matrix.org/x-atfrdwrnsadyxibx) (Ping timeout: 246 seconds) |
2021-02-25 21:40:20 +0100 | fii | (~Dykomii@kyoto.mii.moe) |
2021-02-25 21:40:24 +0100 | amatecha___ | (sid10006@gateway/web/irccloud.com/x-hfdlvklywzlniuqc) |
2021-02-25 21:40:25 +0100 | a-tsioh[m] | (a-tsiohmat@gateway/shell/matrix.org/x-lkrwfyxpsvcpqlyf) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | CaptainYukinoshi | (captain-yu@gateway/shell/matrix.org/x-oqlacnjkofwdfnvx) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | jesser[m] | (jessermatr@gateway/shell/matrix.org/x-aliilzvfpxrienry) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | rednaZ[m] | (r3dnazmatr@gateway/shell/matrix.org/x-wkjrelmxcbmcuyyo) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | jchia[m] | (jchiamatri@gateway/shell/matrix.org/x-aipijicvixxymjoa) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | JaakkoLuttinen[m | (jluttinema@gateway/shell/matrix.org/x-ijlspogsmepgzkug) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | darkcodi[m] | (darkcodima@gateway/shell/matrix.org/x-xorowkamjqelpcvb) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | Sarievo[m] | (sarievoale@gateway/shell/matrix.org/x-pngyxqiqrgpejknf) (Ping timeout: 240 seconds) |
2021-02-25 21:40:25 +0100 | pineapples[m] | (pineapples@gateway/shell/matrix.org/x-scagahmjxdbvohux) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | jkaye[m] | (jkayematri@gateway/shell/matrix.org/x-cnkeaceuhrekegnv) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | Hanma[m] | (hanmamatri@gateway/shell/matrix.org/x-xfhxcxjspfcwzhbu) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | mly[m] | (mlydisenco@gateway/shell/matrix.org/x-sgyelsuopxjzxkpo) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | DamienCassou | (damiencass@gateway/shell/matrix.org/x-cdrscbrrnlsyfxmv) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | michaelpj | (michaelpjm@gateway/shell/matrix.org/x-noykicrlbsabjwyy) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | oreoking[m] | (oreokingma@gateway/shell/matrix.org/x-lucqvxavjvzfztwz) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | dyniec[m] | (dyniecmatr@gateway/shell/matrix.org/x-tcvgzzwiurupwthv) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | lambdaclan | (lambdaclan@gateway/shell/matrix.org/x-qbmkzkvrcxynlyna) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | jtojnar | (jtojnarmat@gateway/shell/matrix.org/x-etwznkqlpnyibdkq) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | Liyang[m] | (liyangmatr@gateway/shell/matrix.org/x-wtvmjvwxnbfzrmey) (Ping timeout: 240 seconds) |
2021-02-25 21:40:26 +0100 | unclechu | (unclechuma@gateway/shell/matrix.org/x-tivqiqvkdyqnowzk) (Ping timeout: 240 seconds) |
2021-02-25 21:40:27 +0100 | buggymcbugfix | (sid432603@gateway/web/irccloud.com/x-isytpynjaeamwtwv) (Ping timeout: 246 seconds) |
2021-02-25 21:40:27 +0100 | jbetz | (sid283648@gateway/web/irccloud.com/x-rkzjfvmopzejiyvu) (Ping timeout: 246 seconds) |
2021-02-25 21:40:28 +0100 | mcfilib | (sid302703@gateway/web/irccloud.com/x-rcdetrygsxetslsb) (Ping timeout: 246 seconds) |
2021-02-25 21:40:28 +0100 | buggymcbugfix_ | buggymcbugfix |
2021-02-25 21:40:28 +0100 | ba | (bandali@fsf/emeritus/bandali) |
2021-02-25 21:40:33 +0100 | gienah | (~mwright@gentoo/developer/gienah) (Write error: Broken pipe) |
2021-02-25 21:40:34 +0100 | vqrs_ | (~vqrs@learnprogramming/regular/vqrs) |
2021-02-25 21:40:37 +0100 | phittacus | (bklmatrixo@gateway/shell/matrix.org/x-ytpsxehmufedpsxo) (Ping timeout: 268 seconds) |
2021-02-25 21:40:37 +0100 | alecs[m] | (malumorema@gateway/shell/matrix.org/x-nmaaktphkqttrbsd) (Ping timeout: 268 seconds) |
2021-02-25 21:40:38 +0100 | berberman[T] | (berberma4@gateway/shell/matrix.org/x-httmllauhaglunmz) (Ping timeout: 268 seconds) |
2021-02-25 21:40:39 +0100 | retlo | (~retlo@172.245.134.89) (Write error: Broken pipe) |
2021-02-25 21:40:39 +0100 | saurik_ | (saurik@carrier.saurik.com) (Write error: Broken pipe) |
2021-02-25 21:40:40 +0100 | charukiewicz_ | (~quassel@irouteince04.i.subnet.rcn.com) (Write error: Broken pipe) |
2021-02-25 21:40:40 +0100 | tumdedum | (~tumdedum@unaffiliated/espiral) (Write error: Broken pipe) |
2021-02-25 21:40:40 +0100 | reeiiko | (~reeiiko@185.163.110.108) (Excess Flood) |
2021-02-25 21:40:40 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) (Excess Flood) |
2021-02-25 21:40:40 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-yvaanjasasuignrs) (Quit: Ping timeout (120 seconds)) |
2021-02-25 21:40:40 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-sibskqvbqdhvosvq) (Quit: Ping timeout (120 seconds)) |
2021-02-25 21:40:40 +0100 | TMA | (tma@twin.jikos.cz) (Remote host closed the connection) |
2021-02-25 21:40:40 +0100 | clynamen | (~clynamen@net-2-34-3-193.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-02-25 21:40:40 +0100 | fre | (~freusque@104.238.190.229) (Quit: fre: znc bye) |
2021-02-25 21:40:40 +0100 | tomsmeding | (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 21:40:40 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Quit: ZNC - http://znc.in) |
2021-02-25 21:40:40 +0100 | Cerise | (~jerry@unaffiliated/cerise) (Quit: :qa!) |
2021-02-25 21:40:40 +0100 | Anthaas_ | (~Anthaas@unaffiliated/anthaas) (Quit: ZNC 1.7.1 - https://znc.in) |
2021-02-25 21:40:40 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - https://znc.in) |
2021-02-25 21:40:40 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2021-02-25 21:40:40 +0100 | filwisher | (~filwisher@78.141.201.45) (Quit: ZNC 1.7.1 - https://znc.in) |
2021-02-25 21:40:40 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Excess Flood) |
2021-02-25 21:40:40 +0100 | spoonm | (~spoonm@tokyo.spoonm.org) (Quit: Don't look behind you!) |
2021-02-25 21:40:40 +0100 | NieDzejkob_ | (~quassel@195.149.98.3) (Quit: No Ping reply in 180 seconds.) |
2021-02-25 21:40:40 +0100 | Kneiva | (kneiva@raah.fi) (Remote host closed the connection) |
2021-02-25 21:40:40 +0100 | gawen | (~gawen@movzbl.root.sx) (Quit: cya) |
2021-02-25 21:40:42 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Remote host closed the connection) |
2021-02-25 21:40:43 +0100 | hugo- | hugo |
2021-02-25 21:40:43 +0100 | my_name_is_not_j | (mynameisno@gateway/shell/matrix.org/x-sulamkpowiaizxta) (Ping timeout: 244 seconds) |
2021-02-25 21:40:46 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | wayne | (~wayne@unaffiliated/wayne) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | cjay | (cjay@nerdbox.nerd2nerd.org) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | mmaruseacph2 | (~mihai@198.199.100.72) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | TommyC7 | (~TommyC@unaffiliated/sepulchralbloom) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | monokrome | (~monokrome@23-24-202-21-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | bendo | (~bendo@130.61.122.121) (Remote host closed the connection) |
2021-02-25 21:40:46 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | liyang | (~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | mrd | (~mrd@debian/developer/mrd) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | hrdl | (~ef24a0e6@unaffiliated/hrdl) (Remote host closed the connection) |
2021-02-25 21:40:47 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-02-25 21:40:48 +0100 | statusfailed | (~statusfai@statusfailed.com) (Remote host closed the connection) |
2021-02-25 21:40:48 +0100 | EvanR | (~evan@unaffiliated/evanr) (Remote host closed the connection) |
2021-02-25 21:40:48 +0100 | dmwit | (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-02-25 21:40:48 +0100 | akasha | (~user@unaffiliated/akasha) (Remote host closed the connection) |
2021-02-25 21:40:48 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds) |
2021-02-25 21:40:50 +0100 | _Adluc_ | (~Adluc@83.167.228.130) |
2021-02-25 21:40:52 +0100 | pjb | (~t@2a01cb04063ec5009154a4e157e0cbac.ipv6.abo.wanadoo.fr) |
2021-02-25 21:40:52 +0100 | tumdedum_ | tumdedum |
2021-02-25 21:40:54 +0100 | dcoutts_ | (~dcoutts@unaffiliated/dcoutts) |
2021-02-25 21:41:07 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 21:41:09 +0100 | SegFaultAX_ | (SegFaultAX@unaffiliated/segfaultax) |
2021-02-25 21:41:12 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) |
2021-02-25 21:41:14 +0100 | edwardk | (sid47016@haskell/developer/edwardk) |
2021-02-25 21:41:15 +0100 | <maerwald> | failure being a good teacher has been debunked already |
2021-02-25 21:41:15 +0100 | dcoutts_ | (~dcoutts@unaffiliated/dcoutts) (Read error: Connection reset by peer) |
2021-02-25 21:41:20 +0100 | BIG_JIMMY_D | (~jim@108.61.185.76) |
2021-02-25 21:41:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-25 21:41:21 +0100 | amatecha__ | (sid10006@gateway/web/irccloud.com/x-edfnackjmngohzei) (Ping timeout: 264 seconds) |
2021-02-25 21:41:25 +0100 | mrd | (~mrd@45.61.147.211) |
2021-02-25 21:41:26 +0100 | TMA | (tma@twin.jikos.cz) |
2021-02-25 21:41:26 +0100 | acdsystemliorg[m | (acdsysteml@gateway/shell/matrix.org/x-tymmizrslavaomkn) (Ping timeout: 264 seconds) |
2021-02-25 21:41:28 +0100 | <maerwald> | I linked the research before, I can dig it up again if you like |
2021-02-25 21:41:29 +0100 | esoteric1lgo | (~matt@uncertain.win) |
2021-02-25 21:41:29 +0100 | Igloo | (~igloo@matrix.chaos.earth.li) |
2021-02-25 21:41:31 +0100 | bwe | (~bwe@unaffiliated/bwe) |
2021-02-25 21:41:33 +0100 | dcoutts_ | (~dcoutts@unaffiliated/dcoutts) |
2021-02-25 21:41:34 +0100 | brkscnce | (~obaum@37.120.14.42) |
2021-02-25 21:41:35 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) |
2021-02-25 21:41:36 +0100 | jbetz | (sid283648@gateway/web/irccloud.com/x-mbznlfwgozuyecdk) |
2021-02-25 21:41:39 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-mvogdeasxxfzjncw) |
2021-02-25 21:41:41 +0100 | grumble | (~Thunderbi@freenode/staff/grumble) (Remote host closed the connection) |
2021-02-25 21:41:42 +0100 | xerox_ | (~xerox@unaffiliated/xerox) |
2021-02-25 21:41:43 +0100 | stilgart | (~Christoph@chezlefab.net) |
2021-02-25 21:41:44 +0100 | juri_ | (~juri@178.63.35.222) |
2021-02-25 21:41:46 +0100 | hendursa1 | (~weechat@gateway/tor-sasl/hendursaga) (Client Quit) |
2021-02-25 21:41:48 +0100 | mrd | Guest12880 |
2021-02-25 21:41:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-25 21:41:50 +0100 | cafce25 | (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
2021-02-25 21:41:56 +0100 | ubert | (~Thunderbi@p200300ecdf25d946a0d2e31ed48a2cf4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-02-25 21:41:58 +0100 | alar[m] | (alarmxalat@gateway/shell/matrix.org/x-ufoythqyyzicqreb) (Ping timeout: 265 seconds) |
2021-02-25 21:41:58 +0100 | the_1_[m] | (the1matrix@gateway/shell/matrix.org/x-fmeoaycdouocsfqi) (Ping timeout: 265 seconds) |
2021-02-25 21:41:58 +0100 | mjlbach | (atriusmatr@gateway/shell/matrix.org/x-uxvvkbdauabmbien) (Ping timeout: 265 seconds) |
2021-02-25 21:41:58 +0100 | fgaz | (fgazmatrix@gateway/shell/matrix.org/x-hrqxpfotuofobdbj) (Ping timeout: 265 seconds) |
2021-02-25 21:42:04 +0100 | theDon_ | (~td@muedsl-82-207-238-098.citykom.de) |
2021-02-25 21:42:06 +0100 | stilgart | Guest3557 |
2021-02-25 21:42:07 +0100 | aidecoe | (~aidecoe@unaffiliated/aidecoe) |
2021-02-25 21:42:11 +0100 | grumble | (~Thunderbi@freenode/staff/grumble) |
2021-02-25 21:42:21 +0100 | hendursaga | (~weechat@gateway/tor-sasl/hendursaga) |
2021-02-25 21:42:22 +0100 | zfnmxt | (~zfnmxt@unaffiliated/zfnmxt) |
2021-02-25 21:42:23 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-25 21:42:30 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-02-25 21:42:34 +0100 | MichaelHoffmannb | (brisadmozi@gateway/shell/matrix.org/x-hyjjcdilatzwtwgu) (Ping timeout: 258 seconds) |
2021-02-25 21:42:34 +0100 | bitonic | (bitonicmat@gateway/shell/matrix.org/x-lqhowavprqkgavmy) (Ping timeout: 258 seconds) |
2021-02-25 21:42:34 +0100 | sramsay64[m] | (sramsay64p@gateway/shell/matrix.org/x-inungnqziynynwaa) (Ping timeout: 258 seconds) |
2021-02-25 21:42:35 +0100 | adziahel[m] | (adziahelma@gateway/shell/matrix.org/x-rakjpsddecdrrang) (Ping timeout: 258 seconds) |
2021-02-25 21:42:35 +0100 | plumenator[m] | (plumenator@gateway/shell/matrix.org/x-wucngvemjowoitrb) (Ping timeout: 258 seconds) |
2021-02-25 21:42:43 +0100 | ircbrowse_tom | (~ircbrowse@64.225.78.177) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2021-02-25 21:42:43 +0100 | feuerbach | (~feuerbach@unaffiliated/feuerbach) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-25 21:42:43 +0100 | dequbed | (~dequbed@2001:bc8:3f24:100::1) (Quit: Bye o/) |
2021-02-25 21:42:43 +0100 | uwap | (~uwap@mail.uwap.name) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-25 21:42:43 +0100 | dftxbs3e | (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
2021-02-25 21:42:43 +0100 | swater | (bouhier200@perso.iiens.net) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | sqrt2 | (~ben@unaffiliated/sqrt2) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | Guest73254 | (~tristan@luna.whatbox.ca) (Quit: -= A click to real life biatches!!! =-) |
2021-02-25 21:42:44 +0100 | Klumben | (Nsaiswatch@gateway/shell/panicbnc/x-fknfgxuqgasbqquy) (Quit: Bye for now) |
2021-02-25 21:42:44 +0100 | Adluc | (~Adluc@2a01:430:17:1::ffff:328) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | lisq | (~quassel@lis.moe) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | xff0x | (~xff0x@2001:1a81:5295:6100:2300:7794:1c77:29ff) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | cheers | (user@unaffiliated/cheers) (Remote host closed the connection) |
2021-02-25 21:42:44 +0100 | mht-technology | (~mht@2a03:b0c0:3:e0::1e2:c001) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | leifm_ | (~leifm@dawn.whatbox.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 21:42:45 +0100 | sphalerite | (~sphalerit@NixOS/user/lheckemann) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | peutri | (~peutri@ns317027.ip-94-23-46.eu) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | farn__ | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | swarmcollective | (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | a3f | (~a3f@chimeria.ext.pengutronix.de) (Excess Flood) |
2021-02-25 21:42:45 +0100 | vqrs | (~vqrs@learnprogramming/regular/vqrs) (Remote host closed the connection) |
2021-02-25 21:42:45 +0100 | koz | koz_ |
2021-02-25 21:42:46 +0100 | spamlessj | (~spamlessj@2a01:4f8:141:1329::2) (Write error: Broken pipe) |
2021-02-25 21:42:46 +0100 | Faye | (~holo@nikky.moe) (Write error: Broken pipe) |
2021-02-25 21:42:46 +0100 | noCheese | (~nocheese@unaffiliated/nocheese) (Write error: Broken pipe) |
2021-02-25 21:42:46 +0100 | madog | (~madog@163.ip-51-254-203.eu) (Write error: Broken pipe) |
2021-02-25 21:42:46 +0100 | martin02 | (silas@hund.fs.lmu.de) (Excess Flood) |
2021-02-25 21:42:48 +0100 | mcfilib | (sid302703@gateway/web/irccloud.com/x-hnldclqivbijvpbm) |
2021-02-25 21:42:56 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-pkbyatoowiwuqtjg) |
2021-02-25 21:42:59 +0100 | Guest58072 | (~zmv@191.255.89.231) |
2021-02-25 21:43:02 +0100 | SegFaultAX | (SegFaultAX@unaffiliated/segfaultax) (Excess Flood) |
2021-02-25 21:43:03 +0100 | SegFaultAX_ | SegFaultAX |
2021-02-25 21:43:03 +0100 | dexterlb | (~dexterlb@2a01:9e40:2:2::2) (Quit: No Ping reply in 180 seconds.) |
2021-02-25 21:43:03 +0100 | Blkt | (~Blkt@2a01:4f8:200:2425::adda) (Quit: No Ping reply in 180 seconds.) |
2021-02-25 21:43:03 +0100 | bandali | (bandali@fsf/emeritus/bandali) (Quit: ZNC - https://znc.in) |
2021-02-25 21:43:03 +0100 | mursu | (~ngWalrus@2a03:b0c0:3:d0::5ebd:2001) (Quit: bye) |
2021-02-25 21:43:03 +0100 | Iroha | (~Dykomii@2607:5300:60:336a::1) (Quit: !) |
2021-02-25 21:43:03 +0100 | oats | (~hurr@durr/im/a/sheep) (Quit: until later, my friends) |
2021-02-25 21:43:03 +0100 | chrpape`` | (~user@2a01:4f9:c010:632d::1) |
2021-02-25 21:43:03 +0100 | spamlessj | (~spamlessj@2a01:4f8:141:1329::2) |
2021-02-25 21:43:03 +0100 | PtxDK | (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) |
2021-02-25 21:43:04 +0100 | chrpape`` | (~user@2a01:4f9:c010:632d::1) (Remote host closed the connection) |
2021-02-25 21:43:04 +0100 | esotericalgo | (~matt@uncertain.win) (Remote host closed the connection) |
2021-02-25 21:43:04 +0100 | wlritchi | (wlritchi@2600:3c03::f03c:91ff:fe60:8ddc) (Remote host closed the connection) |
2021-02-25 21:43:04 +0100 | quicksilver | (~jules@roobarb.crazydogs.org) (Remote host closed the connection) |
2021-02-25 21:43:04 +0100 | suzu_ | (~scaleuser@2001:bc8:1824:43f::1) (Remote host closed the connection) |
2021-02-25 21:43:05 +0100 | noCheese | (~nocheese@gw2.aibor.de) |
2021-02-25 21:43:05 +0100 | noCheese | (~nocheese@gw2.aibor.de) (Changing host) |
2021-02-25 21:43:05 +0100 | noCheese | (~nocheese@unaffiliated/nocheese) |
2021-02-25 21:43:12 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 265 seconds) |
2021-02-25 21:43:15 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 246 seconds) |
2021-02-25 21:43:17 +0100 | Blkt | (~Blkt@2a01:4f8:200:2425::adda) |
2021-02-25 21:43:23 +0100 | SolarAquarion | (SolarAquar@gateway/shell/panicbnc/x-xrdswepzyygrznne) |
2021-02-25 21:43:25 +0100 | <dminuoso> | ski: It was a text that started out with the history of terms like “proposition”, “conclusion”, “judgement”, etc |
2021-02-25 21:43:26 +0100 | freeman42x[m] | (freeman42x@gateway/shell/matrix.org/x-afnclhgosytqlfre) (Ping timeout: 240 seconds) |
2021-02-25 21:43:26 +0100 | Ericson2314 | (ericson231@gateway/shell/matrix.org/x-lzikgiqihcummixk) (Ping timeout: 240 seconds) |
2021-02-25 21:43:33 +0100 | martin02 | (silas@hund.fs.lmu.de) |
2021-02-25 21:43:36 +0100 | liyang | (~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net) |
2021-02-25 21:43:38 +0100 | swater | (bouhier200@perso.iiens.net) |
2021-02-25 21:43:38 +0100 | icebreaker | (michalc@freeshell.de) |
2021-02-25 21:43:39 +0100 | icebreaker | (michalc@freeshell.de) (Changing host) |
2021-02-25 21:43:39 +0100 | icebreaker | (michalc@unaffiliated/icebreaker) |
2021-02-25 21:43:42 +0100 | ThaEwat | (thaewraptm@gateway/shell/matrix.org/x-juqefpfkcsldkkqx) (Ping timeout: 268 seconds) |
2021-02-25 21:43:56 +0100 | themsay[m] | (themsaymat@gateway/shell/matrix.org/x-dfuiiqncmxkegsdu) (Ping timeout: 240 seconds) |
2021-02-25 21:44:03 +0100 | <maerwald> | https://journals.sagepub.com/doi/abs/10.1177/0956797619881133 |
2021-02-25 21:44:06 +0100 | Kneiva | (kneiva@raah.fi) |
2021-02-25 21:44:09 +0100 | son0p | (~son0p@181.136.122.143) |
2021-02-25 21:44:11 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Client Quit) |
2021-02-25 21:44:18 +0100 | ario | (~ario@178.62.234.211) |
2021-02-25 21:44:18 +0100 | Guest42442 | (~joseph@cpe-65-31-18-174.insight.res.rr.com) ("WeeChat 2.8") |
2021-02-25 21:44:19 +0100 | immae | (immaematri@gateway/shell/matrix.org/x-biobeyvyakzvnryf) (Ping timeout: 268 seconds) |
2021-02-25 21:44:30 +0100 | Chousuke | (oranenj@coffee.modeemi.fi) |
2021-02-25 21:44:30 +0100 | infinisi1 | infinisil |
2021-02-25 21:44:36 +0100 | darjeeling_ | (~darjeelin@122.245.218.150) (Ping timeout: 240 seconds) |
2021-02-25 21:44:36 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2021-02-25 21:44:36 +0100 | theDon | (~td@muedsl-82-207-238-098.citykom.de) (Ping timeout: 240 seconds) |
2021-02-25 21:44:37 +0100 | kmein | (~weechat@static.173.83.99.88.clients.your-server.de) (Ping timeout: 240 seconds) |
2021-02-25 21:44:45 +0100 | oats_ | oats |
2021-02-25 21:44:51 +0100 | dftxbs3e_ | dftxbs3e |
2021-02-25 21:44:51 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
2021-02-25 21:44:52 +0100 | metamod[m] | (metamodmat@gateway/shell/matrix.org/x-cvyozbpcigwxoqqt) (Ping timeout: 265 seconds) |
2021-02-25 21:44:56 +0100 | VarikValefor[m] | (varikvalef@gateway/shell/matrix.org/x-zpbsrsatgvyjyyda) (Ping timeout: 268 seconds) |
2021-02-25 21:44:56 +0100 | boistordu | (boistordum@gateway/shell/matrix.org/x-ovupdgassmbmcysg) (Ping timeout: 268 seconds) |
2021-02-25 21:44:56 +0100 | siraben | (sirabenmat@gateway/shell/matrix.org/x-osefrsecjodoijxp) (Ping timeout: 268 seconds) |
2021-02-25 21:45:11 +0100 | saurik | (saurik@carrier.saurik.com) |
2021-02-25 21:45:28 +0100 | `slikts | (~nelabs@wikipedia/reinis) |
2021-02-25 21:45:33 +0100 | swarmcollective | (~joseph@cpe-65-31-18-174.insight.res.rr.com) |
2021-02-25 21:45:45 +0100 | thebnq | (~bnq@herrokitty.com) |
2021-02-25 21:45:54 +0100 | <dminuoso> | It was written in English, for what its worth. |
2021-02-25 21:46:43 +0100 | <ski> | dminuoso : oh, i think i know what you're talking about. it wasn't Frege |
2021-02-25 21:47:14 +0100 | raid | (macbookpro@irc-1.coding4.coffee) |
2021-02-25 21:47:33 +0100 | speakerspivakeem | (speakerdea@gateway/shell/matrix.org/x-onzkzcntdcmbputf) (Ping timeout: 272 seconds) |
2021-02-25 21:47:33 +0100 | nikola3 | (~nikola@2a03:b0c0:2:d0::dc2:c001) (Ping timeout: 272 seconds) |
2021-02-25 21:47:53 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 21:48:24 +0100 | <monochrom> | ski: Remember I challenged with infinite streams "data S a = C s (S a)"? That one works out, and it takes a bit of cleverness to even see possible candidates. So ZipList fails for its differeence from infinite streams in terms of ending a list at any time it feels like to. |
2021-02-25 21:48:24 +0100 | <maerwald> | If failure causes a higher dopamine effect in your brain, then you're likely better at learning from failure (unlike most other people). The effect of dopamine on learning is well studied. |
2021-02-25 21:48:33 +0100 | <ski> | dminuoso : "On the Meanings of the Logical Constants and the Justifications of the Logical Laws" by Per Martin-Löf in 1996 at <https://www.ae-info.org/attach/User/Martin-L%C3%B6f_Per/OtherInformation/article.pdf>,<https://intuitionistic.wordpress.com/works-on-martin-lofs-type-theory/> |
2021-02-25 21:48:40 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 21:48:47 +0100 | tomsmeding_ | tomsmeding |
2021-02-25 21:49:07 +0100 | <monochrom> | maerwald, I was not even going for "failure teaches". I was going for "failure pre-teaches". |
2021-02-25 21:49:34 +0100 | <maerwald> | Depends, it can cause engagement, but also disaengagement |
2021-02-25 21:49:40 +0100 | <ski> | monochrom : i remember i was playing around with an idea of intentionally making `join'/`(>>=)' more partial than possible, in order to try to ensure associativity |
2021-02-25 21:49:59 +0100 | crobbins | (~crobbins@2600:1700:48eb:8490:f085:4e3f:f643:338d) |
2021-02-25 21:50:18 +0100 | lazyshrk | (~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-25 21:50:30 +0100 | <monochrom> | I think I tried a version of that too, it didn't help. |
2021-02-25 21:51:07 +0100 | ktp28 | (459d4473@bras-base-toroon6126w-grc-07-69-157-68-115.dsl.bell.ca) |
2021-02-25 21:51:21 +0100 | <ski> | ok |
2021-02-25 21:51:39 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) (Quit: leaving) |
2021-02-25 21:51:47 +0100 | <monochrom> | maerwald, you must have not been reading me. I was not claiming that either. |
2021-02-25 21:51:55 +0100 | forgottenone | (~forgotten@176.88.28.250) (Quit: Konversation terminated!) |
2021-02-25 21:52:03 +0100 | <maerwald> | that's well possible in my state of mind :p |
2021-02-25 21:52:30 +0100 | <maerwald> | I'm looking for someone with armv7 or aarch64 machine |
2021-02-25 21:52:47 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) |
2021-02-25 21:52:49 +0100 | Pickchea | (~private@unaffiliated/pickchea) |
2021-02-25 21:53:10 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) (Ping timeout: 276 seconds) |
2021-02-25 21:53:18 +0100 | kfm | kmein |
2021-02-25 21:53:35 +0100 | slack1256 | (~slack1256@45.4.2.52) |
2021-02-25 21:54:11 +0100 | redcherri | (bab7259d@186.183.37.157) |
2021-02-25 21:54:41 +0100 | Klumben | (Nsaiswatch@gateway/shell/panicbnc/x-ajlfhlioatjzzbsr) |
2021-02-25 21:55:07 +0100 | srid | (sridmatrix@gateway/shell/matrix.org/x-sjihgudtvzpwpord) |
2021-02-25 21:55:11 +0100 | <ski> | (i wonder whether there's been any follow-up studies, about what effect personal detachment may have in the situation) |
2021-02-25 21:55:28 +0100 | atriq | Taneb |
2021-02-25 21:55:46 +0100 | <dminuoso> | Ahh |
2021-02-25 21:55:46 +0100 | <monochrom> | ski: https://paste.tomsmeding.com/SZunWHSK is what I did. The counterexample is at the end. In join_z, if I replace "ewj" by "render", that would be my way of allowing partiality, but then this doesn't help my counterexample either, it only improves [1] to 1 : bottom. |
2021-02-25 21:55:49 +0100 | <dminuoso> | 21:48:33 ski | dminuoso : "On the Meanings of the Logical Constants and the Justifications of the Logical Laws" by Per Martin-Löf in 1996 at <https://www.ae-info.org/attach/User/Martin-L%C3%B6f_Per/OtherInformation/article.pdf>,<https://intuitionistic.wordpress.com/works-on-martin-lofs-type-theory/> |
2021-02-25 21:55:54 +0100 | <dminuoso> | You're spot on. That's it, cheers! |
2021-02-25 21:56:19 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-25 21:56:38 +0100 | psydruid | (psydruidma@gateway/shell/matrix.org/x-nqquprpkcjqwwhao) |
2021-02-25 21:56:56 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-02-25 21:57:19 +0100 | coddinkn | (~coddinkn@octayn.net) |
2021-02-25 21:57:50 +0100 | AbtractSingleton | (rasurumatr@gateway/shell/matrix.org/x-cptnkbgcmbcsygri) |
2021-02-25 21:57:52 +0100 | johnnyboy[m] | (gifumatrix@gateway/shell/matrix.org/x-taasofpihtwizvlh) |
2021-02-25 21:58:11 +0100 | pqwy[m] | (pqwymatrix@gateway/shell/matrix.org/x-qaosueuqeqkwbwhe) |
2021-02-25 21:58:21 +0100 | toasty_avocado[m | (toastyavoc@gateway/shell/matrix.org/x-juhwyrkxyxnxfauu) |
2021-02-25 21:58:24 +0100 | kadoban | (kadobanmat@gateway/shell/matrix.org/x-apivwpznfnnlclpi) |
2021-02-25 21:58:31 +0100 | domenkozar[m] | (domenkozar@NixOS/user/domenkozar) |
2021-02-25 21:58:39 +0100 | jerin | (jerinmatri@gateway/shell/matrix.org/x-tmtfndsdvjlsjrsi) |
2021-02-25 21:58:51 +0100 | <monochrom> | maerwald: My position is pro hands-on, against armchair. I'm sure you're sympathetic to it. |
2021-02-25 21:59:02 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) (Quit: Connection closed) |
2021-02-25 21:59:03 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) (Ping timeout: 240 seconds) |
2021-02-25 21:59:06 +0100 | <monochrom> | Failure is just a side effect of being hands-on. |
2021-02-25 21:59:08 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 21:59:14 +0100 | <maerwald> | it surely is |
2021-02-25 21:59:18 +0100 | <monochrom> | In an armchair, you always suceeds. |
2021-02-25 21:59:20 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-02-25 21:59:26 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-25 21:59:37 +0100 | <ski> | dminuoso, yw :) |
2021-02-25 22:00:09 +0100 | <maerwald> | But there has to be frustration management. Otherwise we're filtering for the ppl with high frustration tolerance, not talent. |
2021-02-25 22:00:21 +0100 | maralorn | (maralornma@gateway/shell/matrix.org/x-yxejhfyxkpgpcjvz) |
2021-02-25 22:00:30 +0100 | Lurkki[m]1 | (lurkkifene@gateway/shell/matrix.org/x-nxoeksmofthnqmyh) |
2021-02-25 22:00:32 +0100 | shutendoji[m] | (shutendoji@gateway/shell/matrix.org/x-ugeduntrngcqbunt) |
2021-02-25 22:00:35 +0100 | brightly-salty[m | (brightly-s@gateway/shell/matrix.org/x-prtibkvrqqntdkpm) |
2021-02-25 22:00:35 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-02-25 22:00:41 +0100 | PotatoHatsue | (berbermanp@gateway/shell/matrix.org/x-rihddaeggjdzhxqs) |
2021-02-25 22:00:49 +0100 | darkcodi[m] | (darkcodima@gateway/shell/matrix.org/x-yuxcrrjvakxjaoby) |
2021-02-25 22:00:51 +0100 | <maerwald> | why is it so hard to find a way to test arm binaries -_- |
2021-02-25 22:00:52 +0100 | <ski> | monochrom : yes, i recall considering a similar example to your `example_zz'. i think what i ended up wanting was to ensure that when finding an element on the diagonal, that the full square that element is the corner of is present |
2021-02-25 22:01:36 +0100 | <monochrom> | So for the associative law, you basically need the full cube. |
2021-02-25 22:01:42 +0100 | <ski> | yep |
2021-02-25 22:01:48 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 22:02:06 +0100 | <mouseghost> | in ghci, can i see which constructor was used to construct a variable of some type? eg. data Meow = Cat | Dog; a = Cat; is it possible to check if `a' is Cat, or if it is a Dog? |
2021-02-25 22:02:16 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 276 seconds) |
2021-02-25 22:02:27 +0100 | <ski> | (i guess what i did wasn't making it partial, but to terminate the list earlier than one might imagine) |
2021-02-25 22:02:29 +0100 | <monochrom> | This scheme works for a subset of ZipLists but alas it's probably an impractical restriction. |
2021-02-25 22:02:43 +0100 | <monochrom> | Oh! Heh. |
2021-02-25 22:02:51 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-25 22:02:52 +0100 | <ski> | yea .. it's up for debate how useful this would be |
2021-02-25 22:03:46 +0100 | <ski> | mouseghost : you can use pattern-matching. also, you could add `deriving Show' after your `data' declaration to be able to display values of that type |
2021-02-25 22:03:54 +0100 | <mouseghost> | thanks |
2021-02-25 22:04:09 +0100 | <ski> | mouseghost : if you use `deriving Eq', you can check with `a == Cat' |
2021-02-25 22:04:40 +0100 | <mouseghost> | i see; but i suppose there isnt a dirty trick with some kind of :whatis a ? |
2021-02-25 22:05:07 +0100 | <monochrom> | But the positive thing I learned is that the two identity laws force you to go some kind of diagonal. So at least you get to conclude "if even diagonal doesn't work, nothing does". |
2021-02-25 22:05:10 +0100 | <geekosaur> | not via ghci as such |
2021-02-25 22:05:11 +0100 | <ski> | mouseghost : but if you're looking for checking programmatically, i suggest using pattern-matching rather than `==' or `/=' |
2021-02-25 22:05:39 +0100 | <mouseghost> | thanks |
2021-02-25 22:05:53 +0100 | <mouseghost> | thats what id do, but i am purely about ghci rn :P |
2021-02-25 22:05:54 +0100 | <ski> | mouseghost : if you have `Show', you can simply type `a' into the interactor, and it'll display either `Cat' or `Dog' (assuming there's no error) |
2021-02-25 22:06:06 +0100 | <mouseghost> | yep i have just checked and works as advertised, so thanks uwu |
2021-02-25 22:06:20 +0100 | ktp28 | (459d4473@bras-base-toroon6126w-grc-07-69-157-68-115.dsl.bell.ca) (Quit: Connection closed) |
2021-02-25 22:06:24 +0100 | <ski> | (perhaps your actual example is more complicated and there might be more relevant stuff one could say about it) |
2021-02-25 22:06:40 +0100 | <mouseghost> | naw |
2021-02-25 22:06:55 +0100 | <dminuoso> | % :t toConstr -- mouseghost |
2021-02-25 22:06:56 +0100 | <yahb> | dminuoso: Data a => a -> Constr |
2021-02-25 22:07:00 +0100 | ba | bandali |
2021-02-25 22:07:05 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 22:07:06 +0100 | <dminuoso> | If, for some reason, you really wanted this. |
2021-02-25 22:07:10 +0100 | <ski> | @let data Meow = Cat | Dog |
2021-02-25 22:07:11 +0100 | <lambdabot> | Defined. |
2021-02-25 22:07:35 +0100 | <ski> | > let mouseghost_a = Dog |
2021-02-25 22:07:37 +0100 | <lambdabot> | <no location info>: error: |
2021-02-25 22:07:37 +0100 | <lambdabot> | not an expression: ‘let mouseghost_a = Dog’ |
2021-02-25 22:07:43 +0100 | <ski> | @let mouseghost_a = Dog |
2021-02-25 22:07:44 +0100 | <lambdabot> | Defined. |
2021-02-25 22:08:02 +0100 | <ski> | > case mouseghost_a of Cat -> "yes"; Dog -> "no" |
2021-02-25 22:08:04 +0100 | <lambdabot> | "no" |
2021-02-25 22:08:10 +0100 | <ski> | > case mouseghost_a of Cat -> () |
2021-02-25 22:08:12 +0100 | <lambdabot> | *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in case |
2021-02-25 22:08:20 +0100 | <mouseghost> | thats nice, thanks |
2021-02-25 22:08:25 +0100 | <dminuoso> | % data Meow = Cat Int | Dog String deriving (Data, Typeable) |
2021-02-25 22:08:25 +0100 | <yahb> | dminuoso: |
2021-02-25 22:08:31 +0100 | <dminuoso> | % toConstr (Cat 10) |
2021-02-25 22:08:32 +0100 | <yahb> | dminuoso: Cat |
2021-02-25 22:08:35 +0100 | <dminuoso> | mouseghost: ^- |
2021-02-25 22:08:40 +0100 | <mouseghost> | i see, thanks :3 |
2021-02-25 22:09:00 +0100 | <mouseghost> | though its still not ghci based ;p |
2021-02-25 22:09:14 +0100 | <dminuoso> | mouseghost: Id keep in mind, Data/Typeable are probably not for every day use. If this is for debugging or exploration only, those are fine. If you want this to solve a problem, pattern matching is your better bet. |
2021-02-25 22:09:14 +0100 | <mouseghost> | but i guess wanting to do that solely with the ghci fancy things is not the good approach hah |
2021-02-25 22:09:28 +0100 | <dminuoso> | mouseghost: This is better, toConstr is just plain Haskell! :) |
2021-02-25 22:09:35 +0100 | apache8080 | (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
2021-02-25 22:09:36 +0100 | <dminuoso> | Dont even need GHCi |
2021-02-25 22:09:52 +0100 | <ski> | % let !Cat = mouseghost_a |
2021-02-25 22:09:52 +0100 | <yahb> | ski: *** Exception: <interactive>:45:5-23: Non-exhaustive patterns in Cat |
2021-02-25 22:09:55 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 22:10:09 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 22:10:15 +0100 | <mouseghost> | the point would be to find the type without adding anything |
2021-02-25 22:10:23 +0100 | <mouseghost> | and that, as well as deriving Show, adds something ;v |
2021-02-25 22:10:30 +0100 | <ski> | ok |
2021-02-25 22:10:39 +0100 | <mouseghost> | meow |
2021-02-25 22:10:46 +0100 | mouseghost | meows |
2021-02-25 22:10:56 +0100 | ski | mews |
2021-02-25 22:11:08 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) |
2021-02-25 22:11:29 +0100 | mouseghost | eyes |
2021-02-25 22:11:34 +0100 | <dminuoso> | mouseghost: Mmm. You probably can hack something together akin to toConstr with TemplateHaskell |
2021-02-25 22:11:39 +0100 | farn | (~farn@46.38.243.131) (Read error: Connection reset by peer) |
2021-02-25 22:11:46 +0100 | <dminuoso> | That doesnt need Data/Typeable instances |
2021-02-25 22:11:55 +0100 | <mouseghost> | my knowledge of haskell be liek |
2021-02-25 22:11:58 +0100 | <mouseghost> | @ 1+2 |
2021-02-25 22:12:01 +0100 | <ski> | monochrom : "the two identity laws force you to go some kind of diagonal" -- interesting. you mean, if you want zipping behaviour ? |
2021-02-25 22:12:21 +0100 | usr25 | (~J@45.red-88-1-79.dynamicip.rima-tde.net) |
2021-02-25 22:12:51 +0100 | MrMuffles[m] | (mrmufflesm@gateway/shell/matrix.org/x-cbeqjcjrdmhenexl) |
2021-02-25 22:13:01 +0100 | freeman42x[m] | (freeman42x@gateway/shell/matrix.org/x-ytrisqdmzrzpisst) |
2021-02-25 22:13:58 +0100 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2021-02-25 22:14:38 +0100 | mly[m] | (mlydisenco@gateway/shell/matrix.org/x-shgeeswzywjapwlt) |
2021-02-25 22:14:41 +0100 | <dminuoso> | mouseghost: Presumably this kind of information is hard to recover, because most gets erased during compilation. While GHCi compiles code to bytecode (which is executed by the runtime), Im not sure whether constructor information is preserved meaningfully |
2021-02-25 22:14:48 +0100 | phittacus | (bklmatrixo@gateway/shell/matrix.org/x-dbjtrcksijverjxv) |
2021-02-25 22:14:50 +0100 | alexfmpe | (alexfmpema@gateway/shell/matrix.org/x-jgcuajimrxmycwph) |
2021-02-25 22:14:51 +0100 | tomsen[m] | (tfbiomatri@gateway/shell/matrix.org/x-junoizbhiuyanlfn) |
2021-02-25 22:14:51 +0100 | betrion[m] | (betrionmat@gateway/shell/matrix.org/x-ffgdptepxqzbfrzi) |
2021-02-25 22:14:51 +0100 | CrabMan | (phi-matrix@gateway/shell/matrix.org/x-qnflepxzbgoiepgi) |
2021-02-25 22:14:52 +0100 | bram[m]1 | (bramvdbnet@gateway/shell/matrix.org/x-smrpthqlcycbdvqg) |
2021-02-25 22:14:52 +0100 | alecs[m] | (malumorema@gateway/shell/matrix.org/x-gkhumeppsvrovowp) |
2021-02-25 22:14:52 +0100 | mjlbach | (atriusmatr@gateway/shell/matrix.org/x-jbujsgkzleiuowmd) |
2021-02-25 22:14:55 +0100 | my_name_is_not_j | (mynameisno@gateway/shell/matrix.org/x-lnbatcivvyyktlgd) |
2021-02-25 22:14:56 +0100 | sm[m] | (simonmicma@gateway/shell/matrix.org/x-olgzldwdbozcvmla) |
2021-02-25 22:14:56 +0100 | lnxw37d4 | (lnxw37d4ma@gateway/shell/matrix.org/x-ehmcpjxutoidauup) |
2021-02-25 22:15:00 +0100 | DamienCassou | (damiencass@gateway/shell/matrix.org/x-eprxxdwijffydrdi) |
2021-02-25 22:15:00 +0100 | berberman[T] | (berberma4@gateway/shell/matrix.org/x-xacrdmjnxhrqsrnd) |
2021-02-25 22:15:22 +0100 | maerwald[m] | (maerwaldma@gateway/shell/matrix.org/x-bjunztlamgbiqsmk) |
2021-02-25 22:15:37 +0100 | <dminuoso> | Data/Typeable give you these facilities as first-class haskell functions back (the compiler will just generate them, so roughly what ski suggested would be automatically generated by the compiler and more) |
2021-02-25 22:15:40 +0100 | Liyang[m] | (liyangmatr@gateway/shell/matrix.org/x-pppuhernsulwjyww) |
2021-02-25 22:15:41 +0100 | dyniec[m] | (dyniecmatr@gateway/shell/matrix.org/x-mpucxcqvuxckqpcu) |
2021-02-25 22:15:42 +0100 | michaelpj | (michaelpjm@gateway/shell/matrix.org/x-buxbodhkddveoaqd) |
2021-02-25 22:15:53 +0100 | <mouseghost> | yeah i understand |
2021-02-25 22:16:12 +0100 | <mouseghost> | kinda like with c unions :D |
2021-02-25 22:16:15 +0100 | <mouseghost> | maybe |
2021-02-25 22:16:22 +0100 | sigmacool[m] | (sigmacoolm@gateway/shell/matrix.org/x-agbisjcyekothkzz) |
2021-02-25 22:16:23 +0100 | utdemir[m] | (utdemirmat@gateway/shell/matrix.org/x-pmladlzouojlwrsx) |
2021-02-25 22:16:23 +0100 | Robin[m]2 | (robinrobin@gateway/shell/matrix.org/x-qitylqaxjgpvphgf) |
2021-02-25 22:16:23 +0100 | enya[m] | (enyaismatr@gateway/shell/matrix.org/x-qrvidzgjkxctjdul) |
2021-02-25 22:16:23 +0100 | mentaal[m] | (mentaalmat@gateway/shell/matrix.org/x-cldzerqnoqwflcto) |
2021-02-25 22:16:23 +0100 | <dminuoso> | In the sense that they are erased you mean? |
2021-02-25 22:16:24 +0100 | Lurkki[m] | (lurkkipriv@gateway/shell/matrix.org/x-psmnesknsmvebscb) |
2021-02-25 22:16:24 +0100 | simara[m] | (simaramatr@gateway/shell/matrix.org/x-yieaikiuesgqpxtf) |
2021-02-25 22:16:25 +0100 | ManofLetters[m] | (manoflette@gateway/shell/matrix.org/x-sdtdldljvtpokfgv) |
2021-02-25 22:16:26 +0100 | jeffcasavant[m] | (jeffcasava@gateway/shell/matrix.org/x-lucppnoruohzhaik) |
2021-02-25 22:16:31 +0100 | <mouseghost> | dminuoso, more like not defined |
2021-02-25 22:16:32 +0100 | pineapples[m] | (pineapples@gateway/shell/matrix.org/x-rjnrgqpwuytdhsrb) |
2021-02-25 22:16:32 +0100 | jesser[m] | (jessermatr@gateway/shell/matrix.org/x-qjriisacmnwggisj) |
2021-02-25 22:16:33 +0100 | jkaye[m] | (jkayematri@gateway/shell/matrix.org/x-cdnoacaikcqweptz) |
2021-02-25 22:16:33 +0100 | JaakkoLuttinen[m | (jluttinema@gateway/shell/matrix.org/x-jxffrgesqwkjiyek) |
2021-02-25 22:16:34 +0100 | CaptainYukinoshi | (captain-yu@gateway/shell/matrix.org/x-wsmoytiqpsczqgmt) |
2021-02-25 22:16:34 +0100 | oreoking[m] | (oreokingma@gateway/shell/matrix.org/x-thhdqxzqtsmuurkl) |
2021-02-25 22:16:36 +0100 | a-tsioh[m] | (a-tsiohmat@gateway/shell/matrix.org/x-vxvzeinnodmgkchc) |
2021-02-25 22:16:36 +0100 | Sarievo[m] | (sarievoale@gateway/shell/matrix.org/x-pwulriigshezukrd) |
2021-02-25 22:16:39 +0100 | jchia[m] | (jchiamatri@gateway/shell/matrix.org/x-mkoiivxvcbjgzwnc) |
2021-02-25 22:16:53 +0100 | <dminuoso> | No we actually do have some information artifacts behind, which is why we can do case-of. |
2021-02-25 22:16:57 +0100 | <mouseghost> | oh |
2021-02-25 22:17:01 +0100 | jtojnar | (jtojnarmat@gateway/shell/matrix.org/x-uzqgiiovyutwaadq) |
2021-02-25 22:17:45 +0100 | <mouseghost> | also, regarding datatypes, can i somehow namespace `data' declaration or something? say i wanted to like... data Sign = + | - |
2021-02-25 22:17:54 +0100 | <mouseghost> | i guess also () would need to go there huh |
2021-02-25 22:17:55 +0100 | speakerspivakeem | (speakerdea@gateway/shell/matrix.org/x-turkzvpwerbcobxw) |
2021-02-25 22:17:58 +0100 | <dminuoso> | Yes and no. |
2021-02-25 22:18:07 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-25 22:18:27 +0100 | alar[m] | (alarmxalat@gateway/shell/matrix.org/x-ijjeysxxnkrgutme) |
2021-02-25 22:18:28 +0100 | the_1_[m] | (the1matrix@gateway/shell/matrix.org/x-jjrqmrcdxkntsvvj) |
2021-02-25 22:18:30 +0100 | themsay[m] | (themsaymat@gateway/shell/matrix.org/x-ljaenuxzhfzsbgci) |
2021-02-25 22:18:36 +0100 | <mouseghost> | hm maybe types need to actually be alphanum.. |
2021-02-25 22:18:43 +0100 | immae | (immaematri@gateway/shell/matrix.org/x-mtnokboauunjkgre) |
2021-02-25 22:18:57 +0100 | sm2n | (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) |
2021-02-25 22:18:59 +0100 | fgaz | (fgazmatrix@gateway/shell/matrix.org/x-altyhdajrdgkwiga) |
2021-02-25 22:19:02 +0100 | boistordu | (boistordum@gateway/shell/matrix.org/x-zehlrpuclgbsmcgb) |
2021-02-25 22:19:04 +0100 | Ericson2314 | (ericson231@gateway/shell/matrix.org/x-gwwwaooyqtgnnprg) |
2021-02-25 22:19:05 +0100 | siraben | (sirabenmat@gateway/shell/matrix.org/x-ofqfbyaxrzohrkzu) |
2021-02-25 22:19:10 +0100 | <dminuoso> | mouseghost: You can just create types constructors, data constructors or just values, shadowing names of existing identifiers, in a module. |
2021-02-25 22:19:13 +0100 | <geekosaur> | alphanumeric and initial uppercase, or symbol and initial colon (and infix) |
2021-02-25 22:19:17 +0100 | darjeeling_ | (~darjeelin@122.245.218.150) |
2021-02-25 22:19:21 +0100 | hsiktas[m] | (hsiktasmat@gateway/shell/matrix.org/x-lkcvikipshxfqrsl) |
2021-02-25 22:19:48 +0100 | ThaEwat | (thaewraptm@gateway/shell/matrix.org/x-pcdsttlbmkuhuhxo) |
2021-02-25 22:19:57 +0100 | <koz_> | With cabal test, how do I pass a '-with-rtsopts' to the executable it runs? |
2021-02-25 22:20:02 +0100 | <dminuoso> | mouseghost: So modules (or more generally any declaration group) can shadow identifiers. |
2021-02-25 22:20:03 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
2021-02-25 22:20:35 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds) |
2021-02-25 22:20:36 +0100 | <mouseghost> | allright.. |
2021-02-25 22:20:39 +0100 | <dminuoso> | `module Foo where id x = go x where go x = x` Here we shadow things two times. |
2021-02-25 22:20:42 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
2021-02-25 22:20:51 +0100 | MichaelHoffmannb | (brisadmozi@gateway/shell/matrix.org/x-semsqtjqhulgolab) |
2021-02-25 22:20:51 +0100 | sramsay64[m] | (sramsay64p@gateway/shell/matrix.org/x-nofjuyisaelgsjpz) |
2021-02-25 22:20:54 +0100 | adziahel[m] | (adziahelma@gateway/shell/matrix.org/x-gzxprvasiinkibkp) |
2021-02-25 22:21:11 +0100 | <dminuoso> | First, we shadow the `id` binding from the Prelude module (which is always implicitly imported), and inside the definition of `id`, the nested `go` binding shadows the outer `x` binder |
2021-02-25 22:22:07 +0100 | redcherri | (bab7259d@186.183.37.157) () |
2021-02-25 22:22:10 +0100 | <mouseghost> | i see, thanks |
2021-02-25 22:23:24 +0100 | kjak_ | kjak |
2021-02-25 22:24:09 +0100 | bitonic | (bitonicmat@gateway/shell/matrix.org/x-plynbbjxllctgqmg) |
2021-02-25 22:25:04 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) |
2021-02-25 22:26:41 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
2021-02-25 22:27:02 +0100 | acdsystemliorg[m | (acdsysteml@gateway/shell/matrix.org/x-yldclcynujkdrkug) |
2021-02-25 22:28:17 +0100 | mud | (kadobanemp@gateway/shell/matrix.org/x-ivqsxeohuglvlsqy) |
2021-02-25 22:28:50 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-25 22:28:54 +0100 | Hanma[m] | (hanmamatri@gateway/shell/matrix.org/x-uvqceisbsyumooad) |
2021-02-25 22:29:01 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:49bc:1f9e:3510:3fc5) |
2021-02-25 22:29:07 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-02-25 22:29:30 +0100 | lambdaclan | (lambdaclan@gateway/shell/matrix.org/x-ipvngrvyhnqhbylj) |
2021-02-25 22:29:32 +0100 | unclechu | (unclechuma@gateway/shell/matrix.org/x-tqwhdmxbxpfopxbc) |
2021-02-25 22:29:39 +0100 | VarikValefor[m] | (varikvalef@gateway/shell/matrix.org/x-kxjsrbtdhgrazfgo) |
2021-02-25 22:30:57 +0100 | ddellacosta | (~ddellacos@86.106.143.189) (Remote host closed the connection) |
2021-02-25 22:31:00 +0100 | dcoutts__ | (~duncan@85.186.125.91.dyn.plus.net) |
2021-02-25 22:36:06 +0100 | frozenErebus | (~frozenEre@94.128.219.166) |
2021-02-25 22:36:06 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-25 22:36:28 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
2021-02-25 22:36:43 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) (Ping timeout: 240 seconds) |
2021-02-25 22:38:17 +0100 | geekosaur | (82650c7a@130.101.12.122) (Quit: Connection closed) |
2021-02-25 22:39:35 +0100 | mananamenos | (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 272 seconds) |
2021-02-25 22:40:52 +0100 | hackage | tidal 1.7.2 - Pattern language for improvised music https://hackage.haskell.org/package/tidal-1.7.2 (AlexMcLean) |
2021-02-25 22:41:51 +0100 | flocks | (~user@lfbn-idf2-1-666-131.w86-247.abo.wanadoo.fr) |
2021-02-25 22:42:02 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-02-25 22:42:29 +0100 | rankispanki | (59bbbb70@gateway/web/cgi-irc/kiwiirc.com/ip.89.187.187.112) |
2021-02-25 22:42:35 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-02-25 22:42:49 +0100 | flocks | (~user@lfbn-idf2-1-666-131.w86-247.abo.wanadoo.fr) () |
2021-02-25 22:43:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-25 22:44:25 +0100 | kam1 | (~kam1@5.125.126.175) |
2021-02-25 22:45:41 +0100 | egp_ | (~egp_@2.95.74.168) (Quit: EXIT) |
2021-02-25 22:46:02 +0100 | egp_ | (~egp_@2.95.74.168) |
2021-02-25 22:46:08 +0100 | xff0x_ | (~xff0x@2001:1a81:5295:6100:2300:7794:1c77:29ff) (Ping timeout: 260 seconds) |
2021-02-25 22:46:22 +0100 | adam34 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) |
2021-02-25 22:47:07 +0100 | adam34 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) (Client Quit) |
2021-02-25 22:47:42 +0100 | xff0x_ | (~xff0x@2001:1a81:5295:6100:2300:7794:1c77:29ff) |
2021-02-25 22:48:00 +0100 | adam10 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) |
2021-02-25 22:48:27 +0100 | <adam10> | Would it be smart (if at all possible) to rice together xmonad and Plasma, similar to how you do it with i3? |
2021-02-25 22:48:40 +0100 | rankispanki | (59bbbb70@gateway/web/cgi-irc/kiwiirc.com/ip.89.187.187.112) (Quit: Connection closed) |
2021-02-25 22:49:19 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) |
2021-02-25 22:49:33 +0100 | <dminuoso> | adam10: Sure its possible |
2021-02-25 22:50:17 +0100 | <adam10> | Would it be smart? Also I’m wondering how well xmonad handles two monitors, cause when I tried i3+KDE it was awful |
2021-02-25 22:52:14 +0100 | <dminuoso> | two monitors, it depends |
2021-02-25 22:52:26 +0100 | <adam10> | How so? |
2021-02-25 22:52:42 +0100 | <dminuoso> | There's two modes of operation. One is IndependentScreens (which is a pile of hacks that badly interfaces with half of xmonad-contrib) |
2021-02-25 22:52:51 +0100 | <dminuoso> | And the other is just plain xmonad |
2021-02-25 22:53:32 +0100 | <adam10> | I mean as long as it doesn’t register one monitor as two so I cant see anything I’m fine lmao |
2021-02-25 22:53:50 +0100 | <dminuoso> | Well, the thing is xmonad has a single StackSet |
2021-02-25 22:54:24 +0100 | <adam10> | I’m sorry I’m new to tiling WMs, what does that mean |
2021-02-25 22:54:28 +0100 | <chisui> | adam10 what are your issues with i3s multimonitor setup? |
2021-02-25 22:54:39 +0100 | <dminuoso> | adam10: https://hackage.haskell.org/package/xmonad-0.15/docs/XMonad-StackSet.html |
2021-02-25 22:54:45 +0100 | acidjnk_new | (~acidjnk@p200300d0c73909037c8935151300e6fb.dip0.t-ipconnect.de) |
2021-02-25 22:55:18 +0100 | <dminuoso> | adam10: (So roughly, for each workspace we keep a stack of windows, in which one window is in focus). And we then keep a focus marker for which workspace is active. |
2021-02-25 22:55:48 +0100 | <adam10> | chisui it would register one monitor as two so like certain things would be on one side of the monitor that i cant reach because its in a sort of “limbo.” I dont know exactly how to describe it, but think of it when you drag a window almost off screen, except its fully offscreen in this case |
2021-02-25 22:56:01 +0100 | <dminuoso> | adam10: Note that "workspace" is meant in a virtual sense! |
2021-02-25 22:56:13 +0100 | <dminuoso> | And that's where it gets slightly messy |
2021-02-25 22:56:24 +0100 | <dminuoso> | Workspaces can shift between your monitors around, depending on your operation |
2021-02-25 22:56:46 +0100 | <adam10> | Yea i know that, i just hope it doesn’t pull an i3 lol |
2021-02-25 22:56:59 +0100 | <dminuoso> | IndependentScreens tries to "virtualize workspaces", such that each physical screen has its own set of workspaces. |
2021-02-25 22:57:23 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-02-25 22:57:30 +0100 | <adam10> | But you said it doesn’t play nice with xmonad? |
2021-02-25 22:57:37 +0100 | <dminuoso> | With many xmonad-contrib stuff |
2021-02-25 22:57:58 +0100 | <adam10> | But with just xmonad? |
2021-02-25 22:58:05 +0100 | <dminuoso> | If you dont use those, then its fine. Or maybe you *want* the default xmonad behavior with sharing these workspaces on all physical screens |
2021-02-25 22:58:09 +0100 | <dminuoso> | Oh it works just fine |
2021-02-25 22:58:25 +0100 | <adam10> | i mean it would be nice both way |
2021-02-25 22:58:33 +0100 | <adam10> | ways* |
2021-02-25 22:58:46 +0100 | <dminuoso> | Personally I found, if you have a single center/main monitor that you stare at, then the xmonad behavior is great. |
2021-02-25 22:59:03 +0100 | <dminuoso> | If you have a setup where you have one monitor to the left and one to the right, IndependentScreen seems like a better fit |
2021-02-25 22:59:28 +0100 | <adam10> | I mean its kinda like that, i want a setup where I have one single panel on my “main” monitor and then 4-ish panels on my second |
2021-02-25 22:59:43 +0100 | <adam10> | it kinda swaps tho as i constantly look back and forth |
2021-02-25 23:00:50 +0100 | <adam10> | But thanks for your time! |
2021-02-25 23:01:04 +0100 | <adam10> | is there a starting configuration file it generates that i could play around with and such? |
2021-02-25 23:03:03 +0100 | chisui | (59f77ca6@i59F77CA6.versanet.de) (Ping timeout: 240 seconds) |
2021-02-25 23:04:28 +0100 | soft-warm | (44695313@ip68-105-83-19.sd.sd.cox.net) |
2021-02-25 23:04:49 +0100 | Narinas | (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Ping timeout: 272 seconds) |
2021-02-25 23:06:46 +0100 | bencark | (~cark@91.110.54.64) |
2021-02-25 23:06:49 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Ping timeout: 265 seconds) |
2021-02-25 23:07:02 +0100 | darjeeling_ | (~darjeelin@122.245.218.150) (Ping timeout: 265 seconds) |
2021-02-25 23:07:08 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-25 23:07:58 +0100 | avn | (~avn@78-56-108-78.static.zebra.lt) (Read error: Connection reset by peer) |
2021-02-25 23:08:37 +0100 | ddere | (uid110888@gateway/web/irccloud.com/x-mbygtejiccludvmt) |
2021-02-25 23:08:55 +0100 | <monochrom> | ski: Yes. More weakly, if you want "return a = repeat a", which is of course a prerequsite for zipping behaviour but probably isn't enough to imply zipping. |
2021-02-25 23:09:34 +0100 | darjeeling_ | (~darjeelin@122.245.218.150) |
2021-02-25 23:09:43 +0100 | theelous3 | (~theelous3@unaffiliated/theelous3) |
2021-02-25 23:10:34 +0100 | pavonia^\_^\ | (~user@unaffiliated/siracusa) |
2021-02-25 23:11:53 +0100 | <monochrom> | There is a related finding about homogeneous 2-tuples "data Pair a = MkPair a a". Most people quickly see that it's the same as Bool->a so you can just translate the well-known (->)Bool monad. What interests me is whether there are other choices and why or why not. |
2021-02-25 23:12:12 +0100 | <monochrom> | Turns out again the identity laws rule out all other choices. |
2021-02-25 23:12:23 +0100 | adam10 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) (Ping timeout: 240 seconds) |
2021-02-25 23:12:57 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 23:13:41 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-02-25 23:14:17 +0100 | mp___ | (~mp@hell.cx) (Remote host closed the connection) |
2021-02-25 23:17:08 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
2021-02-25 23:17:17 +0100 | <monochrom> | Heh, if return a = [a], then the identity laws strongly suggest join = concat. I am not sure if it is forced, but it is very limiting either way. |
2021-02-25 23:18:39 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 246 seconds) |
2021-02-25 23:18:45 +0100 | <monochrom> | Now let me try this on State too... |
2021-02-25 23:18:51 +0100 | <monochrom> | (wish me luck) |
2021-02-25 23:19:07 +0100 | <monochrom> | (or "good luck with that" if you know it's doomed) |
2021-02-25 23:20:09 +0100 | <ski> | i guess i'm not really following why the identity laws rule out the other choices, there |
2021-02-25 23:20:15 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-25 23:21:15 +0100 | adam28 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) |
2021-02-25 23:21:17 +0100 | <monochrom> | For Pair: return x = MkPair x x is pretty much forced by parametricity plus totality. |
2021-02-25 23:21:21 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Client Quit) |
2021-02-25 23:21:50 +0100 | adam28 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) (Client Quit) |
2021-02-25 23:21:50 +0100 | <monochrom> | With that, you want join . return = id, join . fmap return = id. |
2021-02-25 23:22:12 +0100 | <ski> | hm, i see |
2021-02-25 23:22:23 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-25 23:23:26 +0100 | <monochrom> | So suppose join (MkPair (MkPair a00 a01) (MkPair a10 a11)) = MkPair b0 b1, where b0 and b1 each has to choose one of the aij's, and we're trying to find what they choose. |
2021-02-25 23:24:33 +0100 | adam10 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) |
2021-02-25 23:24:36 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 23:24:51 +0100 | <monochrom> | join (return (MkPair 0 1)) = join (MkPair (MkPair 0 1) (MkPair 0 1)), we want that to = MkPair 0 1. The 0 has to "come from the 1st column", the 1 has to "come from the 2nd column", so b0 can only choose from a00 or a10, b1 from a01 or a11. |
2021-02-25 23:25:13 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-02-25 23:25:19 +0100 | <ski> | so apply `join . return' and `join . fmap return' to two pairs |
2021-02-25 23:25:21 +0100 | Pickchea | (~private@unaffiliated/pickchea) (Quit: Leaving) |
2021-02-25 23:25:34 +0100 | <ski> | er, one pair of two values |
2021-02-25 23:25:45 +0100 | <monochrom> | join (fmap return (MkPair 0 1)) basically does the transpose after the dust settles. So join is diagonal once again. |
2021-02-25 23:25:46 +0100 | <ski> | yes |
2021-02-25 23:26:04 +0100 | <monochrom> | (And cite "parametricity" to finish the rigour :) ) |
2021-02-25 23:26:11 +0100 | <monochrom> | (or "naturality") |
2021-02-25 23:26:14 +0100 | <ski> | forcing it to pick indices `i' and `j' that are equal to each other |
2021-02-25 23:26:16 +0100 | frozenErebus | (~frozenEre@94.128.219.166) (Quit: leaving) |
2021-02-25 23:27:36 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds) |
2021-02-25 23:29:10 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-02-25 23:29:13 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-25 23:30:44 +0100 | kadobanana | (~mud@unaffiliated/kadoban) |
2021-02-25 23:32:16 +0100 | <nshepperd> | since it's equivalent to Bool -> a, you could also do the parametricity argument in that representation, which might be simpler |
2021-02-25 23:33:00 +0100 | <monochrom> | I am skeptical with that. Bool->a is parametric on a only. |
2021-02-25 23:33:15 +0100 | catt | (~r@31.127.31.99) (Ping timeout: 256 seconds) |
2021-02-25 23:33:42 +0100 | <monochrom> | I need a reason for "why I can't fiddle with the Bool" |
2021-02-25 23:34:29 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
2021-02-25 23:34:30 +0100 | <monochrom> | General e->a with "you have to do something that works for all e" would benefit much from parametricity in e. |
2021-02-25 23:34:43 +0100 | adam10 | (a5a68021@dsl-33.static.grp38.tnmmrl.infoave.net) (Ping timeout: 240 seconds) |
2021-02-25 23:35:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-02-25 23:35:25 +0100 | hiroaki__ | (~hiroaki@2a02:8108:8c40:2bb8:cedc:3317:ccec:602b) |
2021-02-25 23:35:36 +0100 | <monochrom> | Likewise, "instance Monad ((,) w)" is very different from "instance Monad Pair" even though Pair a = (,) a a |
2021-02-25 23:36:32 +0100 | slack1256 | (~slack1256@45.4.2.52) (Remote host closed the connection) |
2021-02-25 23:36:39 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-02-25 23:37:14 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-02-25 23:37:28 +0100 | hiroaki_ | (~hiroaki@2a02:8108:8c40:2bb8:d62a:148b:cd1:9dfb) (Ping timeout: 260 seconds) |
2021-02-25 23:38:00 +0100 | <monochrom> | Hrm, maybe I misread you. |
2021-02-25 23:38:49 +0100 | <dolio> | Parametricity would limit the functions you have to consider. |
2021-02-25 23:38:52 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-25 23:38:54 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-25 23:39:01 +0100 | <nshepperd> | join (return f) = join (\i j -> f j) = f |
2021-02-25 23:39:07 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-25 23:39:32 +0100 | <nshepperd> | join (return <$> f) = join (\i j -> f i) = f |
2021-02-25 23:40:15 +0100 | <nshepperd> | therefore join (\i j -> f i j) k = f k k |
2021-02-25 23:40:58 +0100 | <nshepperd> | something like that |
2021-02-25 23:41:18 +0100 | <dolio> | There are only finitely many permutations of booleans to feed into the `Bool -> Bool -> a`. |
2021-02-25 23:41:20 +0100 | <monochrom> | Yeah I misread you, you meant that, it works. Thanks. |
2021-02-25 23:41:54 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 246 seconds) |
2021-02-25 23:42:56 +0100 | ransom | (~c4264035@8.48.134.49) |
2021-02-25 23:43:08 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-02-25 23:45:13 +0100 | __minoru__shirae | (~shiraeesh@109.166.59.137) |
2021-02-25 23:45:38 +0100 | augnun | (~augnun@2804:14c:658b:41bb:bd15:cb53:9582:4622) (Ping timeout: 264 seconds) |
2021-02-25 23:46:19 +0100 | fendor_ | (~fendor@178.115.128.24.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-02-25 23:48:09 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-25 23:50:49 +0100 | <dolio> | I don't think it's significantly different in function from the version with pairs. You're given 4 a values and you need to return 2, and parametricity tells you the function must just select the outputs from the inputs. |
2021-02-25 23:51:12 +0100 | <dolio> | And must make the same selections regardless of the exact values of the inputs. |
2021-02-25 23:51:43 +0100 | ddellaco_ | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-02-25 23:51:51 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-02-25 23:53:17 +0100 | acidjnk_new | (~acidjnk@p200300d0c73909037c8935151300e6fb.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-25 23:53:26 +0100 | borne | (~fritjof@200116b8648b430010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 265 seconds) |
2021-02-25 23:54:10 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-25 23:54:21 +0100 | <nshepperd> | knowing that the input is Bool doesn't help you, because the equations still have to hold for every possible input |
2021-02-25 23:54:42 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-25 23:57:08 +0100 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…) |
2021-02-25 23:58:27 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |