| 2022-10-24 00:00:03 +0000 | <jle`> | np! yup it's the power of stream combinators, and it should only take O(1) space in most circumstances bc you're never allocating the actual zipped list |
| 2022-10-24 00:00:16 +0000 | <Guest62> | interesting |
| 2022-10-24 00:00:48 +0000 | <Guest62> | it must be better than my pattern matching recursion |
| 2022-10-24 00:01:13 +0000 | <jle`> | readability-wise, probably. but in the end it basically simplifies down to pattern matching recursion in the source code |
| 2022-10-24 00:01:24 +0000 | <jle`> | if we're talking performance- or space-wise |
| 2022-10-24 00:03:32 +0000 | <Guest62> | ok |
| 2022-10-24 00:03:43 +0000 | <Guest62> | tyvm |
| 2022-10-24 00:04:00 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 250 seconds) |
| 2022-10-24 00:07:14 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 00:13:29 +0000 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) (Ping timeout: 276 seconds) |
| 2022-10-24 00:13:46 +0000 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
| 2022-10-24 00:13:47 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 00:13:56 +0000 | birdgoose | (~birdgoose@151.210.175.160) |
| 2022-10-24 00:14:19 +0000 | Guest62 | (~Guest62@43.21.135.77.rev.sfr.net) (Quit: Client closed) |
| 2022-10-24 00:15:21 +0000 | Kaipei | (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
| 2022-10-24 00:15:45 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 00:17:02 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 00:22:19 +0000 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) (Remote host closed the connection) |
| 2022-10-24 00:22:39 +0000 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) |
| 2022-10-24 00:24:44 +0000 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 2022-10-24 00:25:41 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 00:28:45 +0000 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 2022-10-24 00:29:08 +0000 | birdgoose | (~birdgoose@151.210.175.160) (Ping timeout: 250 seconds) |
| 2022-10-24 00:31:53 +0000 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 2022-10-24 00:31:53 +0000 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 2022-10-24 00:31:53 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-10-24 00:33:22 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 00:36:51 +0000 | paulpaul1076 | (~paulpaul1@95-29-5-52.broadband.corbina.ru) (Remote host closed the connection) |
| 2022-10-24 00:36:53 +0000 | axeman | (~quassel@2a02:8109:a380:78:75a8:c262:9acb:200a) (Ping timeout: 276 seconds) |
| 2022-10-24 00:37:09 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 00:41:05 +0000 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) |
| 2022-10-24 00:58:59 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
| 2022-10-24 01:02:24 +0000 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 2022-10-24 01:05:47 +0000 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) (Ping timeout: 272 seconds) |
| 2022-10-24 01:07:08 +0000 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) |
| 2022-10-24 01:08:22 +0000 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2022-10-24 01:10:25 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 2022-10-24 01:13:46 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
| 2022-10-24 01:14:11 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
| 2022-10-24 01:15:31 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3df4:aa3e:43b0:5de8) |
| 2022-10-24 01:16:11 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 01:16:32 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 2022-10-24 01:21:12 +0000 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 2022-10-24 01:28:50 +0000 | xff0x | (~xff0x@2405:6580:b080:900:5aef:465a:6bf7:395b) (Ping timeout: 272 seconds) |
| 2022-10-24 01:29:32 +0000 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 276 seconds) |
| 2022-10-24 01:30:45 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 2022-10-24 01:36:31 +0000 | birdgoose | (~birdgoose@151.210.175.160) |
| 2022-10-24 01:37:17 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 01:37:28 +0000 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 01:37:52 +0000 | BananaKing69441 | j4cc3b |
| 2022-10-24 01:38:13 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 01:42:38 +0000 | jbayardo | (~jbayardo@20.83.116.49) (Remote host closed the connection) |
| 2022-10-24 01:43:26 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 2022-10-24 01:43:57 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 01:48:25 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-10-24 01:54:49 +0000 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
| 2022-10-24 01:57:07 +0000 | ski | (~ski@remote11.chalmers.se) (Remote host closed the connection) |
| 2022-10-24 01:58:10 +0000 | <j4cc3b> | can you create a data type that has a subset of integers? For example, something like this - data Id = 100 | ... | 999 |
| 2022-10-24 01:58:57 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 2022-10-24 01:59:14 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) |
| 2022-10-24 02:02:46 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 2022-10-24 02:03:21 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 02:03:21 +0000 | <dsal> | j4cc3b: You can create a data type with a constructor that isn't exported and only allow whatever you want. |
| 2022-10-24 02:04:06 +0000 | <dsal> | But there's also this: |
| 2022-10-24 02:04:10 +0000 | <dsal> | @hoogle Data.Finite |
| 2022-10-24 02:04:10 +0000 | <lambdabot> | Database.PostgreSQL.Simple.Time Finite :: a -> Unbounded a |
| 2022-10-24 02:04:10 +0000 | <lambdabot> | Data.Universe.Class class Universe a => Finite a |
| 2022-10-24 02:04:10 +0000 | <lambdabot> | Data.Monoid.Inf Finite :: a -> Inf p a |
| 2022-10-24 02:04:22 +0000 | <dsal> | @hackage finite-typelits |
| 2022-10-24 02:04:22 +0000 | <lambdabot> | https://hackage.haskell.org/package/finite-typelits |
| 2022-10-24 02:04:22 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2022-10-24 02:04:40 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 2022-10-24 02:05:12 +0000 | <j4cc3b> | Thank you so much |
| 2022-10-24 02:06:01 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2022-10-24 02:07:14 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 2022-10-24 02:08:11 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2022-10-24 02:10:57 +0000 | jargon | (~jargon@184.101.208.112) |
| 2022-10-24 02:13:00 +0000 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 2022-10-24 02:13:34 +0000 | td_ | (~td@83.135.9.27) (Ping timeout: 250 seconds) |
| 2022-10-24 02:14:03 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 2022-10-24 02:14:44 +0000 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
| 2022-10-24 02:14:57 +0000 | birdgoose | (~birdgoose@151.210.175.160) |
| 2022-10-24 02:15:33 +0000 | td_ | (~td@83.135.9.20) |
| 2022-10-24 02:18:27 +0000 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 2022-10-24 02:22:08 +0000 | finsternis | (~X@23.226.237.192) |
| 2022-10-24 02:23:10 +0000 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) |
| 2022-10-24 02:25:26 +0000 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) (Ping timeout: 276 seconds) |
| 2022-10-24 02:25:47 +0000 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-10-24 02:25:47 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 2022-10-24 02:25:47 +0000 | finn_elija | FinnElija |
| 2022-10-24 02:25:48 +0000 | birdgoose | (~birdgoose@151.210.175.160) (Remote host closed the connection) |
| 2022-10-24 02:25:51 +0000 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) (Ping timeout: 272 seconds) |
| 2022-10-24 02:27:47 +0000 | zaquest | (~notzaques@5.130.79.72) |
| 2022-10-24 02:28:37 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2022-10-24 02:29:39 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
| 2022-10-24 02:32:43 +0000 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
| 2022-10-24 02:38:16 +0000 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds) |
| 2022-10-24 02:40:32 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 2022-10-24 02:47:10 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 2022-10-24 02:49:23 +0000 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 2022-10-24 02:50:44 +0000 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 2022-10-24 02:51:42 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 250 seconds) |
| 2022-10-24 02:54:26 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 2022-10-24 02:55:11 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) |
| 2022-10-24 02:55:52 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) (Max SendQ exceeded) |
| 2022-10-24 02:56:33 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
| 2022-10-24 02:56:44 +0000 | Feuermagier | (~Feuermagi@user/feuermagier) |
| 2022-10-24 03:00:52 +0000 | j4cc3b | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2022-10-24 03:01:14 +0000 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 250 seconds) |
| 2022-10-24 03:02:22 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 2022-10-24 03:04:52 +0000 | king_gs | (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) |
| 2022-10-24 03:05:09 +0000 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 2022-10-24 03:08:13 +0000 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
| 2022-10-24 03:08:33 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 03:09:49 +0000 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) (Remote host closed the connection) |
| 2022-10-24 03:10:10 +0000 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) |
| 2022-10-24 03:13:22 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
| 2022-10-24 03:17:35 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 03:18:09 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 03:19:00 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 2022-10-24 03:28:37 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 03:32:52 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 2022-10-24 03:33:59 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
| 2022-10-24 03:37:02 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Ping timeout: 244 seconds) |
| 2022-10-24 03:38:04 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
| 2022-10-24 03:42:13 +0000 | Guest51 | (~Guest51@50.47.90.28) |
| 2022-10-24 03:43:36 +0000 | danza | (~francesco@151.43.239.176) (Read error: Connection reset by peer) |
| 2022-10-24 03:43:58 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 03:45:08 +0000 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 2022-10-24 03:49:56 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
| 2022-10-24 03:59:03 +0000 | redmp | (~redmp@mobile-166-137-178-116.mycingular.net) |
| 2022-10-24 03:59:30 +0000 | danza | (~francesco@ca-18-216-127.service.infuturo.it) |
| 2022-10-24 04:00:32 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 04:04:35 +0000 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 2022-10-24 04:05:56 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 04:06:02 +0000 | <Unicorn_Princess> | hoogle generate "Found 7569 warnings when processing items", and also gave me a list of packages that are missing documentation. are these errors caused by something on my system, or is it simply a report on the packages themselves? |
| 2022-10-24 04:06:17 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 2022-10-24 04:06:55 +0000 | <Unicorn_Princess> | (i installed hoogle by first installing ghcup, then `cabal install hoogle`, and finally `hoogle generate`) |
| 2022-10-24 04:07:29 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 276 seconds) |
| 2022-10-24 04:08:27 +0000 | biberu | (~biberu@user/biberu) |
| 2022-10-24 04:08:41 +0000 | <Unicorn_Princess> | it reports in total 30 packages missing docs. stuff like 'lzma-clib' and 'rocksdb-haskell' |
| 2022-10-24 04:09:49 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 2022-10-24 04:09:50 +0000 | <Unicorn_Princess> | ah, https://hackage.haskell.org/package/lzma-clib says "docs not available", so maybe it's the pacakges |
| 2022-10-24 04:10:52 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
| 2022-10-24 04:11:26 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
| 2022-10-24 04:11:32 +0000 | <Unicorn_Princess> | ah, but https://hackage.haskell.org/package/minisat-solver has "docs uploaded by user", so who knows. but it's another abandoned package it seems |
| 2022-10-24 04:12:02 +0000 | <Unicorn_Princess> | (minisat-solver being another of the packages that hoogle generate reports are missing docs) |
| 2022-10-24 04:12:46 +0000 | <jackdk> | When you installed your packages locally, they were probably built without documentation. I don't remember how to coerce cabal to rebuild installed packages with documentation. |
| 2022-10-24 04:13:12 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 2022-10-24 04:17:56 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 2022-10-24 04:17:58 +0000 | <Unicorn_Princess> | oh i never installed any of them really. installing ghcup, `cabal install hoogle` and `hoogle generate` are the only haskell-related commands i ran on this system. just installed ubuntu 22.04 from scratch, so it's quite fresh |
| 2022-10-24 04:18:18 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
| 2022-10-24 04:18:27 +0000 | <jackdk> | Those packages are probably the dependencies of hoogle |
| 2022-10-24 04:19:53 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 04:20:36 +0000 | king_gs | (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Quit: king_gs) |
| 2022-10-24 04:20:54 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 04:23:40 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 04:24:46 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 04:25:12 +0000 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
| 2022-10-24 04:27:44 +0000 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) (Quit: Leaving) |
| 2022-10-24 04:29:05 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2022-10-24 04:29:51 +0000 | Guest7606 | (~aaa@49.207.231.197) |
| 2022-10-24 04:31:37 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
| 2022-10-24 04:32:00 +0000 | <Unicorn_Princess> | hmmm, thanks |
| 2022-10-24 04:34:50 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
| 2022-10-24 04:35:05 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 2022-10-24 04:43:11 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 04:43:46 +0000 | Lumia | (~Lumia@user/Lumia) |
| 2022-10-24 04:51:53 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
| 2022-10-24 04:57:54 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 04:59:37 +0000 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 2022-10-24 05:06:16 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 2022-10-24 05:13:41 +0000 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
| 2022-10-24 05:13:58 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
| 2022-10-24 05:26:06 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
| 2022-10-24 05:38:59 +0000 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) (Quit: BRB) |
| 2022-10-24 05:40:43 +0000 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) |
| 2022-10-24 05:45:28 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds) |
| 2022-10-24 05:50:07 +0000 | michalz | (~michalz@185.246.207.193) |
| 2022-10-24 05:50:45 +0000 | Neuromancer | (~Neuromanc@user/neuromancer) (Quit: Going offline, see ya! (www.adiirc.com)) |
| 2022-10-24 05:53:37 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 05:54:01 +0000 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 2022-10-24 05:55:19 +0000 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 2022-10-24 05:58:39 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 05:59:48 +0000 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 2022-10-24 06:03:11 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 276 seconds) |
| 2022-10-24 06:04:40 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 06:06:14 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 06:10:52 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 2022-10-24 06:11:16 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
| 2022-10-24 06:11:38 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 2022-10-24 06:12:07 +0000 | Lumia | (~Lumia@user/Lumia) (Quit: ,-) |
| 2022-10-24 06:19:28 +0000 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2022-10-24 06:20:33 +0000 | redmp | (~redmp@mobile-166-137-178-116.mycingular.net) (Ping timeout: 272 seconds) |
| 2022-10-24 06:20:47 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2022-10-24 06:21:37 +0000 | rembo10 | (~rembo10@main.remulis.com) |
| 2022-10-24 06:26:40 +0000 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 2022-10-24 06:29:11 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
| 2022-10-24 06:33:17 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 06:37:10 +0000 | mmhat | (~mmh@p200300f1c7307610ee086bfffe095315.dip0.t-ipconnect.de) |
| 2022-10-24 06:38:33 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 2022-10-24 06:41:51 +0000 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
| 2022-10-24 06:46:05 +0000 | mncheck | (~mncheck@193.224.205.254) |
| 2022-10-24 06:47:39 +0000 | acidjnk | (~acidjnk@p200300d6e7137a39185a556c4ffa1a9f.dip0.t-ipconnect.de) |
| 2022-10-24 06:47:51 +0000 | <Clinton[m]> | just checking is there an extension that allows me to have record field names of the same name but different types in the same module? |
| 2022-10-24 06:48:24 +0000 | <Clinton[m]> | like... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/018c991b074f6aa3afe4ec1ab06076fa4352…>) |
| 2022-10-24 06:48:46 +0000 | <Clinton[m]> | Or is that just very naughty. |
| 2022-10-24 06:52:32 +0000 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ad98:9d00:b84f:455) |
| 2022-10-24 06:53:04 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Read error: Connection reset by peer) |
| 2022-10-24 06:53:19 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
| 2022-10-24 06:54:53 +0000 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 2022-10-24 06:55:47 +0000 | <c_wraith> | DuplicateRecordFields should do that |
| 2022-10-24 07:06:25 +0000 | <Clinton[m]> | c_wraith: yep, that did the job. Although I've got another issue more like this:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/b2de1ff05816fa066d62b0d6181a0a0c9b7e…>) |
| 2022-10-24 07:06:57 +0000 | <c_wraith> | Oh. I don't think that's gonna work. |
| 2022-10-24 07:12:55 +0000 | random-jellyfish | (~random-je@user/random-jellyfish) |
| 2022-10-24 07:19:01 +0000 | Lycurgus | (~juan@user/Lycurgus) |
| 2022-10-24 07:19:56 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 2022-10-24 07:19:57 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 07:24:19 +0000 | titibandit | (~titibandi@xdsl-87-78-36-34.nc.de) |
| 2022-10-24 07:30:56 +0000 | <dminuoso> | How would one write a rewrite rule for say `pure a` |
| 2022-10-24 07:31:12 +0000 | <dminuoso> | Specifically, I cant figure out how to specify a type annmotation for it. |
| 2022-10-24 07:31:15 +0000 | <Clinton[m]> | c_wraith: all good I've just put them subtypes now |
| 2022-10-24 07:31:39 +0000 | <dminuoso> | `"foo" forall a. pure a = XXX` is not good enough, I want to constrain it to a particualr type of `a` |
| 2022-10-24 07:31:47 +0000 | <dminuoso> | Or rather, that example is not good enough |
| 2022-10-24 07:31:57 +0000 | <dminuoso> | Say rewriting `a >> b` |
| 2022-10-24 07:33:48 +0000 | <dminuoso> | https://play-haskell.tomsmeding.com/saved/3Nts9F5o |
| 2022-10-24 07:37:32 +0000 | <dminuoso> | Or do I have to define a top level binding, say choice, define <+> = choice, specify INLINE[0] on the instance, and specify the rewrite rule in terms of `choice`? |
| 2022-10-24 07:38:07 +0000 | <nshepperd2> | jle`: hey! you're right, that solution is O(l^2) space. I do have a O(l) version though, that does it as a fold |
| 2022-10-24 07:38:25 +0000 | <dminuoso> | Mmm, no. Inlining on (<+>) prevents the rule from firing. |
| 2022-10-24 07:40:27 +0000 | <dminuoso> | This also causes weird type errors: "flatparse/reassoc-alt" forall l m r. (l :: Maybe a) <+> m <+> r = Nothing :: Maybe a |
| 2022-10-24 07:40:41 +0000 | <dminuoso> | Or dropping that final `:: Maybe a` too. |
| 2022-10-24 07:42:38 +0000 | <nshepperd2> | jle`: https://paste.zlkj.in/uploads/e4d73710d9d7e786/fourteen.txt |
| 2022-10-24 07:42:47 +0000 | danza | (~francesco@ca-18-216-127.service.infuturo.it) (Read error: Connection reset by peer) |
| 2022-10-24 07:44:32 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-10-24 07:45:10 +0000 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
| 2022-10-24 07:49:43 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 07:50:52 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 07:51:25 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3df4:aa3e:43b0:5de8) (Remote host closed the connection) |
| 2022-10-24 07:51:44 +0000 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 2022-10-24 07:54:37 +0000 | kuribas | (~user@ptr-17d51emnxyldefiap63.18120a2.ip6.access.telenet.be) |
| 2022-10-24 07:56:42 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 07:57:12 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
| 2022-10-24 07:59:14 +0000 | danza | (~francesco@151.34.187.38) |
| 2022-10-24 08:05:20 +0000 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 2022-10-24 08:09:46 +0000 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
| 2022-10-24 08:09:47 +0000 | jakalx | (~jakalx@base.jakalx.net) |
| 2022-10-24 08:13:14 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 08:15:50 +0000 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 250 seconds) |
| 2022-10-24 08:17:55 +0000 | titibandit | (~titibandi@xdsl-87-78-36-34.nc.de) (Remote host closed the connection) |
| 2022-10-24 08:24:54 +0000 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 2022-10-24 08:25:04 +0000 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
| 2022-10-24 08:25:18 +0000 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 2022-10-24 08:25:25 +0000 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
| 2022-10-24 08:25:40 +0000 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 2022-10-24 08:25:51 +0000 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
| 2022-10-24 08:26:06 +0000 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 2022-10-24 08:29:37 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Quit: Konversation terminated!) |
| 2022-10-24 08:29:49 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
| 2022-10-24 08:30:15 +0000 | akegalj | (~akegalj@93-138-77-86.adsl.net.t-com.hr) |
| 2022-10-24 08:32:28 +0000 | nschoe | (~q@141.101.51.197) |
| 2022-10-24 08:34:42 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-10-24 08:37:19 +0000 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 2022-10-24 08:37:32 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 08:41:28 +0000 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) |
| 2022-10-24 08:46:37 +0000 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 2022-10-24 08:51:28 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 08:51:42 +0000 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
| 2022-10-24 08:51:53 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:8908:183b:c2f1:b2ec) |
| 2022-10-24 08:56:05 +0000 | Guest65 | (~Guest65@206.119.125.191) |
| 2022-10-24 08:56:08 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:8908:183b:c2f1:b2ec) (Ping timeout: 250 seconds) |
| 2022-10-24 08:57:19 +0000 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
| 2022-10-24 09:00:01 +0000 | <dminuoso> | RULES are officially magical. |
| 2022-10-24 09:00:06 +0000 | polykernel[m] | (~polykerne@user/polykernel) (Quit: You have been kicked for being idle) |
| 2022-10-24 09:09:09 +0000 | <lyxia> | dminuoso: How about "forall (a :: Int)" ? |
| 2022-10-24 09:10:02 +0000 | <lyxia> | or using TypeApplications |
| 2022-10-24 09:10:14 +0000 | <dminuoso> | Well so Ive came up with: https://play-haskell.tomsmeding.com/saved/KqLymSwL |
| 2022-10-24 09:10:28 +0000 | <dminuoso> | Which I think is the right specification, but it may be that the diagnostic is just a false positive |
| 2022-10-24 09:11:02 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
| 2022-10-24 09:11:10 +0000 | arahael | (~arahael@14-202-55-135.tpgi.com.au) |
| 2022-10-24 09:11:12 +0000 | <dminuoso> | I guess the mere type annotation does not cause GHC to look for whether a NOINLINE exists at the specific instance for (<+>), that would be selected after type unification |
| 2022-10-24 09:13:12 +0000 | Guest65 | (~Guest65@206.119.125.191) (Quit: Client closed) |
| 2022-10-24 09:14:04 +0000 | <dminuoso> | I cant also make heads or tails of this: https://play-haskell.tomsmeding.com/saved/vsW3F1R8 |
| 2022-10-24 09:14:18 +0000 | <dminuoso> | Im beginning to suspect the diagnostic is a very sketchy heuristic |
| 2022-10-24 09:14:35 +0000 | ubert1 | (~Thunderbi@91.141.49.34.wireless.dyn.drei.com) |
| 2022-10-24 09:15:21 +0000 | ubert | (~Thunderbi@178.115.71.141.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 2022-10-24 09:15:21 +0000 | ubert1 | ubert |
| 2022-10-24 09:17:56 +0000 | <dminuoso> | What I really want is something like: |
| 2022-10-24 09:19:42 +0000 | <dminuoso> | {-# RULES "flatparse/reassoc-alt" [1] forall a. forall l m r. l (<|> @Maybe) m (<|> @Maybe) r = Nothing #-} |
| 2022-10-24 09:21:34 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 09:26:34 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:d960:d98a:f624:8ef) |
| 2022-10-24 09:26:45 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
| 2022-10-24 09:30:04 +0000 | Guest51 | (~Guest51@50.47.90.28) |
| 2022-10-24 09:33:06 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
| 2022-10-24 09:36:15 +0000 | __monty__ | (~toonn@user/toonn) |
| 2022-10-24 09:37:24 +0000 | ft | (~ft@p3e9bc845.dip0.t-ipconnect.de) (Quit: leaving) |
| 2022-10-24 09:39:29 +0000 | Guest7606 | (~aaa@49.207.231.197) (Quit: Leaving) |
| 2022-10-24 09:39:38 +0000 | acidjnk | (~acidjnk@p200300d6e7137a39185a556c4ffa1a9f.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2022-10-24 09:40:08 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 09:47:59 +0000 | <lyxia> | What's confusing about the diagnostic? if choice gets inlined first, the rule won't apply since there is no choice to match. |
| 2022-10-24 09:51:19 +0000 | <dminuoso> | Ah, I must specify INLINE[~0] on the instance method |
| 2022-10-24 09:51:27 +0000 | <dminuoso> | That makes sense, lyxia. |
| 2022-10-24 09:52:24 +0000 | Guest16 | (~Guest16@p200300ef971835b5517f7031904fbb79.dip0.t-ipconnect.de) (Quit: Client closed) |
| 2022-10-24 09:54:38 +0000 | acidjnk | (~acidjnk@p200300d6e7137a390804478ada777c16.dip0.t-ipconnect.de) |
| 2022-10-24 09:55:17 +0000 | <dminuoso> | Or ~1 rather I suppose |
| 2022-10-24 09:56:52 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 10:05:21 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2022-10-24 10:07:30 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 10:10:20 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 10:12:47 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 2022-10-24 10:15:05 +0000 | <dminuoso> | lyxia: Ah but hold on, the rewrite rule starts from phase 1, but choice cant get inlined until phase 2. |
| 2022-10-24 10:19:20 +0000 | <dminuoso> | I mean yeah, I can set the `choice` inline phase to 2, and the rewrite rule to ~1 |
| 2022-10-24 10:19:55 +0000 | <dminuoso> | But whats slightly absurd, is that not specifying a phase for the rule makes the diagnostic go away too. |
| 2022-10-24 10:20:47 +0000 | <dminuoso> | That is, why does the diagnostic fire for one but not the other https://play-haskell.tomsmeding.com/saved/sBjYWK7T |
| 2022-10-24 10:20:54 +0000 | <dminuoso> | In either case choice might get inlined first. |
| 2022-10-24 10:26:58 +0000 | axeman | (~quassel@2a02:8109:a380:78:e069:1455:8f12:523c) |
| 2022-10-24 10:30:20 +0000 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 276 seconds) |
| 2022-10-24 10:31:40 +0000 | shapr` | (~user@net-5-88-239-29.cust.vodafonedsl.it) |
| 2022-10-24 10:33:12 +0000 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) (Ping timeout: 250 seconds) |
| 2022-10-24 10:33:20 +0000 | shapr` | shapr |
| 2022-10-24 10:36:03 +0000 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 2022-10-24 10:38:24 +0000 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 250 seconds) |
| 2022-10-24 10:41:29 +0000 | axeman | (~quassel@2a02:8109:a380:78:e069:1455:8f12:523c) (Quit: No Ping reply in 180 seconds.) |
| 2022-10-24 10:42:25 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2022-10-24 10:42:39 +0000 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 2022-10-24 10:42:45 +0000 | axeman | (~quassel@2a02:8109:a380:78:47a:28c0:4f2:c5d2) |
| 2022-10-24 10:44:01 +0000 | biberu | (~biberu@user/biberu) |
| 2022-10-24 10:44:30 +0000 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) |
| 2022-10-24 10:48:13 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-10-24 10:49:13 +0000 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Remote host closed the connection) |
| 2022-10-24 10:50:18 +0000 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
| 2022-10-24 10:50:57 +0000 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) |
| 2022-10-24 10:54:48 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 10:55:43 +0000 | freeside_ | (~mengwong@103.252.202.193) |
| 2022-10-24 10:56:41 +0000 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
| 2022-10-24 10:57:02 +0000 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 250 seconds) |
| 2022-10-24 10:57:35 +0000 | Kaipei | (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
| 2022-10-24 10:57:58 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 10:59:21 +0000 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) (Remote host closed the connection) |
| 2022-10-24 10:59:29 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 272 seconds) |
| 2022-10-24 11:00:53 +0000 | acidjnk | (~acidjnk@p200300d6e7137a390804478ada777c16.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2022-10-24 11:06:42 +0000 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 2022-10-24 11:07:59 +0000 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 2022-10-24 11:12:48 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
| 2022-10-24 11:19:07 +0000 | <Profpatsch> | partitionEithers returns ([left], [right]), and then is usually matched like ([], rights) -> … ; (errs, _) -> errs |
| 2022-10-24 11:19:10 +0000 | xff0x | (~xff0x@2405:6580:b080:900:274f:8858:84b:2f95) |
| 2022-10-24 11:19:36 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 11:19:57 +0000 | <Profpatsch> | I usually like to go via Validation instead, traversing the [Either left right] with a (Either left right -> Validation (NonEmpty left) right) |
| 2022-10-24 11:20:16 +0000 | shriekingnoise | (~shrieking@186.137.167.202) |
| 2022-10-24 11:20:18 +0000 | <Profpatsch> | So I get back a `Validation (NonEmpty left) right` and can just match on it |
| 2022-10-24 11:21:00 +0000 | <Profpatsch> | But I always wonder how efficient using the Semigroup instance of NonEmpty is in this case, first wrapping every error in a NonEmpty.singleton and then (<>) those |
| 2022-10-24 11:22:09 +0000 | acidjnk | (~acidjnk@p200300d6e7137a399c67b611784f46e2.dip0.t-ipconnect.de) |
| 2022-10-24 11:22:32 +0000 | <Profpatsch> | Intuitively, do I have to worry about performance here? |
| 2022-10-24 11:23:24 +0000 | <Profpatsch> | I always have to traverse the list afaik, be it via partitionEithers or Validation, because otherwise I can’t figure out if the list of errors is empty |
| 2022-10-24 11:24:22 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 11:27:19 +0000 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
| 2022-10-24 11:28:11 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 276 seconds) |
| 2022-10-24 11:28:46 +0000 | jakalx | (~jakalx@base.jakalx.net) |
| 2022-10-24 11:35:35 +0000 | axeman | (~quassel@2a02:8109:a380:78:47a:28c0:4f2:c5d2) (Ping timeout: 272 seconds) |
| 2022-10-24 11:39:00 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 11:40:49 +0000 | random-jellyfish | (~random-je@user/random-jellyfish) |
| 2022-10-24 11:45:09 +0000 | danza | (~francesco@151.34.187.38) (Read error: Connection reset by peer) |
| 2022-10-24 11:49:37 +0000 | <dminuoso> | f the non-empty list of error is empty? |
| 2022-10-24 11:51:05 +0000 | <dminuoso> | Profpatsch: I think you meant `Validation [left]` rather than `Validation (NonEmpty left)`, right? |
| 2022-10-24 11:51:28 +0000 | Midjak | (~Midjak@82.66.147.146) |
| 2022-10-24 11:57:01 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 11:58:43 +0000 | <Profpatsch> | dminuoso: NonEmpty |
| 2022-10-24 11:59:04 +0000 | danza | (~francesco@151.43.124.110) |
| 2022-10-24 11:59:36 +0000 | <dminuoso> | That NonEmpty will never be empty. |
| 2022-10-24 11:59:59 +0000 | <Profpatsch> | because Semigroup e => instance Applicative (Validation e a) |
| 2022-10-24 12:00:05 +0000 | frost1 | (~frost@user/frost) (Quit: Client closed) |
| 2022-10-24 12:00:07 +0000 | <dminuoso> | Yes, but that NonEmpty will never be empty. |
| 2022-10-24 12:00:11 +0000 | <Profpatsch> | dminuoso: exactly |
| 2022-10-24 12:00:15 +0000 | <Profpatsch> | that’s the idea |
| 2022-10-24 12:00:17 +0000 | <dminuoso> | What exactly? |
| 2022-10-24 12:00:21 +0000 | <dminuoso> | Profpatsch | I always have to traverse the list afaik, be it via partitionEithers or Validation, because otherwise I can’t figure out if the list of errors is empty |
| 2022-10-24 12:00:36 +0000 | <dminuoso> | Im just telling you, on `Validation (NonEmpty T)` there is no need to figure out iof the list of errors is empty |
| 2022-10-24 12:00:44 +0000 | <Profpatsch> | dminuoso: Ah, I was referring to the pattern match after partitionEithers |
| 2022-10-24 12:01:02 +0000 | <Profpatsch> | which is ([], vals) -> … ; (errs, _) -> …; |
| 2022-10-24 12:01:10 +0000 | <dminuoso> | `(Either left right -> Validation (NonEmpty left) right)` is partial. |
| 2022-10-24 12:01:24 +0000 | <dminuoso> | Ah hold on! |
| 2022-10-24 12:01:26 +0000 | <dminuoso> | I see what you mean |
| 2022-10-24 12:01:40 +0000 | <Profpatsch> | basically it’s “collect all errors \/ success” |
| 2022-10-24 12:01:43 +0000 | <dminuoso> | Yeah |
| 2022-10-24 12:01:55 +0000 | <dminuoso> | So I wouldnt worry about performance unless this was measurably in a hotspot. |
| 2022-10-24 12:02:02 +0000 | <Profpatsch> | but partitionEither’s codomain is “too big” |
| 2022-10-24 12:02:10 +0000 | <Profpatsch> | it could in theory also have both errors and successes |
| 2022-10-24 12:02:32 +0000 | <Profpatsch> | the only real difference is one gives you a nonEmpty error list |
| 2022-10-24 12:02:32 +0000 | <dminuoso> | If constant memory usage and short cut fusion was highly desirable, I would just write a CPS'ed state monad on the spot |
| 2022-10-24 12:02:37 +0000 | <dminuoso> | And use it instead of Either |
| 2022-10-24 12:02:53 +0000 | <dminuoso> | (with either a difference list, or a reveresed list of errors as state) |
| 2022-10-24 12:02:59 +0000 | <Profpatsch> | err, sorry, *neither* errors nor successes |
| 2022-10-24 12:03:03 +0000 | <Profpatsch> | so ([], []) |
| 2022-10-24 12:03:35 +0000 | <Profpatsch> | dminuoso: yeah, I guess it’s at most constant overhead |
| 2022-10-24 12:03:41 +0000 | constxd | (~brad@47.55.121.233) |
| 2022-10-24 12:04:13 +0000 | <Profpatsch> | cause [a] <> ([b] <> [c]) is relatively efficient |
| 2022-10-24 12:04:30 +0000 | <Profpatsch> | as compared to ([a] <> [b]) <> [c] |
| 2022-10-24 12:04:39 +0000 | <dminuoso> | THe latter is fine with DList though |
| 2022-10-24 12:04:43 +0000 | <Profpatsch> | yep |
| 2022-10-24 12:05:01 +0000 | <dminuoso> | Lately Ive become quite comfortable with continuations, so I would just use that instead |
| 2022-10-24 12:05:51 +0000 | <Profpatsch> | dminuoso: I mean, there’s a non-empty Seq as well |
| 2022-10-24 12:05:59 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 272 seconds) |
| 2022-10-24 12:06:33 +0000 | <Profpatsch> | which has O(1) on both ends, so you don’t have to worry whether all your stuff is bracketed the right way |
| 2022-10-24 12:06:46 +0000 | <Profpatsch> | tho even more constant overhead |
| 2022-10-24 12:07:10 +0000 | <Profpatsch> | I default to non-empty lists right now, might have to benchmark once that becomes an actual problem |
| 2022-10-24 12:09:22 +0000 | <Profpatsch> | but in general, non-empty lists are a very good pragmatic datastructure, more Haskell code should use them. |
| 2022-10-24 12:09:32 +0000 | <dminuoso> | Profpatsch: https://gist.github.com/dminuoso/3452157cebdbb2397b914e02f3a17cb4 |
| 2022-10-24 12:09:36 +0000 | <Profpatsch> | removes a bunch of unnecessary branches from most code |
| 2022-10-24 12:09:50 +0000 | <dminuoso> | Here, gives you a CPS state monad in which you can just collect errors as you go. |
| 2022-10-24 12:10:52 +0000 | <Profpatsch> | dminuoso: hm, Validation is not in Monad cause there is no mempty in NonEmpty |
| 2022-10-24 12:11:21 +0000 | <Profpatsch> | the missing mempty for the error list really removes a bunch of non-branches from the state-space |
| 2022-10-24 12:11:22 +0000 | <dminuoso> | Profpatsch: Yes, but you are producing [Either a b], which means the error-free case exists. |
| 2022-10-24 12:12:01 +0000 | <dminuoso> | This is just a CPSed `State [s]` with a newtype wrapper (such that you cant accidentally modify the state) |
| 2022-10-24 12:12:12 +0000 | <Profpatsch> | it’s nice yep |
| 2022-10-24 12:12:13 +0000 | <dminuoso> | (Or StateT [s] even) |
| 2022-10-24 12:12:29 +0000 | <Profpatsch> | Is there no CPSed State in base? |
| 2022-10-24 12:12:34 +0000 | <Profpatsch> | or transformers? |
| 2022-10-24 12:12:48 +0000 | <dminuoso> | There is not |
| 2022-10-24 12:13:16 +0000 | <dminuoso> | Ill have to do actual analysis whether it actually matters |
| 2022-10-24 12:13:35 +0000 | <Profpatsch> | there’s one for WriterT at least https://hackage.haskell.org/package/transformers-0.6.0.4/docs/Control-Monad-Trans-Writer-CPS.html#… |
| 2022-10-24 12:13:41 +0000 | <dminuoso> | Yeah but thats not really CPSed |
| 2022-10-24 12:13:46 +0000 | Guest1875 | (~a@49.207.231.197) |
| 2022-10-24 12:13:48 +0000 | <dminuoso> | Or not fully anyway |
| 2022-10-24 12:13:49 +0000 | <Profpatsch> | which is—incidentally—the only one that does not always leak memory :P |
| 2022-10-24 12:13:50 +0000 | <dminuoso> | newtype WriterT w m a = WriterT { unWriterT :: w -> m (a, w) } |
| 2022-10-24 12:14:01 +0000 | <Profpatsch> | ah, it’s just StateT |
| 2022-10-24 12:14:06 +0000 | <dminuoso> | Yup |
| 2022-10-24 12:14:35 +0000 | freeside_ | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 2022-10-24 12:14:42 +0000 | <dminuoso> | I mean in most cases either is fine |
| 2022-10-24 12:14:55 +0000 | <Profpatsch> | dminuoso: do you always pro-actively apply INLINE(ABLE) pragmas to things? |
| 2022-10-24 12:15:02 +0000 | <dminuoso> | Its just that with the CPS variant you can easily just introduce an error case |
| 2022-10-24 12:15:15 +0000 | <dminuoso> | Profpatsch: Only for things I *expect* to be inlined, such that I dont have to rely on the mood of the simplifier. |
| 2022-10-24 12:15:17 +0000 | <Profpatsch> | I’ve been not keen on doing that as long as it’s not performance-crical |
| 2022-10-24 12:16:12 +0000 | <Profpatsch> | e.g. most of the stuff in https://hackage.haskell.org/package/error-1.0.0.0/docs/src/Data.Error.html should probably have an INLINEABLE |
| 2022-10-24 12:16:20 +0000 | <dminuoso> | Profpatsch: so continuations allow for introduction of error cases (or multiple modes) which can assist stream fusion in some cases. |
| 2022-10-24 12:16:37 +0000 | <dminuoso> | if you dont ever care for that, might as well use State/StateT (possibly newtyped) |
| 2022-10-24 12:16:52 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 12:16:53 +0000 | biberu\ | (~biberu@user/biberu) |
| 2022-10-24 12:16:55 +0000 | <dminuoso> | Profpatsch: INLINEABLE is definitely good for such things, yes. |
| 2022-10-24 12:17:27 +0000 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2022-10-24 12:18:56 +0000 | <dminuoso> | Profpatsch: Another option by the way, to maintain fatal/non-fatal errors, if you have ST or IO available, is to keep `data Env = Env { fatal :: IORef [FatalError]; nonFatal :: IORef [Error]; warnings :: IORef [Warning]` |
| 2022-10-24 12:19:09 +0000 | <dminuoso> | This is more imperative, and perhaps sometimes an overlooked option |
| 2022-10-24 12:19:26 +0000 | <Profpatsch> | dminuoso: Ah, that’s probably the most performant one? |
| 2022-10-24 12:19:32 +0000 | <Profpatsch> | depends on how many errors happen |
| 2022-10-24 12:19:33 +0000 | <dminuoso> | Not necessarily |
| 2022-10-24 12:19:49 +0000 | <Profpatsch> | Also the errors will be in reverse order :P |
| 2022-10-24 12:20:04 +0000 | <dminuoso> | You can fix that with a DList or Seq |
| 2022-10-24 12:20:11 +0000 | <dminuoso> | Or just accept to reverse them at the end ocne |
| 2022-10-24 12:20:16 +0000 | <dminuoso> | (I just accept to reverse them) |
| 2022-10-24 12:20:37 +0000 | <dminuoso> | Profpatsch: the beauty of this, is that you get write IO heavy code, but not use StateT. |
| 2022-10-24 12:20:41 +0000 | <dminuoso> | So MonadUnliftIO is available |
| 2022-10-24 12:20:42 +0000 | <Profpatsch> | I’d probably newtype to ErrorList |
| 2022-10-24 12:20:46 +0000 | <dminuoso> | (And dont need to rely on MonadBaseControl) |
| 2022-10-24 12:20:47 +0000 | <Profpatsch> | then I can’t forget |
| 2022-10-24 12:20:55 +0000 | biberu | (~biberu@user/biberu) (Ping timeout: 272 seconds) |
| 2022-10-24 12:20:55 +0000 | biberu\ | biberu |
| 2022-10-24 12:20:59 +0000 | <Profpatsch> | dminuoso: ah, yeah |
| 2022-10-24 12:21:21 +0000 | <dminuoso> | We use this in our SDN compiler precisely for that reason. |
| 2022-10-24 12:21:29 +0000 | <Profpatsch> | what’s a SDN? |
| 2022-10-24 12:21:33 +0000 | <dminuoso> | Networking stuff |
| 2022-10-24 12:21:44 +0000 | <Profpatsch> | Ah |
| 2022-10-24 12:22:09 +0000 | <Profpatsch> | yeah my use-case here is mostly parsing, which is as pure as it gets |
| 2022-10-24 12:22:20 +0000 | <dminuoso> | We even have combinators like >|> that sequence only if there are no errors set |
| 2022-10-24 12:22:31 +0000 | <dminuoso> | Or combinators that degrade fatal errors into non-fatal errors temporarily |
| 2022-10-24 12:22:38 +0000 | <dminuoso> | Bunch of tools to get fine flow control |
| 2022-10-24 12:22:40 +0000 | <Profpatsch> | wow so cool |
| 2022-10-24 12:22:43 +0000 | <Profpatsch> | I love Haskell |
| 2022-10-24 12:22:47 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
| 2022-10-24 12:22:55 +0000 | <dminuoso> | Well I mean you can do this in any language, honestly |
| 2022-10-24 12:23:40 +0000 | <Profpatsch> | the “combinators” part is where most other static languages fail with the type inference though |
| 2022-10-24 12:23:42 +0000 | jonathanx__ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 250 seconds) |
| 2022-10-24 12:23:56 +0000 | <dminuoso> | Profpatsch: https://gist.github.com/dminuoso/a29d323eb25c8a6d48bdbf982c0892e2 |
| 2022-10-24 12:24:05 +0000 | <dminuoso> | Well *this* does not need type infereence |
| 2022-10-24 12:24:06 +0000 | jonathanx | (~jonathan@c-5eea678b-74736162.cust.telenor.se) |
| 2022-10-24 12:24:18 +0000 | <dminuoso> | The only cute part is that we can define arbitrary combinators? |
| 2022-10-24 12:24:48 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-10-24 12:25:02 +0000 | <dminuoso> | And condemn just inspects the errors, and throws a BailOut exception by the way. :) |
| 2022-10-24 12:25:24 +0000 | <Profpatsch> | I tend not to go heavy on the operators but yeah |
| 2022-10-24 12:25:34 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 12:26:27 +0000 | <Profpatsch> | My fav thing currently is newtype FieldParser err from to = FieldParser (from -> Either err to) instance Profunctor, Category, Semigroupoid |
| 2022-10-24 12:26:41 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-10-24 12:28:06 +0000 | <Profpatsch> | Might submit it to hackage at one point |
| 2022-10-24 12:28:12 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 12:28:38 +0000 | <dminuoso> | Meaning I have to depend on semigroupoids to use it? :S |
| 2022-10-24 12:28:50 +0000 | <Profpatsch> | utf8 >>> unsignedDecimal >>> clamp 1 10 :: FieldParser ByteString Natural |
| 2022-10-24 12:28:54 +0000 | <Profpatsch> | it’s really not much more than that |
| 2022-10-24 12:29:06 +0000 | <Profpatsch> | But I think the concept & UX is pretty good |
| 2022-10-24 12:29:15 +0000 | dminuoso | shrugs |
| 2022-10-24 12:29:31 +0000 | <dminuoso> | Im not sure I like Category as a user interface much |
| 2022-10-24 12:29:54 +0000 | <dminuoso> | Is it really better than >>= here? |
| 2022-10-24 12:30:10 +0000 | <Profpatsch> | dminuoso: that’s what I’m trying to figure out yeah |
| 2022-10-24 12:30:12 +0000 | shriekingnoise | (~shrieking@186.137.167.202) (Ping timeout: 250 seconds) |
| 2022-10-24 12:30:32 +0000 | <Profpatsch> | which is why I’ve not pushed it to hackage yeg |
| 2022-10-24 12:30:34 +0000 | <Profpatsch> | *yet |
| 2022-10-24 12:30:46 +0000 | shriekingnoise | (~shrieking@186.137.167.202) |
| 2022-10-24 12:32:14 +0000 | <Profpatsch> | it just composes nicely with other things, e.g. jsonString :: FieldParser Json.Value Text or attoparsecText :: Atto.Parser a -> FieldParser Text a |
| 2022-10-24 12:33:37 +0000 | jonathanx | (~jonathan@c-5eea678b-74736162.cust.telenor.se) (Remote host closed the connection) |
| 2022-10-24 12:34:00 +0000 | axeman | (~quassel@2a02:8109:a380:78:bc30:5eb7:62c9:6689) |
| 2022-10-24 12:38:04 +0000 | vglfr | (~vglfr@145.224.100.190) |
| 2022-10-24 12:40:36 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
| 2022-10-24 12:43:22 +0000 | <dminuoso> | And it will make inlining *much* harder |
| 2022-10-24 12:44:17 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 2022-10-24 12:45:39 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) |
| 2022-10-24 12:45:39 +0000 | <Profpatsch> | dminuoso: newtypes influence inlining? |
| 2022-10-24 12:45:47 +0000 | Guest1875 | (~a@49.207.231.197) (Remote host closed the connection) |
| 2022-10-24 12:45:48 +0000 | <Profpatsch> | that’s a first |
| 2022-10-24 12:46:34 +0000 | <dminuoso> | Well no, but each such combinator better be inlineable or inline'd |
| 2022-10-24 12:46:46 +0000 | <dminuoso> | Though.. for attoparsec I dont think it matters much |
| 2022-10-24 12:47:29 +0000 | <Profpatsch> | dminuoso: Ah, well, but they all specify an error message in the Left case, so idk if inlining is a good idea |
| 2022-10-24 12:47:47 +0000 | <dminuoso> | Oh right, there's that Either |
| 2022-10-24 12:47:59 +0000 | <dminuoso> | *that* will definitely ruin performance in a lot of examples |
| 2022-10-24 12:48:12 +0000 | <dminuoso> | It will prevent short cut fusion, it will make inlining hard |
| 2022-10-24 12:48:15 +0000 | <Profpatsch> | yes, the price to pay for good error messages :P |
| 2022-10-24 12:48:21 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 12:49:28 +0000 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 2022-10-24 12:49:54 +0000 | <[Leary]> | I don't think it needs to go on hackage; we have `Kleisli` in base. |
| 2022-10-24 12:49:56 +0000 | <Profpatsch> | dminuoso: I’m guessing CPSsing would help here as well? |
| 2022-10-24 12:50:11 +0000 | stackdroid18 | (14094@user/stackdroid) |
| 2022-10-24 12:50:16 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2022-10-24 12:50:28 +0000 | <dminuoso> | Oh right, FieldParser ~ Kleisli Either |
| 2022-10-24 12:50:32 +0000 | <dminuoso> | Profpatsch: Perhaps. |
| 2022-10-24 12:50:55 +0000 | <dminuoso> | It will still make inlining more difficult for some types of parsers. |
| 2022-10-24 12:51:04 +0000 | <Profpatsch> | [Leary]: yes, it’s a specialised thing which solidifies a good practice |
| 2022-10-24 12:51:21 +0000 | <Profpatsch> | I personally think that’s a useful thing to have |
| 2022-10-24 12:52:26 +0000 | <Profpatsch> | [Leary]: also Kleisli has a lot of Arrow a => operators for legacy reasons |
| 2022-10-24 12:52:52 +0000 | <Profpatsch> | well, it’s from Control.Arrow |
| 2022-10-24 12:53:15 +0000 | <Profpatsch> | Personally, I’m more fond of Bifunctor, Profunctor etc |
| 2022-10-24 12:53:32 +0000 | <Profpatsch> | But I can understand that some people might prefer Arrows |
| 2022-10-24 12:53:35 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 12:55:19 +0000 | <[Leary]> | It may be in Control.Arrow, but that doesn't mean you need to use Arrow. It has all the other instances you want, Profunctor etc. |
| 2022-10-24 12:56:14 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 12:56:15 +0000 | <dminuoso> | Nobody prefers arrows. :> |
| 2022-10-24 12:56:16 +0000 | <[Leary]> | I would at least derive all that via Kleisli. |
| 2022-10-24 12:56:33 +0000 | <Profpatsch> | [Leary]: why though? It makes it harder to understand |
| 2022-10-24 12:56:54 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 12:57:09 +0000 | <[Leary]> | I don't see how. Most people understand Kleisli, so they'll know what you're doing at a glance. |
| 2022-10-24 12:57:22 +0000 | <[Leary]> | A new type requires inspection. |
| 2022-10-24 12:57:22 +0000 | <dminuoso> | "most" depends on your target audience. |
| 2022-10-24 12:57:22 +0000 | <Profpatsch> | Part of a production codebase is reducing the mental overhead of how things work |
| 2022-10-24 12:57:46 +0000 | <Profpatsch> | I wouldn’t want to explain to a new hire what Kleisli is if they want to understand FieldParser |
| 2022-10-24 12:57:56 +0000 | axeman | (~quassel@2a02:8109:a380:78:bc30:5eb7:62c9:6689) (Ping timeout: 250 seconds) |
| 2022-10-24 12:58:05 +0000 | <dminuoso> | Yes, but now you have to explain FieldParser to them |
| 2022-10-24 12:58:14 +0000 | <Profpatsch> | It’s the classic “Having problem understanding 4 dimensions? Just imagine n dimensions and set n=4!” |
| 2022-10-24 12:58:16 +0000 | <dminuoso> | And why you have a separate type from Parser (from say attoparseec) |
| 2022-10-24 12:58:32 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
| 2022-10-24 12:59:53 +0000 | <Profpatsch> | dminuoso: one parses horizontally (i.e. from a stream of tokens to a structure), the other vertically (from a bounded value to a smaller bounded value) |
| 2022-10-24 13:00:18 +0000 | <Profpatsch> | both are mostly orthogonal concepts |
| 2022-10-24 13:00:27 +0000 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) |
| 2022-10-24 13:00:40 +0000 | <dminuoso> | My flatparse parser does this by keeping combinators in separate modules. *shrugs* |
| 2022-10-24 13:00:40 +0000 | Guest16 | (~Guest16@p200300ef971835175dc5e8e509d3babc.dip0.t-ipconnect.de) |
| 2022-10-24 13:00:53 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-10-24 13:01:05 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 272 seconds) |
| 2022-10-24 13:01:10 +0000 | <dminuoso> | That is, I have a Foo.Lexer module which exposes `Get T` type of things that parse tokens, and Foo.Parser that uses Foo.Lexer combinators to produce high level things |
| 2022-10-24 13:01:18 +0000 | <dminuoso> | It's all just `Get a` |
| 2022-10-24 13:01:27 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 2022-10-24 13:01:50 +0000 | <Profpatsch> | dminuoso: is flatparse a Haskell version of nom? |
| 2022-10-24 13:01:55 +0000 | <dminuoso> | Yes |
| 2022-10-24 13:02:02 +0000 | <Profpatsch> | dminuoso: pretty cool, I might want to use that |
| 2022-10-24 13:02:48 +0000 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) (Remote host closed the connection) |
| 2022-10-24 13:03:00 +0000 | <Profpatsch> | dminuoso: Ah, I had never mapped your IRC nick to your github handle before |
| 2022-10-24 13:03:18 +0000 | <Profpatsch> | dminuoso: were you at Zurihac and/or Munihac? |
| 2022-10-24 13:03:42 +0000 | <dminuoso> | We met at Zurihac |
| 2022-10-24 13:04:05 +0000 | <Profpatsch> | Me and my brain are best frens |
| 2022-10-24 13:04:47 +0000 | <Profpatsch> | dminuoso: the good thing, this way my brain can meet you next Zurihac, for the first time, all over again! |
| 2022-10-24 13:06:09 +0000 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) |
| 2022-10-24 13:06:13 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 2022-10-24 13:06:30 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 13:12:11 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 276 seconds) |
| 2022-10-24 13:12:47 +0000 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
| 2022-10-24 13:13:22 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
| 2022-10-24 13:15:36 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 13:16:01 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:d960:d98a:f624:8ef) (Read error: Connection reset by peer) |
| 2022-10-24 13:16:11 +0000 | sameer | (~sameer@2409:4070:2d3d:53f6::c049:8101) |
| 2022-10-24 13:18:19 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 2022-10-24 13:23:51 +0000 | Guest16 | (~Guest16@p200300ef971835175dc5e8e509d3babc.dip0.t-ipconnect.de) (Quit: Client closed) |
| 2022-10-24 13:24:03 +0000 | <tdammers> | heh... I, for one, am not always on speaking terms with my brain :D |
| 2022-10-24 13:24:22 +0000 | <merijn> | tdammers: facts |
| 2022-10-24 13:24:30 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 2022-10-24 13:24:45 +0000 | <merijn> | Hell, most of my body tends to occasionally not be on speaking terms :p |
| 2022-10-24 13:25:19 +0000 | geekosaur | resembles that one |
| 2022-10-24 13:26:35 +0000 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2022-10-24 13:28:09 +0000 | beteigeuze1 | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) |
| 2022-10-24 13:29:44 +0000 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 276 seconds) |
| 2022-10-24 13:29:44 +0000 | beteigeuze1 | beteigeuze |
| 2022-10-24 13:31:06 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 2022-10-24 13:31:30 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
| 2022-10-24 13:32:17 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2022-10-24 13:32:42 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 2022-10-24 13:32:45 +0000 | ystael | (~ystael@user/ystael) |
| 2022-10-24 13:33:38 +0000 | acidjnk | (~acidjnk@p200300d6e7137a399c67b611784f46e2.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2022-10-24 13:34:39 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 13:34:43 +0000 | mrvdb | (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2022-10-24 13:35:30 +0000 | mrvdb | (~mrvdb@185.92.221.186) |
| 2022-10-24 13:35:57 +0000 | <Profpatsch> | Okay, weird error: I changed some -> IO a to Applicative m => … -> m a |
| 2022-10-24 13:36:09 +0000 | <Profpatsch> | And suddenly a TypeApplication does not type check anymore |
| 2022-10-24 13:36:59 +0000 | <Profpatsch> | foo @Bar a b <- “Cannot apply expression of type a0 -> b -> a0 to visible type argument Bar” |
| 2022-10-24 13:37:22 +0000 | <Profpatsch> | Is this some weird interaction between the ApplicativeDo desugaring and TypeApplications? |
| 2022-10-24 13:37:36 +0000 | <Profpatsch> | the definition of `foo` is in a let-block above the code that fails |
| 2022-10-24 13:37:45 +0000 | <Profpatsch> | I will try moving it into a where clause, maybe this helps |
| 2022-10-24 13:38:15 +0000 | <Profpatsch> | Removing the type application seems to work, but that’s bad for code readability |
| 2022-10-24 13:39:06 +0000 | <lortabac> | are there other type variables in the signature before 'm'? |
| 2022-10-24 13:39:15 +0000 | <Profpatsch> | oh huh moving it to the where seems to work |
| 2022-10-24 13:39:28 +0000 | <Profpatsch> | lortabac: no, just the m |
| 2022-10-24 13:39:46 +0000 | <Profpatsch> | I’m a bit too lazy to produce a minimal example right now |
| 2022-10-24 13:40:13 +0000 | <Profpatsch> | It might interact with the enabled extensions in a weird way |
| 2022-10-24 13:40:20 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 2022-10-24 13:41:06 +0000 | <Profpatsch> | I guess GHC removes the `a` from the definition of `foo` before it actually does the TypeApplication, so it’s gone at that point |
| 2022-10-24 13:43:07 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 13:45:35 +0000 | <Profpatsch> | funny, interspersing a `let` between the last _ <- ma and the final `pure $ …` will also switch from Applicative to Monad |
| 2022-10-24 13:45:40 +0000 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 244 seconds) |
| 2022-10-24 13:45:43 +0000 | <Profpatsch> | ApplicativeDo is really unstable holy crap |
| 2022-10-24 13:47:22 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
| 2022-10-24 13:47:34 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 13:48:17 +0000 | <Profpatsch> | Ah, the algorithm is O(n^2) well |
| 2022-10-24 13:51:57 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
| 2022-10-24 13:52:32 +0000 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 2022-10-24 13:52:32 +0000 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 2022-10-24 13:52:32 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-10-24 13:56:21 +0000 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 13:56:38 +0000 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Client Quit) |
| 2022-10-24 13:57:04 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) () |
| 2022-10-24 13:57:20 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 13:57:40 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 13:58:16 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 13:58:56 +0000 | BananaKing694 | j4cc3b_ |
| 2022-10-24 13:59:29 +0000 | j4cc3b_ | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Client Quit) |
| 2022-10-24 14:01:08 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 14:02:29 +0000 | <kuribas> | Profpatsch: maybe the `m` is not the first type argument of foo? |
| 2022-10-24 14:02:32 +0000 | <kuribas> | now |
| 2022-10-24 14:03:57 +0000 | akegalj | (~akegalj@93-138-77-86.adsl.net.t-com.hr) (Quit: leaving) |
| 2022-10-24 14:04:33 +0000 | <Profpatsch> | kuribas: I had foo defined as let foo :: Read a -> a -> Maybe Text -> a |
| 2022-10-24 14:04:39 +0000 | <Profpatsch> | So m did not even appear in foo’s signature |
| 2022-10-24 14:04:48 +0000 | <Profpatsch> | I wanted to instantiate the `a` |
| 2022-10-24 14:05:30 +0000 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
| 2022-10-24 14:05:31 +0000 | <Profpatsch> | Which is why I’m confused why the `a` suddenly disappears when you switch the m of the do-block outside from IO to Applicative m |
| 2022-10-24 14:05:43 +0000 | <Profpatsch> | and switch on ApplicativeDo |
| 2022-10-24 14:05:54 +0000 | <geekosaur> | is one of those ->s supposed to be a =>? |
| 2022-10-24 14:05:59 +0000 | <Profpatsch> | geekosaur: yes |
| 2022-10-24 14:06:02 +0000 | <Profpatsch> | the first |
| 2022-10-24 14:06:29 +0000 | <Profpatsch> | I thought maybe ScopedTypeVariables might fix it, but it doesn’t look like it does |
| 2022-10-24 14:06:32 +0000 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 2022-10-24 14:06:40 +0000 | <Profpatsch> | moving the definition of foo from let to a where fixes it |
| 2022-10-24 14:06:48 +0000 | <Profpatsch> | I guess I can live with that |
| 2022-10-24 14:07:19 +0000 | <geekosaur> | istr that applicativedo has issues whth lets |
| 2022-10-24 14:07:33 +0000 | <Profpatsch> | geekosaur: is that a well-known fact? |
| 2022-10-24 14:07:58 +0000 | <geekosaur> | it's well known that it has lots of oddities and failure modes that "ought to" work |
| 2022-10-24 14:08:02 +0000 | <Profpatsch> | I’d prefer a separate `ado` tbh |
| 2022-10-24 14:08:07 +0000 | <geekosaur> | it's really fragile |
| 2022-10-24 14:08:09 +0000 | <Profpatsch> | or something along those lines |
| 2022-10-24 14:08:42 +0000 | <tdammers> | I'm still pretty convinced that there's no fundamental reason why applicative do couldn't work, but the problem seems to be that it's an afterthought |
| 2022-10-24 14:08:48 +0000 | Sgeo | (~Sgeo@user/sgeo) |
| 2022-10-24 14:09:00 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 14:09:29 +0000 | <kuribas> | Profpatsch: ApplicativeDo is quit buggy. |
| 2022-10-24 14:09:39 +0000 | <Profpatsch> | Hrm, maybe I’m gonna do Overloaded-Do and have a module for Applicative |
| 2022-10-24 14:09:42 +0000 | <Profpatsch> | Applicative.do |
| 2022-10-24 14:09:45 +0000 | <Profpatsch> | should work, no? |
| 2022-10-24 14:10:19 +0000 | <kuribas> | it also doesn't handle some obvious stuff, like let bindings. |
| 2022-10-24 14:10:36 +0000 | <kuribas> | Still, it's pretty handy with records. |
| 2022-10-24 14:11:07 +0000 | <Profpatsch> | Ah no, QualifiedDo just converts <- to >>= |
| 2022-10-24 14:12:31 +0000 | <Profpatsch> | You can always “prove” that it’s not Monad by returning `Applicative m => … -> m` and passing all required functions in `m` as arguments |
| 2022-10-24 14:12:42 +0000 | <Profpatsch> | I think that’s okay-ish |
| 2022-10-24 14:13:57 +0000 | <Profpatsch> | although … hm … that might not work with mtl-style class functions since they always depend on Monad |
| 2022-10-24 14:14:14 +0000 | <Profpatsch> | nvm it does |
| 2022-10-24 14:14:26 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Quit: Client closed) |
| 2022-10-24 14:14:35 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 2022-10-24 14:14:37 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 14:18:04 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-10-24 14:19:35 +0000 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 14:20:47 +0000 | LukeHoersten__ | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 14:21:06 +0000 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 260 seconds) |
| 2022-10-24 14:23:47 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 272 seconds) |
| 2022-10-24 14:24:10 +0000 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
| 2022-10-24 14:27:19 +0000 | Guest51 | (~Guest51@50.47.90.28) |
| 2022-10-24 14:28:33 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
| 2022-10-24 14:30:31 +0000 | <kuribas> | :t ask |
| 2022-10-24 14:30:32 +0000 | <lambdabot> | MonadReader r m => m r |
| 2022-10-24 14:31:32 +0000 | LukeHoersten__ | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
| 2022-10-24 14:31:52 +0000 | <kuribas> | Profpatsch: why do you need to prove it's not a Monad? A Monad is an Applicative too :) |
| 2022-10-24 14:32:46 +0000 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
| 2022-10-24 14:37:56 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-10-24 14:40:08 +0000 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2022-10-24 14:40:56 +0000 | jonathanx | (~jonathan@94.234.103.139) |
| 2022-10-24 14:42:21 +0000 | rembo10 | (~rembo10@main.remulis.com) |
| 2022-10-24 14:43:27 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 2022-10-24 14:43:29 +0000 | glguy | (~glguy@libera/staff-emeritus/glguy) |
| 2022-10-24 14:44:18 +0000 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) (Remote host closed the connection) |
| 2022-10-24 14:46:50 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 2022-10-24 14:47:05 +0000 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 2022-10-24 14:48:33 +0000 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 2022-10-24 14:49:03 +0000 | edrx | (~Eduardo@2804:56c:d2d8:400:7ffb:83a1:5d67:a122) |
| 2022-10-24 14:49:44 +0000 | jonathanx | (~jonathan@94.234.103.139) (Ping timeout: 250 seconds) |
| 2022-10-24 14:50:43 +0000 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: Textual IRC Client: www.textualapp.com) |
| 2022-10-24 14:51:55 +0000 | sameer | (~sameer@2409:4070:2d3d:53f6::c049:8101) (Ping timeout: 272 seconds) |
| 2022-10-24 14:52:50 +0000 | sameer | (~sameer@2409:4070:6e10:74c0::81c8:d301) |
| 2022-10-24 15:03:43 +0000 | <edrx> | hi all... this is slightly off-topic, but right now this channel is the only in which I think I can an answer in less than one hour... =/ I'm trying to learn Tikz - mostly to draw string diagrams - and I'm mostly trying to translate its high-level constructs into lower-level ones... |
| 2022-10-24 15:04:52 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 15:05:24 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 15:06:19 +0000 | <edrx> | but 1) I don't know if the two notions of "rectangle" below can be integrated, and how... and 2) I don't know any chats in which I can ask those questions. Any ideas? |
| 2022-10-24 15:07:03 +0000 | <edrx> | http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf#page=34 |
| 2022-10-24 15:07:11 +0000 | <edrx> | http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf#page=785 |
| 2022-10-24 15:08:50 +0000 | Guest51 | (~Guest51@50.47.90.28) |
| 2022-10-24 15:11:38 +0000 | axeman | (~quassel@2a02:8109:a380:78:7810:2127:b425:57c7) |
| 2022-10-24 15:13:05 +0000 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 276 seconds) |
| 2022-10-24 15:15:38 +0000 | Guest2956 | (~Guest29@pool-108-54-69-191.nycmny.fios.verizon.net) |
| 2022-10-24 15:15:55 +0000 | <Guest2956> | why is this outputting an error? |
| 2022-10-24 15:16:00 +0000 | <Guest2956> | *Main> mapMaybe (+2) [Just 10, Nothing] |
| 2022-10-24 15:16:01 +0000 | <Guest2956> | <interactive>:15:1: error: |
| 2022-10-24 15:16:01 +0000 | <Guest2956> | • Non type-variable argument in the constraint: Num (Maybe b) |
| 2022-10-24 15:16:02 +0000 | <Guest2956> | (Use FlexibleContexts to permit this) |
| 2022-10-24 15:16:02 +0000 | <Guest2956> | • When checking the inferred type |
| 2022-10-24 15:16:03 +0000 | <Guest2956> | it :: forall b. (Num b, Num (Maybe b)) => [b] |
| 2022-10-24 15:16:50 +0000 | <merijn> | :t mapMaybe |
| 2022-10-24 15:16:51 +0000 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
| 2022-10-24 15:17:08 +0000 | <merijn> | (+2) does not return a Maybe |
| 2022-10-24 15:17:30 +0000 | <merijn> | Or rather |
| 2022-10-24 15:17:37 +0000 | <geekosaur> | I think you have the sense of mapMaybe reversed |
| 2022-10-24 15:17:38 +0000 | <merijn> | :t (+2) |
| 2022-10-24 15:17:39 +0000 | <lambdabot> | Num a => a -> a |
| 2022-10-24 15:18:09 +0000 | <merijn> | It's interpreting "(+2)" as having type "Num (Maybe b) => Maybe b -> Maybe b" |
| 2022-10-24 15:18:46 +0000 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
| 2022-10-24 15:19:03 +0000 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) |
| 2022-10-24 15:22:53 +0000 | <Guest2956> | can you give an example of a correct function using mapMaybe? |
| 2022-10-24 15:22:56 +0000 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
| 2022-10-24 15:26:32 +0000 | <ridcully> | Data.Maybe.mapMaybe Data.Maybe.listToMaybe [[], [1]] |
| 2022-10-24 15:26:33 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 15:28:47 +0000 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 260 seconds) |
| 2022-10-24 15:29:00 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2022-10-24 15:30:03 +0000 | motherfsck | (~motherfsc@user/motherfsck) |
| 2022-10-24 15:30:04 +0000 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ad98:9d00:b84f:455) (Quit: WeeChat 2.8) |
| 2022-10-24 15:32:11 +0000 | Tuplanolla | (~Tuplanoll@91-159-69-240.elisa-laajakaista.fi) |
| 2022-10-24 15:33:02 +0000 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 2022-10-24 15:33:30 +0000 | axeman | (~quassel@2a02:8109:a380:78:7810:2127:b425:57c7) (Ping timeout: 250 seconds) |
| 2022-10-24 15:37:46 +0000 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
| 2022-10-24 15:40:27 +0000 | <merijn> | > let x `divBy` y | y == 0 = Nothing; | otherwise = Just (x `div` y) in 5 `divBy` 2 |
| 2022-10-24 15:40:37 +0000 | <lambdabot> | <hint>:1:37: error: parse error on input ‘|’ |
| 2022-10-24 15:40:43 +0000 | <merijn> | bah |
| 2022-10-24 15:40:45 +0000 | <merijn> | ok, I don't know how to do guards to an easy example :p |
| 2022-10-24 15:44:02 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 15:44:21 +0000 | jespada | (~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 2022-10-24 15:46:04 +0000 | danza | (~francesco@151.43.124.110) (Ping timeout: 250 seconds) |
| 2022-10-24 15:46:46 +0000 | jakalx | (~jakalx@base.jakalx.net) |
| 2022-10-24 15:48:11 +0000 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2022-10-24 15:49:15 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7) |
| 2022-10-24 15:49:36 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 2022-10-24 15:49:40 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 15:50:26 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 15:51:58 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
| 2022-10-24 15:52:02 +0000 | <geekosaur> | drop the semicolon |
| 2022-10-24 15:52:15 +0000 | <geekosaur> | > let x `divBy` y | y == 0 = Nothing | otherwise = Just (x `div` y) in 5 `divBy` 2 |
| 2022-10-24 15:52:17 +0000 | <lambdabot> | Just 2 |
| 2022-10-24 15:53:23 +0000 | <Profpatsch> | kuribas: because I can do more with an Applicative than what I can do with a Monad |
| 2022-10-24 15:56:28 +0000 | darkstardevx | (~darkstard@50.126.124.156) (Ping timeout: 250 seconds) |
| 2022-10-24 15:57:20 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
| 2022-10-24 15:58:53 +0000 | danza | (~francesco@rm-19-18-125.service.infuturo.it) |
| 2022-10-24 15:59:30 +0000 | juri_ | (~juri@79.140.114.58) |
| 2022-10-24 16:06:11 +0000 | edrx | (~Eduardo@2804:56c:d2d8:400:7ffb:83a1:5d67:a122) (Killed buffer) |
| 2022-10-24 16:07:00 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 16:07:18 +0000 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
| 2022-10-24 16:10:11 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 2022-10-24 16:10:17 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
| 2022-10-24 16:11:09 +0000 | erisco_ | (~erisco@d24-141-66-165.home.cgocable.net) |
| 2022-10-24 16:11:42 +0000 | econo | (uid147250@user/econo) |
| 2022-10-24 16:13:28 +0000 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 268 seconds) |
| 2022-10-24 16:13:28 +0000 | erisco_ | erisco |
| 2022-10-24 16:14:56 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 16:18:41 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 16:23:28 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 16:23:37 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 16:24:46 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 16:31:47 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 16:34:27 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 16:36:56 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 276 seconds) |
| 2022-10-24 16:38:23 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
| 2022-10-24 16:39:31 +0000 | acidjnk | (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) |
| 2022-10-24 16:40:06 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 16:41:04 +0000 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) |
| 2022-10-24 16:41:07 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 2022-10-24 16:43:37 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Quit: Client closed) |
| 2022-10-24 16:44:01 +0000 | siraben | (~siraben@user/siraben) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | ormaaj | (~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | fgaz | (~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | mekeor[m] | (~mekeormat@2001:470:69fc:105::17e4) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:01 +0000 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | sm | (~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | Tisoxin | (~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | jinsun_ | (~jinsun@user/jinsun) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | nicmollel[m] | (~nicmollel@2001:470:69fc:105::1:feeb) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | aviladev[m] | (~aviladevm@2001:470:69fc:105::1:cbc7) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | cp1313[m] | (~cp1313mat@2001:470:69fc:105::2:9293) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | loosh[m] | (~looshchat@2001:470:69fc:105::2:5ddd) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | Deide | (~deide@user/deide) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | unclechu | (~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | chreekat | (~chreekat@2001:470:69fc:105::16b5) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | fr33domlover[m] | (~fr33domlo@2001:470:69fc:105::1:3bb6) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | lawt | (~lawtonmat@2001:470:69fc:105::2:97b8) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | BB[m] | (~cashmagem@2001:470:69fc:105::f6dc) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | jmcantrell | (~jmcantrel@user/jmcantrell) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | schuelermine[m] | (~schuelerm@user/schuelermine) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:02 +0000 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | aaronv | (~aaronv@user/aaronv) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | baaash[m] | (~baaashmat@2001:470:69fc:105::2:1e90) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | jz99[m] | (~jz99matri@2001:470:69fc:105::1:d5f1) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | foghorn | (~foghorn@user/foghorn) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | july541[m] | (~july541ma@2001:470:69fc:105::1:e416) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | expipiplus1 | (~expipiplu@2001:470:69fc:105::d713) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | silky[m] | (~noonvande@2001:470:69fc:105::2:943c) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | rockymarine[m] | (~rockymari@2001:470:69fc:105::2:9a0c) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | CeNiEi[m] | (~cenieimat@2001:470:69fc:105::1:894c) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | pareto-optimal-d | (~pareto-op@2001:470:69fc:105::1:b61f) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | cafkafk[m] | (~cafkafkma@2001:470:69fc:105::1:cea8) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | M3g-mentok[m] | (~M3g-mento@2001:470:69fc:105::2:9a49) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:03 +0000 | weeezes[m] | (~weeezesma@2001:470:69fc:105::1:da65) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:04 +0000 | Neosake[m] | (~neosakema@2001:470:69fc:105::2:989e) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:04 +0000 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:04 +0000 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:05 +0000 | disco-dave[m] | (~disco-dav@2001:470:69fc:105::2:1892) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:05 +0000 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:05 +0000 | kiri1606[m] | (~kiri1606m@2001:470:69fc:105::2:8ec9) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:05 +0000 | aidy | (~aidy@2001:470:69fc:105::c7b4) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:05 +0000 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:13 +0000 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:13 +0000 | psydroid | (~psydroid@user/psydroid) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:13 +0000 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | mesaoptimizer2 | (~mesaoptim@user/PapuaHardyNet) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:14 +0000 | kadoban | (~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:18 +0000 | RowanG[m] | (~rowang077@2001:470:69fc:105::1:ca9f) (Quit: Bridge terminating on SIGTERM) |
| 2022-10-24 16:44:22 +0000 | <cheater> | what's your favourite clean way to do this without writing your own recursion? myLoop acc = do { ended <- ioIsEnded; if ended { putStrLn "ended" } else { x <- myIO; let acc = pureFun acc x; myLoop acc; } |
| 2022-10-24 16:45:17 +0000 | danza | (~francesco@rm-19-18-125.service.infuturo.it) (Read error: Connection reset by peer) |
| 2022-10-24 16:45:29 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 16:45:41 +0000 | danza | (~francesco@rm-19-18-125.service.infuturo.it) |
| 2022-10-24 16:45:41 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
| 2022-10-24 16:46:52 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-10-24 16:48:16 +0000 | <Rembane> | cheater: Perhaps using whileM? https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loops.html |
| 2022-10-24 16:48:24 +0000 | fgaz | (~fgaz@2001:470:69fc:105::842) |
| 2022-10-24 16:48:36 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-10-24 16:48:42 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 2022-10-24 16:49:28 +0000 | <cheater> | i'm just wondering what everyone uses since it's a good idea to ask about simple stuff like that |
| 2022-10-24 16:49:30 +0000 | peddie | (~peddie@2001:470:69fc:105::25d) |
| 2022-10-24 16:49:30 +0000 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
| 2022-10-24 16:49:30 +0000 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) |
| 2022-10-24 16:49:30 +0000 | maralorn | (~maralorn@2001:470:69fc:105::251) |
| 2022-10-24 16:49:30 +0000 | sm | (~sm@plaintextaccounting/sm) |
| 2022-10-24 16:49:42 +0000 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
| 2022-10-24 16:49:42 +0000 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
| 2022-10-24 16:49:56 +0000 | kiri1606[m] | (~kiri1606m@2001:470:69fc:105::2:8ec9) |
| 2022-10-24 16:49:56 +0000 | siraben | (~siraben@user/siraben) |
| 2022-10-24 16:50:08 +0000 | july541[m] | (~july541ma@2001:470:69fc:105::1:e416) |
| 2022-10-24 16:50:09 +0000 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
| 2022-10-24 16:50:21 +0000 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) |
| 2022-10-24 16:50:22 +0000 | chreekat | (~chreekat@2001:470:69fc:105::16b5) |
| 2022-10-24 16:50:23 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
| 2022-10-24 16:50:28 +0000 | <cheater> | whileM keeps a partial list around |
| 2022-10-24 16:50:43 +0000 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
| 2022-10-24 16:50:49 +0000 | <cheater> | but i guess i actually do need to keep one hmm |
| 2022-10-24 16:50:56 +0000 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) |
| 2022-10-24 16:51:10 +0000 | expipiplus1 | (~expipiplu@2001:470:69fc:105::d713) |
| 2022-10-24 16:51:22 +0000 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
| 2022-10-24 16:51:22 +0000 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
| 2022-10-24 16:51:37 +0000 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
| 2022-10-24 16:51:37 +0000 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
| 2022-10-24 16:51:37 +0000 | jmcantrell | (~jmcantrel@user/jmcantrell) |
| 2022-10-24 16:51:38 +0000 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
| 2022-10-24 16:51:38 +0000 | jinsun_ | (~jinsun@user/jinsun) |
| 2022-10-24 16:51:38 +0000 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) |
| 2022-10-24 16:51:38 +0000 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) |
| 2022-10-24 16:51:38 +0000 | ormaaj | (~ormaaj@user/ormaaj) |
| 2022-10-24 16:51:38 +0000 | cp1313[m] | (~cp1313mat@2001:470:69fc:105::2:9293) |
| 2022-10-24 16:51:38 +0000 | kadoban | (~kadoban@user/kadoban) |
| 2022-10-24 16:51:38 +0000 | BB[m] | (~cashmagem@2001:470:69fc:105::f6dc) |
| 2022-10-24 16:51:39 +0000 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) |
| 2022-10-24 16:51:53 +0000 | silky[m] | (~noonvande@2001:470:69fc:105::2:943c) |
| 2022-10-24 16:51:54 +0000 | nicmollel[m] | (~nicmollel@2001:470:69fc:105::1:feeb) |
| 2022-10-24 16:51:54 +0000 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) |
| 2022-10-24 16:51:54 +0000 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
| 2022-10-24 16:51:54 +0000 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
| 2022-10-24 16:51:54 +0000 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) |
| 2022-10-24 16:51:54 +0000 | lawt | (~lawtonmat@2001:470:69fc:105::2:97b8) |
| 2022-10-24 16:51:54 +0000 | RowanG[m] | (~rowang077@2001:470:69fc:105::1:ca9f) |
| 2022-10-24 16:51:54 +0000 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
| 2022-10-24 16:51:54 +0000 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
| 2022-10-24 16:52:06 +0000 | CeNiEi[m] | (~cenieimat@2001:470:69fc:105::1:894c) |
| 2022-10-24 16:52:08 +0000 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) |
| 2022-10-24 16:52:08 +0000 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) |
| 2022-10-24 16:52:21 +0000 | Neosake[m] | (~neosakema@2001:470:69fc:105::2:989e) |
| 2022-10-24 16:52:34 +0000 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
| 2022-10-24 16:52:46 +0000 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) |
| 2022-10-24 16:52:58 +0000 | rockymarine[m] | (~rockymari@2001:470:69fc:105::2:9a0c) |
| 2022-10-24 16:52:58 +0000 | loosh[m] | (~looshchat@2001:470:69fc:105::2:5ddd) |
| 2022-10-24 16:53:10 +0000 | M3g-mentok[m] | (~M3g-mento@2001:470:69fc:105::2:9a49) |
| 2022-10-24 16:53:24 +0000 | disco-dave[m] | (~disco-dav@2001:470:69fc:105::2:1892) |
| 2022-10-24 16:53:25 +0000 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
| 2022-10-24 16:53:25 +0000 | Tisoxin | (~ikosit@user/ikosit) |
| 2022-10-24 16:53:25 +0000 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
| 2022-10-24 16:53:25 +0000 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
| 2022-10-24 16:53:26 +0000 | foghorn | (~foghorn@user/foghorn) |
| 2022-10-24 16:53:26 +0000 | unclechu | (~unclechu@2001:470:69fc:105::354) |
| 2022-10-24 16:53:26 +0000 | baaash[m] | (~baaashmat@2001:470:69fc:105::2:1e90) |
| 2022-10-24 16:53:26 +0000 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) |
| 2022-10-24 16:53:26 +0000 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) |
| 2022-10-24 16:53:38 +0000 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) |
| 2022-10-24 16:53:38 +0000 | mekeor[m] | (~mekeormat@2001:470:69fc:105::17e4) |
| 2022-10-24 16:53:38 +0000 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) |
| 2022-10-24 16:53:38 +0000 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) |
| 2022-10-24 16:53:39 +0000 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) |
| 2022-10-24 16:53:39 +0000 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) |
| 2022-10-24 16:53:39 +0000 | jz99[m] | (~jz99matri@2001:470:69fc:105::1:d5f1) |
| 2022-10-24 16:53:39 +0000 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) |
| 2022-10-24 16:53:39 +0000 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) |
| 2022-10-24 16:53:39 +0000 | aviladev[m] | (~aviladevm@2001:470:69fc:105::1:cbc7) |
| 2022-10-24 16:53:39 +0000 | Deide | (~deide@user/deide) |
| 2022-10-24 16:53:39 +0000 | fr33domlover[m] | (~fr33domlo@2001:470:69fc:105::1:3bb6) |
| 2022-10-24 16:53:54 +0000 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) |
| 2022-10-24 16:53:55 +0000 | cafkafk[m] | (~cafkafkma@2001:470:69fc:105::1:cea8) |
| 2022-10-24 16:53:56 +0000 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) |
| 2022-10-24 16:54:10 +0000 | juri_ | (~juri@79.140.114.58) (Read error: Connection reset by peer) |
| 2022-10-24 16:54:31 +0000 | pareto-optimal-d | (~pareto-op@2001:470:69fc:105::1:b61f) |
| 2022-10-24 16:54:34 +0000 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) |
| 2022-10-24 16:54:35 +0000 | aaronv | (~aaronv@user/aaronv) |
| 2022-10-24 16:54:35 +0000 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) |
| 2022-10-24 16:54:35 +0000 | psydroid | (~psydroid@user/psydroid) |
| 2022-10-24 16:54:35 +0000 | schuelermine[m] | (~schuelerm@user/schuelermine) |
| 2022-10-24 16:54:35 +0000 | mesaoptimizer2 | (~mesaoptim@user/PapuaHardyNet) |
| 2022-10-24 16:54:47 +0000 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) |
| 2022-10-24 16:54:59 +0000 | weeezes[m] | (~weeezesma@2001:470:69fc:105::1:da65) |
| 2022-10-24 16:57:57 +0000 | juri_ | (~juri@79.140.114.58) |
| 2022-10-24 17:00:08 +0000 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
| 2022-10-24 17:01:01 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 2022-10-24 17:01:52 +0000 | Guest2956 | (~Guest29@pool-108-54-69-191.nycmny.fios.verizon.net) (Quit: Client closed) |
| 2022-10-24 17:02:36 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 17:03:10 +0000 | juri_ | (~juri@79.140.114.58) (Ping timeout: 252 seconds) |
| 2022-10-24 17:03:12 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:f433:1323:4e67:752d) |
| 2022-10-24 17:04:04 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 17:04:21 +0000 | rockystone | (~rocky@user/rockymarine) |
| 2022-10-24 17:04:52 +0000 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) |
| 2022-10-24 17:06:50 +0000 | rockystone | (~rocky@user/rockymarine) (Read error: Connection reset by peer) |
| 2022-10-24 17:07:32 +0000 | nschoe | (~q@141.101.51.197) (Ping timeout: 250 seconds) |
| 2022-10-24 17:08:14 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-10-24 17:09:27 +0000 | jakalx | (~jakalx@base.jakalx.net) |
| 2022-10-24 17:10:08 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
| 2022-10-24 17:10:11 +0000 | zer0bitz_ | (~zer0bitz@2001:2003:f748:2000:48a6:74bf:500d:5c90) |
| 2022-10-24 17:10:24 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 17:11:37 +0000 | littlefinger | (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) |
| 2022-10-24 17:12:19 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:f433:1323:4e67:752d) (Ping timeout: 255 seconds) |
| 2022-10-24 17:12:45 +0000 | kuribas | (~user@ptr-17d51emnxyldefiap63.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 2022-10-24 17:13:15 +0000 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 2022-10-24 17:15:00 +0000 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Quit: Reconnecting) |
| 2022-10-24 17:15:16 +0000 | oak- | (~oak-@2001:470:69fc:105::fcd) |
| 2022-10-24 17:17:05 +0000 | darkstardevx | (~darkstard@50.126.124.156) |
| 2022-10-24 17:17:36 +0000 | kimjetwav | (~user@2607:fea8:235e:b600:b115:f56:940e:2252) |
| 2022-10-24 17:22:45 +0000 | ghoulpine | (xfnw@tilde.team) (Quit: Connection reset by purr) |
| 2022-10-24 17:24:14 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
| 2022-10-24 17:24:31 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 17:25:44 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
| 2022-10-24 17:26:20 +0000 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) (Ping timeout: 276 seconds) |
| 2022-10-24 17:30:07 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 2022-10-24 17:30:29 +0000 | axeman | (~quassel@2a02:8109:a380:78:dcd3:d662:889b:778e) |
| 2022-10-24 17:34:04 +0000 | zebrag | (~chris@user/zebrag) |
| 2022-10-24 17:35:36 +0000 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 2022-10-24 17:35:37 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-10-24 17:36:42 +0000 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
| 2022-10-24 17:36:55 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
| 2022-10-24 17:37:12 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 17:37:29 +0000 | slack1256 | (~slack1256@186.11.46.162) |
| 2022-10-24 17:37:59 +0000 | zer0bitz_ | (~zer0bitz@2001:2003:f748:2000:48a6:74bf:500d:5c90) (Read error: Connection reset by peer) |
| 2022-10-24 17:40:54 +0000 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 250 seconds) |
| 2022-10-24 17:41:01 +0000 | gentauro | (~gentauro@user/gentauro) |
| 2022-10-24 17:43:25 +0000 | <slack1256> | Nixos by default compiles libraries dynamically for haskell projects. IIRC this made monomorphization difficult, is that right? |
| 2022-10-24 17:43:56 +0000 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 250 seconds) |
| 2022-10-24 17:45:45 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 2022-10-24 17:47:17 +0000 | <dminuoso> | lyxia: Oh gosh! All my mistakes were in assuming the phases went from 0 to 2, but they go backwards. clearly. |
| 2022-10-24 17:47:34 +0000 | <[exa]> | slack1256: by "monomorphization" you mean "making optimized non-polymorphic variants of functions" right? if so, information for inlining is actually present in .hi files and so the dynamic status of the library doesn't really make much difference |
| 2022-10-24 17:47:39 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:99dc:7f1f:c53d:641d) |
| 2022-10-24 17:49:45 +0000 | <dolio> | Dynamic linking doesn't prevent any optimizations, I think. |
| 2022-10-24 17:50:48 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
| 2022-10-24 17:50:48 +0000 | <monochrom> | The optimizer stage and the code generator stage are not told about linking options. |
| 2022-10-24 17:51:02 +0000 | <monochrom> | IOW orthogonal and independent etc. |
| 2022-10-24 17:51:13 +0000 | <jle`> | nshepperd2: ah, thanks! was curious how it'd look in haskell :) it's a pretty interesting/neat dynamic programming problem |
| 2022-10-24 17:51:27 +0000 | <dolio> | Which could mean that 'dynamic linking' is meaningless, because all the code from the library has been inlined already. |
| 2022-10-24 17:51:56 +0000 | <dolio> | Although that's somewhat unlikely in most cases. |
| 2022-10-24 17:51:57 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 17:52:29 +0000 | <monochrom> | Oh, in practice inlining happens more often than pessimists think and less often than optimists think. :) |
| 2022-10-24 17:53:36 +0000 | <dminuoso> | In other words, everybody is wrong? |
| 2022-10-24 17:53:45 +0000 | <Rembane> | The best kind of wrong! |
| 2022-10-24 17:53:46 +0000 | <monochrom> | The RTS is never inlined. This is how exe size can be much smaller under dynamic linking. |
| 2022-10-24 17:53:47 +0000 | <[exa]> | safe assumption. |
| 2022-10-24 17:55:16 +0000 | <monochrom> | Or rather, this puts an upper bound. |
| 2022-10-24 17:57:37 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Ping timeout: 246 seconds) |
| 2022-10-24 17:58:17 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 17:58:50 +0000 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 276 seconds) |
| 2022-10-24 18:00:46 +0000 | <[exa]> | are there any vital alternatives to haskeline? |
| 2022-10-24 18:01:38 +0000 | <dminuoso> | There's wizards |
| 2022-10-24 18:01:52 +0000 | <dminuoso> | Which I guess is just a higher level wrapper around haskeline, but its there. |
| 2022-10-24 18:03:57 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 2022-10-24 18:06:36 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 2022-10-24 18:07:52 +0000 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
| 2022-10-24 18:08:09 +0000 | boxscape_ | (~boxscape_@81.191.27.107) |
| 2022-10-24 18:08:52 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
| 2022-10-24 18:09:21 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
| 2022-10-24 18:14:57 +0000 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 272 seconds) |
| 2022-10-24 18:16:13 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 18:17:03 +0000 | <[exa]> | ah ok, let's go haskeline then, thanks :] |
| 2022-10-24 18:24:06 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2022-10-24 18:24:33 +0000 | ec | (~ec@gateway/tor-sasl/ec) |
| 2022-10-24 18:26:21 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 2022-10-24 18:29:32 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2022-10-24 18:32:01 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 2022-10-24 18:39:13 +0000 | barak | (~barak@2a0d:6fc2:68c0:ce00:ef5e:afee:320:8603) |
| 2022-10-24 18:40:20 +0000 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) (Quit: leaving) |
| 2022-10-24 18:45:44 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 18:50:14 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 2022-10-24 18:50:55 +0000 | barak | (~barak@2a0d:6fc2:68c0:ce00:ef5e:afee:320:8603) (Quit: WeeChat 3.7.1) |
| 2022-10-24 18:52:25 +0000 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 2022-10-24 18:58:45 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 19:04:29 +0000 | gqplox | (~textual@147.188.245.207) |
| 2022-10-24 19:04:51 +0000 | <gqplox> | hi ive made a funcitno recursiveConcat :: [[a]] -> [a] |
| 2022-10-24 19:04:57 +0000 | <gqplox> | recursiveconcat [] = [] |
| 2022-10-24 19:05:20 +0000 | <gqplox> | reucsriveconcat xxs = head xxs ++ recursiveconcat (tail xxs) |
| 2022-10-24 19:05:34 +0000 | <gqplox> | it works fine but i don't understand why |
| 2022-10-24 19:05:52 +0000 | <gqplox> | recursiveconcat xxs = head xxs ++ recursiveconcat $ tail xxs |
| 2022-10-24 19:05:54 +0000 | <gqplox> | is wrong |
| 2022-10-24 19:10:58 +0000 | <monochrom> | Oh probably because "foo ++ bar $ x" means "(foo ++ bar) x" not "foo ++ (bar x)" |
| 2022-10-24 19:11:35 +0000 | <monochrom> | This is why "$ replaces ()" is a naïve model. |
| 2022-10-24 19:12:05 +0000 | <gqplox> | Wait what |
| 2022-10-24 19:12:23 +0000 | <gqplox> | i didn't expect that |
| 2022-10-24 19:12:52 +0000 | <gqplox> | thanks for the reply |
| 2022-10-24 19:12:57 +0000 | <gqplox> | where should I look to find the 'correct' way of looking at $ then? |
| 2022-10-24 19:13:22 +0000 | P1RATEZ | (piratez@user/p1ratez) |
| 2022-10-24 19:13:47 +0000 | lortabac | (~lortabac@2a01:e0a:541:b8f0:8c46:781f:98f3:6c99) |
| 2022-10-24 19:13:51 +0000 | danza | (~francesco@rm-19-18-125.service.infuturo.it) (Ping timeout: 272 seconds) |
| 2022-10-24 19:14:07 +0000 | ec | (~ec@gateway/tor-sasl/ec) |
| 2022-10-24 19:14:17 +0000 | <monochrom> | A combination of operator precedence ($ is lower than all other operators) and the equation (f) $ (x) = (f) (x). |
| 2022-10-24 19:15:06 +0000 | <monochrom> | If that is too complicated, a simple rule of thumb is "just don't use $". :) |
| 2022-10-24 19:15:29 +0000 | ft | (~ft@p3e9bc845.dip0.t-ipconnect.de) |
| 2022-10-24 19:15:43 +0000 | <monochrom> | $ is extremely optional, you can ignore it until you're ready. |
| 2022-10-24 19:16:40 +0000 | <monochrom> | Explicit parentheses is more explicit and requires less memorizing operator precedence levels. |
| 2022-10-24 19:17:36 +0000 | <gqplox> | Oh cool I wrote it out and understand how it gets there, thanks |
| 2022-10-24 19:17:52 +0000 | <gqplox> | Although i think ill only use it for when its completely obvious for now |
| 2022-10-24 19:19:13 +0000 | vulpine | (xfnw@tilde.team) |
| 2022-10-24 19:20:38 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
| 2022-10-24 19:22:06 +0000 | redmp | (~redmp@airbears2-136-152-143-223.airbears2.berkeley.edu) |
| 2022-10-24 19:22:27 +0000 | vulpine | ghoulpine |
| 2022-10-24 19:22:57 +0000 | ralu1 | (~ralu@static.211.245.203.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
| 2022-10-24 19:22:58 +0000 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 272 seconds) |
| 2022-10-24 19:32:02 +0000 | redmp | (~redmp@airbears2-136-152-143-223.airbears2.berkeley.edu) (Ping timeout: 260 seconds) |
| 2022-10-24 19:33:44 +0000 | pavonia | (~user@user/siracusa) |
| 2022-10-24 19:33:46 +0000 | <dminuoso> | monochrom: Mmm, that statement `"foo ++ bar $ x" means "(foo ++ bar) x" not "foo ++ (bar x)"` by itself can be confusing too. |
| 2022-10-24 19:34:42 +0000 | <monochrom> | How? |
| 2022-10-24 19:35:03 +0000 | <dminuoso> | I would, for clarity sake, add parens around `x` as well. |
| 2022-10-24 19:36:38 +0000 | mc47 | (~mc47@xmonad/TheMC47) |
| 2022-10-24 19:37:58 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 19:40:14 +0000 | MajorBiscuit | (~MajorBisc@mob-109-118-119-253.net.vodafone.it) |
| 2022-10-24 19:44:01 +0000 | <davean> | monochrom: uh, didn't you just describe the "$ replaces ()" model and then said that was why it was naive? |
| 2022-10-24 19:44:33 +0000 | <monochrom> | How? |
| 2022-10-24 19:44:51 +0000 | <davean> | Because "foo ++ bar $ x" => "(foo ++ bar) (x)" |
| 2022-10-24 19:45:23 +0000 | <davean> | which you then simplified and said "means \"(foo ++ bar) x\"" |
| 2022-10-24 19:45:52 +0000 | <monochrom> | "$ replaces ()" includes both that and "foo ++ (bar x)". |
| 2022-10-24 19:46:20 +0000 | <monochrom> | Err no. |
| 2022-10-24 19:46:23 +0000 | <davean> | I was told "put parents around the full expression on both sides of the $" |
| 2022-10-24 19:46:31 +0000 | <monochrom> | Err yes. |
| 2022-10-24 19:48:15 +0000 | <monochrom> | That's never how people use "$ replaces ()". |
| 2022-10-24 19:48:26 +0000 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
| 2022-10-24 19:48:42 +0000 | <davean> | It isn't? Thats what this channel gave me when I first learned haskell |
| 2022-10-24 19:48:49 +0000 | <dminuoso> | davean: That leaves us just to talk about right and left associativity, and how ($) should be infixl and not infixr! |
| 2022-10-24 19:48:59 +0000 | <monochrom> | How people use it: Start with an expression that has some () but no $, then replace all () by $. That direction doesn't work. |
| 2022-10-24 19:49:16 +0000 | <davean> | oh huh, ok, thats NOT what I ever heard |
| 2022-10-24 19:50:26 +0000 | <monochrom> | This is a special case of how people never proofread their own writing. |
| 2022-10-24 19:50:34 +0000 | <dminuoso> | What do you folks think. Is the fixity of ($) wrong? |
| 2022-10-24 19:50:46 +0000 | <dolio> | Yes. |
| 2022-10-24 19:50:56 +0000 | <dolio> | But it's too late to fix it. |
| 2022-10-24 19:51:42 +0000 | <monochrom> | I.e., people never work this backward crosscheck direction: "Now that I have code that uses $, let me replace $ by (), impartially, and see if it really means what I want". |
| 2022-10-24 19:52:09 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 2022-10-24 19:52:39 +0000 | <monochrom> | In general people never check what their wording actually comes across to other people/computer. |
| 2022-10-24 19:52:58 +0000 | ec | (~ec@gateway/tor-sasl/ec) |
| 2022-10-24 19:53:06 +0000 | dextaa | (~DV@user/dextaa) |
| 2022-10-24 19:53:38 +0000 | jmdaemon | (~jmdaemon@user/jmdaemon) |
| 2022-10-24 19:54:01 +0000 | mokee | (~mokee@37.228.215.235) (Quit: off) |
| 2022-10-24 19:57:40 +0000 | littlefinger | (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2022-10-24 19:59:08 +0000 | axeman | (~quassel@2a02:8109:a380:78:dcd3:d662:889b:778e) (Ping timeout: 250 seconds) |
| 2022-10-24 19:59:29 +0000 | Guest51 | (~Guest51@205.175.106.104) |
| 2022-10-24 19:59:50 +0000 | gqplox | (~textual@147.188.245.207) (Quit: Textual IRC Client: www.textualapp.com) |
| 2022-10-24 20:02:59 +0000 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:d4cb:6221:97a6:c0bc) (Quit: caryhartline) |
| 2022-10-24 20:03:02 +0000 | Guest51 | (~Guest51@205.175.106.104) (Client Quit) |
| 2022-10-24 20:04:16 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
| 2022-10-24 20:04:41 +0000 | Guest51 | (~Guest51@205.175.106.104) |
| 2022-10-24 20:05:39 +0000 | lortabac | (~lortabac@2a01:e0a:541:b8f0:8c46:781f:98f3:6c99) (Quit: WeeChat 2.8) |
| 2022-10-24 20:05:56 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2022-10-24 20:07:02 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 2022-10-24 20:09:45 +0000 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) |
| 2022-10-24 20:12:20 +0000 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 2022-10-24 20:15:18 +0000 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) |
| 2022-10-24 20:15:55 +0000 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) (Client Quit) |
| 2022-10-24 20:16:03 +0000 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 2022-10-24 20:16:13 +0000 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) |
| 2022-10-24 20:19:30 +0000 | m5zs7k | (aquares@web10.mydevil.net) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | Ranhir | (~Ranhir@157.97.53.139) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | taeaad | (~taeaad@user/taeaad) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | stefan-_ | (~cri@42dots.de) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | Inoperable | (~PLAYER_1@fancydata.science) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | asm | (~alexander@user/asm) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | zachel | (~zachel@user/zachel) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | cods | (~fred@82-65-232-44.subs.proxad.net) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | Igloo | (~ian@matrix.chaos.earth.li) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | dcoutts__ | (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | AkechiShiro | (~licht@user/akechishiro) (*.net *.split) |
| 2022-10-24 20:19:30 +0000 | gnyeki | (~gnyeki@user/gnyeki) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | spaced | (uid572193@user/spaced) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | stilgart | (~Christoph@chezlefab.net) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | GoldsteinQ | (~goldstein@goldstein.rs) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | phileasfogg | (~phileasfo@user/phileasfogg) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | spider_ | (~spider@vps-951ce37a.vps.ovh.ca) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | DigitalKiwi | (~kiwi@2604:a880:400:d0::1ca0:e001) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | ddb | (~ddb@tilde.club) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | lieven | (~mal@ns2.wyrd.be) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | kaskal | (~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | APic | (apic@apic.name) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | siers | (~ij@user/ij) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | hugo | (znc@verdigris.lysator.liu.se) (*.net *.split) |
| 2022-10-24 20:19:31 +0000 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (*.net *.split) |
| 2022-10-24 20:19:39 +0000 | Igloo | (~ian@matrix.chaos.earth.li) |
| 2022-10-24 20:19:41 +0000 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
| 2022-10-24 20:19:44 +0000 | APic | (apic@apic.name) |
| 2022-10-24 20:19:44 +0000 | cods | (~fred@82-65-232-44.subs.proxad.net) |
| 2022-10-24 20:19:44 +0000 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
| 2022-10-24 20:19:47 +0000 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 2022-10-24 20:19:48 +0000 | kaskal | (~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0) |
| 2022-10-24 20:19:52 +0000 | dcoutts__ | (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
| 2022-10-24 20:19:53 +0000 | asm | (~alexander@burner.asm89.io) |
| 2022-10-24 20:19:53 +0000 | spider_ | (~spider@vps-951ce37a.vps.ovh.ca) |
| 2022-10-24 20:19:56 +0000 | <Profpatsch> | Is there a way to see which HasField instances are defined? |
| 2022-10-24 20:19:58 +0000 | Ranhir | (~Ranhir@157.97.53.139) |
| 2022-10-24 20:19:59 +0000 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) |
| 2022-10-24 20:19:59 +0000 | spaced | (uid572193@user/spaced) |
| 2022-10-24 20:20:01 +0000 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
| 2022-10-24 20:20:02 +0000 | lieven | (~mal@ns2.wyrd.be) |
| 2022-10-24 20:20:05 +0000 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) |
| 2022-10-24 20:20:05 +0000 | stilgart | (~Christoph@chezlefab.net) |
| 2022-10-24 20:20:08 +0000 | ddb | (~ddb@tilde.club) |
| 2022-10-24 20:20:08 +0000 | <Profpatsch> | I have a type newtype AtLeast (min :: Natural) num = AtLeast {unAtLeast :: num} |
| 2022-10-24 20:20:19 +0000 | zachel | (~zachel@user/zachel) |
| 2022-10-24 20:20:21 +0000 | <Profpatsch> | and `unAtLeast` seems to not have a HasField instance for some reason |
| 2022-10-24 20:20:23 +0000 | markasoftware | (~quassel@107.161.26.124) |
| 2022-10-24 20:20:51 +0000 | hugo | (znc@verdigris.lysator.liu.se) |
| 2022-10-24 20:20:59 +0000 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
| 2022-10-24 20:21:01 +0000 | stefan-_ | (~cri@42dots.de) |
| 2022-10-24 20:21:05 +0000 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) |
| 2022-10-24 20:21:05 +0000 | siers | (~ij@user/ij) |
| 2022-10-24 20:21:09 +0000 | phileasfogg | (~phileasfo@user/phileasfogg) |
| 2022-10-24 20:21:10 +0000 | beteigeuze | (~Thunderbi@89.187.168.47) |
| 2022-10-24 20:21:17 +0000 | m5zs7k | (aquares@web10.mydevil.net) |
| 2022-10-24 20:21:21 +0000 | taeaad | (~taeaad@user/taeaad) |
| 2022-10-24 20:21:33 +0000 | DigitalKiwi | (~kiwi@2604:a880:400:d0::1ca0:e001) |
| 2022-10-24 20:23:01 +0000 | Guest51 | (~Guest51@205.175.106.104) (Quit: Client closed) |
| 2022-10-24 20:23:42 +0000 | GoldsteinQ | (~goldstein@goldstein.rs) |
| 2022-10-24 20:24:40 +0000 | gnyeki | (~gnyeki@li578-216.members.linode.com) |
| 2022-10-24 20:24:41 +0000 | gnyeki | (~gnyeki@li578-216.members.linode.com) (Changing host) |
| 2022-10-24 20:24:41 +0000 | gnyeki | (~gnyeki@user/gnyeki) |
| 2022-10-24 20:24:46 +0000 | <Profpatsch> | I guess the phantom type make the instance not obvious? |
| 2022-10-24 20:25:39 +0000 | Inoperable | (~PLAYER_1@fancydata.science) |
| 2022-10-24 20:26:34 +0000 | <Profpatsch> | Ah, the trick is to remove the destructor and to manuall implement HasField |
| 2022-10-24 20:26:41 +0000 | <Profpatsch> | instance HasField "unAtLeast" (AtLeast min num) num where |
| 2022-10-24 20:26:43 +0000 | <Profpatsch> | getField (AtLeast num) = num |
| 2022-10-24 20:26:48 +0000 | <Profpatsch> | makes sens |
| 2022-10-24 20:26:49 +0000 | <Profpatsch> | e |
| 2022-10-24 20:27:02 +0000 | <Profpatsch> | thank you for rubber-ducking, #haskell :P |
| 2022-10-24 20:27:14 +0000 | slac13256 | (~slack1256@191.125.99.71) |
| 2022-10-24 20:29:51 +0000 | slack1256 | (~slack1256@186.11.46.162) (Ping timeout: 272 seconds) |
| 2022-10-24 20:37:58 +0000 | <sm> | 🦆 |
| 2022-10-24 20:38:27 +0000 | <geekosaur> | about all I could do was quack along, sadly |
| 2022-10-24 20:38:56 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
| 2022-10-24 20:39:08 +0000 | <Hecate> | Profpatsch: heya :) |
| 2022-10-24 20:48:56 +0000 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 2022-10-24 20:49:08 +0000 | mmhat | (~mmh@p200300f1c7307610ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2022-10-24 20:53:55 +0000 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 2022-10-24 20:54:11 +0000 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 2022-10-24 20:57:54 +0000 | <Profpatsch> | Hecate: :) |
| 2022-10-24 20:59:35 +0000 | danza | (~francesco@151.82.219.40) |
| 2022-10-24 21:00:39 +0000 | <[exa]> | Megaparsec question: I'm parsing a stream of tokens that can be reconstructed into a line for pretty error printing via TraversableStream |
| 2022-10-24 21:00:52 +0000 | <[exa]> | ... how do I tell it the error position in a line? |
| 2022-10-24 21:01:31 +0000 | MajorBiscuit | (~MajorBisc@mob-109-118-119-253.net.vodafone.it) (Ping timeout: 272 seconds) |
| 2022-10-24 21:02:00 +0000 | <[exa]> | in `reachOffset` I can only report 1] the line contents 2] a new PosState, which can't be "rewinded" to the error position because that could break potential next attempts for getting the contents of the line (I'd be missing the beginning) |
| 2022-10-24 21:02:11 +0000 | mmhat | (~mmh@2003:f1:c730:762d:ee08:6bff:fe09:5315) |
| 2022-10-24 21:03:37 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 260 seconds) |
| 2022-10-24 21:06:41 +0000 | axeman | (~quassel@2a02:8109:a380:78:967e:8a87:718a:1361) |
| 2022-10-24 21:06:43 +0000 | <[exa]> | (as in, the only way that displays to me right is that i keep the pstateOffset at the beginning of the line (to be able to reconstruct it) but move the sourcePos to a column that is not at that offset (possibly breaking sourcePos information for other stuff at that line) |
| 2022-10-24 21:07:43 +0000 | slac13256 | slack1256 |
| 2022-10-24 21:07:52 +0000 | stackdroid18 | (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 2022-10-24 21:11:01 +0000 | mixfix41 | (~sdenynine@user/mixfix41) (Ping timeout: 272 seconds) |
| 2022-10-24 21:11:32 +0000 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
| 2022-10-24 21:11:44 +0000 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
| 2022-10-24 21:15:34 +0000 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
| 2022-10-24 21:15:46 +0000 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
| 2022-10-24 21:17:11 +0000 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 2022-10-24 21:18:09 +0000 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
| 2022-10-24 21:18:27 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 2022-10-24 21:18:48 +0000 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 2022-10-24 21:23:55 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
| 2022-10-24 21:24:34 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 2022-10-24 21:24:42 +0000 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
| 2022-10-24 21:30:01 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 2022-10-24 21:30:17 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
| 2022-10-24 21:33:07 +0000 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Read error: Connection reset by peer) |
| 2022-10-24 21:33:30 +0000 | wonko | (~wjc@user/wonko) |
| 2022-10-24 21:34:18 +0000 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2022-10-24 21:42:09 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 21:43:26 +0000 | gqplox | (~textual@147.188.245.207) |
| 2022-10-24 21:48:15 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
| 2022-10-24 21:56:11 +0000 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 2022-10-24 21:57:25 +0000 | zmt00 | (~zmt00@user/zmt00) |
| 2022-10-24 21:57:58 +0000 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 2022-10-24 22:00:37 +0000 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 240 seconds) |
| 2022-10-24 22:02:27 +0000 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 2022-10-24 22:02:55 +0000 | <gqplox> | hello again |
| 2022-10-24 22:03:21 +0000 | <gqplox> | I'm struggling to write my previous function with foldr |
| 2022-10-24 22:03:35 +0000 | <gqplox> | recursiveConcat :: [[a]] -> [a] |
| 2022-10-24 22:03:36 +0000 | <gqplox> | recursiveConcat [] = [] |
| 2022-10-24 22:03:36 +0000 | <gqplox> | recursiveConcat xxs = head xxs ++ recursiveConcat (tail xxs) |
| 2022-10-24 22:03:43 +0000 | zmt00 | (~zmt00@user/zmt00) |
| 2022-10-24 22:04:06 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 22:05:58 +0000 | <Rembane> | gqplox: How far do you get before you get stuck? |
| 2022-10-24 22:06:57 +0000 | <gqplox> | recursiveConcat' xs = foldr (\x xs' -> head xs' ++ tail xs') [] xs |
| 2022-10-24 22:06:58 +0000 | <gqplox> | i did something like this so far ik its stupid |
| 2022-10-24 22:07:08 +0000 | acidjnk | (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2022-10-24 22:07:20 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-10-24 22:07:26 +0000 | <Hecate> | Hey Haskellers, I need people opinion on this: https://twitter.com/flora_haskell/status/1584665095627362305 |
| 2022-10-24 22:09:27 +0000 | <Rembane> | gqplox: What happens to x? |
| 2022-10-24 22:09:32 +0000 | axeman | (~quassel@2a02:8109:a380:78:967e:8a87:718a:1361) (Ping timeout: 272 seconds) |
| 2022-10-24 22:10:51 +0000 | <monochrom> | gqplox: My course notes http://www.cs.utoronto.ca/~trebla/CSCC24-2022-Summer/05-haskell-fold.html#foldr shows the general pattern. |
| 2022-10-24 22:11:42 +0000 | <gqplox> | thank you |
| 2022-10-24 22:11:54 +0000 | <gqplox> | oh oops |
| 2022-10-24 22:12:10 +0000 | <gqplox> | man Im so tired i think i should try again tomorrow :( |
| 2022-10-24 22:12:16 +0000 | <gqplox> | not going well |
| 2022-10-24 22:13:40 +0000 | freeside | (~mengwong@103.252.202.193) |
| 2022-10-24 22:13:51 +0000 | <monochrom> | Or in words, foldr (\x r -> x is already the head of the list, r is already the result of the recursive call) |
| 2022-10-24 22:14:17 +0000 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Ping timeout: 276 seconds) |
| 2022-10-24 22:14:19 +0000 | <monochrom> | So it's illogical to try to use head or tail yourself on x or r. |
| 2022-10-24 22:15:01 +0000 | <gqplox> | So for recursiveConcat [[1,2,3], [4,5]] first x would be [1,2,3] and r is []? |
| 2022-10-24 22:15:38 +0000 | <monochrom> | first x is [1,2,3], "first" r is [4,5]. |
| 2022-10-24 22:15:45 +0000 | ckiorrrrrrrrrrrs | (~ckiorrrrr@c-76-17-6-165.hsd1.ga.comcast.net) |
| 2022-10-24 22:16:27 +0000 | <monochrom> | r is [4,5] because the recursive call results in recursiveConcat [[4,5]] = [4,5]. |
| 2022-10-24 22:16:40 +0000 | <gqplox> | so it would be something like |
| 2022-10-24 22:16:40 +0000 | <gqplox> | recursiveConcat' xs = foldr (\x r -> x ++ r) [] xs |
| 2022-10-24 22:16:49 +0000 | <monochrom> | Yes, that simple. |
| 2022-10-24 22:18:56 +0000 | mmhat | (~mmh@2003:f1:c730:762d:ee08:6bff:fe09:5315) (Quit: WeeChat 3.7.1) |
| 2022-10-24 22:19:05 +0000 | comerijn | (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 22:20:06 +0000 | <Rembane> | darkside.se |
| 2022-10-24 22:20:14 +0000 | <gqplox> | great thank you :) |
| 2022-10-24 22:20:32 +0000 | <Rembane> | Sorry mischat |
| 2022-10-24 22:21:07 +0000 | <monochrom> | Yes I was wondering why you were advertising for darkside :) |
| 2022-10-24 22:21:33 +0000 | <monochrom> | I mean, let darkside advertise for themselves next time they come into the channel! |
| 2022-10-24 22:22:35 +0000 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 2022-10-24 22:23:34 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2022-10-24 22:23:44 +0000 | <gqplox> | hmm for this function |
| 2022-10-24 22:24:05 +0000 | <gqplox> | recursiveReplicate :: Int -> a -> [a] |
| 2022-10-24 22:24:05 +0000 | <gqplox> | recursiveReplicate 0 _ = [] |
| 2022-10-24 22:24:05 +0000 | <gqplox> | recursiveReplicate n x = x : recursiveReplicate (n - 1) x |
| 2022-10-24 22:24:42 +0000 | <gqplox> | it's taking an integer right so you can't make express with foldr? |
| 2022-10-24 22:25:09 +0000 | <monochrom> | It doesn't take an input list either, so foldr is completely irrelevant. |
| 2022-10-24 22:25:19 +0000 | <gqplox> | yes thats whay i mean |
| 2022-10-24 22:25:21 +0000 | <gqplox> | ok thank you |
| 2022-10-24 22:25:42 +0000 | <monochrom> | Instead, you could look into unfoldr. That's when you output a list. |
| 2022-10-24 22:25:54 +0000 | <gqplox> | wow wtf |
| 2022-10-24 22:25:56 +0000 | <gqplox> | mind blown |
| 2022-10-24 22:26:13 +0000 | Tuplanolla | (~Tuplanoll@91-159-69-240.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2022-10-24 22:26:30 +0000 | <gqplox> | wait is it actually in the prelude? |
| 2022-10-24 22:26:33 +0000 | <gqplox> | i cant see it |
| 2022-10-24 22:26:41 +0000 | <monochrom> | It is. |
| 2022-10-24 22:27:31 +0000 | <gqplox> | oh right i just ran ghci i needed to import Data.List |
| 2022-10-24 22:28:01 +0000 | <geekosaur> | @index unfoldr |
| 2022-10-24 22:28:01 +0000 | <lambdabot> | GHC.OldList, Data.List, Data.ByteString.Lazy.Char8, Data.ByteString.Lazy, Data.ByteString.Char8, Data.ByteString, Data.Sequence |
| 2022-10-24 22:28:06 +0000 | <monochrom> | Oh, it is not in Prelude. Sorry! |
| 2022-10-24 22:30:42 +0000 | <gqplox> | no worries |
| 2022-10-24 22:31:15 +0000 | <gqplox> | (!!!) :: [a] -> Int -> a |
| 2022-10-24 22:31:15 +0000 | <gqplox> | (!!!) (x : xs) 0 = x |
| 2022-10-24 22:31:15 +0000 | <gqplox> | (!!!) (x : xs) n = (!!!) xs (n - 1) |
| 2022-10-24 22:31:15 +0000 | <gqplox> | so can this be done with foldr? |
| 2022-10-24 22:31:27 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 2022-10-24 22:32:48 +0000 | <monochrom> | The base case is not "recfun [] = ???", and the recursive case is not simply "recfun (x:xs) = foo x (recfun xs)". So no. |
| 2022-10-24 22:33:13 +0000 | <gqplox> | Alright cool |
| 2022-10-24 22:33:32 +0000 | <gqplox> | well thank you for the help im tired now so ill head off but really thx for the help and the notes ill look into it tomorrow |
| 2022-10-24 22:36:33 +0000 | Axman6 | (~Axman6@user/axman6) |
| 2022-10-24 22:37:14 +0000 | polo | Guest5366 |
| 2022-10-24 22:37:57 +0000 | comerijn | (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 2022-10-24 22:37:57 +0000 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
| 2022-10-24 22:38:33 +0000 | gqplox | (~textual@147.188.245.207) (Quit: Textual IRC Client: www.textualapp.com) |
| 2022-10-24 22:41:26 +0000 | darkstardevx | (~darkstard@50.126.124.156) (Read error: Connection reset by peer) |
| 2022-10-24 22:46:56 +0000 | nate2 | (~nate@98.45.169.16) |
| 2022-10-24 22:50:14 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 2022-10-24 22:50:41 +0000 | merijn | (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) |
| 2022-10-24 22:51:37 +0000 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 2022-10-24 22:52:06 +0000 | talismanick | (~talismani@76.133.152.122) |
| 2022-10-24 22:52:22 +0000 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 2022-10-24 22:53:50 +0000 | <talismanick> | Are there options for <project>.cabal so I can declare an executable which automatically executes as if it had been called with +RTS -N? |
| 2022-10-24 22:54:31 +0000 | <Axman6> | you can add that to ghc-options |
| 2022-10-24 22:54:33 +0000 | <Axman6> | IIRC |
| 2022-10-24 22:54:34 +0000 | <talismanick> | `ghc-options: -threaded -rtsopts -w` didn't seem to enable multithreading - I still had to `cabal run foo -- +RTS -N` |
| 2022-10-24 22:54:41 +0000 | <Axman6> | check the cabal docs |
| 2022-10-24 22:54:46 +0000 | <geekosaur> | -with-rtsopts -N |
| 2022-10-24 22:54:46 +0000 | <Axman6> | and the4 ghc docs |
| 2022-10-24 22:54:51 +0000 | <talismanick> | I didn't see anything else in the Cabal docs, that I could see... |
| 2022-10-24 22:55:05 +0000 | <talismanick> | geekosaur: ah, that looks closer to what I'd expect |
| 2022-10-24 22:55:15 +0000 | <talismanick> | I looked up rtsopts in the cabal docs and didn't see much |
| 2022-10-24 22:55:17 +0000 | merijn | (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 2022-10-24 22:55:42 +0000 | <talismanick> | Or, not, what I searched was +RTS |
| 2022-10-24 22:55:44 +0000 | <geekosaur> | yeh, not's not a caba; option, it's a ghc link option so yo would use it with ghc-options in cabal |
| 2022-10-24 22:55:47 +0000 | darkstardevx | (~darkstard@50.126.124.156) |
| 2022-10-24 22:56:17 +0000 | <talismanick> | Nice, it works |
| 2022-10-24 22:56:47 +0000 | darkstardevx | (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 2022-10-24 22:57:12 +0000 | darkstardevx | (~darkstard@50.126.124.156) |
| 2022-10-24 22:58:06 +0000 | zebrag | (~chris@user/zebrag) |
| 2022-10-24 23:03:45 +0000 | mncheck | (~mncheck@193.224.205.254) (Ping timeout: 272 seconds) |
| 2022-10-24 23:06:17 +0000 | ubert | (~Thunderbi@91.141.49.34.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 2022-10-24 23:06:46 +0000 | ubert | (~Thunderbi@178.165.171.4.wireless.dyn.drei.com) |
| 2022-10-24 23:09:58 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
| 2022-10-24 23:10:40 +0000 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 250 seconds) |
| 2022-10-24 23:11:07 +0000 | son0p | (~ff@181.136.122.143) (Killed (NickServ (GHOST command used by son0p-))) |
| 2022-10-24 23:13:20 +0000 | son0p | (~ff@181.136.122.143) |
| 2022-10-24 23:13:31 +0000 | michalz | (~michalz@185.246.207.193) (Remote host closed the connection) |
| 2022-10-24 23:18:38 +0000 | Kaipei | (~Kaiepi@108.175.84.104) |
| 2022-10-24 23:27:47 +0000 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
| 2022-10-24 23:38:35 +0000 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
| 2022-10-24 23:42:59 +0000 | danza | (~francesco@151.82.219.40) (Read error: Connection reset by peer) |
| 2022-10-24 23:59:58 +0000 | danza | (~francesco@ge-19-125-62.service.infuturo.it) |