2022-07-19 00:00:07 +0200 | <dlock> | you can match that like recursively like; instance SomeClass n => SomeClass (S n) where |
2022-07-19 00:00:27 +0200 | <qrpnxz> | i was about to say good thing i didn't need type level numbers like 3587298235, but i reckon it's possible to easily write a type function between Peano and Nat |
2022-07-19 00:00:37 +0200 | <dlock> | but you couldnt do like; SomeClass (n-1) => SomeClass n where |
2022-07-19 00:00:46 +0200 | <dlock> | because overlapping instances starts kicking up a fuss |
2022-07-19 00:01:17 +0200 | <qrpnxz> | yeah, once i had to turn on undecidable i was like "hol' up, this is just wrong" |
2022-07-19 00:01:21 +0200 | <dlock> | qrpnxz: yes there are utility functions i like to write like (getNat @n) :: Int |
2022-07-19 00:01:51 +0200 | <dlock> | undecidable is fine, its about it not being able to match on the constraint |
2022-07-19 00:02:03 +0200 | <dlock> | you cant write instance SomeClass (n+1) |
2022-07-19 00:02:10 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-07-19 00:02:28 +0200 | <dlock> | so you have to write instance (n' ~ n-1) => SomeClass n |
2022-07-19 00:02:39 +0200 | <dlock> | but the constraint part doesnt get matched so its overlapping |
2022-07-19 00:02:53 +0200 | <dlock> | you need the concrete datatype constructor to match on (S) |
2022-07-19 00:02:58 +0200 | <qrpnxz> | ah shit, it's actually not easy to go from Nat to Peano, for the same reason i wanted peano in the first place, can't write the inductive step lmao |
2022-07-19 00:03:17 +0200 | mmhat | (~mmh@p200300f1c7055987ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6) |
2022-07-19 00:03:18 +0200 | <qrpnxz> | wait no, for this family it lets me. WTF |
2022-07-19 00:03:23 +0200 | <dlock> | ill fetch up my Nat helper module, hang on |
2022-07-19 00:05:20 +0200 | <qrpnxz> | oh, i hadn't removed undecidable from my extensions yet |
2022-07-19 00:05:22 +0200 | <qrpnxz> | now it complains |
2022-07-19 00:05:24 +0200 | <qrpnxz> | good |
2022-07-19 00:06:14 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-19 00:06:33 +0200 | Morrow | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 00:06:39 +0200 | Morrow_ | (~Morrow@192.114.91.213) |
2022-07-19 00:08:58 +0200 | <dlock> | https://paste.tomsmeding.com/n4tHDtDd |
2022-07-19 00:09:06 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-19 00:09:54 +0200 | <dlock> | hmm, thats probably not what you want, sorry i used to use [()] for Nat |
2022-07-19 00:11:51 +0200 | <dlock> | yeah, this is why i always just write it, because i cant locate my old code at all! |
2022-07-19 00:12:32 +0200 | dlock | (~dlock@213.205.241.187) (Remote host closed the connection) |
2022-07-19 00:13:16 +0200 | talismanick | (~talismani@campus-036-222.ucdavis.edu) |
2022-07-19 00:14:02 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:41cb:ef19:1743:9231) |
2022-07-19 00:15:27 +0200 | fserucas_ | (~fserucas@39.64.114.89.rev.vodafone.pt) (Ping timeout: 272 seconds) |
2022-07-19 00:17:20 +0200 | <qrpnxz> | lol [()], why not i guess |
2022-07-19 00:21:18 +0200 | <hpc> | and of course, () is a type alias for [Void] |
2022-07-19 00:21:40 +0200 | <monochrom> | onoes |
2022-07-19 00:25:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-07-19 00:26:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-19 00:31:35 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7058641e86f8f8671f06cda.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-07-19 00:34:03 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 00:37:11 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:41cb:ef19:1743:9231) (Quit: WeeChat 3.6) |
2022-07-19 00:38:03 +0200 | talismanick | (~talismani@campus-036-222.ucdavis.edu) (Ping timeout: 276 seconds) |
2022-07-19 00:38:51 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-07-19 00:41:04 +0200 | <Hecate> | < hpc> and of course, () is a type alias for [Void] // extremely cursed, thank you very much |
2022-07-19 00:44:09 +0200 | <qrpnxz> | lmao |
2022-07-19 00:46:40 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 00:47:09 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
2022-07-19 00:47:54 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 00:48:53 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 00:49:57 +0200 | nehsou^ | (~nehsou@12.187.69.131) |
2022-07-19 00:59:53 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds) |
2022-07-19 01:02:13 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 01:02:44 +0200 | talismanick | (~talismani@2601:200:c100:3850::dd64) |
2022-07-19 01:05:54 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-07-19 01:06:06 +0200 | andscape | (~andscape@ti0185a400-0748.bb.online.no) (Ping timeout: 252 seconds) |
2022-07-19 01:06:18 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-07-19 01:18:08 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-07-19 01:18:13 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-19 01:21:10 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-19 01:22:37 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 244 seconds) |
2022-07-19 01:24:57 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 01:25:28 +0200 | <talismanick> | Do I need to rebuild everything if I switched from glibc to musl? |
2022-07-19 01:26:10 +0200 | <talismanick> | I recovered all my Haskell stuff in ~ from backups, but with different libc |
2022-07-19 01:26:28 +0200 | <talismanick> | (that includes GHC, HLS, cabal-install, etc) |
2022-07-19 01:26:41 +0200 | <monochrom> | I think yes |
2022-07-19 01:27:07 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 01:28:07 +0200 | <geekosaur> | yes, libc structs and such will be different, some things that were macros will be functions and vice versa, etc. |
2022-07-19 01:29:01 +0200 | <geekosaur> | anything statically linked will still work, but many things in glibc can't be statically linked properly (they'll still try to dlopen glibc at runtime, which will fail under musl) |
2022-07-19 01:29:26 +0200 | <talismanick> | how can I force a rebuild from ghcup, then? |
2022-07-19 01:29:47 +0200 | <geekosaur> | uninstall and treinstall, ghcup should get appropriate new bindists |
2022-07-19 01:29:55 +0200 | <geekosaur> | *reinstall |
2022-07-19 01:30:22 +0200 | <geekosaur> | or build them if there isn't one |
2022-07-19 01:30:36 +0200 | <geekosaur> | ($SOMEONE help you if that's ghc though…) |
2022-07-19 01:30:55 +0200 | <monochrom> | treinstall is reinstall for the 3rd time >:) |
2022-07-19 01:32:05 +0200 | <talismanick> | Uh, yeah, it's building GHC... |
2022-07-19 01:32:13 +0200 | <talismanick> | wait nvm |
2022-07-19 01:32:19 +0200 | <talismanick> | idk what it was compiling, but it worked |
2022-07-19 01:33:55 +0200 | PiDelport | (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-19 01:34:00 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2022-07-19 01:34:21 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-07-19 01:34:49 +0200 | <monochrom> | The messages look like building something, that's all. |
2022-07-19 01:35:45 +0200 | <talismanick> | note to self: write some kind of script to rebuild stuff instead of reusing binaries if sys params aren't the same |
2022-07-19 01:39:07 +0200 | <geekosaur> | ghc install uses a makefile and a configure script, but what it builds is a runtime settings file that adapts it to your system |
2022-07-19 01:40:11 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds) |
2022-07-19 01:41:18 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-07-19 01:41:35 +0200 | nehsou^ | (~nehsou@12.187.69.131) (Ping timeout: 272 seconds) |
2022-07-19 01:43:48 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 01:45:00 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:576f:713d:f0b0:d7e1) (Ping timeout: 276 seconds) |
2022-07-19 01:46:33 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-19 01:48:19 +0200 | <talismanick> | geekosaur: When you uninstall, does it destroy a symlink? If you reinstall, does it check that it's already there and recreate it? |
2022-07-19 01:48:56 +0200 | <geekosaur> | there's a symlink from the install location to ~/.ghcup/bin, yes. it's smart enough to destroy and recreate it |
2022-07-19 01:48:56 +0200 | <talismanick> | i.e. keep the tarball, check the sha256 is the same as on the server, "oh, I installed from this already" |
2022-07-19 01:49:30 +0200 | <geekosaur> | oh, that. not sure but it may still need to reinstall from the tarball, all it would save is the download |
2022-07-19 01:49:38 +0200 | <talismanick> | So I can replace Haskell stuff in backups with a script to reinstall whatever the last recorded version were. Noice. |
2022-07-19 01:49:49 +0200 | <geekosaur> | it still has to refigure local settings, and there's no caching it can do for that |
2022-07-19 01:50:07 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 01:50:10 +0200 | <talismanick> | versions* |
2022-07-19 01:50:19 +0200 | <geekosaur> | but the result is $(ghc --print-libdir)/settings |
2022-07-19 01:50:56 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2022-07-19 01:52:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 01:52:30 +0200 | AlexZenon | (~alzenon@178.34.160.206) (Ping timeout: 240 seconds) |
2022-07-19 01:53:10 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-07-19 01:54:45 +0200 | Alex_test | (~al_test@178.34.160.206) (Ping timeout: 276 seconds) |
2022-07-19 01:55:20 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 272 seconds) |
2022-07-19 01:56:27 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 01:58:32 +0200 | Alex_test | (~al_test@178.34.160.206) |
2022-07-19 01:58:45 +0200 | AlexZenon | (~alzenon@178.34.160.206) |
2022-07-19 01:59:29 +0200 | phma | (~phma@2001:5b0:211f:d1f8:9471:1396:f73f:5401) (Read error: Connection reset by peer) |
2022-07-19 02:00:04 +0200 | AlexZenon | (~alzenon@178.34.160.206) (*.net *.split) |
2022-07-19 02:00:04 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) (*.net *.split) |
2022-07-19 02:00:04 +0200 | Pickchea | (~private@user/pickchea) (*.net *.split) |
2022-07-19 02:00:04 +0200 | NaturalNumber | (~monadam@137.229.82.64) (*.net *.split) |
2022-07-19 02:00:04 +0200 | dolio | (~dolio@130.44.130.54) (*.net *.split) |
2022-07-19 02:00:04 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (*.net *.split) |
2022-07-19 02:00:05 +0200 | kmein | (~weechat@user/kmein) (*.net *.split) |
2022-07-19 02:00:05 +0200 | marquis_andras | (~marquis_a@202-161-119-113.tpgi.com.au) (*.net *.split) |
2022-07-19 02:00:05 +0200 | byorgey | (~byorgey@155.138.238.211) (*.net *.split) |
2022-07-19 02:00:05 +0200 | inversed | (~inversed@05412f44.skybroadband.com) (*.net *.split) |
2022-07-19 02:00:05 +0200 | gawen | (~gawen@user/gawen) (*.net *.split) |
2022-07-19 02:00:05 +0200 | sayola | (~sayola@dslb-088-078-152-210.088.078.pools.vodafone-ip.de) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Benzi-Junior | (~BenziJuni@88-149-67-162.du.xdsl.is) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Igloo | (~ian@matrix.chaos.earth.li) (*.net *.split) |
2022-07-19 02:00:05 +0200 | heath | (~heath@user/heath) (*.net *.split) |
2022-07-19 02:00:05 +0200 | cross | (~cross@spitfire.i.gajendra.net) (*.net *.split) |
2022-07-19 02:00:05 +0200 | jjhoo | (~jahakala@user/jjhoo) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Goodbye_Vincent | (cyvahl@freakshells.net) (*.net *.split) |
2022-07-19 02:00:05 +0200 | FragByte | (~christian@user/fragbyte) (*.net *.split) |
2022-07-19 02:00:05 +0200 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split) |
2022-07-19 02:00:05 +0200 | aforemny | (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Square | (~a@user/square) (*.net *.split) |
2022-07-19 02:00:05 +0200 | kaol | (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Guest1698 | (~Guest1698@20.83.116.49) (*.net *.split) |
2022-07-19 02:00:05 +0200 | Patternmaster | (~georg@user/Patternmaster) (*.net *.split) |
2022-07-19 02:00:05 +0200 | xstill_ | (xstill@fimu/xstill) (*.net *.split) |
2022-07-19 02:00:05 +0200 | shane_ | (~shane@ana.rch.ist) (*.net *.split) |
2022-07-19 02:00:05 +0200 | statusfailed | (~statusfai@statusfailed.com) (*.net *.split) |
2022-07-19 02:00:05 +0200 | djanatyn1 | (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (*.net *.split) |
2022-07-19 02:00:05 +0200 | tomsmeding | (~tomsmedin@static.21.109.88.23.clients.your-server.de) (*.net *.split) |
2022-07-19 02:00:05 +0200 | orcus | (~orcus@user/brprice) (*.net *.split) |
2022-07-19 02:00:05 +0200 | kawen | (~quassel@static.208.191.216.95.clients.your-server.de) (*.net *.split) |
2022-07-19 02:00:05 +0200 | niko | (niko@libera/staff/niko) (*.net *.split) |
2022-07-19 02:00:05 +0200 | infinity0 | (~infinity0@185.112.146.113) (*.net *.split) |
2022-07-19 02:00:05 +0200 | sajith | (~sajith@user/sajith) (*.net *.split) |
2022-07-19 02:00:05 +0200 | tired | (~tired@user/tired) (*.net *.split) |
2022-07-19 02:00:06 +0200 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2022-07-19 02:00:06 +0200 | hltk | (~hltk@hltk.fi) (*.net *.split) |
2022-07-19 02:00:06 +0200 | Heffalump | (~ganesh@urchin.earth.li) (*.net *.split) |
2022-07-19 02:00:06 +0200 | Unode | (~Unode@194.94.44.220) (*.net *.split) |
2022-07-19 02:00:06 +0200 | eagleflo | (~aku@163.172.137.34) (*.net *.split) |
2022-07-19 02:00:06 +0200 | ouroboros | (~ouroboros@user/ouroboros) (*.net *.split) |
2022-07-19 02:00:17 +0200 | byorgey | (~byorgey@155.138.238.211) |
2022-07-19 02:00:19 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) |
2022-07-19 02:00:20 +0200 | Benzi-Junior | (~BenziJuni@dsl-149-67-162.hive.is) |
2022-07-19 02:00:20 +0200 | Unode | (~Unode@194.94.44.220) |
2022-07-19 02:00:22 +0200 | Heffalump | (~ganesh@urchin.earth.li) |
2022-07-19 02:00:22 +0200 | Pickchea | (~private@185.31.55.18.dyn.kraftcom.at) |
2022-07-19 02:00:23 +0200 | FragByte | (~christian@p200300f4c702350000197deb46927975.dip0.t-ipconnect.de) |
2022-07-19 02:00:23 +0200 | AlexZenon | (~alzenon@178.34.160.206) |
2022-07-19 02:00:26 +0200 | djanatyn1 | (~djanatyn@vps-7f49a6b0.vps.ovh.ca) |
2022-07-19 02:00:28 +0200 | Goodbye_Vincent | (cyvahl@freakshells.net) |
2022-07-19 02:00:28 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-07-19 02:00:29 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-19 02:00:40 +0200 | cross | (~cross@spitfire.i.gajendra.net) |
2022-07-19 02:00:41 +0200 | Pickchea | (~private@185.31.55.18.dyn.kraftcom.at) (Changing host) |
2022-07-19 02:00:41 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-19 02:00:41 +0200 | FragByte | (~christian@p200300f4c702350000197deb46927975.dip0.t-ipconnect.de) (Changing host) |
2022-07-19 02:00:41 +0200 | FragByte | (~christian@user/fragbyte) |
2022-07-19 02:00:44 +0200 | Guest1698 | (~Guest1698@20.83.116.49) |
2022-07-19 02:00:47 +0200 | inversed | (~inversed@05412f44.skybroadband.com) |
2022-07-19 02:00:50 +0200 | dolio | (~dolio@130.44.130.54) |
2022-07-19 02:00:52 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) (Changing host) |
2022-07-19 02:00:52 +0200 | Patternmaster | (~georg@user/Patternmaster) |
2022-07-19 02:00:55 +0200 | aforemny | (~aforemny@static.248.158.34.188.clients.your-server.de) |
2022-07-19 02:01:54 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2022-07-19 02:02:12 +0200 | infinity0 | (~infinity0@185.112.146.113) |
2022-07-19 02:02:14 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) (Remote host closed the connection) |
2022-07-19 02:02:16 +0200 | tired | (~tired@user/tired) |
2022-07-19 02:02:26 +0200 | tomsmeding | (~tomsmedin@2a01:4f8:c0c:5e5e::2) |
2022-07-19 02:02:27 +0200 | Square | (~a@user/square) |
2022-07-19 02:02:33 +0200 | ouroboros | (~ouroboros@user/ouroboros) |
2022-07-19 02:02:44 +0200 | sajith | (~sajith@user/sajith) |
2022-07-19 02:02:45 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2022-07-19 02:02:47 +0200 | gawen | (~gawen@user/gawen) |
2022-07-19 02:02:53 +0200 | orcus | (~orcus@user/brprice) |
2022-07-19 02:02:57 +0200 | heath | (~heath@user/heath) |
2022-07-19 02:02:58 +0200 | xstill_ | (xstill@fimu/xstill) |
2022-07-19 02:02:59 +0200 | kawen | (~quassel@static.208.191.216.95.clients.your-server.de) |
2022-07-19 02:03:11 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-07-19 02:03:16 +0200 | kmein | (~weechat@user/kmein) |
2022-07-19 02:04:41 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-07-19 02:04:57 +0200 | sayola | (~sayola@dslb-088-078-152-210.088.078.pools.vodafone-ip.de) |
2022-07-19 02:05:11 +0200 | kaol | (~kaol@94-237-42-30.nl-ams1.upcloud.host) |
2022-07-19 02:05:11 +0200 | Igloo | (~ian@matrix.chaos.earth.li) |
2022-07-19 02:05:13 +0200 | shane | (~shane@ana.rch.ist) |
2022-07-19 02:05:16 +0200 | statusfailed | (~statusfai@statusfailed.com) |
2022-07-19 02:05:16 +0200 | hltk | (~hltk@hltk.fi) |
2022-07-19 02:05:17 +0200 | Hecate | (~mariposa@user/hecate) |
2022-07-19 02:05:22 +0200 | jjhoo | (jahakala@user/jjhoo) |
2022-07-19 02:05:25 +0200 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-07-19 02:05:32 +0200 | eagleflo | (~aku@163.172.137.34) |
2022-07-19 02:05:34 +0200 | marquis_andras | (~marquis_a@202-161-119-113.tpgi.com.au) |
2022-07-19 02:06:31 +0200 | phma | (phma@2001:5b0:211b:a238:1bda:2a18:c8e3:5e16) |
2022-07-19 02:07:53 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-07-19 02:08:23 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-07-19 02:09:30 +0200 | Morrow_ | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 02:09:36 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-19 02:17:27 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 02:17:39 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 02:20:45 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-19 02:22:25 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-07-19 02:27:29 +0200 | lemonsni- | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-07-19 02:28:27 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 272 seconds) |
2022-07-19 02:30:25 +0200 | niko | (niko@libera/staff/niko) |
2022-07-19 02:33:17 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 02:33:40 +0200 | nehsou^ | (~nehsou@12.187.69.131) |
2022-07-19 02:34:06 +0200 | gleostocha | (~runic@104-182-236-205.lightspeed.sntcca.sbcglobal.net) |
2022-07-19 02:44:10 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
2022-07-19 02:46:42 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) |
2022-07-19 02:47:54 +0200 | xff0x | (~xff0x@2405:6580:b080:900:1300:28ff:6b85:b3ee) (Ping timeout: 272 seconds) |
2022-07-19 02:52:20 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-07-19 02:53:30 +0200 | nehsou^ | (~nehsou@12.187.69.131) (Ping timeout: 268 seconds) |
2022-07-19 02:56:19 +0200 | pgass | (~pg@190.247.245.154) (Ping timeout: 272 seconds) |
2022-07-19 02:59:13 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 03:01:11 +0200 | NaturalNumber | (~monadam@137.229.82.64) (Quit: Have a nice day) |
2022-07-19 03:02:05 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
2022-07-19 03:02:06 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-07-19 03:04:07 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-07-19 03:08:52 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:598f:68ae:c905:7332) |
2022-07-19 03:09:38 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-19 03:10:42 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-19 03:10:48 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-07-19 03:11:07 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-07-19 03:15:09 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-07-19 03:16:55 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-07-19 03:19:34 +0200 | gleostocha | (~runic@104-182-236-205.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2022-07-19 03:29:33 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-07-19 03:34:21 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 03:34:22 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 03:36:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 03:36:43 +0200 | winny | (~weechat@user/winny) (Remote host closed the connection) |
2022-07-19 03:37:14 +0200 | winny | (~weechat@user/winny) |
2022-07-19 03:38:28 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 03:39:28 +0200 | <Haskelytic> | how do you typically model is-a relation between types like in trad OOP? |
2022-07-19 03:40:02 +0200 | nehsou^ | (~nehsou@12.187.69.131) |
2022-07-19 03:40:45 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 03:40:50 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) (Ping timeout: 240 seconds) |
2022-07-19 03:42:19 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) (Read error: Connection reset by peer) |
2022-07-19 03:42:39 +0200 | NaturalNumber | (~monadam@137.229.82.64) (Quit: Have a nice day) |
2022-07-19 03:43:13 +0200 | <c_wraith> | Haskelytic: same way as in OOP. ignore subclassing because it's broken, and use composition. |
2022-07-19 03:43:39 +0200 | <Haskelytic> | XD thought so |
2022-07-19 03:45:00 +0200 | <c_wraith> | OOP-like ideas come up sometimes when you want values with arbitrarily different behaviors that all have the same nominal type. For that you usually end up doing a record-of-functions thing. |
2022-07-19 03:47:59 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 03:52:07 +0200 | natto17 | (~natto@140.238.225.67) (Quit: a.) |
2022-07-19 03:52:13 +0200 | <monochrom> | I thought is-a is between a class/interface and an object, between a type and a value. |
2022-07-19 03:52:59 +0200 | natto | (~natto@140.238.225.67) |
2022-07-19 03:54:35 +0200 | frost | (~frost@user/frost) |
2022-07-19 03:54:51 +0200 | <c_wraith> | is-a is also used to describe the subclassing relationship. a rectange is a shape, etc |
2022-07-19 03:55:16 +0200 | <c_wraith> | Except of course all those easy examples break down really fast when you try to actually write code like that. |
2022-07-19 03:55:29 +0200 | <c_wraith> | but that's what object-oriented modeling wants you to think about |
2022-07-19 03:59:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-19 04:00:54 +0200 | lys | (sid194105@user/lys) () |
2022-07-19 04:02:40 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-19 04:04:07 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-19 04:04:20 +0200 | lottaquestions | (~nick@2607:fa49:503e:7100:9456:dbb2:33e5:f0a2) |
2022-07-19 04:06:30 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 04:07:31 +0200 | winny | (~weechat@user/winny) (Ping timeout: 268 seconds) |
2022-07-19 04:08:08 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-07-19 04:08:33 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-19 04:09:35 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 04:09:41 +0200 | winny | (~weechat@user/winny) |
2022-07-19 04:11:38 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:598f:68ae:c905:7332) (Ping timeout: 240 seconds) |
2022-07-19 04:12:38 +0200 | Morrow | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 04:12:43 +0200 | Morrow_ | (~Morrow@192.114.91.213) |
2022-07-19 04:22:54 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-07-19 04:22:56 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 04:24:56 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:8a2c:4e72:ccb9:e678) |
2022-07-19 04:25:12 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 04:29:44 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-19 04:32:18 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Client Quit) |
2022-07-19 04:32:33 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-19 04:34:01 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Client Quit) |
2022-07-19 04:34:15 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-19 04:36:30 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-19 04:40:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 04:42:52 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-07-19 04:48:24 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-07-19 04:49:53 +0200 | nehsou^ | (~nehsou@12.187.69.131) (Ping timeout: 255 seconds) |
2022-07-19 04:51:14 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds) |
2022-07-19 04:53:13 +0200 | Me-me | (~me-me@user/me-me) (Quit: Disconnecting on purpose.) |
2022-07-19 04:53:28 +0200 | biberu\ | (~biberu@user/biberu) |
2022-07-19 04:54:05 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
2022-07-19 04:54:57 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host) |
2022-07-19 04:54:57 +0200 | Me-me | (~me-me@user/me-me) |
2022-07-19 04:56:50 +0200 | td_ | (~td@94.134.91.5) (Ping timeout: 240 seconds) |
2022-07-19 04:57:24 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 276 seconds) |
2022-07-19 04:57:24 +0200 | biberu\ | biberu |
2022-07-19 04:58:09 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 04:58:54 +0200 | td_ | (~td@muedsl-82-207-238-145.citykom.de) |
2022-07-19 05:00:26 +0200 | nehsou^ | (~nehsou@12.187.69.131) |
2022-07-19 05:09:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 05:10:39 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) (Quit: Client closed) |
2022-07-19 05:13:23 +0200 | brence | (~brence@2a01:4b00:895f:3d00:ddcd:fb62:887c:2ea0) |
2022-07-19 05:13:41 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 05:18:31 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 05:23:02 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) (Quit: The Lounge - https://thelounge.chat) |
2022-07-19 05:24:50 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 05:28:16 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 05:35:17 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-19 05:36:34 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 05:42:53 +0200 | <qrpnxz> | okay, this is epic: https://hackage.haskell.org/package/diffarray |
2022-07-19 05:42:57 +0200 | <yin> | c_wraith: how is subtyping broken? |
2022-07-19 05:43:49 +0200 | <Clinton[m]> | How can I write a function with the following signature? I feel like I should be able to do this but I'm just tying myself in knots a bit:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/18f826d2b7e8b77db9230eb5eb154ef41aa5…) |
2022-07-19 05:45:18 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:8a2c:4e72:ccb9:e678) (Ping timeout: 240 seconds) |
2022-07-19 05:46:14 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-07-19 05:46:15 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-07-19 05:46:15 +0200 | califax | (~califax@user/califx) (Write error: Connection reset by peer) |
2022-07-19 05:46:15 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-19 05:46:15 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-07-19 05:46:29 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 05:46:30 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 05:46:33 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-19 05:46:41 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-07-19 05:47:00 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 05:47:19 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-07-19 05:47:33 +0200 | califax | (~califax@user/califx) |
2022-07-19 05:49:12 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-19 05:50:02 +0200 | <qrpnxz> | Clinton[m]: g = getOp . contramap (\(p :: Proxy (Maybe p)) -> Proxy :: p) . Op . fmap Just |
2022-07-19 05:50:27 +0200 | <qrpnxz> | needs ScopedTypeVariables |
2022-07-19 05:50:39 +0200 | <jackdk> | `g f x =Just $ f Proxy`? |
2022-07-19 05:50:55 +0200 | <qrpnxz> | bye bye x? |
2022-07-19 05:51:20 +0200 | <jackdk> | returning the Maybe seems dubious |
2022-07-19 05:51:34 +0200 | <qrpnxz> | oh lol yeah i guess you can do that |
2022-07-19 05:52:26 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-19 05:52:36 +0200 | <jackdk> | `g' :: (Proxy a -> s) -> Proxy (Maybe a) -> s`; `g' f x = f Proxy` the fact that there's a `Maybe` in the second proxy adds no value-level information so you'll always be able to return an `s` |
2022-07-19 05:52:38 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-19 05:54:36 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 05:56:08 +0200 | brence | (~brence@2a01:4b00:895f:3d00:ddcd:fb62:887c:2ea0) (Ping timeout: 252 seconds) |
2022-07-19 05:58:56 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 06:05:56 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 06:08:32 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:e3c4:775f:d866:7dfa) |
2022-07-19 06:10:38 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-19 06:11:00 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-19 06:11:41 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-19 06:16:06 +0200 | Morrow_ | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 06:16:11 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-19 06:17:35 +0200 | NaturalNumber | (~monadam@137.229.82.64) (Remote host closed the connection) |
2022-07-19 06:18:05 +0200 | Morrow | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 06:18:17 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-19 06:19:08 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 06:20:23 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-07-19 06:20:49 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-19 06:20:54 +0200 | Morrow_ | (~Morrow@192.114.91.213) |
2022-07-19 06:21:07 +0200 | Morrow | (~Morrow@192.114.91.213) (Read error: Connection reset by peer) |
2022-07-19 06:21:32 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 06:21:49 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) () |
2022-07-19 06:24:20 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-07-19 06:27:20 +0200 | <Clinton[m]> | Thank you, but I think I'm stuck on something again:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/688906a3c5b59f65156a8b18d4a70bdf3747…) |
2022-07-19 06:28:02 +0200 | Morrow_ | (~Morrow@192.114.91.213) (Ping timeout: 268 seconds) |
2022-07-19 06:31:34 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 06:36:12 +0200 | <Clinton[m]> | Can I somehow split the instance? One instance for `(s :: Just Symbol)` and the other for `(s :: Nothing)`? This kind stuff I is twisting my mind a bit. |
2022-07-19 06:40:21 +0200 | michalz | (~michalz@185.246.204.77) |
2022-07-19 06:43:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 06:43:41 +0200 | <qrpnxz> | Clinton[m]: i would write a KnownMaybeSymbol class and define instance for Maybe Symbol and Nothing to extract the value |
2022-07-19 06:45:26 +0200 | <Clinton[m]> | Ah good idea. I just found out spliting the instance works fine also. Like:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/b635f05045e5e0e29703d04c807550ad2d0c…) |
2022-07-19 06:46:35 +0200 | <qrpnxz> | ah yeah that'll do |
2022-07-19 07:05:52 +0200 | <qrpnxz> | anyone have intuition/experience with traversals on cyclic data? I'm guessing it probably is not a Lawful traversal, but I'm wondering how a derived instance would behave. |
2022-07-19 07:06:57 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 07:07:09 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-19 07:08:26 +0200 | redmp | (~redmp@mobile-166-137-179-070.mycingular.net) |
2022-07-19 07:10:00 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2022-07-19 07:12:08 +0200 | <qrpnxz> | i write the instance just the same and works, since it would be lawful if it wasn't cyclic, also when it is cyclic? I never heard of a traversal law of "except when cyclic" lol |
2022-07-19 07:12:13 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-19 07:13:40 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-07-19 07:14:18 +0200 | mbuf | (~Shakthi@122.165.55.71) |
2022-07-19 07:25:30 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-07-19 07:26:07 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds) |
2022-07-19 07:29:22 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 07:29:56 +0200 | <qrpnxz> | ok so i did a test and i can feed a cyclic into a zipper, but if i modify the focus, that modification doesn't extend into the cycles. That makes sense since that would require actually mutation, but what we see is just a brand new data now pointing to the old data |
2022-07-19 07:32:27 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 272 seconds) |
2022-07-19 07:35:30 +0200 | foul_owl | (~kerry@23.82.194.109) (Ping timeout: 240 seconds) |
2022-07-19 07:38:33 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-19 07:40:05 +0200 | foul_owl | (~kerry@174-21-132-202.tukw.qwest.net) |
2022-07-19 07:40:18 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-19 07:41:19 +0200 | <qrpnxz> | now, if i made the cyclic references themselves the targets of the traversal i think i'll be getting somewhere... :) |
2022-07-19 07:42:31 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) (Remote host closed the connection) |
2022-07-19 07:44:34 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-07-19 07:44:53 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 07:56:40 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 07:57:53 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-07-19 07:59:45 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-07-19 08:00:45 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-07-19 08:02:12 +0200 | winny | (~weechat@user/winny) (Remote host closed the connection) |
2022-07-19 08:02:38 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-07-19 08:02:40 +0200 | winny | (~weechat@user/winny) |
2022-07-19 08:04:21 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) (Remote host closed the connection) |
2022-07-19 08:04:55 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-07-19 08:10:49 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e70586378c7d9ef9e9e8454b.dip0.t-ipconnect.de) |
2022-07-19 08:12:03 +0200 | bliminse | (~bliminse@user/bliminse) (Quit: leaving) |
2022-07-19 08:12:51 +0200 | gmg | (~user@user/gehmehgeh) |
2022-07-19 08:13:39 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 08:15:10 +0200 | redmp | (~redmp@mobile-166-137-179-070.mycingular.net) (Quit: leaving) |
2022-07-19 08:17:05 +0200 | NaturalNumber | (~monadam@137.229.82.64) (Remote host closed the connection) |
2022-07-19 08:19:58 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 08:22:23 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-19 08:30:53 +0200 | mmhat | (~mmh@p200300f1c7055987ee086bfffe095315.dip0.t-ipconnect.de) |
2022-07-19 08:31:18 +0200 | foul_owl | (~kerry@174-21-132-202.tukw.qwest.net) (Ping timeout: 240 seconds) |
2022-07-19 08:35:49 +0200 | alternateved | (~user@staticline-31-183-144-54.toya.net.pl) |
2022-07-19 08:37:15 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 08:38:02 +0200 | fserucas_ | (~fserucas@39.64.114.89.rev.vodafone.pt) |
2022-07-19 08:40:33 +0200 | dtman34 | (~dtman34@2601:446:4400:2ad9:50de:fed7:560f:d711) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2022-07-19 08:42:14 +0200 | sus | (zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net) |
2022-07-19 08:42:47 +0200 | dtman34 | (~dtman34@2601:446:4400:2ad9:d18c:aab6:fc87:3dca) |
2022-07-19 08:44:35 +0200 | sus | (zero@user/zeromomentum) |
2022-07-19 08:45:22 +0200 | foul_owl | (~kerry@23.82.194.107) |
2022-07-19 08:47:37 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
2022-07-19 08:48:19 +0200 | dtman34_ | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2022-07-19 08:48:54 +0200 | dtman34 | (~dtman34@2601:446:4400:2ad9:d18c:aab6:fc87:3dca) (Ping timeout: 272 seconds) |
2022-07-19 08:51:03 +0200 | ccntrq | (~Thunderbi@2a02:3100:70f0:db00:7397:6a5e:7236:7fcd) |
2022-07-19 08:51:23 +0200 | ccntrq | (~Thunderbi@2a02:3100:70f0:db00:7397:6a5e:7236:7fcd) (Remote host closed the connection) |
2022-07-19 08:51:24 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
2022-07-19 08:52:23 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-07-19 08:52:40 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 08:54:53 +0200 | ccntrq | (~Thunderbi@2a02:3100:70f0:db00:d79a:be3f:a1fd:ac0d) |
2022-07-19 08:56:37 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-07-19 08:58:05 +0200 | Major_Biscuit | (~MajorBisc@c-001-019-019.client.tudelft.eduvpn.nl) |
2022-07-19 09:00:21 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-07-19 09:01:20 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-19 09:02:25 +0200 | <qrpnxz> | if i use references, carry around the environment, and rebuild that environment on modification, i can zip around while making globally visible changes it seems |
2022-07-19 09:02:40 +0200 | <qrpnxz> | no idea if this is a valid traversal but it works with zipper so... lol |
2022-07-19 09:03:27 +0200 | <qrpnxz> | "value in context" perhaps i should be using comonad? Is this finally the moment?! |
2022-07-19 09:06:18 +0200 | NaturalNumber | (~monadam@137.229.82.64) (Quit: Have a nice day) |
2022-07-19 09:11:19 +0200 | toluene | (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
2022-07-19 09:12:12 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-07-19 09:14:17 +0200 | toluene | (~toluene@user/toulene) |
2022-07-19 09:16:54 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 09:25:24 +0200 | Neuromancer | (~Neuromanc@user/neuromancer) |
2022-07-19 09:25:30 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
2022-07-19 09:27:07 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-07-19 09:28:04 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2022-07-19 09:30:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 09:30:43 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-19 09:32:56 +0200 | nehsou^ | (~nehsou@12.187.69.131) (Ping timeout: 255 seconds) |
2022-07-19 09:34:00 +0200 | maroloccio | (~marolocci@37.100.36.239) |
2022-07-19 09:34:41 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 09:36:28 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) |
2022-07-19 09:38:21 +0200 | <Axman6> | qrpnxz: can you detect that you have cycles? |
2022-07-19 09:41:54 +0200 | <qrpnxz> | hypothetically, yes. I could tag each node with a unique id then do some pointer chasing |
2022-07-19 09:43:22 +0200 | xerox__ | xerox |
2022-07-19 09:47:07 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 09:51:52 +0200 | coot | (~coot@213.134.190.95) |
2022-07-19 09:53:12 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 09:54:33 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-19 09:56:48 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-19 09:56:51 +0200 | infinity0 | (~infinity0@185.112.146.113) (Ping timeout: 272 seconds) |
2022-07-19 09:58:25 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) (Client Quit) |
2022-07-19 09:58:42 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-19 09:59:17 +0200 | chele | (~chele@user/chele) |
2022-07-19 09:59:36 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 09:59:39 +0200 | naso | (~nasosev@193-116-244-197.tpgi.com.au) (Client Quit) |
2022-07-19 10:01:26 +0200 | naso | (~naso@193-116-244-197.tpgi.com.au) |
2022-07-19 10:05:27 +0200 | kazaf | (~kazaf@84.252.147.246) |
2022-07-19 10:07:59 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-19 10:08:58 +0200 | shriekingnoise | (~shrieking@201.212.175.181) (Quit: Quit) |
2022-07-19 10:14:28 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
2022-07-19 10:14:50 +0200 | kuribas | (~user@silversquare.silversquare.eu) |
2022-07-19 10:15:42 +0200 | bliminse | (~bliminse@user/bliminse) |
2022-07-19 10:16:56 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 10:17:27 +0200 | <kuribas> | I finished my Hkd record of lenses implementation, but it's pretty convoluted. |
2022-07-19 10:18:13 +0200 | <kuribas> | The problem is that I need a (forall g :: (k -> *) . Rep (t g)), but that's not possible because Rep is a type family, and I cannot partially apply it. |
2022-07-19 10:18:42 +0200 | <kuribas> | So instead I box it in an existential, then unsafely extract it. |
2022-07-19 10:18:53 +0200 | <kuribas> | I don't think that's very efficient. |
2022-07-19 10:19:55 +0200 | <kuribas> | I suppose a template haskell implementation will be more straightforward. |
2022-07-19 10:19:57 +0200 | <kuribas> | And efficient. |
2022-07-19 10:20:10 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-07-19 10:20:40 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 10:20:58 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-19 10:22:34 +0200 | <[exa]> | kuribas: how would you partially apply Rep there? (it has only 1 param right?) |
2022-07-19 10:23:33 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 10:23:56 +0200 | <kuribas> | [exa]: but the `g` is unknown. |
2022-07-19 10:24:08 +0200 | <[exa]> | ah you know `t` but not `g`? |
2022-07-19 10:24:14 +0200 | <kuribas> | yeah |
2022-07-19 10:24:27 +0200 | <[exa]> | can you make some wrap SplitRep t g where you could deduce something from `t` ? |
2022-07-19 10:25:12 +0200 | <kuribas> | I have "newtype FLens s a = FLens { getFLens :: forall g . Lens' (g a) (s g)}" |
2022-07-19 10:25:18 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-07-19 10:25:24 +0200 | <kuribas> | Then a (t (Flens t)) |
2022-07-19 10:25:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-19 10:26:08 +0200 | talismanick | (~talismani@2601:200:c100:3850::dd64) (Ping timeout: 268 seconds) |
2022-07-19 10:26:38 +0200 | <kuribas> | The g cannot be deduced, because it works for any g. |
2022-07-19 10:27:40 +0200 | <[exa]> | ah I see |
2022-07-19 10:27:45 +0200 | <[exa]> | ,_, |
2022-07-19 10:27:45 +0200 | <tomsmeding> | % :k (forall g. GHC.Generics.Rep (Maybe g)) -- kuribas |
2022-07-19 10:27:46 +0200 | <yahb2> | (forall g. GHC.Generics.Rep (Maybe g)) -- kuribas :: * -> * |
2022-07-19 10:27:57 +0200 | <tomsmeding> | Not sure what about this doesn't work |
2022-07-19 10:28:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 10:28:16 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) |
2022-07-19 10:29:26 +0200 | <tomsmeding> | Or you mean that Rep doesn't simplify for unknown g because its expansion depends on g? |
2022-07-19 10:29:35 +0200 | <kuribas> | yes |
2022-07-19 10:29:44 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer) |
2022-07-19 10:30:10 +0200 | <tomsmeding> | Type families that don't simplify aren't necessarily a problem in and of themselves, right? |
2022-07-19 10:30:26 +0200 | <tomsmeding> | As long as eventually, at a usage site, it becomes monomorphic |
2022-07-19 10:30:44 +0200 | <kuribas> | tomsmeding: not in my type signature. |
2022-07-19 10:31:02 +0200 | <kuribas> | (t (Flens t)) is polymorphic at the usage site. |
2022-07-19 10:31:23 +0200 | <kuribas> | tomsmeding: but I could make a version that would monomorphise. |
2022-07-19 10:31:27 +0200 | toluene | (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
2022-07-19 10:32:11 +0200 | <tomsmeding> | If you need to inspect the output of Rep somehow, e.g. because you want to put constraints on it, then I see why it might not work |
2022-07-19 10:32:13 +0200 | <kuribas> | tomsmeding: but then wouldn't that create a new lens for each `g`? |
2022-07-19 10:32:32 +0200 | <tomsmeding> | I mean, a polymorphic value _is_ a function from a type to a value |
2022-07-19 10:32:38 +0200 | <kuribas> | The problem is that `g` is here not known at runtime. |
2022-07-19 10:32:56 +0200 | toluene | (~toluene@user/toulene) |
2022-07-19 10:32:58 +0200 | <kuribas> | so the `Rep (t g)` isn't known either, and the typeclasses don't resolve. |
2022-07-19 10:33:08 +0200 | <tomsmeding> | Right, typeclasses |
2022-07-19 10:33:14 +0200 | <tomsmeding> | That's where it goes wrong |
2022-07-19 10:33:21 +0200 | <tomsmeding> | You're not partially applying anything |
2022-07-19 10:33:35 +0200 | <tomsmeding> | The issue is indeed that type classes need to get resolved statically |
2022-07-19 10:33:51 +0200 | <tomsmeding> | Or, s/is indeed/could indeed well be/ |
2022-07-19 10:34:14 +0200 | <kuribas> | tomsmeding: I am partly apply FLens |
2022-07-19 10:34:45 +0200 | <tomsmeding> | Right |
2022-07-19 10:34:56 +0200 | <tomsmeding> | But you can partially apply newtypes, just not type families :) |
2022-07-19 10:35:01 +0200 | <tomsmeding> | But I see the issue now |
2022-07-19 10:35:09 +0200 | <kuribas> | which needs to go through the Generics. |
2022-07-19 10:35:48 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-07-19 10:36:26 +0200 | <tomsmeding> | The source of my questioning was that sometimes, knowing that this thing is the representation of this other thing is sufficient to make everything typecheck, even if "this other thing" is completely unknown |
2022-07-19 10:36:42 +0200 | <tomsmeding> | But your situation is not one of those "sometimes" :) |
2022-07-19 10:37:28 +0200 | <kuribas> | tomsmeding: you're right that i could remove the `forall g`, and make a set of lenses for a specific `g`. |
2022-07-19 10:38:02 +0200 | <kuribas> | I just thought it would be inefficient, because it needs to create a monomorphic version for each `g`. |
2022-07-19 10:38:14 +0200 | <kuribas> | But then maybe with inlining etc that's fine. |
2022-07-19 10:38:17 +0200 | <tomsmeding> | It would always anyway, right? |
2022-07-19 10:38:35 +0200 | <kuribas> | yeah, maybe that's my mistake. |
2022-07-19 10:38:38 +0200 | <tomsmeding> | Because in core, a polymorphic value is a function from a type to the corresponding monomorphic value |
2022-07-19 10:38:58 +0200 | <kuribas> | I don't know how ghc handles polymoprhic funtions at runtime. |
2022-07-19 10:38:59 +0200 | <tomsmeding> | This is why MonomorphismRestriction exists |
2022-07-19 10:39:07 +0200 | <kuribas> | maybe it has a generic representation of values? |
2022-07-19 10:39:13 +0200 | <kuribas> | like a void pointer. |
2022-07-19 10:39:32 +0200 | <tomsmeding> | Because if you had `let x = 10 in x + x` where x :: Num a => a, then x might be evaluated twice there |
2022-07-19 10:40:02 +0200 | <kuribas> | right |
2022-07-19 10:40:23 +0200 | <tomsmeding> | Now in that case it's really a function that takes a typeclass dictionary, and I'm not sure it can happen in the absence of constraints |
2022-07-19 10:40:50 +0200 | <tomsmeding> | Yeah I believe that "void pointer" is the whole point of lifted values |
2022-07-19 10:41:05 +0200 | <tomsmeding> | They have a uniform representation on the heap |
2022-07-19 10:41:18 +0200 | <tomsmeding> | So I'm probably wrong, and this is only an issue if there are typeclass dicts involved |
2022-07-19 10:41:26 +0200 | <tomsmeding> | Because that => is really a function |
2022-07-19 10:42:30 +0200 | Patternmaster | (~georg@user/Patternmaster) (Ping timeout: 240 seconds) |
2022-07-19 10:42:56 +0200 | <kuribas> | right, so the best solution now is to remove the forall g, and make lenses specific for a `g`. |
2022-07-19 10:43:11 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) (Quit: The Lounge - https://thelounge.chat) |
2022-07-19 10:43:30 +0200 | Patternmaster | (~georg@user/Patternmaster) |
2022-07-19 10:43:32 +0200 | <kuribas> | then there is no need for a generic representation. |
2022-07-19 10:44:01 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 10:44:13 +0200 | <tomsmeding> | This uniform lifted representation is also why this is not allowed https://play-haskell.tomsmeding.com/play/paste/3oecS2Tt/1 |
2022-07-19 10:44:53 +0200 | <kuribas> | yes, and why I needed to wrap in an existential. |
2022-07-19 10:45:18 +0200 | <tomsmeding> | Mehs all around :p |
2022-07-19 10:45:43 +0200 | <kuribas> | funny how types often simplify greatly if you take a different approach. |
2022-07-19 10:46:06 +0200 | <kuribas> | I think that's why lispers don't like types, you cannot just implement any crazy idea :) |
2022-07-19 10:46:34 +0200 | arahael1 | (~arahael@60-240-61-30.tpgi.com.au) |
2022-07-19 10:46:42 +0200 | <kuribas> | But I find that the types guide you towards a solution that is more consistent, often also saner. |
2022-07-19 10:47:26 +0200 | <tomsmeding> | As people like monochrom like to say: they require you to actually think about what you're doing, to an extent |
2022-07-19 10:47:58 +0200 | arahael | (~arahael@118.211.185.62) (Ping timeout: 272 seconds) |
2022-07-19 10:48:03 +0200 | arahael1 | arahael |
2022-07-19 10:48:32 +0200 | <kuribas> | think about the model |
2022-07-19 10:49:57 +0200 | <kuribas> | I often see in lisp code that shows `how` to do things, but not `what` thing are, how they compose, etc... |
2022-07-19 10:50:36 +0200 | <kuribas> | those are described by the types. |
2022-07-19 10:51:13 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 10:51:21 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) (Ping timeout: 268 seconds) |
2022-07-19 10:51:26 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-07-19 10:55:40 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 10:58:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 11:00:08 +0200 | luke-clifton[m] | (~luke-clif@2001:470:69fc:105::2:3122) (Quit: You have been kicked for being idle) |
2022-07-19 11:00:33 +0200 | thewaves | (~thewaves@2001:470:69fc:105::2:2eef) (Quit: You have been kicked for being idle) |
2022-07-19 11:00:40 +0200 | Yehoshua | (~yehoshua@2001:470:69fc:105::1:593f) (Quit: You have been kicked for being idle) |
2022-07-19 11:00:45 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Quit: You have been kicked for being idle) |
2022-07-19 11:00:47 +0200 | boxscape | (~boxscape@user/boxscape) (Quit: You have been kicked for being idle) |
2022-07-19 11:01:40 +0200 | <kuribas> | Usually being "stuck" by types is enlightening. |
2022-07-19 11:01:54 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2022-07-19 11:01:54 +0200 | Yehoshua | (~yehoshua@2001:470:69fc:105::1:593f) |
2022-07-19 11:01:54 +0200 | <kuribas> | Because it shows a new path for development. |
2022-07-19 11:01:54 +0200 | thewaves | (~thewaves@2001:470:69fc:105::2:2eef) |
2022-07-19 11:02:08 +0200 | boxscape | (~boxscape@user/boxscape) |
2022-07-19 11:02:37 +0200 | <tomsmeding> | Lispers will say that's stockholm syndrome :) |
2022-07-19 11:03:05 +0200 | <kuribas> | yeah, and focussing on a language feature instead of the business logic. |
2022-07-19 11:03:37 +0200 | thewaves | (~thewaves@2001:470:69fc:105::2:2eef) () |
2022-07-19 11:04:01 +0200 | Yehoshua | (~yehoshua@2001:470:69fc:105::1:593f) () |
2022-07-19 11:04:13 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) () |
2022-07-19 11:04:20 +0200 | boxscape | (~boxscape@user/boxscape) () |
2022-07-19 11:05:18 +0200 | ccntrq | (~Thunderbi@2a02:3100:70f0:db00:d79a:be3f:a1fd:ac0d) (Quit: ccntrq) |
2022-07-19 11:05:34 +0200 | ccntrq | (~Thunderbi@dynamic-078-050-043-144.78.50.pool.telefonica.de) |
2022-07-19 11:06:10 +0200 | <kuribas> | But how I see it is that you gain insight in the business logic and the relations. |
2022-07-19 11:06:50 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) (Ping timeout: 260 seconds) |
2022-07-19 11:07:07 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-07-19 11:08:25 +0200 | dschrempf | (~dominik@2a01-036d-0118-4212-c433-bd85-0bb7-3c00.pool6.digikabel.hu) |
2022-07-19 11:15:27 +0200 | ccntrq1 | (~Thunderbi@2a02:3100:70f0:db00:df27:9986:c8dc:f583) |
2022-07-19 11:16:08 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-19 11:17:52 +0200 | ccntrq | (~Thunderbi@dynamic-078-050-043-144.78.50.pool.telefonica.de) (Ping timeout: 268 seconds) |
2022-07-19 11:17:52 +0200 | ccntrq1 | ccntrq |
2022-07-19 11:18:47 +0200 | causal | (~user@50.35.83.177) |
2022-07-19 11:20:16 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 272 seconds) |
2022-07-19 11:25:40 +0200 | kino-shinkai | (~kino-shin@user/kino-shinkai) |
2022-07-19 11:25:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 11:27:24 +0200 | mmhat | (~mmh@p200300f1c7055987ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-07-19 11:28:32 +0200 | __monty__ | (~toonn@user/toonn) |
2022-07-19 11:31:02 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 272 seconds) |
2022-07-19 11:31:40 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
2022-07-19 11:33:06 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-07-19 11:33:38 +0200 | dschrempf | (~dominik@2a01-036d-0118-4212-c433-bd85-0bb7-3c00.pool6.digikabel.hu) (Ping timeout: 240 seconds) |
2022-07-19 11:37:01 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-19 11:37:26 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 244 seconds) |
2022-07-19 11:40:36 +0200 | mmhat | (~mmh@p200300f1c70559dfee086bfffe095315.dip0.t-ipconnect.de) |
2022-07-19 11:42:57 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 11:43:35 +0200 | hnOsmium0001 | (uid453710@user/hnOsmium0001) (Quit: Connection closed for inactivity) |
2022-07-19 11:44:18 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-07-19 11:44:28 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 268 seconds) |
2022-07-19 11:46:11 +0200 | <romes[m]> | is there a reason why deriving (Eq1, Ord1) isn’t available? |
2022-07-19 11:46:50 +0200 | <merijn> | Why would they be? |
2022-07-19 11:47:28 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 11:52:18 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-19 11:59:24 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-07-19 12:02:48 +0200 | <jackdk> | https://hackage.haskell.org/package/deriving-compat-0.6.1/docs/Data-Eq-Deriving-Internal.html#v:de… |
2022-07-19 12:03:02 +0200 | <jackdk> | https://hackage.haskell.org/package/deriving-compat-0.6.1/docs/Data-Ord-Deriving-Internal.html#v:d… |
2022-07-19 12:05:10 +0200 | cheater | (~Username@user/cheater) |
2022-07-19 12:05:58 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-19 12:06:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 12:07:16 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2022-07-19 12:10:58 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-07-19 12:17:27 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
2022-07-19 12:18:32 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds) |
2022-07-19 12:18:38 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 240 seconds) |
2022-07-19 12:18:47 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-07-19 12:19:08 +0200 | dschrempf | (~dominik@2a01-036d-0118-4212-d780-b5a7-1f7c-1a85.pool6.digikabel.hu) |
2022-07-19 12:19:21 +0200 | coot | (~coot@213.134.190.95) |
2022-07-19 12:19:36 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 12:20:10 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-07-19 12:20:19 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) (Ping timeout: 244 seconds) |
2022-07-19 12:20:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 12:21:42 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 272 seconds) |
2022-07-19 12:24:58 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 240 seconds) |
2022-07-19 12:30:43 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-07-19 12:32:30 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-07-19 12:33:19 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 12:33:48 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-07-19 12:34:15 +0200 | califax | (~califax@user/califx) |
2022-07-19 12:36:06 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) (Ping timeout: 264 seconds) |
2022-07-19 12:36:15 +0200 | CiaoSen | (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-07-19 12:38:10 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-19 12:41:31 +0200 | hueso | (~root@user/hueso) (Ping timeout: 272 seconds) |
2022-07-19 12:41:55 +0200 | cyphase_eviltwin | (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
2022-07-19 12:43:12 +0200 | cyphase_eviltwin | (~cyphase@user/cyphase) |
2022-07-19 12:44:30 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-19 12:46:07 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 12:46:56 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-19 12:47:58 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds) |
2022-07-19 12:48:13 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-07-19 12:53:45 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-07-19 12:54:49 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-19 12:56:27 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 12:57:38 +0200 | <romes[m]> | jackdk: indeed, i’m using that at the moment, but was wondering why GHC doesn’t support it like Eq and Ord |
2022-07-19 12:59:15 +0200 | CiaoSen | (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-07-19 12:59:37 +0200 | <merijn> | Eq and Ord a trivial to define mechanically, not really sure that's true for Eq1 and Ord1 |
2022-07-19 13:01:10 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-19 13:10:46 +0200 | notzmv | (~zmv@user/notzmv) |
2022-07-19 13:10:48 +0200 | hellwolf | (~hellwolf@7-41-50-84.sta.estpak.ee) |
2022-07-19 13:12:31 +0200 | <jackdk> | Eq and Ord were in the report, I think Eq1 etc were invented back when people wanted to keep closer to Haskell98. But that was before my time. |
2022-07-19 13:14:39 +0200 | xff0x | (~xff0x@2405:6580:b080:900:604b:7f6a:615b:55d0) |
2022-07-19 13:15:25 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-07-19 13:17:35 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-07-19 13:17:57 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-07-19 13:18:50 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-19 13:19:50 +0200 | dschrempf | (~dominik@2a01-036d-0118-4212-d780-b5a7-1f7c-1a85.pool6.digikabel.hu) (Ping timeout: 260 seconds) |
2022-07-19 13:19:53 +0200 | frost | (~frost@user/frost) |
2022-07-19 13:20:47 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 13:23:26 +0200 | iamgarp | CAT_S |
2022-07-19 13:23:41 +0200 | mastarija | (~mastarija@2a05:4f46:e02:8c00:c16d:6f16:8e31:78a1) |
2022-07-19 13:24:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 13:33:25 +0200 | cyanide3dinner | (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) |
2022-07-19 13:36:56 +0200 | kazaf | (~kazaf@84.252.147.246) (Remote host closed the connection) |
2022-07-19 13:37:14 +0200 | kazaf | (~kazaf@84.252.147.246) |
2022-07-19 13:37:48 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-07-19 13:39:45 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 13:43:00 +0200 | andscape | (~andscape@ti0185a400-0748.bb.online.no) |
2022-07-19 13:43:17 +0200 | cyanide4breakfas | (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) |
2022-07-19 13:44:26 +0200 | hueso | (~root@user/hueso) |
2022-07-19 13:44:42 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 268 seconds) |
2022-07-19 13:48:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 13:50:01 +0200 | cyanide4breakfas | (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Quit: Leaving) |
2022-07-19 13:51:13 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 13:53:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 268 seconds) |
2022-07-19 13:56:28 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-19 13:59:58 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-19 14:04:52 +0200 | lortabac | (~lortabac@37.101.134.31) |
2022-07-19 14:08:37 +0200 | <troydm> | how can I force foldl to be strict? |
2022-07-19 14:09:07 +0200 | <Franciman> | troydm: foldl' |
2022-07-19 14:09:09 +0200 | <Franciman> | :t foldl' |
2022-07-19 14:09:10 +0200 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2022-07-19 14:09:17 +0200 | <Franciman> | it is strict in the accumulator |
2022-07-19 14:09:43 +0200 | <troydm> | Variable not in scope |
2022-07-19 14:10:15 +0200 | <troydm> | I'm using GHC 9.0.2 |
2022-07-19 14:10:19 +0200 | <geekosaur> | @index foldl' |
2022-07-19 14:10:19 +0200 | <lambdabot> | Data.Foldable, Data.List, GHC.OldList, Data.ByteString.Lazy.Char8, Data.ByteString.Lazy, Data.ByteString.Char8, Data.ByteString, Data.IntMap.Strict, Data.IntMap.Lazy, Data.IntMap, Data.IntSet, Data. |
2022-07-19 14:10:19 +0200 | <lambdabot> | Map.Lazy, Data.Map.Strict, Data.Map, Data.Set |
2022-07-19 14:10:29 +0200 | <geekosaur> | you want Data.Foldable |
2022-07-19 14:10:33 +0200 | <geekosaur> | it's not in Prelude |
2022-07-19 14:11:15 +0200 | <troydm> | ahh okey |
2022-07-19 14:11:17 +0200 | <troydm> | thx |
2022-07-19 14:11:21 +0200 | kazaf | (~kazaf@84.252.147.246) (Remote host closed the connection) |
2022-07-19 14:12:29 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 14:13:51 +0200 | kazaf | (~kazaf@94.180.63.53) |
2022-07-19 14:15:40 +0200 | kenran | (~kenran@200116b82bc6b100b80672891718c9cf.dip.versatel-1u1.de) |
2022-07-19 14:17:03 +0200 | infinity0 | (~infinity0@185.112.146.113) |
2022-07-19 14:18:28 +0200 | kazaf | (~kazaf@94.180.63.53) (Ping timeout: 252 seconds) |
2022-07-19 14:19:58 +0200 | dschrempf | (~dominik@94-21-158-143.pool.digikabel.hu) |
2022-07-19 14:21:33 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-19 14:22:10 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 14:23:33 +0200 | kenran | (~kenran@200116b82bc6b100b80672891718c9cf.dip.versatel-1u1.de) (Ping timeout: 276 seconds) |
2022-07-19 14:24:59 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-19 14:26:37 +0200 | kazaf | (~kazaf@94.180.63.53) |
2022-07-19 14:26:50 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 14:27:17 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-19 14:28:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 14:31:13 +0200 | coot | (~coot@213.134.190.95) |
2022-07-19 14:31:18 +0200 | kazaf | (~kazaf@94.180.63.53) (Ping timeout: 252 seconds) |
2022-07-19 14:32:45 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 260 seconds) |
2022-07-19 14:36:22 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-19 14:39:09 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-07-19 14:39:24 +0200 | pgass | (~pg@190.247.245.154) |
2022-07-19 14:41:22 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2022-07-19 14:42:55 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 14:43:58 +0200 | cyanide3dinner | (~cyanide4d@2402:e280:2149:513:931b:41cb:2a7e:791d) (Remote host closed the connection) |
2022-07-19 14:46:01 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-07-19 14:46:35 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 255 seconds) |
2022-07-19 14:47:15 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Max SendQ exceeded) |
2022-07-19 14:47:59 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-07-19 14:54:43 +0200 | maroloccio | (~marolocci@37.100.36.239) (Quit: WeeChat 3.0) |
2022-07-19 14:59:08 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-07-19 14:59:17 +0200 | lys_ | (~lys@user/lys) |
2022-07-19 15:07:47 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 15:08:54 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-07-19 15:12:11 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 15:13:43 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 15:14:07 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-07-19 15:15:17 +0200 | dschrempf | (~dominik@94-21-158-143.pool.digikabel.hu) (Ping timeout: 268 seconds) |
2022-07-19 15:15:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 15:16:42 +0200 | dschrempf | (~dominik@94-21-158-143.pool.digikabel.hu) |
2022-07-19 15:16:58 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-19 15:17:54 +0200 | lys_ | (~lys@user/lys) (Quit: Leaving) |
2022-07-19 15:19:15 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 15:21:07 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 272 seconds) |
2022-07-19 15:29:38 +0200 | lys | (sid194105@user/lys) |
2022-07-19 15:30:40 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 15:30:46 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 15:35:26 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
2022-07-19 15:40:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 15:42:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 15:43:29 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 15:44:54 +0200 | winny | (~weechat@user/winny) (Remote host closed the connection) |
2022-07-19 15:45:11 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-19 15:45:26 +0200 | winny | (~weechat@user/winny) |
2022-07-19 15:45:42 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 15:46:02 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 15:47:20 +0200 | kuribas | (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
2022-07-19 15:48:19 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 15:48:39 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 15:48:44 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 15:50:16 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 15:50:56 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 15:51:42 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 264 seconds) |
2022-07-19 15:58:58 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 16:03:08 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 16:07:39 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-07-19 16:08:56 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-07-19 16:09:12 +0200 | andscape | (~andscape@ti0185a400-0748.bb.online.no) (Ping timeout: 252 seconds) |
2022-07-19 16:13:24 +0200 | lys | (sid194105@user/lys) (Quit: sleep) |
2022-07-19 16:14:05 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-19 16:14:54 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
2022-07-19 16:14:54 +0200 | lys | (sid194105@user/lys) |
2022-07-19 16:18:11 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-19 16:20:35 +0200 | dschrempf | (~dominik@94-21-158-143.pool.digikabel.hu) (Quit: WeeChat 3.5) |
2022-07-19 16:30:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 16:30:23 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) (Ping timeout: 244 seconds) |
2022-07-19 16:31:33 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2022-07-19 16:31:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 16:34:54 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 16:36:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 16:38:57 +0200 | lys | (sid194105@user/lys) () |
2022-07-19 16:45:02 +0200 | hellwolf | (~hellwolf@7-41-50-84.sta.estpak.ee) (Remote host closed the connection) |
2022-07-19 16:45:26 +0200 | hellwolf | (~hellwolf@7-41-50-84.sta.estpak.ee) |
2022-07-19 16:45:53 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-19 16:46:41 +0200 | kuribas | (~user@silversquare.silversquare.eu) |
2022-07-19 16:46:58 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 240 seconds) |
2022-07-19 16:50:47 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
2022-07-19 16:50:47 +0200 | lys | (sid194105@user/lys) |
2022-07-19 16:53:24 +0200 | ccntrq | (~Thunderbi@2a02:3100:70f0:db00:df27:9986:c8dc:f583) (Ping timeout: 272 seconds) |
2022-07-19 16:53:42 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:909c:5f00:dbaf:bba8:c756:e76f) |
2022-07-19 16:54:28 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 16:55:48 +0200 | alternateved | (~user@staticline-31-183-144-54.toya.net.pl) (Ping timeout: 268 seconds) |
2022-07-19 16:55:54 +0200 | ccntrq1 | ccntrq |
2022-07-19 16:56:45 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 16:57:03 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 16:59:14 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 17:00:20 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 17:01:23 +0200 | dtman34_ | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Read error: Connection reset by peer) |
2022-07-19 17:01:41 +0200 | dtman34 | (~dtman34@2601:446:4400:2ad9:d18c:aab6:fc87:3dca) |
2022-07-19 17:02:26 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 17:02:50 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 17:04:10 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 17:04:15 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-19 17:04:54 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 17:05:32 +0200 | shriekingnoise | (~shrieking@201.212.175.181) |
2022-07-19 17:05:40 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 17:07:48 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 17:07:55 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-19 17:08:45 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 17:09:22 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) (Ping timeout: 268 seconds) |
2022-07-19 17:10:08 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-19 17:11:48 +0200 | coot | (~coot@213.134.190.95) |
2022-07-19 17:21:42 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) (Remote host closed the connection) |
2022-07-19 17:21:52 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 17:21:56 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2022-07-19 17:24:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-07-19 17:26:38 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 17:26:48 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:8521:6a00:8a5e:c335:b76e:d8af) |
2022-07-19 17:27:10 +0200 | ccntrq | (~Thunderbi@2a01:c22:909c:5f00:dbaf:bba8:c756:e76f) (Ping timeout: 260 seconds) |
2022-07-19 17:29:30 +0200 | ccntrq | (~Thunderbi@2a01:c22:8586:2300:104:3af5:e0c1:639f) |
2022-07-19 17:29:30 +0200 | lortabac | (~lortabac@37.101.134.31) (Quit: WeeChat 2.8) |
2022-07-19 17:29:41 +0200 | phma | (phma@2001:5b0:211b:a238:1bda:2a18:c8e3:5e16) (Read error: Connection reset by peer) |
2022-07-19 17:29:49 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
2022-07-19 17:30:36 +0200 | phma | (phma@2001:5b0:210b:99d8:7aa7:eab5:6b73:863a) |
2022-07-19 17:31:35 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:8521:6a00:8a5e:c335:b76e:d8af) (Ping timeout: 272 seconds) |
2022-07-19 17:32:45 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-19 17:36:00 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2022-07-19 17:36:06 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-19 17:38:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 17:38:11 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 17:38:11 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-07-19 17:42:12 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 17:44:29 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Remote host closed the connection) |
2022-07-19 17:44:43 +0200 | <yin> | would brick be a good choice for a 2D ascii game? |
2022-07-19 17:45:11 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 17:45:54 +0200 | <yin> | or is it usually better to just use a graphics engine for performance? |
2022-07-19 17:46:32 +0200 | <yin> | brick looks like it's made more with UIs in mind |
2022-07-19 17:46:59 +0200 | ccntrq | (~Thunderbi@2a01:c22:8586:2300:104:3af5:e0c1:639f) (Remote host closed the connection) |
2022-07-19 17:47:00 +0200 | <geekosaur> | brick is a UI built on top of vty |
2022-07-19 17:47:17 +0200 | ccntrq | (~Thunderbi@2a01:c22:8586:2300:104:3af5:e0c1:639f) |
2022-07-19 17:47:25 +0200 | <geekosaur> | depending on what you're doing, you may want to use vty directly |
2022-07-19 17:47:40 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) (Ping timeout: 268 seconds) |
2022-07-19 17:47:58 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 17:49:02 +0200 | <dolio> | My impression is that brick might be useful for laying out the game interface, but something like drawing an ascii map might require implementing a more custom widget. |
2022-07-19 17:49:28 +0200 | <dolio> | But I haven't looked closely. |
2022-07-19 17:50:54 +0200 | <yin> | ok that's what it seems to me. thanks |
2022-07-19 17:51:35 +0200 | <maerwald[m]> | yin: https://hackage.haskell.org/package/ansi-terminal-game |
2022-07-19 17:51:55 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-07-19 17:54:23 +0200 | hueso | (~root@user/hueso) (Ping timeout: 268 seconds) |
2022-07-19 17:55:47 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.6) |
2022-07-19 17:57:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 17:57:50 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-07-19 17:58:23 +0200 | hueso | (~root@user/hueso) |
2022-07-19 17:59:53 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection) |
2022-07-19 17:59:53 +0200 | <sm> | +1 |
2022-07-19 18:01:04 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 18:02:17 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-19 18:03:06 +0200 | <yin> | maerwald[m]: nice! |
2022-07-19 18:03:44 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-07-19 18:07:41 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 272 seconds) |
2022-07-19 18:09:07 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 18:10:31 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 18:13:10 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 18:13:17 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 18:14:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-19 18:14:40 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 18:14:52 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) |
2022-07-19 18:15:30 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 18:15:58 +0200 | mrmr | (~mrmr@user/mrmr) (Quit: The Lounge - https://thelounge.chat) |
2022-07-19 18:17:08 +0200 | naso | (~naso@193-116-244-197.tpgi.com.au) () |
2022-07-19 18:17:54 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 268 seconds) |
2022-07-19 18:17:54 +0200 | <c_wraith> | yin: oh, missed your question last night. anyway, I didn't say subtyping is bad. I said subclassing is bad. That's because it conflates subtyping with implementation reuse, when they really should be completely different ideas. |
2022-07-19 18:18:37 +0200 | kuribas | (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
2022-07-19 18:23:42 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 18:27:16 +0200 | Major_Biscuit | (~MajorBisc@c-001-019-019.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5) |
2022-07-19 18:28:57 +0200 | razetime | (~quassel@117.254.35.64) |
2022-07-19 18:28:59 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-07-19 18:29:09 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split) |
2022-07-19 18:29:50 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2022-07-19 18:30:29 +0200 | ccntrq1 | (~Thunderbi@2a01:c23:9416:ba00:93fe:7a9d:27cd:9383) |
2022-07-19 18:30:39 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection) |
2022-07-19 18:31:37 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 18:32:24 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 18:32:30 +0200 | ccntrq | (~Thunderbi@2a01:c22:8586:2300:104:3af5:e0c1:639f) (Ping timeout: 260 seconds) |
2022-07-19 18:32:30 +0200 | ccntrq1 | ccntrq |
2022-07-19 18:36:24 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 276 seconds) |
2022-07-19 18:38:10 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 18:39:19 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-19 18:40:55 +0200 | slack1256 | (~slack1256@191.125.227.211) |
2022-07-19 18:42:19 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:886b:9b00:348f:a0ea:8cc:1fef) |
2022-07-19 18:42:43 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 18:42:52 +0200 | kenran | (~kenran@200116b82bc6b100093795c796f55f58.dip.versatel-1u1.de) |
2022-07-19 18:43:19 +0200 | kenran | (~kenran@200116b82bc6b100093795c796f55f58.dip.versatel-1u1.de) (Client Quit) |
2022-07-19 18:44:12 +0200 | ccntrq | (~Thunderbi@2a01:c23:9416:ba00:93fe:7a9d:27cd:9383) (Ping timeout: 276 seconds) |
2022-07-19 18:44:12 +0200 | ccntrq1 | ccntrq |
2022-07-19 18:44:29 +0200 | mbuf | (~Shakthi@122.165.55.71) (Quit: Leaving) |
2022-07-19 18:45:04 +0200 | <slack1256> | I got a "sum" data type with a `Generic` instance. I would like to simulate a "Bounded" and "Ord" instance to enumarate all possible constructors. I cannot change the data definitions. Is there a easy way to do so? or should I write the function by hand over the Generic repr? |
2022-07-19 18:51:09 +0200 | <tomsmeding> | slack1256: you can't just add "deriving (Ord, Bounded)"? |
2022-07-19 18:51:10 +0200 | Kevin578 | (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
2022-07-19 18:51:44 +0200 | <tomsmeding> | Or using StandaloneDeriving as a separate declaration: `deriving instance Ord MyDataType` |
2022-07-19 18:51:51 +0200 | lys | (sid194105@user/lys) () |
2022-07-19 18:52:21 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-19 18:55:25 +0200 | <slack1256> | tomsmeding: I would to avoid add it to the original definition as it is a ADT generated via template-haskell. I can use StandaloneDeriving to define a orphan instance. |
2022-07-19 18:56:04 +0200 | <tomsmeding> | (if you put the standalone instance in the same module as the (generated) data type declaration, it's not even an orphan) |
2022-07-19 18:56:31 +0200 | <slack1256> | !!!!!! |
2022-07-19 18:56:37 +0200 | <slack1256> | You are right! |
2022-07-19 18:56:48 +0200 | <slack1256> | I don't have to put it on the splice itself. I can put it afterwards. |
2022-07-19 18:57:26 +0200 | ccntrq | (~Thunderbi@2a01:c22:886b:9b00:348f:a0ea:8cc:1fef) (Remote host closed the connection) |
2022-07-19 18:57:53 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-19 18:59:40 +0200 | <slack1256> | Thank tomsmeding |
2022-07-19 18:59:55 +0200 | <tomsmeding> | StandaloneDeriving is super useful sometimes |
2022-07-19 19:00:08 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
2022-07-19 19:00:08 +0200 | lys | (sid194105@user/lys) |
2022-07-19 19:00:38 +0200 | <slack1256> | I had only used it to specify the heads of the deriving instances. This is a new trick for me! :-) |
2022-07-19 19:01:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-07-19 19:02:02 +0200 | <tomsmeding> | I've mostly used it to derive e.g. Show got GADTs, because for some unknown (to me) reason, one cannot put `deriving (Show)` on a GADT declaration directly |
2022-07-19 19:02:11 +0200 | <Profpatsch> | What’s the easiest way of “enriching” a Monad with a counter that returns how many monadic actions were taken? |
2022-07-19 19:02:12 +0200 | <tomsmeding> | s/got/for/ |
2022-07-19 19:02:27 +0200 | <Profpatsch> | Just a WriterT (Sum Natural)? |
2022-07-19 19:02:44 +0200 | <Profpatsch> | But pretty bad from a leaking perspective no? |
2022-07-19 19:02:59 +0200 | <tomsmeding> | Profpatsch: how many >>= were executed or something more high-level? |
2022-07-19 19:03:41 +0200 | <Profpatsch> | tomsmeding: just how many m a’s |
2022-07-19 19:04:06 +0200 | <Profpatsch> | tomsmeding: i.e. f <$> ma <*> mb counts to 2 if both ma and mb have a count of 1 |
2022-07-19 19:04:22 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Ping timeout: 244 seconds) |
2022-07-19 19:04:31 +0200 | <tomsmeding> | How much does `return () >> return ()` count for? |
2022-07-19 19:04:37 +0200 | <Profpatsch> | 0 |
2022-07-19 19:05:00 +0200 | <tomsmeding> | And `return 42 >>= \x -> return (x + 1)`? |
2022-07-19 19:05:37 +0200 | <Profpatsch> | tomsmeding: I think I’m thinking about this wrong |
2022-07-19 19:05:43 +0200 | <tomsmeding> | If also 0, then I think your only option is WriterT (Sum Natural), and `tell` 1 in each of your primitive monadic actions that _do_ cost |
2022-07-19 19:05:53 +0200 | <Profpatsch> | tomsmeding: yes, exactly |
2022-07-19 19:06:09 +0200 | <Profpatsch> | tomsmeding: But would you use a StateT or a WriterT? |
2022-07-19 19:06:15 +0200 | <Profpatsch> | Afaik WriterT always leaks spaces |
2022-07-19 19:06:17 +0200 | <Profpatsch> | -s |
2022-07-19 19:06:18 +0200 | <tomsmeding> | Because then there's no inherent feature in Haskell that determines whether actions cost something or not |
2022-07-19 19:06:36 +0200 | <tomsmeding> | There is a cps-based writer that is supposed to be better |
2022-07-19 19:07:09 +0200 | <Profpatsch> | I mean I could put it all in STM or something :) |
2022-07-19 19:07:18 +0200 | <c_wraith> | note that CPS'd WriterT is the same type as StateT. it just exposes different operations |
2022-07-19 19:07:19 +0200 | <tomsmeding> | https://hackage.haskell.org/package/transformers-0.6.0.4/docs/Control-Monad-Trans-Writer-CPS.html |
2022-07-19 19:07:26 +0200 | <Profpatsch> | But this is just for a test |
2022-07-19 19:07:28 +0200 | <tomsmeding> | Ah |
2022-07-19 19:07:29 +0200 | <Profpatsch> | so nobody really cares |
2022-07-19 19:07:36 +0200 | <Profpatsch> | c_wraith: oh that’s pretty cool |
2022-07-19 19:07:40 +0200 | <Profpatsch> | Will keep that in mind! |
2022-07-19 19:07:47 +0200 | <Profpatsch> | I guess this should really be the default writer |
2022-07-19 19:08:32 +0200 | <Profpatsch> | What a bother that the default WriterT exposes its constructor |
2022-07-19 19:08:36 +0200 | <Profpatsch> | otherwise we could just replace it |
2022-07-19 19:09:17 +0200 | <Profpatsch> | Why there is no big fat warning in the WriterT documentation at this point is beyond me |
2022-07-19 19:09:40 +0200 | <tomsmeding> | I mean, there is a warning, it's just very innocuous :p |
2022-07-19 19:09:43 +0200 | <c_wraith> | the default WriterT is on rare occasion the correct choice - when you want the concatenation to be non-strict |
2022-07-19 19:09:50 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-19 19:10:06 +0200 | <Profpatsch> | c_wraith: it’s not an actual wrapper around StateT btw |
2022-07-19 19:10:15 +0200 | <Profpatsch> | https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Writer.CPS.h… |
2022-07-19 19:10:16 +0200 | <tomsmeding> | "on rare occasion" does sound like, ideally, it shouldn't have been the default |
2022-07-19 19:10:18 +0200 | <Profpatsch> | Just isomorphic |
2022-07-19 19:10:34 +0200 | <Profpatsch> | tomsmeding: Haskell has a lot of things that people only figured out over the years :) |
2022-07-19 19:10:39 +0200 | <Profpatsch> | Like `return` |
2022-07-19 19:10:47 +0200 | <tomsmeding> | Profpatsch: both are newtypes, so they are even representationally equal ;) |
2022-07-19 19:10:49 +0200 | <c_wraith> | err. yes. my phrasing was somewhere in the neighborhood of misleading to wrong |
2022-07-19 19:11:10 +0200 | <tomsmeding> | Profpatsch: oh for sure, I'm not saying the designers of `transformers` should've known better |
2022-07-19 19:11:30 +0200 | <tomsmeding> | It would have been nice, but hindsight is cheap |
2022-07-19 19:11:31 +0200 | gff | (~gff@70.56.148.67) (Quit: WeeChat 3.0) |
2022-07-19 19:11:40 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-07-19 19:11:43 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 19:11:51 +0200 | <Profpatsch> | tomsmeding: We just have a buncho hlint rules that enforce things like this |
2022-07-19 19:12:03 +0200 | gff | (~gff@user/gff) |
2022-07-19 19:12:03 +0200 | <Profpatsch> | e.g. one that tells users to not import Data.Map and import Data.Map.Strict instead |
2022-07-19 19:12:16 +0200 | <tomsmeding> | Oh is that an hlint rule? |
2022-07-19 19:12:17 +0200 | <Profpatsch> | And now I’m gonna add one for Writer.CPS |
2022-07-19 19:12:21 +0200 | <tomsmeding> | That's one of the better ones then |
2022-07-19 19:12:24 +0200 | <Profpatsch> | tomsmeding: only in our codebase |
2022-07-19 19:12:30 +0200 | <tomsmeding> | Ah :) |
2022-07-19 19:12:45 +0200 | <Profpatsch> | tomsmeding: But you and me both |
2022-07-19 19:12:57 +0200 | <Profpatsch> | tomsmeding: https://gist.github.com/Profpatsch/5a41d0283755d573511b08c01ff40148 |
2022-07-19 19:13:28 +0200 | <Profpatsch> | To me it seems like hlint was built to nudge people towards maximally unreadable code :P |
2022-07-19 19:13:31 +0200 | <tomsmeding> | Profpatsch: line 11 has a missed opportunity for a pun |
2022-07-19 19:13:43 +0200 | <Profpatsch> | tomsmeding: oh |
2022-07-19 19:13:44 +0200 | <Profpatsch> | lol |
2022-07-19 19:14:21 +0200 | <tomsmeding> | Oh man that "Use fmap" thing is so harmful |
2022-07-19 19:14:42 +0200 | econo | (uid147250@user/econo) |
2022-07-19 19:15:12 +0200 | <tomsmeding> | Where it tells you to change `do x <- long action and stuff ; return (x and more things)` to `(\x -> x and more things) <$> long action and stuff` |
2022-07-19 19:15:18 +0200 | <tomsmeding> | _no_ that is not more readable |
2022-07-19 19:15:26 +0200 | <c_wraith> | sometimes I really do want to case on a Book! |
2022-07-19 19:15:36 +0200 | <c_wraith> | err. Bool. thanks, autocorrect |
2022-07-19 19:17:18 +0200 | <tomsmeding> | Profpatsch: the isNothing thing actually has a reason, sortof: (== Nothing) requires Eq of the contained type, whereas isNothing doesn't |
2022-07-19 19:17:18 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-07-19 19:17:26 +0200 | <Profpatsch> | tomsmeding: yeah that’s true |
2022-07-19 19:17:27 +0200 | fserucas_ | (~fserucas@39.64.114.89.rev.vodafone.pt) (Quit: Leaving) |
2022-07-19 19:17:28 +0200 | <Profpatsch> | however |
2022-07-19 19:17:31 +0200 | <Profpatsch> | I can still write isNothing |
2022-07-19 19:17:37 +0200 | <Profpatsch> | if the type really doesn’t have Eq |
2022-07-19 19:17:44 +0200 | <Profpatsch> | It’s not like it will complain about that |
2022-07-19 19:17:53 +0200 | <tomsmeding> | Though if there _is_ an Eq instance, it shouldn't really matter for runtime performance in the end |
2022-07-19 19:17:58 +0200 | <tomsmeding> | Yeah |
2022-07-19 19:17:59 +0200 | <Profpatsch> | But in that case I’d probably just case-match anyway |
2022-07-19 19:18:23 +0200 | <[Leary]> | > null Nothing |
2022-07-19 19:18:24 +0200 | <tomsmeding> | I agree with most of your ignores :p |
2022-07-19 19:18:25 +0200 | <lambdabot> | True |
2022-07-19 19:18:34 +0200 | <[Leary]> | Is the other option. |
2022-07-19 19:18:40 +0200 | <Profpatsch> | [Leary]: Don’t remind me of Foldable omg |
2022-07-19 19:18:46 +0200 | <Profpatsch> | you troll |
2022-07-19 19:18:51 +0200 | <tomsmeding> | Well, I agree with all, because I prefer not to use a style linter at all lol |
2022-07-19 19:19:10 +0200 | <[Leary]> | I actually like how generalised all the Foldable stuff is. *shrug* |
2022-07-19 19:19:14 +0200 | <Profpatsch> | tomsmeding: hlint is super helpful if you want to tell people in your company that there is a better variant |
2022-07-19 19:19:31 +0200 | <tomsmeding> | Right |
2022-07-19 19:19:53 +0200 | <tomsmeding> | Now let it be the case that I'm doing a phd and write code mostly by myself :) |
2022-07-19 19:20:13 +0200 | <Profpatsch> | [Leary]: Then you obviously never had a production bug because somebody changed (\a :: Int -> length a) to (\a :: (Int, Bool) -> length a) lol |
2022-07-19 19:20:23 +0200 | <Profpatsch> | We had one,, in our authentication logic |
2022-07-19 19:20:33 +0200 | <tomsmeding> | Profpatsch: length :: Int -> Int? |
2022-07-19 19:20:49 +0200 | <Profpatsch> | tomsmeding: err replace Int with [Int] or something |
2022-07-19 19:20:51 +0200 | <tomsmeding> | s/Int/[Int]/ presumably :p |
2022-07-19 19:20:52 +0200 | <tomsmeding> | Yeah |
2022-07-19 19:20:55 +0200 | <Profpatsch> | was thinking wrong |
2022-07-19 19:21:02 +0200 | <Profpatsch> | Or [a] |
2022-07-19 19:21:09 +0200 | <tomsmeding> | Or Maybe a |
2022-07-19 19:21:24 +0200 | razetime | (~quassel@117.254.35.64) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-07-19 19:21:25 +0200 | <Profpatsch> | So for example there is a hlint rule that tells people to use List.length instead of Foldable.length |
2022-07-19 19:21:27 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-19 19:21:35 +0200 | <Profpatsch> | which will prevent such bugs, by being specific about the container |
2022-07-19 19:21:42 +0200 | <tomsmeding> | Or Const () a |
2022-07-19 19:21:46 +0200 | <tomsmeding> | ;) |
2022-07-19 19:21:52 +0200 | <Profpatsch> | Oh, there was also multiple runtime crashes because of `maximum`. Fun stuff! |
2022-07-19 19:22:05 +0200 | <Profpatsch> | Note how the default instance of `maximum` in the class is … partial |
2022-07-19 19:22:17 +0200 | <Profpatsch> | Because it’s impossible to have a sensible `maximum` for Foldable |
2022-07-19 19:22:34 +0200 | <tomsmeding> | If you use the linter to selectively enable the really useful rules, then I can see it being very helpful, especially in a company context |
2022-07-19 19:22:49 +0200 | mastarija | (~mastarija@2a05:4f46:e02:8c00:c16d:6f16:8e31:78a1) (Quit: Leaving) |
2022-07-19 19:22:52 +0200 | <Profpatsch> | tomsmeding: hlint is actually a super useful tool, just not with good defaults |
2022-07-19 19:22:54 +0200 | <Profpatsch> | like … vim for example |
2022-07-19 19:22:59 +0200 | <tomsmeding> | Heh |
2022-07-19 19:23:06 +0200 | <tomsmeding> | Maybe that's the conclusion |
2022-07-19 19:23:45 +0200 | <tomsmeding> | I lazily revetted to hls.config.hlintOn = false |
2022-07-19 19:23:49 +0200 | <tomsmeding> | *reverted |
2022-07-19 19:24:15 +0200 | <Profpatsch> | tomsmeding: yeah if you create projects a lot, that’s probably the best if you don’t want to copy the default config everywhere |
2022-07-19 19:24:17 +0200 | <tomsmeding> | > null (Const 42) |
2022-07-19 19:24:18 +0200 | <Profpatsch> | tho nothing wrong with that. |
2022-07-19 19:24:19 +0200 | <lambdabot> | True |
2022-07-19 19:24:40 +0200 | <Profpatsch> | tomsmeding: wait, does that monomorphise to Const ()? |
2022-07-19 19:24:58 +0200 | <tomsmeding> | There is `instance Foldable (Const m)` |
2022-07-19 19:25:20 +0200 | <tomsmeding> | So it doesn't even matter what it monomorphises to :p |
2022-07-19 19:25:25 +0200 | <Profpatsch> | oh noooo |
2022-07-19 19:25:29 +0200 | <tomsmeding> | > toList (Const [1,2,3]) |
2022-07-19 19:25:30 +0200 | <lambdabot> | [] |
2022-07-19 19:25:49 +0200 | <tomsmeding> | :t Const |
2022-07-19 19:25:50 +0200 | <lambdabot> | forall k a (b :: k). a -> Const a b |
2022-07-19 19:26:03 +0200 | <tomsmeding> | There are no b's in a Const |
2022-07-19 19:26:05 +0200 | <geekosaur> | and in any case () is a valid monomorphization because ExtendedDefaultRules is on |
2022-07-19 19:26:08 +0200 | <Profpatsch> | foldl1 _ _ = errorWithoutStackTrace "foldl1: Proxy" |
2022-07-19 19:26:10 +0200 | <Profpatsch> | foldr1 _ _ = errorWithoutStackTrace "foldr1: Proxy" |
2022-07-19 19:26:12 +0200 | <Profpatsch> | hm |
2022-07-19 19:27:01 +0200 | <tomsmeding> | > toList (Proxy :: Proxy Int) |
2022-07-19 19:27:04 +0200 | <lambdabot> | [] |
2022-07-19 19:27:20 +0200 | <tomsmeding> | Lol that's got to be the most useless Foldable instance ever |
2022-07-19 19:27:43 +0200 | <tomsmeding> | I see why it's there though, it enables auto-deriving Foldable on a data type containing proxies |
2022-07-19 19:28:00 +0200 | <Profpatsch> | I guess that’s the reason for most of these instances |
2022-07-19 19:28:05 +0200 | <tomsmeding> | Yeah |
2022-07-19 19:28:13 +0200 | <Profpatsch> | just shouldn’t be in Prelude |
2022-07-19 19:28:46 +0200 | <tomsmeding> | You mean the instance should be orphaned and put in a different module, like Show (a -> b) is in Text.Show.Functions? |
2022-07-19 19:29:17 +0200 | <tomsmeding> | Not sure that's an improvement |
2022-07-19 19:29:21 +0200 | <Profpatsch> | tomsmeding: I mean Prelude.length should have type :: [a] -> Int |
2022-07-19 19:29:27 +0200 | <tomsmeding> | Ah yeah |
2022-07-19 19:29:41 +0200 | <Profpatsch> | cause you can always use it with length . toList |
2022-07-19 19:29:43 +0200 | <Profpatsch> | if you really must |
2022-07-19 19:29:50 +0200 | <tomsmeding> | Or Foldable.length |
2022-07-19 19:29:54 +0200 | <Profpatsch> | I guess toList can be in Prelude |
2022-07-19 19:29:59 +0200 | <Profpatsch> | That would make sense |
2022-07-19 19:30:05 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 255 seconds) |
2022-07-19 19:30:12 +0200 | <geekosaur> | but that's annoying if you want e.g. the size of a Set |
2022-07-19 19:30:15 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-07-19 19:30:25 +0200 | <geekosaur> | instead of using custom functions (which Sets admittedly have) |
2022-07-19 19:30:44 +0200 | <Profpatsch> | geekosaur: that’s Set.size |
2022-07-19 19:30:45 +0200 | tomsmeding | always uses Set.size |
2022-07-19 19:31:13 +0200 | <Profpatsch> | With hls it’s like “write it down, hit Ctrl+. and Enter” |
2022-07-19 19:31:19 +0200 | <Profpatsch> | And you got the right import |
2022-07-19 19:31:35 +0200 | <Profpatsch> | Okay, maybe once hls sorts the import suggestions by most viable instead of just alphabetically |
2022-07-19 19:32:00 +0200 | <tomsmeding> | What I don't like about that auto-import feature is that it just dumps it at the bottom |
2022-07-19 19:32:03 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 19:32:18 +0200 | <tomsmeding> | Maybe I'm going to patch my hls at some point to insert it where I want it to go |
2022-07-19 19:32:46 +0200 | <tomsmeding> | Though that'll be more than a one-line change |
2022-07-19 19:33:20 +0200 | <tomsmeding> | I already have it patched to auto-complete case-insensitively :p |
2022-07-19 19:33:37 +0200 | <tomsmeding> | I don't want to have to press Shift to get Maybe |
2022-07-19 19:34:08 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-19 19:34:24 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) |
2022-07-19 19:35:36 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-19 19:36:48 +0200 | <Profpatsch> | tomsmeding: how much effort is it to patch hls? |
2022-07-19 19:37:10 +0200 | <Profpatsch> | I guess I use nix for the environment so it should be pretty easy to get it distributed once I have a patch |
2022-07-19 19:38:32 +0200 | <qrpnxz> | look like diff arrays are a bust :( STArray/Vector here i come |
2022-07-19 19:39:01 +0200 | <tomsmeding> | Profpatsch: Building hls is just `cabal build`, once you have copied the right cabal.project.* to cabal.project |
2022-07-19 19:39:11 +0200 | <tomsmeding> | So patching is just, well, editing the code :p |
2022-07-19 19:39:40 +0200 | <Profpatsch> | tomsmeding: nice |
2022-07-19 19:39:41 +0200 | <tomsmeding> | qrpnxz: iirc diff arrays look promising but have pretty bad constant factor performanc3 |
2022-07-19 19:39:51 +0200 | <tomsmeding> | *performance |
2022-07-19 19:39:54 +0200 | <Profpatsch> | tomsmeding: But hls has a billion zillion deps no? |
2022-07-19 19:39:54 +0200 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2022-07-19 19:39:55 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
2022-07-19 19:39:59 +0200 | <tomsmeding> | Yes :D |
2022-07-19 19:40:07 +0200 | <tomsmeding> | That's why we have cabal |
2022-07-19 19:40:09 +0200 | <Profpatsch> | for the 1 Million $ question: can you run hls on the hls codebase |
2022-07-19 19:40:13 +0200 | <tomsmeding> | Yes |
2022-07-19 19:40:16 +0200 | <Profpatsch> | nice |
2022-07-19 19:40:32 +0200 | <qrpnxz> | i looked into it, and it seem like they were ok/good, but at some point GHC changed and they got bad, and nobody has been interested in fixing/replacing/mantain it since. For like 20 years. Pretty sad tbh |
2022-07-19 19:40:34 +0200 | <Profpatsch> | I should get into some hls tasks on company time |
2022-07-19 19:40:51 +0200 | <tomsmeding> | qrpnxz: ah TIL |
2022-07-19 19:41:36 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-07-19 19:42:17 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) |
2022-07-19 19:45:43 +0200 | <qrpnxz> | or probably i should be giving up on arrays and just use a intmap lol |
2022-07-19 19:54:56 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 19:55:25 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 19:55:28 +0200 | chele | (~chele@user/chele) (Quit: Leaving) |
2022-07-19 19:56:27 +0200 | <yin> | qrpnxz: what's the performance you're after? |
2022-07-19 19:58:09 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-07-19 19:59:39 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 20:00:11 +0200 | <qrpnxz> | just... as fast as possible :) ik that's not helpful, but I'm writing this for learning purposes not so much a particular practical goal. I also haven't benchmarked anything so probably this is even premature optimization, but I just know (i'm so getting jinxed) that all the copying of an Array is begging use either mutable or something else. |
2022-07-19 20:05:23 +0200 | <yin> | ok, so different structures will have different compromises |
2022-07-19 20:05:45 +0200 | <yin> | so there is not a right answer for the general case |
2022-07-19 20:06:10 +0200 | <yin> | have you tried unboxed vectors? |
2022-07-19 20:06:28 +0200 | <yin> | they have constant accessors |
2022-07-19 20:06:56 +0200 | <yin> | https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector-Unboxed.htm |
2022-07-19 20:07:14 +0200 | <yin> | oops |
2022-07-19 20:07:19 +0200 | <yin> | https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector-Unboxed.html |
2022-07-19 20:07:30 +0200 | <qrpnxz> | yeah, i think mutable unboxed would be the fastest, but I think that some kind of map could give me really good bang for my buck in pure code and possibly enable parallelization |
2022-07-19 20:07:35 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-07-19 20:08:45 +0200 | <[exa]> | yin: re brick, we tried with students and it's pretty much okay for ~20fps games in standard-size terminal |
2022-07-19 20:09:23 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 20:09:31 +0200 | <[exa]> | the slowest thing there is brick laying out simple stuff ("pixel" characters in rows), I guess that can be circumvented with much performance gain |
2022-07-19 20:09:58 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e70586378c7d9ef9e9e8454b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-19 20:10:31 +0200 | <yin> | thanks [exa] |
2022-07-19 20:11:02 +0200 | <yin> | i'm exploring vty and ansi-terminal-game |
2022-07-19 20:11:37 +0200 | <[exa]> | like, making a widget for your "graphical" stuff that renders directly to vty would probably solve most of the problems. Brick really is for "bricks" ie. tUI stuff |
2022-07-19 20:11:54 +0200 | <sm> | i think ansi-terminal-game at least can run faster than that |
2022-07-19 20:12:19 +0200 | <sm> | I suooose it depends on your machine and terminal sw |
2022-07-19 20:13:36 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 244 seconds) |
2022-07-19 20:13:37 +0200 | <exarkun> | how much difference does, eg, gnome-terminal vs alacritty make |
2022-07-19 20:13:43 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-19 20:13:48 +0200 | <yin> | i'm interested in displaying 2D simulations mostly, think many layers of different automata interacting with themselves plus player events |
2022-07-19 20:14:11 +0200 | <yin> | so my challenge is to display a map that updates quite frequently |
2022-07-19 20:14:52 +0200 | <tomsmeding> | yin: if you use unicode, prepare for slowness in some terminals |
2022-07-19 20:15:02 +0200 | <yin> | that's why i was considering openGL :) |
2022-07-19 20:15:06 +0200 | <tomsmeding> | Ascii is fast enough in all common terminals |
2022-07-19 20:15:36 +0200 | <tomsmeding> | Macos Terminal.app was notorious in the past for slow unicode; might have improved in the meantime |
2022-07-19 20:15:56 +0200 | <yin> | ascii suffices |
2022-07-19 20:16:16 +0200 | <tomsmeding> | Then terminal rendering performance shouldn't slow you down much |
2022-07-19 20:16:16 +0200 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
2022-07-19 20:16:43 +0200 | <sm> | I'd measure before abandoning ansi for opengl, that's quite a jump |
2022-07-19 20:16:43 +0200 | <sm> | in complexity :) |
2022-07-19 20:17:28 +0200 | <yin> | gloss looks simple enough! |
2022-07-19 20:17:36 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 20:18:04 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-07-19 20:18:59 +0200 | <sm> | true |
2022-07-19 20:19:28 +0200 | <yin> | but yeah that's exactly where i'm at right now. going to try terminal first |
2022-07-19 20:19:44 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 20:21:04 +0200 | <yin> | keep the interface layer separated so i can test both |
2022-07-19 20:22:41 +0200 | <exarkun> | is there a ghc extension that lets you compile haskell down to vertex shaders (et al), or whatever it is modern graphics cards use? |
2022-07-19 20:24:45 +0200 | hnOsmium0001 | (uid453710@user/hnOsmium0001) |
2022-07-19 20:24:56 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 20:26:42 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-07-19 20:27:35 +0200 | <merijn> | exarkun: No |
2022-07-19 20:27:44 +0200 | <merijn> | exarkun: And unlikely to exist anytime soon :p |
2022-07-19 20:28:05 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 20:29:06 +0200 | nightbreak | (~nightbrea@2600:1700:70d1:d800:4c68:423:c75b:c148) (Ping timeout: 244 seconds) |
2022-07-19 20:30:50 +0200 | <exarkun> | aww |
2022-07-19 20:30:55 +0200 | nightbreak | (~nightbrea@2600:1700:70d1:d800:78c0:dca8:2899:48b2) |
2022-07-19 20:32:53 +0200 | lys | (sid194105@user/lys) () |
2022-07-19 20:32:54 +0200 | slack1256 | (~slack1256@191.125.227.211) (Read error: Connection reset by peer) |
2022-07-19 20:34:39 +0200 | slack1256 | (~slack1256@186.11.21.37) |
2022-07-19 20:36:10 +0200 | <merijn> | exarkun: That said, lemme do Athas' work and shill you some Futhark ;) |
2022-07-19 20:36:22 +0200 | <merijn> | exarkun: https://futhark-lang.org/ |
2022-07-19 20:36:33 +0200 | <merijn> | exarkun: Which is as close to what you want as you can currently (afaik) get :p |
2022-07-19 20:36:58 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-19 20:37:23 +0200 | <exarkun> | neat |
2022-07-19 20:39:54 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-19 20:40:36 +0200 | sm | meant faster than 20fps |
2022-07-19 20:41:13 +0200 | <[exa]> | sm: wow I didn't know about ansi-terminal-game |
2022-07-19 20:41:15 +0200 | <[exa]> | cool |
2022-07-19 20:44:24 +0200 | <[exa]> | exarkun: there's been a bit of recent development on that front, llvm can be translated to spir-v which can be run as a compute shader pretty much anywhere |
2022-07-19 20:44:59 +0200 | <sm> | if you need fast text display using opengl, I believe ic.rbow in #haskell-game has a lib |
2022-07-19 20:45:09 +0200 | <[exa]> | there's a hefty one-time investment of the vulkan boilerplate that runs it for you but it generally works nicely |
2022-07-19 20:45:19 +0200 | son0p | (~ff@181.136.122.143) |
2022-07-19 20:49:13 +0200 | <exarkun> | Huh, did I even know there was an llvm backend for Haskell? maybe not. is this a real thing or just a one-off proof of concept from 15 years ago? |
2022-07-19 20:49:32 +0200 | <merijn> | exarkun: It's been working in mainline GHC for over a decade? |
2022-07-19 20:49:41 +0200 | <merijn> | exarkun: It's a bit finnicky, but it's been around for ages |
2022-07-19 20:49:49 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 20:50:16 +0200 | Guest|27 | (~Guest|27@151.45.227.234) |
2022-07-19 20:51:00 +0200 | Guest|27 | (~Guest|27@151.45.227.234) (Client Quit) |
2022-07-19 20:51:08 +0200 | <[exa]> | I was thinking more of some kind of EDSL that runs atop llvm-hs or so, compiling the haskellish llvm to vulkan is IMHO a sci-fi at this point |
2022-07-19 20:51:46 +0200 | <exarkun> | aha, there is real documentation, just took me a few tries to look in the right place, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/codegens.html?highlight=llvm#llvm-c… |
2022-07-19 20:51:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-07-19 20:52:01 +0200 | <exarkun> | [exa]: ah I see |
2022-07-19 20:52:03 +0200 | <exarkun> | still, neat |
2022-07-19 20:52:34 +0200 | <[exa]> | I kindof hope someone makes a dedicated EDSL for spir-v |
2022-07-19 20:52:41 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-07-19 20:54:20 +0200 | <[exa]> | the availability of vulkan on hardware is cool, you can veeeeeery easily surpass openCL with it, and the shaders are more-or-less portable between vendors (slash some typical issues like workgroup sizing etc) |
2022-07-19 20:58:21 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-19 20:59:24 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-19 21:05:01 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-19 21:06:43 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-19 21:08:12 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-19 21:08:49 +0200 | cyphase_eviltwin | (~cyphase@user/cyphase) (Ping timeout: 272 seconds) |
2022-07-19 21:10:38 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) (Ping timeout: 240 seconds) |
2022-07-19 21:10:59 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 21:15:40 +0200 | nightbreak[Away] | nightbreak |
2022-07-19 21:15:41 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7058637b1e8edca185469f4.dip0.t-ipconnect.de) |
2022-07-19 21:24:14 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 21:30:50 +0200 | Kevin578 | (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 268 seconds) |
2022-07-19 21:32:21 +0200 | slac90600 | (~slack1256@191.126.227.211) |
2022-07-19 21:33:39 +0200 | Kevin578 | (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
2022-07-19 21:33:52 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-19 21:35:09 +0200 | slack1256 | (~slack1256@186.11.21.37) (Ping timeout: 268 seconds) |
2022-07-19 21:35:26 +0200 | slac90600 | slack1256 |
2022-07-19 21:36:56 +0200 | y04nn | (~y04nn@nayon.fr) |
2022-07-19 21:37:29 +0200 | nightbreak | nightbreak[Away] |
2022-07-19 21:47:42 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2022-07-19 21:48:49 +0200 | cyphase_eviltwin | (~cyphase@user/cyphase) |
2022-07-19 21:50:28 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 21:50:39 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-07-19 21:53:49 +0200 | lys | (sid194105@user/lys) |
2022-07-19 21:54:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 21:55:21 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-07-19 21:59:14 +0200 | asarch | (~asarch@2806:10ae:7:f3be:b47:e21f:5e63:b176) |
2022-07-19 22:00:50 +0200 | polo | (~Gambino@user/polo) |
2022-07-19 22:01:09 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2022-07-19 22:01:09 +0200 | jinsun__ | jinsun |
2022-07-19 22:02:13 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-07-19 22:07:42 +0200 | polo | (~Gambino@user/polo) (Read error: Connection reset by peer) |
2022-07-19 22:08:58 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 22:09:04 +0200 | Polo | (~Gambino@user/polo) |
2022-07-19 22:11:28 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-07-19 22:12:57 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 22:14:16 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-07-19 22:15:07 +0200 | jinsun | Guest4203 |
2022-07-19 22:15:07 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2022-07-19 22:15:07 +0200 | Guest4203 | (~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
2022-07-19 22:15:07 +0200 | jinsun__ | jinsun |
2022-07-19 22:15:44 +0200 | econo | (uid147250@user/econo) |
2022-07-19 22:21:21 +0200 | Polo | (~Gambino@user/polo) (Killed (tungsten.libera.chat (Nickname regained by services))) |
2022-07-19 22:22:07 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 22:22:41 +0200 | talismanick | (~talismani@campus-043-126.ucdavis.edu) |
2022-07-19 22:25:14 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 22:27:38 +0200 | merijn | (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2022-07-19 22:28:58 +0200 | asarch | (~asarch@2806:10ae:7:f3be:b47:e21f:5e63:b176) (Quit: Leaving) |
2022-07-19 22:30:31 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-19 22:31:51 +0200 | <tomsmeding> | exarkun: the llvm backend drove arm support until ghc's native code generator started supporting arm in either 9.0 or 9.2 |
2022-07-19 22:34:14 +0200 | <wrengr> | You might also want to take a look at MLIR which can do various vulkan/spirv things, and which has Haskell bindings |
2022-07-19 22:34:34 +0200 | winny | (~weechat@user/winny) (Remote host closed the connection) |
2022-07-19 22:35:07 +0200 | winny | (~weechat@user/winny) |
2022-07-19 22:36:15 +0200 | raym | (~raym@user/raym) (Remote host closed the connection) |
2022-07-19 22:36:59 +0200 | Topsi | (~Topsi@dyndsl-095-033-017-083.ewe-ip-backbone.de) |
2022-07-19 22:47:38 +0200 | Topsi | (~Topsi@dyndsl-095-033-017-083.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-07-19 22:49:09 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
2022-07-19 22:49:18 +0200 | talismanick | (~talismani@campus-043-126.ucdavis.edu) (Ping timeout: 264 seconds) |
2022-07-19 22:49:51 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-19 22:56:05 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2022-07-19 22:56:29 +0200 | <John_Ivan> | Hi, anyone wanna tell me what does it mean by the following error? https://pastebin.com/7Qz9dME7 |
2022-07-19 22:56:34 +0200 | <John_Ivan> | main.hs:5:25: error:Variable not in scope:split :: (Char, String) -> [String] |
2022-07-19 22:57:34 +0200 | <[exa]> | John_Ivan: it doesn't know the split function |
2022-07-19 22:57:34 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-19 22:57:51 +0200 | <John_Ivan> | is the function a "variable?" |
2022-07-19 22:58:20 +0200 | <[exa]> | yes, functions are normal values |
2022-07-19 22:58:48 +0200 | <[exa]> | btw you seem to use C-style function argument passing -- haskell doesn't use the parentheses() to call |
2022-07-19 22:58:59 +0200 | <[exa]> | the canonical way to call the split with 2 arguments is roughly like |
2022-07-19 22:59:07 +0200 | <[exa]> | split '/' "some/string" |
2022-07-19 22:59:17 +0200 | <John_Ivan> | [exa], ok I'll change that. what package would contain the "String.split" method? |
2022-07-19 22:59:40 +0200 | <[exa]> | given ofcourse there's a function that does splitting |
2022-07-19 22:59:51 +0200 | <c_wraith> | @hoogle split |
2022-07-19 22:59:52 +0200 | <lambdabot> | Data.ByteString split :: Word8 -> ByteString -> [ByteString] |
2022-07-19 22:59:52 +0200 | <lambdabot> | Data.ByteString.Char8 split :: Char -> ByteString -> [ByteString] |
2022-07-19 22:59:52 +0200 | <lambdabot> | Data.ByteString.Lazy split :: Word8 -> ByteString -> [ByteString] |
2022-07-19 23:00:01 +0200 | <c_wraith> | Hmm. not any of those. darn you, lambdabot! |
2022-07-19 23:00:13 +0200 | <c_wraith> | it's in a package called... wait for it... split |
2022-07-19 23:00:15 +0200 | <[exa]> | likely the one from Data.List.Split |
2022-07-19 23:00:23 +0200 | <[exa]> | yeah, that one ^ |
2022-07-19 23:01:00 +0200 | <John_Ivan> | main.hs:1:1: error:Failed to load interface for ‘Data.List.Split’ |
2022-07-19 23:01:05 +0200 | <John_Ivan> | "import Data.List.Split" ;/ |
2022-07-19 23:01:57 +0200 | <[exa]> | John_Ivan: you might need to pass `-package split` |
2022-07-19 23:02:09 +0200 | <[exa]> | (and maybe install the package) |
2022-07-19 23:02:22 +0200 | <John_Ivan> | I'm using an online compiler - https://www.tutorialspoint.com/compile_haskell_online.php |
2022-07-19 23:02:36 +0200 | <[exa]> | (at this point it may look weird that splitting is not in a total base library, but in functional programming this functionality is kinda frowned upon) |
2022-07-19 23:02:39 +0200 | <John_Ivan> | so no standard library incorporated for string split handling? :( |
2022-07-19 23:02:48 +0200 | <John_Ivan> | eh? |
2022-07-19 23:02:53 +0200 | <John_Ivan> | how come |
2022-07-19 23:03:11 +0200 | <[exa]> | too many ways to do it wrong |
2022-07-19 23:03:59 +0200 | <Rembane> | Too many kinds of strings |
2022-07-19 23:04:03 +0200 | <John_Ivan> | Every day, little by little, I lose faith in functional programming :( |
2022-07-19 23:04:11 +0200 | <[exa]> | anyway, you can very easily do the split in a way that is good for you |
2022-07-19 23:04:53 +0200 | <John_Ivan> | No, actually, sorry but I think I'll put haskell away for yet another few months. Because the more I explore this language, the more I find dissapointment in it than anything worthwhile. |
2022-07-19 23:04:54 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 264 seconds) |
2022-07-19 23:05:14 +0200 | <John_Ivan> | Sorry about that. Appreciate the help though. |
2022-07-19 23:05:18 +0200 | <[exa]> | John_Ivan: in your case I'd use: splitAt _ [] = []; splitAt c xs = takeWhile (/= c) xs : splitAt c (dropWhile (/= c) xs) |
2022-07-19 23:05:29 +0200 | <c_wraith> | Why do you think it has anything to do with "functional programming"? |
2022-07-19 23:05:48 +0200 | <c_wraith> | It's much more a case of "most every standard library gets this wrong. let's not do that." |
2022-07-19 23:05:52 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-19 23:06:13 +0200 | <John_Ivan> | ok |
2022-07-19 23:07:44 +0200 | <John_Ivan> | c_wraith, I do not see anything objectively or subjectively wrong with a clear functionality that involves iterating character by character and splitting a string into an array of strings by that delimiter. |
2022-07-19 23:07:46 +0200 | <[exa]> | (btw my example there contains a small mistake, I sholdn't code directly to IRC :D ) |
2022-07-19 23:08:16 +0200 | <John_Ivan> | if the "functional programming" community does, then I don't know how to retaliate. |
2022-07-19 23:08:52 +0200 | <John_Ivan> | [exa], that's ok, no worries. |
2022-07-19 23:09:33 +0200 | <c_wraith> | John_Ivan: unicode breaks a lot of things |
2022-07-19 23:09:53 +0200 | <c_wraith> | John_Ivan: for instance, there are a lot of glyphs which aren't represented by single codepoints. |
2022-07-19 23:10:08 +0200 | <John_Ivan> | I suppose it does, isn't it wiser to offer the encoding you expect to work on in each string function? |
2022-07-19 23:10:25 +0200 | <c_wraith> | that's not even the same thing |
2022-07-19 23:10:31 +0200 | <c_wraith> | encoding is for bytes |
2022-07-19 23:10:35 +0200 | <c_wraith> | unicode is about code points |
2022-07-19 23:10:38 +0200 | y04nn4471 | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-19 23:10:46 +0200 | <John_Ivan> | yet no unicode implementation exists without bytes |
2022-07-19 23:10:52 +0200 | <John_Ivan> | be it UTF8 or widechar |
2022-07-19 23:10:55 +0200 | <John_Ivan> | or w/e |
2022-07-19 23:10:57 +0200 | <c_wraith> | those are encodings |
2022-07-19 23:11:02 +0200 | <John_Ivan> | hence my point. |
2022-07-19 23:11:03 +0200 | <c_wraith> | unicode doesn't describe those |
2022-07-19 23:11:14 +0200 | <c_wraith> | I mean, it does, in an appendix somewhere |
2022-07-19 23:11:20 +0200 | <c_wraith> | but they're not what it's about |
2022-07-19 23:11:30 +0200 | <John_Ivan> | alright. |
2022-07-19 23:11:51 +0200 | <[exa]> | John_Ivan: btw that view of split assumes that you want to store the result (people rarely want to) |
2022-07-19 23:12:21 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 23:13:05 +0200 | y04nn | (~y04nn@nayon.fr) (Ping timeout: 260 seconds) |
2022-07-19 23:14:17 +0200 | <[exa]> | John_Ivan: anyway for the specialized "array-ish" representation of strings (Data.Text) there's the obvious splitOn: https://hackage.haskell.org/package/text-2.0/docs/Data-Text.html#v:splitOn |
2022-07-19 23:16:35 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-07-19 23:16:35 +0200 | <slack1256> | Do common complains to ORM apply to libraries such as opaleye? |
2022-07-19 23:19:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-07-19 23:24:06 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-19 23:24:21 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-07-19 23:25:15 +0200 | <monochrom> | Belated, but most users of string splitting libraries are aiming for parsing. We go ahead and do parsing directly. |
2022-07-19 23:26:14 +0200 | <monochrom> | But yeah if you shoehorn an idiom designed for one programming style to another programming style, you are supposed to be disappointed. |
2022-07-19 23:26:18 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 276 seconds) |
2022-07-19 23:26:39 +0200 | <monochrom> | Why doesn't C let me define my own >>= operator, for example. |
2022-07-19 23:26:52 +0200 | <hpc> | the real secret is to always be disappointed ahead of time, then you can do whatever you want :D |
2022-07-19 23:26:58 +0200 | <monochrom> | Every time I look at Python untypedness I lose more faith in Python. |
2022-07-19 23:27:33 +0200 | <monochrom> | If Java doesn't do things the Haskell way, why should Haskell do things the Java way? |
2022-07-19 23:27:54 +0200 | <Rembane> | Wield your disappointment like a sword! |
2022-07-19 23:28:18 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-07-19 23:29:12 +0200 | <hpc> | at the same time, there's more than one way to do it |
2022-07-19 23:29:14 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:e3c4:775f:d866:7dfa) (Ping timeout: 272 seconds) |
2022-07-19 23:29:37 +0200 | <monochrom> | More ways to be disappointed. |
2022-07-19 23:29:38 +0200 | <hpc> | trying to write a functional zipper data structure in rust is a sure sign of insanity, for instance |
2022-07-19 23:29:44 +0200 | <hpc> | just use an array or whatever |
2022-07-19 23:29:53 +0200 | <hpc> | but maybe in haskell the zipper is better |
2022-07-19 23:30:07 +0200 | <Rembane> | hpc: Is it possible to write a functional zipper data structure in Rust? |
2022-07-19 23:30:17 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-07-19 23:31:20 +0200 | <hpc> | probably, but i don't know how i would do it once the direct way fails me |
2022-07-19 23:31:30 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-19 23:32:07 +0200 | <hpc> | another good example, bash and haskell are both rather good at processing streams |
2022-07-19 23:32:10 +0200 | <hpc> | but in very different ways |
2022-07-19 23:32:11 +0200 | `2jt | (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) |
2022-07-19 23:32:11 +0200 | <monochrom> | It is possible but insane to write your own "data List a = Nil | Cons a (List a)" in Rust in the first place. :) |
2022-07-19 23:32:22 +0200 | <Rembane> | But fun! :D |
2022-07-19 23:32:45 +0200 | <hpc> | spoken like a true dwarf fortress player |
2022-07-19 23:32:48 +0200 | <monochrom> | The ownership system is going to ask a lot of questions. |
2022-07-19 23:33:07 +0200 | <Rembane> | hpc: How did you know that?! :D |
2022-07-19 23:33:13 +0200 | <monochrom> | In 5 minutes you realize how much you have been taking GC for granted. |
2022-07-19 23:34:08 +0200 | <hpc> | and then you have to debug weird gc pauses, and learn to appreciate ownership all over again |
2022-07-19 23:34:22 +0200 | <hpc> | it's a neverending cycle :D |
2022-07-19 23:34:28 +0200 | <monochrom> | There is no way to win. |
2022-07-19 23:34:43 +0200 | <hpc> | i always miss do blocks though |
2022-07-19 23:35:08 +0200 | <hpc> | doesn't matter what language it is, being able to create my own foo $ do {...} constructs is too powerful to give up |
2022-07-19 23:36:13 +0200 | <hpc> | ruby can almost do it, if you can stomach the ridiculous object-y stuff you have to do |
2022-07-19 23:36:24 +0200 | <hpc> | and rust almost feels like it already has everything you need |
2022-07-19 23:36:38 +0200 | <hpc> | but i always want more |
2022-07-19 23:37:49 +0200 | <Rembane> | hpc: Are you doing the Church-Gödel-Turing-thing but no do-blocks? |
2022-07-19 23:38:02 +0200 | <hpc> | heh |
2022-07-19 23:40:29 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-19 23:42:58 +0200 | `2jt | (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2022-07-19 23:43:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-19 23:45:02 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-19 23:46:35 +0200 | califax | (~califax@user/califx) (Ping timeout: 268 seconds) |
2022-07-19 23:47:06 +0200 | califax | (~califax@user/califx) |
2022-07-19 23:48:37 +0200 | winny_ | (~weechat@user/winny) |
2022-07-19 23:49:03 +0200 | winny | (~weechat@user/winny) (Ping timeout: 268 seconds) |
2022-07-19 23:49:03 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
2022-07-19 23:49:15 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-07-19 23:49:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-07-19 23:52:27 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-07-19 23:55:34 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-07-19 23:55:36 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-19 23:58:47 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |