2023-04-11 00:02:52 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 00:13:51 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-212.46.114.pool.telefonica.de) (Ping timeout: 260 seconds) |
2023-04-11 00:15:26 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) |
2023-04-11 00:23:22 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-04-11 00:23:32 +0200 | NiceBird | (~NiceBird@185.133.111.196) (Ping timeout: 246 seconds) |
2023-04-11 00:27:27 +0200 | acidjnk | (~acidjnk@p200300d6e715c499d4f5be9b40c24016.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-04-11 00:28:13 +0200 | cassiopea | (~cassiopea@user/cassiopea) |
2023-04-11 00:31:51 +0200 | heraldo | (~heraldo@user/heraldo) (Ping timeout: 255 seconds) |
2023-04-11 00:34:32 +0200 | heraldo | (~heraldo@user/heraldo) |
2023-04-11 00:46:29 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 00:49:02 +0200 | nunggu | (~q@user/nunggu) |
2023-04-11 00:54:14 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 00:54:21 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 01:01:52 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) (Ping timeout: 248 seconds) |
2023-04-11 01:04:34 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
2023-04-11 01:04:57 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2023-04-11 01:13:58 +0200 | captnemo | (~captnemo@193.32.127.232) (Quit: WeeChat 3.8) |
2023-04-11 01:18:37 +0200 | potash | (~potash@user/foghorn) |
2023-04-11 01:20:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-04-11 01:21:00 +0200 | vglfr | (~vglfr@88.155.45.17) (Ping timeout: 252 seconds) |
2023-04-11 01:21:53 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-04-11 01:33:20 +0200 | heraldo | (~heraldo@user/heraldo) (Quit: heraldo) |
2023-04-11 01:40:58 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Ping timeout: 276 seconds) |
2023-04-11 01:42:02 +0200 | nunggu | (~q@user/nunggu) (Ping timeout: 255 seconds) |
2023-04-11 01:46:17 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 01:52:57 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-04-11 01:52:57 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-04-11 01:52:57 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-04-11 01:59:58 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2023-04-11 02:00:06 +0200 | mauke_ | (~mauke@user/mauke) |
2023-04-11 02:02:22 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-04-11 02:02:25 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 268 seconds) |
2023-04-11 02:02:25 +0200 | mauke_ | mauke |
2023-04-11 02:06:10 +0200 | <hololeap> | whatsupdoc: is that the one kmett has been working on? |
2023-04-11 02:07:18 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!) |
2023-04-11 02:11:36 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2023-04-11 02:17:02 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 02:22:34 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds) |
2023-04-11 02:41:38 +0200 | chanceyan | (~chanceyan@user/chanceyan) |
2023-04-11 03:00:35 +0200 | <Nosrep> | elixir the language? |
2023-04-11 03:00:47 +0200 | <Nosrep> | ekmett doesn't have any elixir repos in his github and there's 299 repos |
2023-04-11 03:07:11 +0200 | <Axman6> | hololeap: are you thinking about guanxi? |
2023-04-11 03:07:26 +0200 | <Axman6> | elixir's the rubified erlang |
2023-04-11 03:08:48 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 248 seconds) |
2023-04-11 03:09:42 +0200 | <hololeap> | I'm not sure, but I remember kmett saying something about working on a different language |
2023-04-11 03:10:25 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-04-11 03:10:42 +0200 | <hololeap> | I think it runs on jvm |
2023-04-11 03:11:03 +0200 | <hololeap> | rubified erlang sounds cool, honestly |
2023-04-11 03:13:18 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Read error: Connection reset by peer) |
2023-04-11 03:13:37 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 03:14:06 +0200 | <hololeap> | edwardk_: what was the other language you have been working on, or am I totally off base |
2023-04-11 03:14:24 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Client Quit) |
2023-04-11 03:16:32 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-04-11 03:18:25 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 03:20:23 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-11 03:20:25 +0200 | <monochrom> | I heard of "Turbo Haskell" :) |
2023-04-11 03:21:36 +0200 | <c_wraith> | hololeap: the Haskell-like that runs on the JVM was ermine. But I don't think edwardk has worked at the place developing that in a long time |
2023-04-11 03:22:01 +0200 | <c_wraith> | well. the haskell-like that runs on the jvm that he was working on |
2023-04-11 03:22:07 +0200 | <hololeap> | but he _did_? this was a random convo on IRC and yeah it was at least a couple years ago |
2023-04-11 03:22:32 +0200 | <c_wraith> | yes. Probably more than 10 years ago, now |
2023-04-11 03:22:41 +0200 | <hololeap> | oh, well not that long ago |
2023-04-11 03:23:02 +0200 | <c_wraith> | it easily can come up in conversation more recently |
2023-04-11 03:23:21 +0200 | <hololeap> | my impression was that it was current work |
2023-04-11 03:24:29 +0200 | nunggu | (~q@user/nunggu) |
2023-04-11 03:24:31 +0200 | <monochrom> | Every car was once a new car. Every work was once current work. >:D |
2023-04-11 03:25:10 +0200 | <monochrom> | http://www.vex.net/~trebla/humour/tautologies.html #13 |
2023-04-11 03:25:57 +0200 | <c_wraith> | I feel like if I really looked, I could find some cars that were built old. :P |
2023-04-11 03:27:34 +0200 | <monochrom> | Fortunately I happened to not talk of violins. Some people make intially-old violins to fake Strads. >:D |
2023-04-11 03:27:55 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 252 seconds) |
2023-04-11 03:27:56 +0200 | <hololeap> | oldsmobile QED |
2023-04-11 03:28:11 +0200 | <monochrom> | hahaha |
2023-04-11 03:29:53 +0200 | <hololeap> | I saw something that was saying Stradivarius violins have a unique sound because they were made from trees that grew in the little ice age, which made the wood more dense |
2023-04-11 03:30:29 +0200 | nunggu | (~q@user/nunggu) (Remote host closed the connection) |
2023-04-11 03:33:52 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds) |
2023-04-11 03:38:43 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
2023-04-11 03:43:01 +0200 | czy | (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
2023-04-11 03:43:17 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-04-11 03:51:07 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 248 seconds) |
2023-04-11 03:52:11 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-04-11 03:52:33 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-04-11 03:53:24 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-11 03:55:23 +0200 | <Nosrep> | step 1. refrigerated greenhouse 2. ??? 3. profit |
2023-04-11 03:58:21 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2023-04-11 03:59:28 +0200 | zq | (~zq@xorshift.org) |
2023-04-11 03:59:30 +0200 | <zq> | hello |
2023-04-11 03:59:43 +0200 | <zq> | ml module functor == haskell typeclass functor? |
2023-04-11 04:00:25 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 04:01:33 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 04:05:01 +0200 | leah2 | (~leah@vuxu.org) |
2023-04-11 04:10:20 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2023-04-11 04:11:17 +0200 | nunggu | (~q@user/nunggu) |
2023-04-11 04:12:58 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 04:16:37 +0200 | <probie> | zq: not at all |
2023-04-11 04:16:51 +0200 | td_ | (~td@i53870914.versanet.de) (Ping timeout: 268 seconds) |
2023-04-11 04:17:35 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Ping timeout: 260 seconds) |
2023-04-11 04:18:21 +0200 | td_ | (~td@i5387091F.versanet.de) |
2023-04-11 04:18:44 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-11 04:27:03 +0200 | jumpnbrownweasel | (~jumpnbrow@2603-800c-240f-1c55-8db8-2c23-1ffe-bf07.res6.spectrum.com) (Quit: Leaving) |
2023-04-11 04:31:32 +0200 | <ryantrinkle> | any recommendation on how to emit a warning or error if someone uses a particular library/module *without* using a particular compiler plugin? |
2023-04-11 04:31:56 +0200 | <ryantrinkle> | i just wrote a lib where users will suffer an enormous performance penalty if they forget to use the plugin |
2023-04-11 04:32:36 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 04:33:44 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 04:33:59 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-04-11 04:35:39 +0200 | jwiegley_ | (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-04-11 04:36:18 +0200 | jwiegley | (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Read error: Connection reset by peer) |
2023-04-11 04:38:25 +0200 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-50-65-93-192-141.dsl.bell.ca) |
2023-04-11 04:38:33 +0200 | <probie> | ryantrinkle: Do you also control the compiler plugin? Definitely a hack, but if so you can add a type checker plugin to it that can solve a specific constraint, and then add that otherwise unsolvable constraint to your library |
2023-04-11 04:38:55 +0200 | pieguy128 | (~pieguy128@bas8-montreal02-65-93-194-11.dsl.bell.ca) (Ping timeout: 260 seconds) |
2023-04-11 04:43:18 +0200 | <probie> | e.g. `class UsingCompilerPluginFoo a where` and then somewhere in your library have a useless dummy function `usingCompilerPlugin :: UsingCompilerPluginFoo () => ()` to block compilation unless the plugin is being used |
2023-04-11 04:46:28 +0200 | <jackdk> | probie: `-XMultiParamTypeClasses` allows nullary type classes; can you use that here? Also, you could put such a type class on the library functions that require the plugin, instead of a magic binding |
2023-04-11 04:48:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 04:53:51 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2023-04-11 04:54:23 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 04:55:32 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
2023-04-11 04:59:24 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-04-11 04:59:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-04-11 04:59:24 +0200 | finn_elija | FinnElija |
2023-04-11 05:01:17 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-04-11 05:01:25 +0200 | <probie> | jackdk: does ghc promise to erase "empty" type classes, or is there a risk it's going to rewrite `C => T` to `() -> T` instead of `T`? |
2023-04-11 05:03:34 +0200 | <jackdk> | I dunno. I jut remember seeing it in the doc for that extension. If it rewrites it to a silly function, that's easily fixable with the plugin anyway |
2023-04-11 05:06:11 +0200 | Vq | (~vq@90-227-192-206-no77.tbcn.telia.com) (Ping timeout: 268 seconds) |
2023-04-11 05:07:57 +0200 | Vq | (~vq@90-227-192-206-no77.tbcn.telia.com) |
2023-04-11 05:10:38 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 05:14:52 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::2) (Remote host closed the connection) |
2023-04-11 05:19:01 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-04-11 05:33:48 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Ping timeout: 255 seconds) |
2023-04-11 05:36:13 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 05:37:18 +0200 | czy | (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-04-11 05:38:11 +0200 | pyook | (~puke@user/puke) |
2023-04-11 05:44:17 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 05:45:39 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 05:49:13 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit) |
2023-04-11 05:49:57 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 05:50:01 +0200 | matthews | (~matthews@gentoo/developer/matthew) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2023-04-11 05:50:29 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 05:56:51 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Ping timeout: 260 seconds) |
2023-04-11 06:20:31 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
2023-04-11 06:23:16 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-04-11 06:23:17 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-04-11 06:23:17 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-04-11 06:24:12 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-04-11 06:30:03 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-04-11 06:30:32 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-04-11 06:30:40 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds) |
2023-04-11 06:32:22 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-04-11 06:41:15 +0200 | mbuf | (~Shakthi@49.207.178.186) |
2023-04-11 06:44:54 +0200 | trev | (~trev@user/trev) |
2023-04-11 06:59:10 +0200 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2023-04-11 07:00:13 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer) |
2023-04-11 07:00:26 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-04-11 07:01:13 +0200 | Feuermagier_ | (~Feuermagi@user/feuermagier) (Client Quit) |
2023-04-11 07:08:54 +0200 | cheater_ | (~Username@user/cheater) |
2023-04-11 07:10:29 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 250 seconds) |
2023-04-11 07:10:38 +0200 | cheater_ | cheater |
2023-04-11 07:20:10 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 07:26:03 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-04-11 07:27:03 +0200 | freeside | (~mengwong@50.216.111.242) |
2023-04-11 07:30:48 +0200 | mikess | (~sam@user/mikess) (Ping timeout: 264 seconds) |
2023-04-11 07:31:30 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-04-11 07:40:11 +0200 | hopelessness[m] | (~hopelessn@2001:470:69fc:105::3:4043) |
2023-04-11 07:43:30 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 260 seconds) |
2023-04-11 07:46:21 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 07:46:29 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 07:50:55 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-11 07:51:54 +0200 | cheater | (~Username@user/cheater) |
2023-04-11 07:54:19 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2023-04-11 08:00:53 +0200 | michalz | (~michalz@185.246.204.101) |
2023-04-11 08:04:12 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2023-04-11 08:05:26 +0200 | nunggu | (~q@user/nunggu) (Ping timeout: 255 seconds) |
2023-04-11 08:11:06 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-04-11 08:11:29 +0200 | MajorBiscuit | (~MajorBisc@31-23-159.netrun.cytanet.com.cy) |
2023-04-11 08:15:19 +0200 | kenran | (~user@user/kenran) |
2023-04-11 08:20:59 +0200 | chanceyan | (~chanceyan@user/chanceyan) (Quit: Client closed) |
2023-04-11 08:23:58 +0200 | _leo___ | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-04-11 08:24:47 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 260 seconds) |
2023-04-11 08:38:48 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds) |
2023-04-11 08:39:13 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) |
2023-04-11 08:40:51 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-11 08:50:42 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 08:53:36 +0200 | ddellacosta | (~ddellacos@146.70.171.100) (Ping timeout: 264 seconds) |
2023-04-11 08:55:00 +0200 | Guest99 | (~Guest99@host-im9myvj.static.zeelandnet.nl) |
2023-04-11 08:58:57 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 09:06:09 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:807f:2761:46c9:9711) |
2023-04-11 09:07:16 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::7fe) |
2023-04-11 09:08:08 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2023-04-11 09:11:14 +0200 | acidjnk | (~acidjnk@p200300d6e715c407d4f5be9b40c24016.dip0.t-ipconnect.de) |
2023-04-11 09:15:35 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-11 09:15:47 +0200 | ddellacosta | (~ddellacos@146.70.185.100) |
2023-04-11 09:17:35 +0200 | zaquest | (~notzaques@5.130.79.72) |
2023-04-11 09:19:40 +0200 | chanceyan | (~chanceyan@user/chanceyan) |
2023-04-11 09:20:32 +0200 | kuribas | (~user@188.189.245.25) |
2023-04-11 09:25:00 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2023-04-11 09:25:45 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-04-11 09:32:50 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 09:39:09 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-04-11 09:39:42 +0200 | mastarija | (~mastarija@2a05:4f46:e03:6000:95dc:f9bd:1c2a:3be8) |
2023-04-11 09:40:20 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::7fe) (Remote host closed the connection) |
2023-04-11 09:40:42 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::fba) |
2023-04-11 09:41:19 +0200 | <JensPetersen[m]> | I have a space character operator ("ab" +-+ "cd == "ab " +-+ " cd" = ), but now I can't decide what it should do for an empty string: "ab" +-+ "", hmm |
2023-04-11 09:42:34 +0200 | <hopelessness[m]> | according to the first example I would think that `"ab "` and `"ab"` would be equally valid |
2023-04-11 09:42:51 +0200 | <hopelessness[m]> | imo `"ab"` would make more sense on the context I'm inferring |
2023-04-11 09:47:44 +0200 | freeside | (~mengwong@50.216.111.242) (Ping timeout: 248 seconds) |
2023-04-11 09:50:23 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-04-11 09:52:09 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2023-04-11 09:53:51 +0200 | <mauke> | > ab" +-+ "cd == "ab " +-+ " cd" = |
2023-04-11 09:53:53 +0200 | <lambdabot> | <hint>:1:32: error: parse error on input ‘=’ |
2023-04-11 09:54:40 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-04-11 09:55:50 +0200 | chanceyan | (~chanceyan@user/chanceyan) (Quit: Client closed) |
2023-04-11 09:56:24 +0200 | ddellacosta | (~ddellacos@146.70.185.100) (Ping timeout: 265 seconds) |
2023-04-11 09:57:05 +0200 | ddellacosta | (~ddellacos@146.70.171.100) |
2023-04-11 09:58:35 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-04-11 10:02:52 +0200 | <tomsmeding> | JensPetersen[m]: spec seems to be to concatenate while removing any spaces in between, right? In which case indeed "ab" +-+ "" == "ab" |
2023-04-11 10:03:42 +0200 | <JensPetersen[m]> | tomsmeding: Yeah I feel that is right - maybe I just want an append space operator too :) |
2023-04-11 10:03:48 +0200 | drdo | (~drdo@bl7-76-103.dsl.telepac.pt) (Ping timeout: 255 seconds) |
2023-04-11 10:05:46 +0200 | <tomsmeding> | @let a +␠+ b = a ++ " " ++ b |
2023-04-11 10:05:47 +0200 | <lambdabot> | Defined. |
2023-04-11 10:07:58 +0200 | Guest99 | (~Guest99@host-im9myvj.static.zeelandnet.nl) (Quit: Client closed) |
2023-04-11 10:09:27 +0200 | <mauke> | > let a +??+ b = unwords (words a ++ words b) in "ab " +??+ " cd" |
2023-04-11 10:09:29 +0200 | <lambdabot> | "ab cd" |
2023-04-11 10:10:06 +0200 | kuribas | (~user@188.189.245.25) (Ping timeout: 255 seconds) |
2023-04-11 10:10:19 +0200 | freeside | (~mengwong@50.216.111.242) |
2023-04-11 10:13:02 +0200 | <JensPetersen[m]> | aha |
2023-04-11 10:13:29 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-04-11 10:13:57 +0200 | <JensPetersen[m]> | Yeah that is a simple implementation indeed |
2023-04-11 10:16:39 +0200 | mmhat | (~mmh@p200300f1c7106e86ee086bfffe095315.dip0.t-ipconnect.de) |
2023-04-11 10:17:42 +0200 | mmhat | (~mmh@p200300f1c7106e86ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-04-11 10:18:14 +0200 | Rembane | (~Rembane@li346-36.members.linode.com) |
2023-04-11 10:19:52 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2023-04-11 10:20:35 +0200 | ubert | (~Thunderbi@p548c84d6.dip0.t-ipconnect.de) (Quit: ubert) |
2023-04-11 10:23:45 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-04-11 10:24:20 +0200 | winny | (~weechat@user/winny) (Quit: kernel) |
2023-04-11 10:25:01 +0200 | winny | (~weechat@user/winny) |
2023-04-11 10:39:45 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-04-11 10:43:05 +0200 | <ncf> | zq: no, and it also has nothing to do with what C++ calls a functor, or what Prolog calls a functor (all four are different concepts 🙃) |
2023-04-11 10:58:24 +0200 | <Hecate> | ahah yes the famous OCaml/Haskell/C++/Prolog dichotomy |
2023-04-11 11:00:07 +0200 | pareto-optimal-d | (~pareto-op@2001:470:69fc:105::1:b61f) (Quit: You have been kicked for being idle) |
2023-04-11 11:00:07 +0200 | ikervagyok[m] | (~ikervagyo@2001:470:69fc:105::2:f119) (Quit: You have been kicked for being idle) |
2023-04-11 11:01:21 +0200 | <hopelessness[m]> | that seems more like a quartotomy :p |
2023-04-11 11:01:27 +0200 | __monty__ | (~toonn@user/toonn) |
2023-04-11 11:01:38 +0200 | <hopelessness[m]> | s/quartotomy/quarchotomy/ |
2023-04-11 11:02:54 +0200 | Guest66 | (~Guest66@140.124.184.119) |
2023-04-11 11:04:06 +0200 | chanceyan | (~chanceyan@user/chanceyan) |
2023-04-11 11:05:07 +0200 | <hopelessness[m]> | wiktionary doesn't list it as a word, even though it acknowledges [trichotomy](https://en.m.wiktionary.org/wiki/trichotomy#English) as analog to [dichotomy](https://en.m.wiktionary.org/wiki/dichotomy#English) |
2023-04-11 11:05:09 +0200 | <merijn> | Hecate: Wouldn't that be a tetrachotomy? |
2023-04-11 11:05:20 +0200 | <merijn> | hopelessness[m]: Wrong language prefix ;) |
2023-04-11 11:05:36 +0200 | <Hecate> | merijn: yes that would be the greek word indeed |
2023-04-11 11:05:41 +0200 | <hopelessness[m]> | ahhhh heck |
2023-04-11 11:05:42 +0200 | <hopelessness[m]> | out-nerded |
2023-04-11 11:05:51 +0200 | <hopelessness[m]> | * wiktionary doesn't list it as a word, even though it acknowledges [trichotomy](https://en.m.wiktionary.org/wiki/trichotomy#English) as analog to [dichotomy](https://en.m.wiktionary.org/wiki/dichotomy#English) |
2023-04-11 11:06:15 +0200 | <merijn> | hopelessness[m]: I'm just extrapolating from di/tri/tetra in chemistry |
2023-04-11 11:07:26 +0200 | <hopelessness[m]> | I was never good in chemistry 😆 |
2023-04-11 11:08:23 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:81f3:78d3:e012:2761) |
2023-04-11 11:22:44 +0200 | mastarija | (~mastarija@2a05:4f46:e03:6000:95dc:f9bd:1c2a:3be8) (Quit: WeeChat 3.7.1) |
2023-04-11 11:36:50 +0200 | NiceBird | (~NiceBird@185.133.111.196) |
2023-04-11 11:38:17 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Remote host closed the connection) |
2023-04-11 11:44:43 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving) |
2023-04-11 11:46:16 +0200 | chanceyan | (~chanceyan@user/chanceyan) (Quit: Client closed) |
2023-04-11 11:49:55 +0200 | Guest66 | (~Guest66@140.124.184.119) (Quit: Client closed) |
2023-04-11 11:51:20 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:807f:2761:46c9:9711) (Ping timeout: 246 seconds) |
2023-04-11 11:51:37 +0200 | gensyst | (~gensyst@user/gensyst) |
2023-04-11 11:53:45 +0200 | <gensyst> | Have you worked yet with "nixpkgs support for incremental Haskell builds" ? |
2023-04-11 11:53:52 +0200 | <gensyst> | Is this already done? |
2023-04-11 11:54:24 +0200 | <gensyst> | It's GHC 9.4 or later only supposedly, because only >= GHC 9.4 has file hashing to detect changes. |
2023-04-11 11:57:45 +0200 | vglfr | (~vglfr@88.155.17.187) (Ping timeout: 265 seconds) |
2023-04-11 12:09:54 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) (Quit: leaving) |
2023-04-11 12:10:17 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 265 seconds) |
2023-04-11 12:15:51 +0200 | <fendor[m]> | I may have asked before, but is it typeclasses or type classes? or is either fine? |
2023-04-11 12:16:43 +0200 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-04-11 12:16:54 +0200 | <merijn> | fendor[m]: I think the report uses the latter? |
2023-04-11 12:17:44 +0200 | <fendor[m]> | realworldhaskell and lyah use the former, wikipedia uses the latter |
2023-04-11 12:18:47 +0200 | <fendor[m]> | but yeah, the report uses the latter, going to use that as my source of truth, thanks! |
2023-04-11 12:19:08 +0200 | mei | (~mei@user/mei) |
2023-04-11 12:19:56 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) |
2023-04-11 12:31:01 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 12:38:46 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 12:39:45 +0200 | saolof | (~saolof@2001:2002:5ae4:c319:4108:8be0:bf78:a848) |
2023-04-11 12:44:30 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Ping timeout: 260 seconds) |
2023-04-11 12:46:17 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::fba) (Quit: Konversation terminated!) |
2023-04-11 12:51:05 +0200 | forell | (~forell@user/forell) (Ping timeout: 250 seconds) |
2023-04-11 12:53:02 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-04-11 12:54:19 +0200 | forell | (~forell@user/forell) |
2023-04-11 12:56:52 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 12:58:09 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 12:58:30 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) |
2023-04-11 13:03:08 +0200 | kenran` | (~user@user/kenran) |
2023-04-11 13:04:31 +0200 | kenran | (~user@user/kenran) (Ping timeout: 240 seconds) |
2023-04-11 13:09:25 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:c066:a6a4:43b5:25e) |
2023-04-11 13:19:49 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) (Remote host closed the connection) |
2023-04-11 13:21:33 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-11 13:21:46 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-181-068.46.114.pool.telefonica.de) |
2023-04-11 13:28:49 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds) |
2023-04-11 13:30:55 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
2023-04-11 13:35:23 +0200 | pyook | (~puke@user/puke) (Read error: Connection reset by peer) |
2023-04-11 13:35:36 +0200 | pyook | (~puke@user/puke) |
2023-04-11 13:43:28 +0200 | vglfr | (~vglfr@88.155.17.187) (Ping timeout: 248 seconds) |
2023-04-11 13:43:32 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-04-11 13:43:40 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 13:46:40 +0200 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-04-11 13:47:01 +0200 | anpad | (~pandeyan@user/anpad) |
2023-04-11 13:50:06 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-04-11 13:50:58 +0200 | vglfr | (~vglfr@88.155.17.187) (Ping timeout: 268 seconds) |
2023-04-11 13:52:08 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 13:58:46 +0200 | vglfr | (~vglfr@88.155.17.187) (Ping timeout: 252 seconds) |
2023-04-11 14:03:56 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 14:08:38 +0200 | paulpaul1076 | (~textual@95-29-5-208.broadband.corbina.ru) |
2023-04-11 14:09:48 +0200 | akadude[m] | (~akadudema@2001:470:69fc:105::2:5bf7) |
2023-04-11 14:11:45 +0200 | Vq | (~vq@90-227-192-206-no77.tbcn.telia.com) (Ping timeout: 255 seconds) |
2023-04-11 14:13:43 +0200 | Vq | (~vq@90-227-192-206-no77.tbcn.telia.com) |
2023-04-11 14:24:29 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2023-04-11 14:25:40 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-04-11 14:28:06 +0200 | <chreekat> | <fendor[m]> "realworldhaskell and lyah use..." <- oh damn is that what's going on |
2023-04-11 14:28:26 +0200 | <chreekat> | I had asked myself the same question and came to the same conclusion (follow the report), but wasn't sure why I was confused in the first place |
2023-04-11 14:28:28 +0200 | <chreekat> | database, data base |
2023-04-11 14:28:47 +0200 | <chreekat> | i think I still prefer typeclass though |
2023-04-11 14:33:14 +0200 | <fendor[m]> | I also feel like typeclass reads slightly more natural, but couldn't give an argument why |
2023-04-11 14:34:19 +0200 | <int-e> | exposure |
2023-04-11 14:34:47 +0200 | <fendor[m]> | yeah I guess that's it |
2023-04-11 14:34:47 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-04-11 14:35:06 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:9da2:60aa:4250:a867) |
2023-04-11 14:35:16 +0200 | edwardk_ | edwardk |
2023-04-11 14:35:38 +0200 | <int-e> | (As a data point, I prefer "type class" and I have not read either of those books... but I do prefer "database" and the only reason I see for that is that that's what everybody else uses.) |
2023-04-11 14:39:41 +0200 | <kenran`> | "user name" vs. "username" is the same for me |
2023-04-11 14:39:54 +0200 | <kenran`> | I guess as German it's only natural for the concatenated variant to feel more natural to me though |
2023-04-11 14:40:28 +0200 | kenran` | kenran |
2023-04-11 14:42:17 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-11 14:50:06 +0200 | <hopelessness[m]> | haha yeah |
2023-04-11 14:50:17 +0200 | <hopelessness[m]> | I often concatenate even when it's not possible |
2023-04-11 14:50:37 +0200 | <int-e> | . o O ( overconcatenation ) |
2023-04-11 14:51:05 +0200 | <[exa]> | might deserve a hyphen. :D |
2023-04-11 14:51:19 +0200 | <int-e> | [exa]: that would destroy the joke |
2023-04-11 14:51:33 +0200 | <hopelessness[m]> | hyphen-deserving |
2023-04-11 14:51:37 +0200 | <hopelessness[m]> | hyphendeserving |
2023-04-11 14:51:39 +0200 | <yin> | i feel like there's a subtle difference like in 'log in' vs 'login' |
2023-04-11 14:52:05 +0200 | <hopelessness[m]> | mhm |
2023-04-11 14:52:07 +0200 | <ncf> | verb vs noun |
2023-04-11 14:52:15 +0200 | <kenran> | yeah, like verb vs. noun. clean up vs cleanup |
2023-04-11 14:52:32 +0200 | <hopelessness[m]> | ncf: I thought so at first, but both can be used for both, right ... ? |
2023-04-11 14:52:41 +0200 | <hopelessness[m]> | Like there's a clear preferences but I think both work |
2023-04-11 14:52:53 +0200 | <kenran> | I don't think so tbh, but yeah, not a native speaker either |
2023-04-11 14:53:27 +0200 | <kenran> | "The log in was successful" just looks wrong to me, or a commit message like "Cleanup some stuff" |
2023-04-11 14:53:51 +0200 | <hopelessness[m]> | hmm |
2023-04-11 14:54:06 +0200 | <int-e> | You log in with your login (was that spelled "log-in" at some point in the past?) credentials... |
2023-04-11 14:54:09 +0200 | <ncf> | if you're not allergic to prescriptivism, http://www.notaverb.com/login |
2023-04-11 14:55:37 +0200 | <int-e> | (I feel that often these compound terms start out hyphenated and then at some point the hyphen gets dropped for convenience, but I don't know whether this is actually true.) |
2023-04-11 14:55:53 +0200 | <hopelessness[m]> | that seems right, yeah |
2023-04-11 14:55:55 +0200 | <[Leary]> | 'Typeclass' is immediately recognisable as the specific jargon, not any other meaning that could arise from the combination of 'type' and 'class'. 'Database' and 'username' probably arose and persisted for the same reason: they clarify. |
2023-04-11 14:56:37 +0200 | yoneda | (~mike@193.206.102.122) |
2023-04-11 14:57:08 +0200 | <int-e> | . o O ( We didn't learn that in type class. ) |
2023-04-11 14:57:33 +0200 | <ncf> | my favourite dehyphenation is "reëxports" (to stay vaguely on-topic :p) |
2023-04-11 14:58:23 +0200 | <ncf> | (https://hackage.haskell.org/package/composition-prelude-3.0.0.2/docs/Control-Composition.html#g:12) |
2023-04-11 14:59:04 +0200 | <yin> | i have always wondered who needed to come up with "initialize" |
2023-04-11 15:00:45 +0200 | <int-e> | "bootstrap" |
2023-04-11 15:01:13 +0200 | <int-e> | "endianness" (those last two both come from fictional stories) |
2023-04-11 15:01:46 +0200 | <yin> | did they? |
2023-04-11 15:02:03 +0200 | <kenran> | Wait, bootstrap? you mean the usage as verb specifically? |
2023-04-11 15:03:10 +0200 | <int-e> | At least as far as I know. Bootstrapping is Münchhausen (pulling himself out of a swamp by his bootstraps) and "endianness" alludes to the war in Gulliver's Travels about which side to open an egg from. |
2023-04-11 15:03:21 +0200 | <Rembane> | And then war ensues |
2023-04-11 15:04:37 +0200 | <int-e> | Cf. https://www.rfc-editor.org/ien/ien137.txt for endianness. |
2023-04-11 15:05:28 +0200 | <kenran> | int-e: ah, got it. I somehow read that as "the word bootstrap comes from a fictional story", which sounded strange :D |
2023-04-11 15:06:25 +0200 | <int-e> | "Words are failing me to express how eloquent I'm feeling today." |
2023-04-11 15:07:48 +0200 | <merijn> | kenran: It does |
2023-04-11 15:08:46 +0200 | jpds4 | jpds |
2023-04-11 15:11:31 +0200 | kenran | (~user@user/kenran) (Ping timeout: 276 seconds) |
2023-04-11 15:14:13 +0200 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-04-11 15:15:10 +0200 | <yin> | int-e: the "Who's on first? Zero or One ??" chapter in your link reminded me on how ridiculous it is that we've abbreviated "prima minuta" to "minute" and "seconda minuta" to "second". |
2023-04-11 15:15:33 +0200 | <yin> | more specifically "pars minuta prima" and "pars minuta seconda" |
2023-04-11 15:15:53 +0200 | <yin> | *secunda apparently |
2023-04-11 15:16:38 +0200 | mei | (~mei@user/mei) |
2023-04-11 15:17:56 +0200 | <merijn> | I love how Amazon's generated example code is just...wrong |
2023-04-11 15:18:01 +0200 | <merijn> | such fune |
2023-04-11 15:18:07 +0200 | <merijn> | I love my life >.< |
2023-04-11 15:23:29 +0200 | gensyst | (~gensyst@user/gensyst) (Quit: Leaving) |
2023-04-11 15:26:35 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
2023-04-11 15:34:39 +0200 | mikess | (~sam@user/mikess) |
2023-04-11 15:42:20 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-04-11 15:42:21 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-04-11 15:42:21 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-04-11 15:44:30 +0200 | tlaxkit | (~hexchat@170.253.32.109) |
2023-04-11 15:47:23 +0200 | <kuribas> | int-e: doesn't it come from puss in boots? |
2023-04-11 15:48:16 +0200 | <ryantrinkle> | probie: yes, I do; awesome suggestion, thanks! |
2023-04-11 15:58:24 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) |
2023-04-11 16:00:43 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2023-04-11 16:03:31 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds) |
2023-04-11 16:04:44 +0200 | kenran | (~user@user/kenran) |
2023-04-11 16:08:18 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-04-11 16:19:12 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-04-11 16:23:51 +0200 | zeenk | (~zeenk@2a02:2f04:a307:2300::fba) |
2023-04-11 16:28:14 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2023-04-11 16:29:15 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-04-11 16:29:42 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 16:29:50 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-04-11 16:33:12 +0200 | Square | (~Square4@user/square) |
2023-04-11 16:38:37 +0200 | freeside | (~mengwong@50.216.111.242) (Ping timeout: 276 seconds) |
2023-04-11 16:39:13 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-491d-4022-58a1-d85a.res6.spectrum.com) |
2023-04-11 16:45:13 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2023-04-11 16:56:09 +0200 | freeside | (~mengwong@50.216.111.242) |
2023-04-11 16:59:55 +0200 | olle | (~olle@h-155-4-129-160.NA.cust.bahnhof.se) |
2023-04-11 17:00:21 +0200 | <olle> | Let's say I have an effectful read inside a function that depends on logic. Is there a way to move it out so I don't have to use IO there? |
2023-04-11 17:00:36 +0200 | <olle> | One (ugly?) way could be to simply preload it. |
2023-04-11 17:00:58 +0200 | <hopelessness[m]> | you mean reading a file? |
2023-04-11 17:01:11 +0200 | <olle> | Reading anything - db, file, url, ... |
2023-04-11 17:02:00 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) |
2023-04-11 17:02:23 +0200 | <hopelessness[m]> | you could either pass the data to the function and then `effectfulRead >>= f` where `f` is the processing function, or you make your function return an `IO` action as well |
2023-04-11 17:02:39 +0200 | <hopelessness[m]> | In theory theres `performUnsafeIO` but ... don't use that |
2023-04-11 17:02:57 +0200 | <olle> | Hm |
2023-04-11 17:03:13 +0200 | <olle> | No algebraic effects in haskell, right? |
2023-04-11 17:03:14 +0200 | <hopelessness[m]> | s/performUnsafeIO/unsafePerformIO/ |
2023-04-11 17:03:30 +0200 | <TheMatten[m]> | olle: There're libraries for that |
2023-04-11 17:03:39 +0200 | <hopelessness[m]> | what do you want to do in the first place? |
2023-04-11 17:03:42 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2023-04-11 17:05:13 +0200 | <olle> | Looking for strategies to extend the "functional core" of a system. I don't work in Haskell tho, just thought I'd ask here too. :) |
2023-04-11 17:05:40 +0200 | <hopelessness[m]> | hm ok |
2023-04-11 17:06:05 +0200 | <hopelessness[m]> | do you have an example in mind? I have a hard time understanding what you mean, I think 😅 |
2023-04-11 17:06:26 +0200 | <olle> | Not currently. :( I need one. |
2023-04-11 17:06:53 +0200 | <hopelessness[m]> | ok, let me give a setup maybe |
2023-04-11 17:09:13 +0200 | freeside | (~mengwong@50.216.111.242) (Read error: Connection reset by peer) |
2023-04-11 17:09:29 +0200 | <hopelessness[m]> | (unlines . reverse . lines) <$> readFile "foo.txt" |
2023-04-11 17:09:58 +0200 | <hopelessness[m]> | this is just a basic example of reading a file and then reversing the order of all lines |
2023-04-11 17:10:06 +0200 | <hopelessness[m]> | What would be a "better" way to do that? |
2023-04-11 17:10:27 +0200 | <olle> | No, the issue is when the read depends on business logic somehow. |
2023-04-11 17:10:42 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-11 17:10:44 +0200 | <hopelessness[m]> | hm |
2023-04-11 17:10:47 +0200 | <olle> | So the read happens _sometimes_ but not always :) |
2023-04-11 17:11:12 +0200 | <hopelessness[m]> | ah, |
2023-04-11 17:11:13 +0200 | <hopelessness[m]> | * ah |
2023-04-11 17:16:37 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-04-11 17:17:20 +0200 | isekaijin | (~isekaijin@user/isekaijin) (Read error: Connection reset by peer) |
2023-04-11 17:17:51 +0200 | fryguybob | (~fryguybob@cpe-24-94-50-22.stny.res.rr.com) |
2023-04-11 17:18:49 +0200 | saolof | (~saolof@2001:2002:5ae4:c319:4108:8be0:bf78:a848) (Remote host closed the connection) |
2023-04-11 17:20:00 +0200 | saolof | (~saolof@2001:2002:5ae4:c319:4108:8be0:bf78:a848) |
2023-04-11 17:21:56 +0200 | saolof | (~saolof@2001:2002:5ae4:c319:4108:8be0:bf78:a848) (Remote host closed the connection) |
2023-04-11 17:23:44 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (Ping timeout: 248 seconds) |
2023-04-11 17:31:58 +0200 | <ncf> | first thing that comes to mind is the free monad over Reader Text, or something |
2023-04-11 17:32:48 +0200 | yoneda | (~mike@193.206.102.122) (Quit: leaving) |
2023-04-11 17:34:42 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:c066:a6a4:43b5:25e) (Ping timeout: 246 seconds) |
2023-04-11 17:36:31 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:9da2:60aa:4250:a867) (Remote host closed the connection) |
2023-04-11 17:36:50 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-04-11 17:37:09 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 17:37:51 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-04-11 17:37:57 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 17:41:06 +0200 | econo | (uid147250@user/econo) |
2023-04-11 17:41:38 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
2023-04-11 17:42:03 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2023-04-11 17:44:10 +0200 | <olle> | I'd need to read up on that :d |
2023-04-11 17:44:17 +0200 | <olle> | Free monad, freer monad, ... |
2023-04-11 17:49:13 +0200 | hugo- | (znc@verdigris.lysator.liu.se) |
2023-04-11 17:54:03 +0200 | hugo- | (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds) |
2023-04-11 18:04:43 +0200 | <ncf> | olle: super basic example: https://f.monade.li/sUQK1S.hs |
2023-04-11 18:05:03 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-04-11 18:05:19 +0200 | <ncf> | this is a monad that allows you to read something at most once (not technically a free monad, but maybe a "free idempotent monad" if you like) |
2023-04-11 18:05:54 +0200 | fen46 | (~fen@250.79-105-213.static.virginmediabusiness.co.uk) |
2023-04-11 18:06:11 +0200 | <fen46> | hi, re haskell as *not* a dependently typed language |
2023-04-11 18:06:21 +0200 | <fen46> | given the type system is complete, whats the problem? |
2023-04-11 18:06:56 +0200 | <fen46> | like, what we have at term level thats important is a completeness that the type system also has |
2023-04-11 18:07:57 +0200 | <fen46> | where, by complete, i mean that since the top level function implementations can be recursive and so form a function graph... |
2023-04-11 18:08:09 +0200 | <fen46> | graph like what a turing machine implements |
2023-04-11 18:08:10 +0200 | hiredman | (~hiredman@frontier1.downey.family) |
2023-04-11 18:08:13 +0200 | <fen46> | so complete |
2023-04-11 18:09:06 +0200 | <fen46> | the only thing i can think of is the problem of defunctionalisation |
2023-04-11 18:09:16 +0200 | <fen46> | but thats just an inconvineice |
2023-04-11 18:09:25 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) (Ping timeout: 260 seconds) |
2023-04-11 18:09:39 +0200 | MatthiasG | (~MatthiasG@119.56.103.127) |
2023-04-11 18:09:52 +0200 | <fen46> | trying to think what a language extension that would satisfy the dependent programming problem |
2023-04-11 18:10:05 +0200 | <fen46> | is it impossible to solve defunctionalisation using a language extension? |
2023-04-11 18:11:03 +0200 | <fen46> | and can anyone think of anything else apart from that? |
2023-04-11 18:11:22 +0200 | <fen46> | that would be required for the dependent typing problem to be considered solved |
2023-04-11 18:11:24 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-04-11 18:14:47 +0200 | <ncf> | er, "free pointed endofunctor", not free idempotent monad. |
2023-04-11 18:15:10 +0200 | <ncf> | basically a functor-level Maybe |
2023-04-11 18:15:11 +0200 | hugo- | (znc@verdigris.lysator.liu.se) |
2023-04-11 18:18:09 +0200 | MatthiasG | (~MatthiasG@119.56.103.127) (Read error: Connection reset by peer) |
2023-04-11 18:18:13 +0200 | <ncf> | with this, you can define `ask` as `Read id`, and then write computations just as in Reader r |
2023-04-11 18:18:31 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) |
2023-04-11 18:18:55 +0200 | <c_wraith> | fen46: Haskell can emulate a lot of what dependently-typed languages do, but it's verbose, indirect, and has some awful gaps like an utter lack of floating-point values at the type level. |
2023-04-11 18:21:17 +0200 | <fen46> | can we do things like traversaable at type level? |
2023-04-11 18:21:52 +0200 | <fen46> | a had a problem with scanning a hetrogenous list with a convolutional opperator |
2023-04-11 18:22:31 +0200 | <fen46> | i think its quite an undertaking... but possible? |
2023-04-11 18:23:16 +0200 | <fen46> | i have it written at term level, maybe someone could help me write it at type level? |
2023-04-11 18:23:27 +0200 | <c_wraith> | It's probably possible to represent the aspects you care about. But that doesn't mean it's pleasant. Or even worth doing. |
2023-04-11 18:23:29 +0200 | <fen46> | help me by writing it at type level* |
2023-04-11 18:23:43 +0200 | <fen46> | c_wraith: its just a requirement |
2023-04-11 18:23:59 +0200 | <fen46> | so its more like "can you avoid having to do it" |
2023-04-11 18:24:22 +0200 | <fen46> | so, yeah, not doing convolutional scannings on hetrogenous lists... |
2023-04-11 18:24:43 +0200 | Guest|18 | (~Guest|18@31.111.125.187) |
2023-04-11 18:24:45 +0200 | <fen46> | im sure there are other uses |
2023-04-11 18:24:50 +0200 | <fen46> | thats just the kind of test case |
2023-04-11 18:25:57 +0200 | <olle> | ncf: right, and you combine the read with a lambda for a successful read? |
2023-04-11 18:26:01 +0200 | <fen46> | eg if i wanted to zipWith (/), the lengthed lists in a hetrogenous list, and have to work out the resulting length |
2023-04-11 18:26:18 +0200 | <fen46> | the adjacent antries of* |
2023-04-11 18:26:21 +0200 | <fen46> | entries* |
2023-04-11 18:26:58 +0200 | <fen46> | so then you have to do the same kind of scanning with adjacency convolution at type level with the length returning opperation |
2023-04-11 18:27:08 +0200 | <fen46> | seems like a pretty general pattern |
2023-04-11 18:27:18 +0200 | <c_wraith> | I strongly recommend not doing that |
2023-04-11 18:27:25 +0200 | <c_wraith> | (In Haskell) |
2023-04-11 18:27:29 +0200 | <fen46> | start hitting things like that pretty quickly when you start length annotating things |
2023-04-11 18:27:43 +0200 | <ncf> | olle: not sure i understand the question |
2023-04-11 18:27:51 +0200 | <fen46> | and yeah, basically have to if you want to do any fancy thing like passing around graphs with specified shapes |
2023-04-11 18:27:57 +0200 | <c_wraith> | Even if you can make it work, it won't be worth using. |
2023-04-11 18:28:01 +0200 | <fen46> | and then the levity recursion on that seems like it might kill you |
2023-04-11 18:29:07 +0200 | <fen46> | c_wriath: i cant prove you wrong on that, but it seems pessimistic |
2023-04-11 18:29:34 +0200 | <fen46> | but yeah, with the current state of defunctionalisation i would tend to agree out of sheer lacitude |
2023-04-11 18:29:59 +0200 | <fen46> | and am constantly checking back in to see if theres any progress with the dependant typing language extension |
2023-04-11 18:30:37 +0200 | <fen46> | lets just assume im thriftier than i actually am, and both need to and am able to wrangle these type level graph convolutions |
2023-04-11 18:30:45 +0200 | <fen46> | and just am lacking the syntax |
2023-04-11 18:32:06 +0200 | <fen46> | and yeah, i can think of a case, which is literally just the implementation of a graph, where you need to do basically an adjacency matrix exponentiation at type level |
2023-04-11 18:32:35 +0200 | <fen46> | its not like its "unnecessary", its like the fundamentals of even being able to write the types of graphs |
2023-04-11 18:33:32 +0200 | <fen46> | and, they are always hetrogenous, because they are supposed to be able to support representing programs |
2023-04-11 18:34:05 +0200 | <fen46> | and there is some (truly ungodly) issue about the monad instance, of subgraphs, and the consequent hetroginaity |
2023-04-11 18:35:05 +0200 | <fen46> | i mean, maybe its fine to have no type level representation of the way the program is structured |
2023-04-11 18:35:20 +0200 | <fen46> | but it seems to kill everything at the levity recursion stage |
2023-04-11 18:35:32 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2023-04-11 18:36:08 +0200 | <fen46> | i guess i might be suspecting that its actually writing the traversable machinery at type level, such that would allow to handle these hetrogenous convolutions, that would "solve all our problems" |
2023-04-11 18:36:31 +0200 | MajorBiscuit | (~MajorBisc@31-23-159.netrun.cytanet.com.cy) (Ping timeout: 252 seconds) |
2023-04-11 18:36:38 +0200 | <fen46> | eg. by doing something like allowing for program representation using the graph representation it would support |
2023-04-11 18:36:48 +0200 | Square | (~Square4@user/square) (Ping timeout: 248 seconds) |
2023-04-11 18:36:58 +0200 | <fen46> | and then somehow because thats available be able to act as a compiler or whatever you would need at type level thats apparently missing |
2023-04-11 18:37:11 +0200 | <fen46> | pretty vague i know, sorry |
2023-04-11 18:37:54 +0200 | <fen46> | like, what i think im saying is "people on about dependent types just want map to work out the box at type level" |
2023-04-11 18:38:09 +0200 | <fen46> | and that actually wouldnt be that far from the point |
2023-04-11 18:38:48 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 18:38:57 +0200 | <fen46> | obvs using tail recursion to derive the traversable and listlike alternative, monad and comonadic zipper opperations |
2023-04-11 18:39:33 +0200 | <fen46> | like, dont forget i think being able to do map somehow extends to giving you pointers by suspended traversal since your just pattern matching on the head basically |
2023-04-11 18:39:47 +0200 | <fen46> | traversable things flattening to lists modulo some shape data |
2023-04-11 18:40:07 +0200 | drdo | (~drdo@bl7-76-103.dsl.telepac.pt) |
2023-04-11 18:40:18 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-491d-4022-58a1-d85a.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-04-11 18:40:24 +0200 | <fen46> | "if only type level lists worket properly" |
2023-04-11 18:40:47 +0200 | <fen46> | and then its like, well why dont they!? |
2023-04-11 18:41:22 +0200 | <fen46> | where most of the list opperations are from prelude |
2023-04-11 18:41:38 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:81f3:78d3:e012:2761) (Remote host closed the connection) |
2023-04-11 18:41:57 +0200 | <fen46> | so when i ask, can someone help me put the traversable etc. (through to comonadic pointer) opperations at type level |
2023-04-11 18:42:17 +0200 | <fen46> | i imagine it is basically towards the effort of satisfying whats missing in terms of dependet types |
2023-04-11 18:42:31 +0200 | <fen46> | and wonder why people just say things like "ooh, i wouldnt bother with that, sounds difficult" |
2023-04-11 18:43:01 +0200 | <fen46> | instead of being like "omg, thats the best idea iv ever heard, now all i want to do is levity proof convolutions" |
2023-04-11 18:44:16 +0200 | drdo | (~drdo@bl7-76-103.dsl.telepac.pt) (Remote host closed the connection) |
2023-04-11 18:44:35 +0200 | drdo | (~drdo@bl7-76-103.dsl.telepac.pt) |
2023-04-11 18:44:55 +0200 | <fen46> | like, i literally did something like a PHD on this, the dissuasion seems almost impertinent, given the technology has already been presented |
2023-04-11 18:46:39 +0200 | elevenkb | (~elevenkb@105.225.53.253) |
2023-04-11 18:47:41 +0200 | Guest|18 | (~Guest|18@31.111.125.187) (Quit: Connection closed) |
2023-04-11 18:48:25 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-04-11 18:51:47 +0200 | opticblast | (~Thunderbi@172.58.85.126) |
2023-04-11 18:55:00 +0200 | razetime | (~Thunderbi@117.193.7.1) |
2023-04-11 18:57:56 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2023-04-11 18:59:14 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) (Read error: Connection reset by peer) |
2023-04-11 18:59:49 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) |
2023-04-11 19:00:09 +0200 | notzmv | (~zmv@user/notzmv) |
2023-04-11 19:01:07 +0200 | opticblast | (~Thunderbi@172.58.85.126) (Ping timeout: 265 seconds) |
2023-04-11 19:02:14 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Remote host closed the connection) |
2023-04-11 19:06:56 +0200 | <fen46> | the bit i cant do is understanding how it would work |
2023-04-11 19:07:07 +0200 | <fen46> | like, if it were to be a language extension, or a module or something |
2023-04-11 19:07:53 +0200 | <fen46> | to envisage what "does what it says on the tin" actually means for haskell and as close as it might become on its path *towards* dependent types |
2023-04-11 19:08:15 +0200 | <fen46> | i think what i say could almost sound convincing that what you actually want is type level seti |
2023-04-11 19:08:42 +0200 | <fen46> | is kind of what im trying to say, rather than "i really actually waant to have to write the program graphs" |
2023-04-11 19:09:17 +0200 | <fen46> | like, we have recursive datatypes, so the main mechanism is present |
2023-04-11 19:09:25 +0200 | <fen46> | which is why i basically think its complete i guess |
2023-04-11 19:09:43 +0200 | <fen46> | so then the question is whats actually missing? |
2023-04-11 19:09:49 +0200 | mbuf | (~Shakthi@49.207.178.186) (Quit: Leaving) |
2023-04-11 19:10:09 +0200 | <fen46> | and i can get pretty far with seti, and its as far as the prelude does, in offering the ground level haskell environment |
2023-04-11 19:10:42 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-04-11 19:10:54 +0200 | <fen46> | i guess maybe i could use some kind of deriving instances in data families or what i cant even understand... |
2023-04-11 19:11:25 +0200 | <fen46> | some kind of type level default instances or something is missing? i cant figure it out |
2023-04-11 19:11:58 +0200 | <fen46> | basically wanting something like foldMapDefault |
2023-04-11 19:12:10 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-04-11 19:12:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2023-04-11 19:12:24 +0200 | <fen46> | big complicated hierarchy of defaults from geti+seti instances |
2023-04-11 19:12:41 +0200 | <fen46> | at Type Level... |
2023-04-11 19:12:55 +0200 | <fen46> | and if thats literally all thats missing... |
2023-04-11 19:13:04 +0200 | <fen46> | to give the absent type level prelude |
2023-04-11 19:13:25 +0200 | <fen46> | and that with it, then dependent types isnt done, but haskell is more tooled up for type level programing |
2023-04-11 19:13:37 +0200 | <fen46> | much more to the point where its usable |
2023-04-11 19:13:48 +0200 | <fen46> | since traversable basically covers so much |
2023-04-11 19:14:29 +0200 | <fen46> | so maybe my question is, would type level seti be a satesfactory standin for full dependent types |
2023-04-11 19:14:38 +0200 | <fen46> | and if so, can i get some hands on!? |
2023-04-11 19:14:58 +0200 | jtza8 | (~user@165.255.63.78) |
2023-04-11 19:16:06 +0200 | <fen46> | like, if you think about how mental type level lenses in the style of ed kmett would be, and that the canonical version presented by geti+seti seems like feasable implementation in comparison and would at least allow for lists to have the usual higher order functions over them |
2023-04-11 19:16:56 +0200 | <fen46> | given thats basically "where its at" for haskell at term level, seems like this would be natural way to go towards type level land |
2023-04-11 19:17:24 +0200 | <fen46> | since dependant languages exist and haskell will not likely join them |
2023-04-11 19:17:41 +0200 | <fen46> | that this would be basically the best place for haskell to get developed |
2023-04-11 19:18:23 +0200 | <fen46> | the actual instances are really simple, geti and seti that is, to mimic at type level alongside term level implementations |
2023-04-11 19:18:24 +0200 | <monochrom> | I think at some point you need to recall that if no one is interested in your discussion then you should stop. |
2023-04-11 19:18:44 +0200 | <fen46> | i wasnt even sure anyone was reading it |
2023-04-11 19:18:53 +0200 | <monochrom> | Or at least switch to Facebook or Twitter. |
2023-04-11 19:19:09 +0200 | <fen46> | so i shouldnt try and message you? |
2023-04-11 19:19:46 +0200 | <fen46> | someone could weigh in with a comment on the subject material i guess |
2023-04-11 19:19:53 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
2023-04-11 19:19:57 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-11 19:20:06 +0200 | <int-e> | tl;dr |
2023-04-11 19:20:46 +0200 | <darkling> | I think monochrom's point was that if nobody has by now, you're probably not going to get one... |
2023-04-11 19:20:48 +0200 | <fen46> | tl;dr: i think i can convince you to write type level seti for me and add it to the language because its the best thing to do |
2023-04-11 19:21:00 +0200 | <monochrom> | I personally start my discussion with one or maybe at most five lines. Then I suspend until someone shows interest. Otherwise let it go. |
2023-04-11 19:21:39 +0200 | <fen46> | then im confused about the, it being the best thing ever and people, as you seem to imply not being interested |
2023-04-11 19:21:52 +0200 | <monochrom> | But if that's against your philosophy, you can always go to Twitter, and no one will complain there. |
2023-04-11 19:21:59 +0200 | <fen46> | it does seem accurate to be fair |
2023-04-11 19:22:18 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-04-11 19:22:34 +0200 | <fen46> | i guess im *not* convinced people arent interested, you just set the tone |
2023-04-11 19:23:24 +0200 | <monochrom> | No, I spoke what other people were too polite to speak. |
2023-04-11 19:23:32 +0200 | <fen46> | oh right, your just complaining about the messages. yeah, im not too stoked on doing stuff either |
2023-04-11 19:23:33 +0200 | vglfr | (~vglfr@88.155.17.187) (Ping timeout: 256 seconds) |
2023-04-11 19:23:39 +0200 | <fen46> | oh, ok the flood. my bad. |
2023-04-11 19:23:43 +0200 | <fen46> | im dumb like that |
2023-04-11 19:23:49 +0200 | <fen46> | i didnt realise people were online. |
2023-04-11 19:24:23 +0200 | <fen46> | sorry ill shut up. but any input would still be appreciated if thats where a discussion could lead |
2023-04-11 19:24:31 +0200 | <monochrom> | My said technique of "at most 5 lines then suspend" can be learned. |
2023-04-11 19:24:41 +0200 | vglfr | (~vglfr@88.155.17.187) |
2023-04-11 19:24:51 +0200 | <fen46> | im wondering if my subject material can be... |
2023-04-11 19:24:52 +0200 | <monochrom> | Or else switching to a suitable social media platform can be easily done. |
2023-04-11 19:25:07 +0200 | <fen46> | i was yet to be aware of these fantastic techniques |
2023-04-11 19:25:24 +0200 | <fen46> | im still keen on input |
2023-04-11 19:25:55 +0200 | tlaxkit | (~hexchat@170.253.32.109) (Quit: Saliendo...) |
2023-04-11 19:25:58 +0200 | <fen46> | so my one question. if seti could help haskell at type level, would you be interested? |
2023-04-11 19:26:18 +0200 | <fen46> | since i guess everything rests on that |
2023-04-11 19:26:45 +0200 | razetime | (~Thunderbi@117.193.7.1) (Remote host closed the connection) |
2023-04-11 19:34:15 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 19:34:17 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-491d-4022-58a1-d85a.res6.spectrum.com) |
2023-04-11 19:35:01 +0200 | Guest87 | (~Guest87@047-224-137-232.res.spectrum.com) |
2023-04-11 19:40:37 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) (Ping timeout: 268 seconds) |
2023-04-11 19:40:45 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) |
2023-04-11 19:41:03 +0200 | MatthiasG | (~MatthiasG@202.133.199.92) (Read error: Connection reset by peer) |
2023-04-11 19:42:51 +0200 | <Guest87> | @pl \x -> f x + g x |
2023-04-11 19:42:51 +0200 | <lambdabot> | liftM2 (+) f g |
2023-04-11 19:44:12 +0200 | <Guest87> | @pl \x -> x +x |
2023-04-11 19:44:12 +0200 | <lambdabot> | join (+) |
2023-04-11 19:45:06 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-04-11 19:47:00 +0200 | Guest87 | (~Guest87@047-224-137-232.res.spectrum.com) (Quit: Client closed) |
2023-04-11 19:53:52 +0200 | [exa] | (~exa@srv3n.blesmrt.net) (Changing host) |
2023-04-11 19:53:52 +0200 | [exa] | (~exa@user/exa/x-3587197) |
2023-04-11 19:55:32 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Remote host closed the connection) |
2023-04-11 19:55:33 +0200 | mechap | (~mechap@user/mechap) |
2023-04-11 20:00:14 +0200 | jtza8 | (~user@165.255.63.78) (Remote host closed the connection) |
2023-04-11 20:00:18 +0200 | <ncf> | to whom it may interest: the construction i was trying to describe earlier is analogous to the "free monoid on a semigroup", i.e. the left adjoint to the forgetful functor from monoids to semigroups |
2023-04-11 20:01:00 +0200 | <ncf> | so, it's a "functorification" of the instance Semigroup a => Monoid (Maybe a) (https://hackage.haskell.org/package/base-4.18.0.0/docs/src/GHC.Base.html#line-489) |
2023-04-11 20:09:16 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 20:09:20 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-11 20:12:18 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-11 20:14:56 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 246 seconds) |
2023-04-11 20:14:56 +0200 | coot_ | coot |
2023-04-11 20:15:28 +0200 | kenran | (~user@user/kenran) |
2023-04-11 20:16:41 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-04-11 20:17:42 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-04-11 20:20:18 +0200 | <fen46> | (geti,set) :: (Geti f i => f a -> ((a,i),f a),Seti f i => ((a,i),f a) -> f a) |
2023-04-11 20:31:55 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-04-11 20:34:53 +0200 | fen46 | (~fen@250.79-105-213.static.virginmediabusiness.co.uk) (Ping timeout: 265 seconds) |
2023-04-11 20:41:53 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) (Ping timeout: 246 seconds) |
2023-04-11 20:43:01 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds) |
2023-04-11 20:43:57 +0200 | pwug | (~pwug@user/pwug) |
2023-04-11 20:52:04 +0200 | codaraxis | (~codaraxis@user/codaraxis) |
2023-04-11 20:53:36 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) |
2023-04-11 21:13:22 +0200 | BOO | (~BOO@220-129-34-70.dynamic-ip.hinet.net) |
2023-04-11 21:25:22 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 21:28:44 +0200 | MajorBiscuit | (~MajorBisc@31-23-159.netrun.cytanet.com.cy) |
2023-04-11 21:29:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2023-04-11 21:33:42 +0200 | ix | (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) |
2023-04-11 21:34:55 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-04-11 21:49:57 +0200 | vglfr_ | (~vglfr@88.155.17.187) |
2023-04-11 21:50:56 +0200 | haritz | (~hrtz@user/haritz) (Ping timeout: 248 seconds) |
2023-04-11 21:51:16 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
2023-04-11 21:52:15 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) (Ping timeout: 265 seconds) |
2023-04-11 21:53:14 +0200 | BOO | (~BOO@220-129-34-70.dynamic-ip.hinet.net) (Quit: Client closed) |
2023-04-11 21:53:41 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2023-04-11 21:53:50 +0200 | jerg | (~jerg@2001:a61:6134:5201:5df3:da85:9419:73e) |
2023-04-11 21:55:03 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 21:55:26 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) |
2023-04-11 21:57:01 +0200 | heraldo | (~heraldo@user/heraldo) |
2023-04-11 21:57:23 +0200 | vglfr_ | (~vglfr@88.155.17.187) (Quit: leaving) |
2023-04-11 21:58:11 +0200 | Square | (~Square@user/square) |
2023-04-11 22:01:54 +0200 | auiee | (~vglfr@88.155.17.187) |
2023-04-11 22:03:42 +0200 | auiee | (~vglfr@88.155.17.187) (Client Quit) |
2023-04-11 22:03:48 +0200 | Sciencentistguy1 | (~sciencent@hacksoc/ordinary-member) |
2023-04-11 22:05:30 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) |
2023-04-11 22:05:52 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 248 seconds) |
2023-04-11 22:05:52 +0200 | Sciencentistguy1 | Sciencentistguy |
2023-04-11 22:06:59 +0200 | auiee | (~vglfr@88.155.17.187) |
2023-04-11 22:08:49 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-04-11 22:08:52 +0200 | auiee | (~vglfr@88.155.17.187) (Client Quit) |
2023-04-11 22:10:59 +0200 | Square2 | (~Square4@user/square) |
2023-04-11 22:12:56 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-04-11 22:13:14 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-04-11 22:13:24 +0200 | troydm | (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2023-04-11 22:13:43 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-04-11 22:14:09 +0200 | Square | (~Square@user/square) (Ping timeout: 255 seconds) |
2023-04-11 22:14:14 +0200 | troydm | (~troydm@user/troydm) |
2023-04-11 22:14:33 +0200 | Square2 | Square |
2023-04-11 22:23:33 +0200 | elevenkb | (~elevenkb@105.225.53.253) (Quit: Client closed) |
2023-04-11 22:25:22 +0200 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-04-11 22:27:47 +0200 | mei | (~mei@user/mei) |
2023-04-11 22:33:21 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-04-11 22:33:49 +0200 | pavonia | (~user@user/siracusa) |
2023-04-11 22:35:14 +0200 | michalz | (~michalz@185.246.204.101) (Remote host closed the connection) |
2023-04-11 22:35:24 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) |
2023-04-11 22:39:18 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-11 22:39:59 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:ad1e:c088:4c6f:8ed8) (Ping timeout: 250 seconds) |
2023-04-11 22:43:02 +0200 | MajorBiscuit | (~MajorBisc@31-23-159.netrun.cytanet.com.cy) (Quit: WeeChat 3.6) |
2023-04-11 22:49:28 +0200 | Batzy_ | (~quassel@user/batzy) |
2023-04-11 22:52:16 +0200 | Batzy | (~quassel@user/batzy) (Ping timeout: 248 seconds) |
2023-04-11 22:53:33 +0200 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
2023-04-11 22:53:33 +0200 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
2023-04-11 22:53:33 +0200 | haritz | (~hrtz@user/haritz) |
2023-04-11 22:57:51 +0200 | Batzy | (~quassel@user/batzy) |
2023-04-11 23:01:05 +0200 | Batzy_ | (~quassel@user/batzy) (Ping timeout: 260 seconds) |
2023-04-11 23:02:01 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) (Ping timeout: 240 seconds) |
2023-04-11 23:07:11 +0200 | <olle> | In terms of design by contract, would you say an IO write is more complex than an IO read? |
2023-04-11 23:09:02 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-04-11 23:10:49 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-04-11 23:13:21 +0200 | <Hecate> | I've never done DbC |
2023-04-11 23:13:33 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::5) |
2023-04-11 23:13:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2023-04-11 23:25:04 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-491d-4022-58a1-d85a.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-04-11 23:25:50 +0200 | <olle> | Fair enough |
2023-04-11 23:27:48 +0200 | <sm> | olle: what's an example of applying design by contract here ? |
2023-04-11 23:28:31 +0200 | <sm> | is it another way of saying, is the specification of one more complex than the other ? |
2023-04-11 23:29:47 +0200 | <zq> | just read the backpack paper and have questions, any recommendations on a good place to ask? |
2023-04-11 23:32:25 +0200 | <olle> | sm: I'm thinking of pre- and post-conditions, and how their complexity are affected by a function reading or writing to stuff |
2023-04-11 23:32:33 +0200 | <monochrom> | I may still recall a little bit of backpack stuff. |
2023-04-11 23:32:54 +0200 | <sm> | aha |
2023-04-11 23:34:21 +0200 | <olle> | For example, if you have a company that _only_ reads from file, the order of the functions probably won't matter (much?). But if one function also writes to file, order might become important. |
2023-04-11 23:34:43 +0200 | <olle> | company/function/s |
2023-04-11 23:34:44 +0200 | <olle> | >< |
2023-04-11 23:34:54 +0200 | <hpc> | alternatively, if you only write to a file, do you even have to do anything at all? |
2023-04-11 23:34:59 +0200 | <monochrom> | IMO pre/post conditions are utterly useless for I/O R/W unless you make the totally ancient (Apple-DOS era) assumption that you are the only one accessing the file system and so the file system is just one huge but unshared mutable variable. |
2023-04-11 23:36:03 +0200 | <monochrom> | In this The Year 2023 of Our Lord, the file system is emphatically shared and multi-user. You are better off with at the very least automata or any concurrency theory. |
2023-04-11 23:37:13 +0200 | <monochrom> | (If you haven't heard of Apple DOS, then try CP/M.) |
2023-04-11 23:38:09 +0200 | <olle> | I'm assuming atomic access to file system here |
2023-04-11 23:38:53 +0200 | <monochrom> | I was not even bringing up non-atomicity in the real world. |
2023-04-11 23:39:12 +0200 | <olle> | Well |
2023-04-11 23:39:25 +0200 | <olle> | In any case, my question is how to compare the complexity of one contract to another :) |
2023-04-11 23:39:40 +0200 | <hpc> | once you get small enough, every operation is atomic |
2023-04-11 23:39:45 +0200 | <monochrom> | I was, merely, pointing out that even with atomicity, you even cannot assume "read that location; 5 seconds later, read that location again" is idempotent. |
2023-04-11 23:40:19 +0200 | <hpc> | just keep subdividing the non-atomic operations |
2023-04-11 23:41:02 +0200 | <hpc> | olle: this class of problem (especially on the filesystem) is called time-of-call/time-of-use |
2023-04-11 23:41:31 +0200 | <monochrom> | I have a feeling that, as usual, comparing two contracts is undecidable. |
2023-04-11 23:41:32 +0200 | <hpc> | between stating a file and opening it, something else deleted it |
2023-04-11 23:41:39 +0200 | <olle> | hpc: still unrelated ^^ |
2023-04-11 23:41:56 +0200 | <monochrom> | Right? Even "merely" comparing two CFGs is already undecidable. |
2023-04-11 23:42:10 +0200 | koolazer | (~koo@user/koolazer) |
2023-04-11 23:43:26 +0200 | <olle> | To take an example, imagine you have function F that reads 3 times and writes 2 times, and function G that reads 2 times and writes 3 times. Does it make sense to compare their contracts from such a perspective? |
2023-04-11 23:43:39 +0200 | <hpc> | olle: i guess the answer to the question as stated then is, neither operation has a consistent "complexity" value by measures that make sense |
2023-04-11 23:43:53 +0200 | <hpc> | imagine you have a function H that reads 100 times, and a funcgion I that writes 100 times |
2023-04-11 23:44:03 +0200 | <olle> | Maybe not |
2023-04-11 23:44:04 +0200 | <hpc> | in the case of H, it's equivalent to reading once |
2023-04-11 23:44:09 +0200 | <hpc> | in I, it's equivalent to doing nothing at all |
2023-04-11 23:44:14 +0200 | <hpc> | because you never read |
2023-04-11 23:44:41 +0200 | <monochrom> | But that's for very private local vars that no one else can observe. |
2023-04-11 23:44:44 +0200 | <hpc> | (or if I is part of a larger system, I is equivalent to writing once) |
2023-04-11 23:44:51 +0200 | <olle> | I mean, some other function can read. :) |
2023-04-11 23:45:21 +0200 | <olle> | Read/write to/from file, that is |
2023-04-11 23:45:38 +0200 | <hpc> | you'd need to come up with some way of analyzing F/G such that you can say F has 15 complexity points and G has 12 |
2023-04-11 23:45:59 +0200 | <hpc> | maybe that means how many ways you can reorder the read/write calls and get funny results, or something like that |
2023-04-11 23:46:28 +0200 | <monochrom> | Although, entropy and information theory says that writing generates more waste heat than reading. |
2023-04-11 23:46:29 +0200 | <olle> | Yeah, the crucial point is how the reads/writes depend on each other. |
2023-04-11 23:47:35 +0200 | <monochrom> | Or maybe not. If you read to somewhere, that also means writing to that somewhere. meh. |
2023-04-11 23:48:17 +0200 | <olle> | hpc: Sounds like some type of graph analysis |
2023-04-11 23:48:31 +0200 | <olle> | What depends on what in which order |
2023-04-11 23:48:50 +0200 | <olle> | Where independent reads/writes could be considered less complex [for the human brain] |
2023-04-11 23:49:31 +0200 | <hpc> | actually, that reordering idea doesn't quite make sense, you'd basically be measuring concurrency issues instead |
2023-04-11 23:49:32 +0200 | monochrom | on next year's April 1st will go to the linux kernel and swap read() and write(), rationale being that the original "read"() writes to memory, and the original "write"() reads from memory. >:D |
2023-04-11 23:50:42 +0200 | <olle> | hpc: No, I think it has some merit. Imagine copy a file and delete the original. Not good if you delete the original first. ^^' |
2023-04-11 23:53:51 +0200 | <hpc> | sure, but that doesn't say which operation to attribute that misbehavior to |
2023-04-11 23:54:43 +0200 | <olle> | The post-condition breaks if you re-order the reads/writes? |
2023-04-11 23:55:02 +0200 | <monochrom> | Um, you always attribute misbehaviours to the programmer! |
2023-04-11 23:55:07 +0200 | <hpc> | yeah, but which was it, read or write? |
2023-04-11 23:55:22 +0200 | <hpc> | you have to say one of them contributed more to the problem than the other, otherwise you can't get that "X is more complex than Y" metric |
2023-04-11 23:55:48 +0200 | <olle> | hpc: Does it matter? It should be compared to another function that also has one read and one write where a re-order does _not_ cause a bug. |
2023-04-11 23:55:57 +0200 | <olle> | Wait |
2023-04-11 23:56:14 +0200 | <mauke> | monochrom: https://www.ioccc.org/1984/anonymous/anonymous.c |
2023-04-11 23:56:24 +0200 | <olle> | I'm confusing semantics with syntax or something |
2023-04-11 23:57:17 +0200 | <olle> | Wait, is the conclusion that cp is less complex than mv? |
2023-04-11 23:57:53 +0200 | <monochrom> | Wait a second, '-'-'-' is now a file descriptor... haha |
2023-04-11 23:58:08 +0200 | <monochrom> | OK I am now too scared to run that program. |
2023-04-11 23:58:11 +0200 | <olle> | Well cp is read-write and mv is read-write-write (second write is the delete) |
2023-04-11 23:59:02 +0200 | <geekosaur> | unless it's on the same filesystem in whoich case it's write-write (link, unlink) |
2023-04-11 23:59:15 +0200 | <olle> | Obviously you couldn't implement cp as write-read either :d |