2021-03-16 00:00:15 +0100 | stux|RC-only | (stux2@grid9.quadspeedi.net) |
2021-03-16 00:00:52 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 265 seconds) |
2021-03-16 00:01:32 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-03-16 00:02:19 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-03-16 00:04:56 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
2021-03-16 00:06:17 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 00:06:24 +0100 | bbear | (~znc@21212.s.t4vps.eu) (Read error: Connection reset by peer) |
2021-03-16 00:06:28 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2021-03-16 00:06:34 +0100 | bbear | (~znc@21212.s.t4vps.eu) |
2021-03-16 00:07:23 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-03-16 00:08:44 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-03-16 00:10:03 +0100 | cafce25 | (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
2021-03-16 00:10:25 +0100 | cosimone | (~user@93-47-228-249.ip115.fastwebnet.it) |
2021-03-16 00:12:43 +0100 | solidus-river | (~fuag1@174.127.249.180) (Read error: Connection reset by peer) |
2021-03-16 00:15:38 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-03-16 00:17:15 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) |
2021-03-16 00:18:19 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2021-03-16 00:18:27 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 00:20:41 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection) |
2021-03-16 00:21:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 00:29:30 +0100 | cosimone | (~user@93-47-228-249.ip115.fastwebnet.it) (Remote host closed the connection) |
2021-03-16 00:30:44 +0100 | xsperry | (~as@unaffiliated/xsperry) (Remote host closed the connection) |
2021-03-16 00:32:11 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection) |
2021-03-16 00:33:04 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) |
2021-03-16 00:33:48 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-03-16 00:35:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c72b954785b86a8446f85480.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-03-16 00:37:14 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
2021-03-16 00:37:50 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Ping timeout: 264 seconds) |
2021-03-16 00:39:37 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds) |
2021-03-16 00:41:25 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) |
2021-03-16 00:41:28 +0100 | __minoru__shirae | (~shiraeesh@109.166.58.121) (Ping timeout: 260 seconds) |
2021-03-16 00:43:42 +0100 | brandly | (~brandly@c-73-68-15-46.hsd1.ma.comcast.net) |
2021-03-16 00:45:08 +0100 | codygman__ | (~user@47.186.207.161) |
2021-03-16 00:45:40 +0100 | cfricke | (cfricke@gateway/vpn/mullvad/cfricke) (Ping timeout: 256 seconds) |
2021-03-16 00:46:13 +0100 | nrh^ | (~hph@ip98-184-89-2.mc.at.cox.net) () |
2021-03-16 00:47:04 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-03-16 00:47:18 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2021-03-16 00:47:34 +0100 | <wickedjargon> | question for anyone: Do you think reading "The Little Schemer" will help with programming in Haskell? |
2021-03-16 00:47:46 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) |
2021-03-16 00:48:15 +0100 | codygman__ | (~user@47.186.207.161) (Remote host closed the connection) |
2021-03-16 00:48:37 +0100 | codygman__ | (~user@47.186.207.161) |
2021-03-16 00:48:58 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
2021-03-16 00:50:49 +0100 | <Axman6> | I doubt it would hurt |
2021-03-16 00:51:31 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Ping timeout: 268 seconds) |
2021-03-16 00:51:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 00:57:34 +0100 | codygman__ | (~user@47.186.207.161) (Ping timeout: 256 seconds) |
2021-03-16 00:58:22 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-03-16 01:03:32 +0100 | <koz_> | I've tried reading those books. I personally didn't find them useful for any purpose. YMMV. |
2021-03-16 01:03:42 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 01:04:23 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-03-16 01:04:38 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 01:06:42 +0100 | brandly | (~brandly@c-73-68-15-46.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
2021-03-16 01:06:47 +0100 | dsrt^ | (~hph@ip98-184-89-2.mc.at.cox.net) |
2021-03-16 01:07:01 +0100 | jess | (jess@freenode/staff/jess) (Quit: K-Lined) |
2021-03-16 01:07:34 +0100 | j | (jess@freenode/staff/jess) |
2021-03-16 01:11:10 +0100 | j | jess |
2021-03-16 01:12:34 +0100 | <koz_> | I need something like a combination of mapMaybe and hashNub. The idea is that I have f :: a -> Maybe b; I toss out Nothings, and nub on the b in Justs, but give back as in the end. |
2021-03-16 01:12:35 +0100 | usr25_tm | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2021-03-16 01:12:41 +0100 | <koz_> | What's a good way to write this? |
2021-03-16 01:13:05 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-03-16 01:13:10 +0100 | <Axman6> | what type are you looking for? |
2021-03-16 01:13:55 +0100 | <koz_> | Something like '(Eq b, Hashable b) => (a -> Maybe b) -> [a] -> [a]' |
2021-03-16 01:15:53 +0100 | <monochrom> | I think catMaybe helps with the Maybe aspect. |
2021-03-16 01:16:10 +0100 | <monochrom> | Err no nevermind, it loses the a. |
2021-03-16 01:16:55 +0100 | <Axman6> | @djinn (a -> Maybe b) -> (a -> Maybe (a,b)) |
2021-03-16 01:16:55 +0100 | <lambdabot> | f a b = |
2021-03-16 01:16:55 +0100 | <lambdabot> | case a b of |
2021-03-16 01:16:55 +0100 | <lambdabot> | Nothing -> Nothing |
2021-03-16 01:16:55 +0100 | <lambdabot> | Just c -> Just (b, c) |
2021-03-16 01:17:09 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2021-03-16 01:17:17 +0100 | <monochrom> | :) |
2021-03-16 01:18:12 +0100 | <monochrom> | Axman6's function will help, if you combine with catMaybes. You now have [(a,b)]. Are you OK with nubBy (<something that uses the hashing function here>)? |
2021-03-16 01:18:25 +0100 | <Axman6> | fmap snd |
2021-03-16 01:18:30 +0100 | <koz_> | monochrom: I'm just seeing if anyone can come up with something decent. |
2021-03-16 01:18:48 +0100 | dhil | (~dhil@80.208.56.181) (Ping timeout: 245 seconds) |
2021-03-16 01:19:00 +0100 | <koz_> | That could be fine, as long as I don't have bad nubbing costs. |
2021-03-16 01:19:06 +0100 | <koz_> | (like, not accidentally quadratic somehow) |
2021-03-16 01:19:32 +0100 | <monochrom> | nubBy has bad nubbing cost. I haven't followed the hashing libraries. |
2021-03-16 01:19:33 +0100 | Axman6 | resists recommending the discrimination package |
2021-03-16 01:20:04 +0100 | <koz_> | Axman6: LOL. Tempting as that is, I don't think my colleagues would appreciate that. |
2021-03-16 01:20:12 +0100 | <koz_> | OK, I'll just try and write it. |
2021-03-16 01:20:14 +0100 | <koz_> | Thanks anyways. |
2021-03-16 01:20:33 +0100 | monochrom | needs the meme picture for panel 1: quadratic cost on fire; panel 2: "this is fine" |
2021-03-16 01:20:40 +0100 | <koz_> | LOL |
2021-03-16 01:20:51 +0100 | <Axman6> | discrimination isn't that crazy really |
2021-03-16 01:21:05 +0100 | <koz_> | monochrom: https://imgflip.com/memegenerator/This-Is-Fine |
2021-03-16 01:21:05 +0100 | <Axman6> | you can use it without understanding how it works |
2021-03-16 01:21:24 +0100 | <koz_> | Axman6: Yeah, I realize that. Plus, I actually _do_ understand how it works. |
2021-03-16 01:21:40 +0100 | <Axman6> | do you though? |
2021-03-16 01:21:54 +0100 | <koz_> | Axman6: Well, maybe not the implementation specifics, but I do understand the theory behind it. |
2021-03-16 01:22:06 +0100 | <pjb> | It's not funny. |
2021-03-16 01:22:33 +0100 | <Axman6> | yeah the idea is pretty simple, the implementation is a fun other level of understanding |
2021-03-16 01:25:08 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-03-16 01:26:16 +0100 | <koz_> | Suppose I have f :: a -> Maybe b. How can I get a -> Maybe (b, a) out of f? |
2021-03-16 01:26:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-03-16 01:26:42 +0100 | <Axman6> | @djinn (a -> Maybe b) -> (a -> Maybe (a,b)) |
2021-03-16 01:26:42 +0100 | <lambdabot> | f a b = |
2021-03-16 01:26:42 +0100 | <lambdabot> | case a b of |
2021-03-16 01:26:42 +0100 | <lambdabot> | Nothing -> Nothing |
2021-03-16 01:26:42 +0100 | <lambdabot> | Just c -> Just (b, c) |
2021-03-16 01:27:01 +0100 | <koz_> | Legit. |
2021-03-16 01:27:13 +0100 | <Axman6> | a.k.a: \f a -> (a,) <$> f a |
2021-03-16 01:27:41 +0100 | <Axman6> | or: \f a -> (,a) <$> f a -- to match the type you asked for |
2021-03-16 01:28:38 +0100 | <koz_> | @pl \x -> (,x) <$> f x |
2021-03-16 01:28:38 +0100 | <lambdabot> | (line 1, column 9): |
2021-03-16 01:28:38 +0100 | <lambdabot> | unexpected ',' |
2021-03-16 01:28:38 +0100 | <lambdabot> | expecting expression |
2021-03-16 01:28:43 +0100 | <koz_> | @pl \x -> (x,) <$> f x |
2021-03-16 01:28:43 +0100 | <lambdabot> | (line 1, column 9): |
2021-03-16 01:28:43 +0100 | <lambdabot> | unexpected "," |
2021-03-16 01:28:43 +0100 | <lambdabot> | expecting letter or digit, variable, "(", operator or ")" |
2021-03-16 01:28:46 +0100 | <koz_> | Argh. |
2021-03-16 01:28:53 +0100 | <koz_> | Oh well. |
2021-03-16 01:29:28 +0100 | <hololeap> | % :t (>>=) @((->) _) |
2021-03-16 01:29:29 +0100 | <yahb> | hololeap: (w -> a) -> (a -> w -> b) -> w -> b |
2021-03-16 01:29:40 +0100 | <hololeap> | % :t (<*>) @((->) _) |
2021-03-16 01:29:40 +0100 | <yahb> | hololeap: (w -> (a -> b)) -> (w -> a) -> w -> b |
2021-03-16 01:30:02 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-03-16 01:30:46 +0100 | <hololeap> | @pl \x -> ((,) x) <$> f x |
2021-03-16 01:30:47 +0100 | <lambdabot> | liftM2 (<$>) (,) f |
2021-03-16 01:31:00 +0100 | <hololeap> | @pl \x -> (flip (,) x) <$> f x |
2021-03-16 01:31:00 +0100 | <lambdabot> | ap ((<$>) . flip (,)) f |
2021-03-16 01:31:29 +0100 | <koz_> | So ((<$>) . flip (,)) <$> f |
2021-03-16 01:33:06 +0100 | nfd | (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973) |
2021-03-16 01:33:26 +0100 | g0nk | (~g0nk@173-26-39-109.client.mchsi.com) |
2021-03-16 01:33:54 +0100 | crobbins | (~crobbins@2600:1700:48eb:8490:f076:8bfb:8043:913e) (Remote host closed the connection) |
2021-03-16 01:34:55 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds) |
2021-03-16 01:37:15 +0100 | ajc | (~ajc@69.231.232.79) |
2021-03-16 01:41:14 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-03-16 01:42:51 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
2021-03-16 01:44:26 +0100 | nfd | (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973) (Ping timeout: 264 seconds) |
2021-03-16 01:48:04 +0100 | gienah | (~mwright@gentoo/developer/gienah) |
2021-03-16 01:48:15 +0100 | klixto | (~klixto@130.220.8.139) |
2021-03-16 01:48:38 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-03-16 01:48:46 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-jiwetompintgtwib) |
2021-03-16 01:49:14 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:6cfb:c91f:3c9a:a8cb) (Ping timeout: 264 seconds) |
2021-03-16 01:49:41 +0100 | DTZUZU_ | (~DTZUZO@207.81.119.43) |
2021-03-16 01:49:55 +0100 | nf | (~n@monade.li) (Quit: Fairfarren.) |
2021-03-16 01:50:25 +0100 | __minoru__shirae | (~shiraeesh@109.166.58.121) |
2021-03-16 01:50:40 +0100 | nf | (~n@monade.li) |
2021-03-16 01:51:33 +0100 | gienah_ | (~mwright@119-18-2-23.771202.syd.nbn.aussiebb.net) (Ping timeout: 264 seconds) |
2021-03-16 01:52:03 +0100 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 246 seconds) |
2021-03-16 01:55:02 +0100 | ajc | (~ajc@69.231.232.79) ("Leaving") |
2021-03-16 01:55:26 +0100 | ajc | (~ajc@69.231.232.79) |
2021-03-16 01:55:28 +0100 | jespada | (~jespada@90.254.243.187) (Ping timeout: 245 seconds) |
2021-03-16 01:56:43 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 245 seconds) |
2021-03-16 01:57:39 +0100 | jespada | (~jespada@90.254.243.187) |
2021-03-16 01:58:50 +0100 | gienah_ | (~mwright@119-18-3-26.771203.syd.nbn.aussiebb.net) |
2021-03-16 02:00:10 +0100 | augnun | (~augnun@189.6.16.141) |
2021-03-16 02:00:19 +0100 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) |
2021-03-16 02:01:18 +0100 | gienah | (~mwright@gentoo/developer/gienah) (Ping timeout: 260 seconds) |
2021-03-16 02:01:42 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) |
2021-03-16 02:02:29 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:d8ee:3872:3a62:88c1) |
2021-03-16 02:02:33 +0100 | DTZUZU_ | (~DTZUZO@207.81.119.43) (Ping timeout: 246 seconds) |
2021-03-16 02:03:42 +0100 | ajc | (~ajc@69.231.232.79) ("Leaving") |
2021-03-16 02:03:44 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-03-16 02:03:58 +0100 | sm2n_ | (~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca) |
2021-03-16 02:04:11 +0100 | ajc | (~ajc@69.231.232.79) |
2021-03-16 02:04:31 +0100 | raoul9 | (~raoulhida@nomnomnomnom.co.uk) |
2021-03-16 02:04:36 +0100 | drewolson0 | (~drewolson@64.227.24.16) |
2021-03-16 02:04:42 +0100 | {abby}9 | (~{abby}@unaffiliated/demhydraz) |
2021-03-16 02:04:45 +0100 | concept26 | (~concept2@unaffiliated/tubo) |
2021-03-16 02:05:04 +0100 | mozzarel1 | (~sam@unaffiliated/sam113101) |
2021-03-16 02:05:13 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-03-16 02:05:17 +0100 | koz | (~koz@121.99.240.58) |
2021-03-16 02:05:18 +0100 | Geekingfrog_ | (geekingfro@2a01:7e01::f03c:92ff:fe48:8bdf) |
2021-03-16 02:05:22 +0100 | lazyshrk_ | (~lazyshrk@128.199.58.13) |
2021-03-16 02:05:29 +0100 | uwap | (~uwap@mail.uwap.name) |
2021-03-16 02:05:32 +0100 | fre | (~freusque@104.238.190.229) |
2021-03-16 02:05:36 +0100 | sepples_ | (~sepples@67.205.168.224) |
2021-03-16 02:05:38 +0100 | xwvvvvwx- | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) |
2021-03-16 02:05:52 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.58.121) |
2021-03-16 02:06:01 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) |
2021-03-16 02:06:02 +0100 | djanatyn_ | (~djanatyn@ec2-18-209-155-56.compute-1.amazonaws.com) |
2021-03-16 02:06:23 +0100 | sm_ | (~user@li229-222.members.linode.com) |
2021-03-16 02:06:24 +0100 | bonz060_ | (~quassel@2001:bc8:47a4:a23::1) |
2021-03-16 02:06:33 +0100 | aforemny_ | (~aforemny@static.248.158.34.188.clients.your-server.de) |
2021-03-16 02:06:56 +0100 | tanuki | (~quassel@173.168.154.189) |
2021-03-16 02:07:02 +0100 | kaletaa_ | (~kaletaa@188.34.177.83) |
2021-03-16 02:07:08 +0100 | duckonomy | (~duckonomy@177.ip-144-217-84.net) |
2021-03-16 02:07:34 +0100 | duairc_ | (~shane@ana.rch.ist) |
2021-03-16 02:07:39 +0100 | dilinger_ | (~dilinger@spindle.queued.net) |
2021-03-16 02:07:48 +0100 | hrdl_ | (~ef24a0e6@unaffiliated/hrdl) |
2021-03-16 02:07:48 +0100 | aldum_ | (~vishera@aldum.pw) |
2021-03-16 02:07:49 +0100 | gothos_ | (~gothos@antsy.jhz.name) |
2021-03-16 02:07:51 +0100 | hpc_ | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2021-03-16 02:07:54 +0100 | falsifia1 | (~falsifian@exoco.falsifian.org) |
2021-03-16 02:07:54 +0100 | koluacik_ | (~koluacik@134.122.28.77) |
2021-03-16 02:07:57 +0100 | int-e_ | (~noone@int-e.eu) |
2021-03-16 02:08:00 +0100 | ridcully_ | (~ridcully@pd951f269.dip0.t-ipconnect.de) |
2021-03-16 02:08:02 +0100 | amiri_ | (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
2021-03-16 02:08:02 +0100 | sajith_ | (~sajith@fsf/member/nonzen) |
2021-03-16 02:08:08 +0100 | peutri_ | (~peutri@ns317027.ip-94-23-46.eu) |
2021-03-16 02:08:10 +0100 | jack1909_ | (~qpls@cpeb4750e67d202-cmf81d0fad5840.cpe.net.fido.ca) |
2021-03-16 02:08:14 +0100 | [df]_ | (~ben@51.15.198.140) |
2021-03-16 02:08:16 +0100 | bind2 | (~bind@unaffiliated/bind) |
2021-03-16 02:08:18 +0100 | johnyginthehouse | (~johnygint@159.203.30.32) |
2021-03-16 02:08:18 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-03-16 02:08:19 +0100 | otulp_ | (~otulp@ti0187q162-6639.bb.online.no) |
2021-03-16 02:08:20 +0100 | ian_ | (~igloo@matrix.chaos.earth.li) |
2021-03-16 02:08:22 +0100 | ski_ | (~ski@ed-3358-10.studat.chalmers.se) |
2021-03-16 02:08:22 +0100 | quicksilver | (~jules@roobarb.crazydogs.org) |
2021-03-16 02:08:23 +0100 | remexre_ | (~nathan@207-153-38-50.fttp.usinternet.com) |
2021-03-16 02:08:23 +0100 | theDon_ | (~td@94.134.91.151) |
2021-03-16 02:08:26 +0100 | cods_ | (~fred@82-65-232-44.subs.proxad.net) |
2021-03-16 02:08:27 +0100 | hiredman_ | (~hiredman@volyova.ec2.thelastcitadel.com) |
2021-03-16 02:08:29 +0100 | jdt_ | (~jdt@38.77.195.50) |
2021-03-16 02:08:30 +0100 | EvanR_ | (~evan@mail.evanr.info) |
2021-03-16 02:08:32 +0100 | shachaf_ | (~shachaf@unaffiliated/shachaf) |
2021-03-16 02:08:38 +0100 | patrick3 | (~tarpk@ool-182dca76.dyn.optonline.net) |
2021-03-16 02:08:40 +0100 | gienah | (~mwright@gentoo/developer/gienah) |
2021-03-16 02:11:00 +0100 | mht-technology | (~mht@mht.wtf) |
2021-03-16 02:11:15 +0100 | luigy_ | (~luigy@104.236.106.229) |
2021-03-16 02:11:19 +0100 | deni | (~deni@unaffiliated/deni) |
2021-03-16 02:11:36 +0100 | Aleksejs_Home | (~Aleksejs@haskell.lv) |
2021-03-16 02:12:11 +0100 | johnsteinVPS | (~johnstein@192.73.239.18) |
2021-03-16 02:12:22 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Ping timeout: 256 seconds) |
2021-03-16 02:12:36 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (*.net *.split) |
2021-03-16 02:12:36 +0100 | gienah_ | (~mwright@119-18-3-26.771203.syd.nbn.aussiebb.net) (*.net *.split) |
2021-03-16 02:12:36 +0100 | __minoru__shirae | (~shiraeesh@109.166.58.121) (*.net *.split) |
2021-03-16 02:12:36 +0100 | dilinger | (~dilinger@spindle.queued.net) (*.net *.split) |
2021-03-16 02:12:36 +0100 | Aleksejs | (~Aleksejs@haskell.lv) (*.net *.split) |
2021-03-16 02:12:36 +0100 | deni_ | (~deni@unaffiliated/deni) (*.net *.split) |
2021-03-16 02:12:36 +0100 | Someguy123 | (~someguy@unaffiliated/compgenius999) (*.net *.split) |
2021-03-16 02:12:36 +0100 | aforemny | (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split) |
2021-03-16 02:12:36 +0100 | johnstein | (~johnstein@192.73.239.18) (*.net *.split) |
2021-03-16 02:12:36 +0100 | ukari | (~ukari@unaffiliated/ukari) (*.net *.split) |
2021-03-16 02:12:36 +0100 | Tario | (~Tario@201.192.165.173) (*.net *.split) |
2021-03-16 02:12:36 +0100 | koz_ | (~koz@121.99.240.58) (*.net *.split) |
2021-03-16 02:12:36 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (*.net *.split) |
2021-03-16 02:12:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (*.net *.split) |
2021-03-16 02:12:36 +0100 | theDon | (~td@94.134.91.151) (*.net *.split) |
2021-03-16 02:12:36 +0100 | jneira | (501e6406@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.6) (*.net *.split) |
2021-03-16 02:12:36 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | mozzarella | (~sam@unaffiliated/sam113101) (*.net *.split) |
2021-03-16 02:12:37 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (*.net *.split) |
2021-03-16 02:12:37 +0100 | sm2n | (~sm2n@bras-base-hmtnon143hw-grc-15-70-54-78-219.dsl.bell.ca) (*.net *.split) |
2021-03-16 02:12:37 +0100 | hackage | (mniip@haskell/bot/hackage) (*.net *.split) |
2021-03-16 02:12:37 +0100 | jdt | (~jdt@38.77.195.50) (*.net *.split) |
2021-03-16 02:12:37 +0100 | patrick2 | (~tarpk@ool-182dca76.dyn.optonline.net) (*.net *.split) |
2021-03-16 02:12:37 +0100 | gothos | (~gothos@antsy.jhz.name) (*.net *.split) |
2021-03-16 02:12:37 +0100 | jack1909 | (~qpls@cpeb4750e67d202-cmf81d0fad5840.cpe.net.fido.ca) (*.net *.split) |
2021-03-16 02:12:37 +0100 | tanuki_ | (~quassel@173.168.154.189) (*.net *.split) |
2021-03-16 02:12:37 +0100 | lazyshrk | (~lazyshrk@128.199.58.13) (*.net *.split) |
2021-03-16 02:12:37 +0100 | drewolson | (~drewolson@64.227.24.16) (*.net *.split) |
2021-03-16 02:12:37 +0100 | sssb54 | (~ssssb56@vps-b2931db6.vps.ovh.ca) (*.net *.split) |
2021-03-16 02:12:37 +0100 | koluacik | (~koluacik@134.122.28.77) (*.net *.split) |
2021-03-16 02:12:37 +0100 | falsifian | (~falsifian@exoco.falsifian.org) (*.net *.split) |
2021-03-16 02:12:37 +0100 | [df] | (~ben@51.15.198.140) (*.net *.split) |
2021-03-16 02:12:37 +0100 | kaletaa | (~kaletaa@188.34.177.83) (*.net *.split) |
2021-03-16 02:12:37 +0100 | Geekingfrog | (~geekingfr@li2156-64.members.linode.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | bind1 | (~bind@unaffiliated/bind) (*.net *.split) |
2021-03-16 02:12:37 +0100 | cods | (~fred@unaffiliated/cods) (*.net *.split) |
2021-03-16 02:12:37 +0100 | int-e | (~noone@int-e.eu) (*.net *.split) |
2021-03-16 02:12:37 +0100 | jlamothe_ | (~jlamothe@198.251.55.207) (*.net *.split) |
2021-03-16 02:12:37 +0100 | {abby} | (~{abby}@unaffiliated/demhydraz) (*.net *.split) |
2021-03-16 02:12:37 +0100 | hrdl | (~ef24a0e6@unaffiliated/hrdl) (*.net *.split) |
2021-03-16 02:12:37 +0100 | luigy | (~luigy@104.236.106.229) (*.net *.split) |
2021-03-16 02:12:37 +0100 | deu | (de@uio.re) (*.net *.split) |
2021-03-16 02:12:37 +0100 | myme | (~myme@li1406-121.members.linode.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | Igloo | (~igloo@matrix.chaos.earth.li) (*.net *.split) |
2021-03-16 02:12:37 +0100 | mht | (~mht@mht.wtf) (*.net *.split) |
2021-03-16 02:12:37 +0100 | shachaf | (~shachaf@unaffiliated/shachaf) (*.net *.split) |
2021-03-16 02:12:37 +0100 | remexre | (~nathan@207-153-38-50.fttp.usinternet.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | aldum | (~vishera@aldum.pw) (*.net *.split) |
2021-03-16 02:12:37 +0100 | ridcully | (~ridcully@pd951f269.dip0.t-ipconnect.de) (*.net *.split) |
2021-03-16 02:12:37 +0100 | sepples | (~sepples@67.205.168.224) (*.net *.split) |
2021-03-16 02:12:37 +0100 | sajith | (~sajith@fsf/member/nonzen) (*.net *.split) |
2021-03-16 02:12:37 +0100 | fre_ | (~freusque@104.238.190.229) (*.net *.split) |
2021-03-16 02:12:37 +0100 | ski | (~ski@ed-3358-10.studat.chalmers.se) (*.net *.split) |
2021-03-16 02:12:37 +0100 | quicksil1er | (~jules@roobarb.crazydogs.org) (*.net *.split) |
2021-03-16 02:12:37 +0100 | EvanR | (~evan@unaffiliated/evanr) (*.net *.split) |
2021-03-16 02:12:37 +0100 | otulp | (~otulp@ti0187q162-6639.bb.online.no) (*.net *.split) |
2021-03-16 02:12:37 +0100 | djanatyn- | (~djanatyn@ec2-18-209-155-56.compute-1.amazonaws.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | duckonomy_ | (~duckonomy@177.ip-144-217-84.net) (*.net *.split) |
2021-03-16 02:12:37 +0100 | bonz060 | (~quassel@163.172.132.198) (*.net *.split) |
2021-03-16 02:12:37 +0100 | peutri | (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split) |
2021-03-16 02:12:37 +0100 | johnygin1hehouse | (~johnygint@159.203.30.32) (*.net *.split) |
2021-03-16 02:12:37 +0100 | uwap_ | (~uwap@mail.uwap.name) (*.net *.split) |
2021-03-16 02:12:37 +0100 | incertia_ | (~incertia@d4-50-26-103.nap.wideopenwest.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | earthy_ | (~arthurvl@deban2.xs4all.space) (*.net *.split) |
2021-03-16 02:12:37 +0100 | hiredman | (~hiredman@volyova.ec2.thelastcitadel.com) (*.net *.split) |
2021-03-16 02:12:37 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (*.net *.split) |
2021-03-16 02:12:37 +0100 | concept2 | (~concept2@unaffiliated/tubo) (*.net *.split) |
2021-03-16 02:12:37 +0100 | lyxia | (~lyxia@poisson.chat) (*.net *.split) |
2021-03-16 02:12:38 +0100 | sm | (~user@li229-222.members.linode.com) (*.net *.split) |
2021-03-16 02:12:38 +0100 | duairc | (~shane@ana.rch.ist) (*.net *.split) |
2021-03-16 02:12:38 +0100 | raoul | (~raoulhida@nomnomnomnom.co.uk) (*.net *.split) |
2021-03-16 02:12:38 +0100 | otulp_ | otulp |
2021-03-16 02:12:39 +0100 | xwvvvvwx- | xwvvvvwx |
2021-03-16 02:12:39 +0100 | drewolson0 | drewolson |
2021-03-16 02:12:39 +0100 | lazyshrk_ | lazyshrk |
2021-03-16 02:12:40 +0100 | mozzarel1 | mozzarella |
2021-03-16 02:12:41 +0100 | johnsteinVPS | johnstein |
2021-03-16 02:12:43 +0100 | gothos_ | gothos |
2021-03-16 02:12:50 +0100 | {abby}9 | {abby} |
2021-03-16 02:13:00 +0100 | concept26 | concept2 |
2021-03-16 02:13:06 +0100 | hackage | (mniip@haskell/bot/hackage) |
2021-03-16 02:14:18 +0100 | Tario | (~Tario@200.119.184.43) |
2021-03-16 02:15:12 +0100 | carlomagno | (~cararell@148.87.23.6) (Ping timeout: 256 seconds) |
2021-03-16 02:15:33 +0100 | mht-technology | (~mht@mht.wtf) (Ping timeout: 264 seconds) |
2021-03-16 02:16:51 +0100 | carlomagno | (~cararell@148.87.23.13) |
2021-03-16 02:17:39 +0100 | mht | (~mht@2a03:b0c0:3:e0::1e2:c001) |
2021-03-16 02:18:59 +0100 | Someguy123 | (~someguy@unaffiliated/compgenius999) |
2021-03-16 02:19:23 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-03-16 02:19:38 +0100 | sssb54 | (~ssssb56@vps-b2931db6.vps.ovh.ca) |
2021-03-16 02:19:42 +0100 | lyxia | (~lyxia@poisson.chat) |
2021-03-16 02:19:57 +0100 | earthy_ | (~arthurvl@deban2.xs4all.space) |
2021-03-16 02:21:15 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-03-16 02:21:17 +0100 | myme | (~myme@li1406-121.members.linode.com) |
2021-03-16 02:21:56 +0100 | deu | (de@uio.re) |
2021-03-16 02:22:30 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) (Ping timeout: 246 seconds) |
2021-03-16 02:23:21 +0100 | Deide1 | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-03-16 02:23:44 +0100 | Tario | (~Tario@200.119.184.43) (Ping timeout: 265 seconds) |
2021-03-16 02:25:34 +0100 | shailangsa | (~shailangs@host86-162-150-241.range86-162.btcentralplus.com) |
2021-03-16 02:26:01 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection) |
2021-03-16 02:26:09 +0100 | Tario | (~Tario@200.119.184.133) |
2021-03-16 02:27:49 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 02:28:05 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) |
2021-03-16 02:30:54 +0100 | orion | (~orion@unaffiliated/orion) (Ping timeout: 246 seconds) |
2021-03-16 02:32:39 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds) |
2021-03-16 02:33:48 +0100 | esp32_prog | (~esp32_pro@185.254.75.51) (Ping timeout: 245 seconds) |
2021-03-16 02:33:56 +0100 | azure2 | (~azure@103.154.230.130) (Read error: Connection reset by peer) |
2021-03-16 02:34:22 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 265 seconds) |
2021-03-16 02:35:03 +0100 | sagax | (~sagax_nb@213.138.71.146) (Ping timeout: 245 seconds) |
2021-03-16 02:35:26 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:d8ee:3872:3a62:88c1) (Ping timeout: 264 seconds) |
2021-03-16 02:36:02 +0100 | azure2 | (~azure@103.154.230.130) |
2021-03-16 02:37:13 +0100 | orion | (~orion@c-76-19-236-20.hsd1.nh.comcast.net) |
2021-03-16 02:37:13 +0100 | orion | (~orion@c-76-19-236-20.hsd1.nh.comcast.net) (Changing host) |
2021-03-16 02:37:13 +0100 | orion | (~orion@unaffiliated/orion) |
2021-03-16 02:38:17 +0100 | gitgoood | (~gitgood@80-44-12-39.dynamic.dsl.as9105.com) |
2021-03-16 02:39:39 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-03-16 02:40:09 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-03-16 02:40:42 +0100 | gitgood | (~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Ping timeout: 256 seconds) |
2021-03-16 02:42:52 +0100 | vBm1 | (~vBm@195.140.213.38) (Remote host closed the connection) |
2021-03-16 02:44:17 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) |
2021-03-16 02:46:15 +0100 | g0nk | (~g0nk@173-26-39-109.client.mchsi.com) () |
2021-03-16 02:46:21 +0100 | nf | (~n@monade.li) (Quit: Fairfarren.) |
2021-03-16 02:46:55 +0100 | remexre_ | remexre |
2021-03-16 02:47:16 +0100 | nf | (~n@monade.li) |
2021-03-16 02:47:26 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-03-16 02:49:24 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:1175:1d12:3f7a:f4b9) |
2021-03-16 02:50:16 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 02:51:32 +0100 | rickygee | (~rickygee@236-53-74-65.gci.net) |
2021-03-16 02:55:40 +0100 | drbean | (~drbean@TC210-63-209-153.static.apol.com.tw) |
2021-03-16 02:55:41 +0100 | Tario | (~Tario@200.119.184.133) (Read error: Connection reset by peer) |
2021-03-16 02:56:41 +0100 | esp32_prog | (~esp32_pro@185.254.75.51) |
2021-03-16 02:57:38 +0100 | Volt_ | (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) |
2021-03-16 02:58:16 +0100 | augnun | (~augnun@189.6.16.141) (Ping timeout: 256 seconds) |
2021-03-16 02:58:32 +0100 | Tario | (~Tario@201.192.165.173) |
2021-03-16 03:00:18 +0100 | augnun | (~augnun@2804:14c:658b:41bb:2619:95b9:b021:720c) |
2021-03-16 03:04:06 +0100 | DataComputist | (~lumeng@50.43.26.251) (Quit: Leaving...) |
2021-03-16 03:05:25 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 03:09:30 +0100 | toorevitimirp | (~tooreviti@117.182.182.40) |
2021-03-16 03:09:38 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds) |
2021-03-16 03:10:22 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2021-03-16 03:10:25 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) |
2021-03-16 03:11:39 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds) |
2021-03-16 03:12:11 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-03-16 03:13:30 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 03:13:37 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-03-16 03:13:53 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 03:13:53 +0100 | hackage | servant-rawm-client 1.0.0.2 - The client implementation of servant-rawm. https://hackage.haskell.org/package/servant-rawm-client-1.0.0.2 (cdepillabout) |
2021-03-16 03:15:13 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) |
2021-03-16 03:15:55 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-03-16 03:16:10 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 03:16:25 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-03-16 03:18:18 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 260 seconds) |
2021-03-16 03:18:24 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-03-16 03:20:47 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-03-16 03:22:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 03:25:02 +0100 | <qih> | In terms of a package manager for a n00b, what is more friendly and has better documentation? Cabal or Stack? |
2021-03-16 03:25:14 +0100 | <koz> | qih: ... they're not package managers? |
2021-03-16 03:25:25 +0100 | <koz> | If you mean 'dependency manager', then it's extremely YMMV. |
2021-03-16 03:25:30 +0100 | <qih> | koz: Misterm, whatever ... |
2021-03-16 03:25:32 +0100 | <qih> | 8-) |
2021-03-16 03:25:35 +0100 | <qih> | OK |
2021-03-16 03:25:46 +0100 | <koz> | Stack has a whole bunch of its own eccentricities, as does Cabal, both have documentation issues out the wazoo. |
2021-03-16 03:26:00 +0100 | <qih> | Are all the packages available on either of the Dependency Managers? |
2021-03-16 03:26:02 +0100 | <koz> | I prefer Cabal because I find Stack unnecessary; others disagree for reasons I fail to understand. |
2021-03-16 03:26:18 +0100 | <koz> | qih: Yes - anything from Hackage can be had on either one, and both support local and git-hosted repos. |
2021-03-16 03:26:18 +0100 | esp32_prog | (~esp32_pro@185.254.75.51) (Ping timeout: 245 seconds) |
2021-03-16 03:26:24 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 03:26:40 +0100 | Guest11557 | (~ccallahan@185.163.110.108) |
2021-03-16 03:26:54 +0100 | <qih> | OK that's neat ...weeeeeell, I'll try Cabal this time. Hi btw, how's things *up* there? |
2021-03-16 03:27:02 +0100 | _bin | (~bin@2600:1700:10a1:38d0:a1bb:96d6:a6dd:43f2) (Ping timeout: 264 seconds) |
2021-03-16 03:27:55 +0100 | <Squarism> | im looking for something to model "business processes" that has a mapping to a direct graph as an image. Like BPMN or Petri-nets. Anyone know if there is lib for this or other alternative that fullfills the requirement of having visual representation. |
2021-03-16 03:28:12 +0100 | <Squarism> | diected graph* |
2021-03-16 03:28:19 +0100 | <koz> | Squarism: Most graph-related libraries don't really deal with 'visual representations'. |
2021-03-16 03:28:39 +0100 | _bin | (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net) |
2021-03-16 03:28:57 +0100 | <Squarism> | i can roll that part on my own. I mainly want the non visual part working well. |
2021-03-16 03:29:05 +0100 | <koz> | Since visual representations of graphs are a surprisingly hard problem in themselves (read the graphviz docs if you wanna see just how tricky it can be). |
2021-03-16 03:29:09 +0100 | <qih> | koz: https://medium.com/@edmundnoble/cabal-or-stack-25886c0ac74f <- clear as mud 8-) |
2021-03-16 03:29:34 +0100 | <koz> | If you want the _non_ visual part working well, there's a few options. I favour http://hackage.haskell.org/package/algebraic-graphs |
2021-03-16 03:29:40 +0100 | <koz> | Whether it does the things you specifically want depends. |
2021-03-16 03:29:42 +0100 | <Squarism> | koz, these wont be too complicated so I think graphviz would do for me. |
2021-03-16 03:30:04 +0100 | <koz> | Squarism: graphvis is an executable that draws graphs. |
2021-03-16 03:30:11 +0100 | <Squarism> | i know |
2021-03-16 03:30:40 +0100 | <koz> | The point is, there's lots of heuristics for layout, and even with those, graphvis's own language needs some assistance often. |
2021-03-16 03:31:13 +0100 | <koz> | qih: Basically, in 2021, I would argue 'just pick whichever one offends you less'. |
2021-03-16 03:31:13 +0100 | <Squarism> | my graphs vill have max 12ish nodes. |
2021-03-16 03:31:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 03:31:30 +0100 | <koz> | Squarism: Ah, well, in that case algebraic-graphs will be fine. |
2021-03-16 03:32:05 +0100 | <koz> | I fall on the side of Cabal because you need to understand Cabal files either way; with Stack, you gotta learn about a lot of _other_ stuff too. |
2021-03-16 03:32:14 +0100 | <koz> | (none of which IMHO is remotely relevant in 2021) |
2021-03-16 03:32:33 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 245 seconds) |
2021-03-16 03:33:08 +0100 | <qih> | koz: OK, Stack it is then for some other needs, but I'll RTFM on Cabal too. |
2021-03-16 03:33:54 +0100 | urodna_ | (~urodna@unaffiliated/urodna) (Quit: urodna_) |
2021-03-16 03:35:21 +0100 | tanner_ | (~tanner@216.106.138.184) |
2021-03-16 03:38:05 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-03-16 03:39:55 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection) |
2021-03-16 03:40:13 +0100 | <qih> | Using the GHCI REPL; :help shows help but how do you paginate it? :help | less does not work, nor 'more' or 'page' |
2021-03-16 03:42:16 +0100 | alx741 | (~alx741@181.196.68.64) (Quit: alx741) |
2021-03-16 03:42:52 +0100 | xff0x | (~xff0x@2001:1a81:52b7:0:8b9f:ee81:7bdc:f7e8) (Ping timeout: 260 seconds) |
2021-03-16 03:43:02 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-03-16 03:44:22 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:698d:4b25:a12b:af32) |
2021-03-16 03:46:09 +0100 | jrqc | (~rofl@96.78.87.197) (Ping timeout: 264 seconds) |
2021-03-16 03:46:38 +0100 | mrus[m] | (mrusmatrix@gateway/shell/matrix.org/x-welevbbwwrngbnao) |
2021-03-16 03:48:52 +0100 | jrqc | (~rofl@96.78.87.197) |
2021-03-16 03:51:52 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2021-03-16 03:52:44 +0100 | augnun | (~augnun@2804:14c:658b:41bb:2619:95b9:b021:720c) (Quit: WeeChat 3.1) |
2021-03-16 03:55:22 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) |
2021-03-16 03:55:34 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-03-16 03:57:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-03-16 04:02:20 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 265 seconds) |
2021-03-16 04:02:22 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-03-16 04:02:43 +0100 | solidus-river | (~mike@174.127.249.180) |
2021-03-16 04:03:43 +0100 | <solidus-river> | hey all, i'm just starting to use haskell for real world things and i've come across something i think should be dead easy but has my brain in a twister |
2021-03-16 04:04:08 +0100 | <solidus-river> | i'm looking to map putStrLn over a list of strings that i got from IO actions |
2021-03-16 04:04:12 +0100 | <solidus-river> | some function like |
2021-03-16 04:04:25 +0100 | <solidus-river> | (a -> IO ()) -> IO [a] -> IO () |
2021-03-16 04:05:17 +0100 | <solidus-river> | mapM_ was what i went to initially, I think i can write it in do syntax but that seems wrong for a line that should be a simple map or somthing similar |
2021-03-16 04:05:59 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) (Quit: rip) |
2021-03-16 04:06:35 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-03-16 04:06:35 +0100 | finn_elija | Guest21269 |
2021-03-16 04:06:35 +0100 | FinnElija | finn_elija |
2021-03-16 04:06:35 +0100 | <siraben> | solidus-river: mapM_ is what you want |
2021-03-16 04:06:55 +0100 | <solidus-river> | i can't make the compiler happy with it :( |
2021-03-16 04:06:56 +0100 | <siraben> | think of it like "for each" |
2021-03-16 04:07:04 +0100 | DTZUZU_ | (~DTZUZO@207.81.119.43) |
2021-03-16 04:07:07 +0100 | <siraben> | could you do a paste of your code? |
2021-03-16 04:07:27 +0100 | <siraben> | if your have a lit of strings that you got from IO, then you may have to `fmap` it as well |
2021-03-16 04:07:30 +0100 | <siraben> | or bind it first |
2021-03-16 04:08:09 +0100 | qih | does 'stack install hakyll' and cannot believe how much it is loading up an 8 Core AMD64 o_0 |
2021-03-16 04:08:50 +0100 | <solidus-river> | getting it, i'm using zmq so its a bit convoluted, getting a minimum paste up |
2021-03-16 04:09:37 +0100 | Guest21269 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-03-16 04:09:40 +0100 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 256 seconds) |
2021-03-16 04:10:52 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
2021-03-16 04:11:16 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-03-16 04:11:16 +0100 | FinnElija | finn_elija |
2021-03-16 04:11:41 +0100 | <qih> | Taking off your Capitals, alwys feels better, am I right? |
2021-03-16 04:11:48 +0100 | <solidus-river> | https://paste.tomsmeding.com/Xzocy8WA |
2021-03-16 04:13:02 +0100 | <siraben> | `logger logger = fmap (mapM_ putStrLn) (receiveMulti logger)` |
2021-03-16 04:13:03 +0100 | <siraben> | should do it |
2021-03-16 04:13:17 +0100 | <siraben> | also, using the same name for the function and argument is confusing |
2021-03-16 04:13:28 +0100 | <siraben> | `logger l = mapM_ (unpack . putStrLn) (receiveMulti l)` |
2021-03-16 04:14:12 +0100 | shachaf_ | shachaf |
2021-03-16 04:15:03 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-03-16 04:15:17 +0100 | <solidus-river> | thanks! I had an error where unpack goes to [Char] not String but thats a different issue |
2021-03-16 04:15:32 +0100 | <siraben> | do you need unpack? |
2021-03-16 04:15:41 +0100 | <solidus-river> | i hope this gets more intuitive pretty quick, the fmap in front is a mental backflip for me but i can understand it after seeing it |
2021-03-16 04:16:02 +0100 | <solidus-river> | I found ByteString has its own exported putStrLn funcs |
2021-03-16 04:16:21 +0100 | <siraben> | Ah, but unpack is for turning a bytestring into text |
2021-03-16 04:16:30 +0100 | <siraben> | `logger l = mapM_ B.putStrLn (receiveMulti l)` |
2021-03-16 04:18:22 +0100 | <siraben> | bytestring into String* |
2021-03-16 04:18:22 +0100 | <solidus-river> | aye, i put a forever on there too, this should collapse once i figure out conduit-zeromq4 to something more readable |
2021-03-16 04:18:55 +0100 | <solidus-river> | never had more fun getting my hands dirty with a new project. :) its a scary, but fun leap into haskell land |
2021-03-16 04:18:57 +0100 | <siraben> | solidus-river: also, [Char] = String in haskell |
2021-03-16 04:19:07 +0100 | <siraben> | (that's why String is a bad string type) |
2021-03-16 04:19:07 +0100 | <solidus-river> | i'm sure i'm really messing up some perf with the bytestring vs text vs String stuff |
2021-03-16 04:19:28 +0100 | <solidus-river> | are packed ByteStrings from string literals null terminated in haskell? |
2021-03-16 04:19:41 +0100 | <siraben> | you might want to see the criterion library to benchmark haskell programs, it was eye opening for me to see how slow String was |
2021-03-16 04:19:44 +0100 | <solidus-river> | or where would i find things like that |
2021-03-16 04:19:46 +0100 | tanner__ | (uid491848@gateway/web/irccloud.com/x-rtafqkufgdjftxay) |
2021-03-16 04:19:52 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 04:20:03 +0100 | <siraben> | I think the Storable instance for it results in a null-terminated string |
2021-03-16 04:20:10 +0100 | <siraben> | Storable is used when converting it to a CStr |
2021-03-16 04:20:21 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2021-03-16 04:20:31 +0100 | <siraben> | but null-termination may just be an implementation detail |
2021-03-16 04:21:33 +0100 | <solidus-river> | I'm sending these over the wire to a c++ client and zmq doesn't try to be smart about messages |
2021-03-16 04:22:11 +0100 | <solidus-river> | but i'll find out when the other side blows up or not :D |
2021-03-16 04:22:27 +0100 | <siraben> | Ah if the library abstracts it away it should be fine |
2021-03-16 04:22:29 +0100 | <siraben> | (I guess) |
2021-03-16 04:25:40 +0100 | <qih> | All this compiling just so I can run a simple Github Pages site using Hakyll, should have just used the Github UI >8-/ |
2021-03-16 04:28:41 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 04:29:12 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds) |
2021-03-16 04:30:39 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 04:31:53 +0100 | theDon_ | (~td@94.134.91.151) (Ping timeout: 260 seconds) |
2021-03-16 04:32:38 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 04:32:44 +0100 | tabemann | (~travisb@2600:1700:7990:24e0:1282:ff43:20c2:7b5f) (Remote host closed the connection) |
2021-03-16 04:32:59 +0100 | tabemann | (~travisb@2600:1700:7990:24e0:101f:ae79:c83b:6c90) |
2021-03-16 04:33:05 +0100 | theDon | (~td@94.134.91.58) |
2021-03-16 04:33:24 +0100 | tomku | (~tomku@unaffiliated/tomku) (Ping timeout: 246 seconds) |
2021-03-16 04:33:37 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-03-16 04:34:29 +0100 | tony__ | (~Username@185.30.81.111) |
2021-03-16 04:34:59 +0100 | tony__ | (~Username@185.30.81.111) (Client Quit) |
2021-03-16 04:39:10 +0100 | tomku | (~tomku@unaffiliated/tomku) |
2021-03-16 04:40:26 +0100 | <koz> | solidus-river: If you need C strings, there's specific stuff for that. |
2021-03-16 04:40:33 +0100 | <koz> | (look up Haskell FFI, there's a few guides) |
2021-03-16 04:40:45 +0100 | <koz> | ByteString _in itself_ isn't what you need there. |
2021-03-16 04:50:12 +0100 | tomku | (~tomku@unaffiliated/tomku) (Ping timeout: 246 seconds) |
2021-03-16 04:53:10 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-03-16 04:58:24 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) |
2021-03-16 05:00:06 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.58.121) (Ping timeout: 256 seconds) |
2021-03-16 05:00:59 +0100 | tomku | (~tomku@unaffiliated/tomku) |
2021-03-16 05:01:04 +0100 | elusive | (~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com) |
2021-03-16 05:02:27 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
2021-03-16 05:05:58 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 05:06:54 +0100 | Volt_ | (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: ) |
2021-03-16 05:07:23 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection) |
2021-03-16 05:08:15 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) |
2021-03-16 05:11:41 +0100 | loller_ | (uid358106@gateway/web/irccloud.com/x-cnpraiotvintahet) |
2021-03-16 05:13:14 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Ping timeout: 264 seconds) |
2021-03-16 05:14:50 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 265 seconds) |
2021-03-16 05:21:21 +0100 | <charukiewicz> | qih: If you're using stack, the good news is that you only need to do a big compilation once in a while, either when you clear your ~/.stack directory or bump the version of the Stackage LTS your project depends on. |
2021-03-16 05:23:40 +0100 | forgottenone | (~forgotten@176.42.16.24) |
2021-03-16 05:23:47 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2021-03-16 05:24:36 +0100 | <koz> | charukiewicz: The same is true of recent Cabals, which cache _more_ aggressively than Stack can sometimes. |
2021-03-16 05:25:13 +0100 | <koz> | (well, cabal-installs I should say, to be clear) |
2021-03-16 05:26:06 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection) |
2021-03-16 05:30:54 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-03-16 05:31:02 +0100 | <charukiewicz> | koz: True, and that's a good feature of the newer versions of cabal. Though since dependencies aren't pinned system or project level stackage snapshot, I think you're a bit more likely to see compilations if you don't pin dependencies the same way in every project. Stackage simplifies this a bit, especially for a first timer. |
2021-03-16 05:31:32 +0100 | <koz> | charukiewicz: Yeah, but you should be pinning properly anyway, especially if you're writing a library. |
2021-03-16 05:31:45 +0100 | <koz> | I don't think relying on a resolver to magically fix this issue is a good idea. |
2021-03-16 05:32:16 +0100 | <charukiewicz> | Indeed for a library, but qih is just using Hakyll, where again, for a beginner, I recommend just letting the resolver take over |
2021-03-16 05:33:34 +0100 | <koz> | Even then, learning to pin properly is a good practice, and not even that hard. In fact, _not_ learning this sooner is a disservice to a beginner, not a help IMHO. |
2021-03-16 05:34:19 +0100 | koz | koz_ |
2021-03-16 05:34:35 +0100 | <koz_> | Huh, didn't even notice my nick change, argh. |
2021-03-16 05:35:59 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) |
2021-03-16 05:37:20 +0100 | <charukiewicz> | If you're using a pinned stackage LTS or nixpkgs commit, I don't really see a benefit of specifying tight version bounds in your cabal file (referring to applications, not libraries here). You're implicitly already pinning a particular version of every one of your dependencies through whatever snapshot/commit hash you pick. |
2021-03-16 05:38:00 +0100 | <koz_> | Why drag in all the additional hassle of Stack when you can just use pins to do the exact same thing? It means learning _its_ undocumented messes as well as Cabal's. |
2021-03-16 05:38:15 +0100 | tanner_ | (~tanner@216.106.138.184) (Quit: tanner_) |
2021-03-16 05:38:25 +0100 | <koz_> | Literally, in my view, Stack adds nothing anymore to anything other than a false sense of convenience and a tonne of undocumented annoyances. |
2021-03-16 05:38:37 +0100 | <koz_> | However, that is my view and I think I've documented it adequately, so I'll stop. |
2021-03-16 05:38:43 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 3.1) |
2021-03-16 05:38:56 +0100 | tanner_ | (~tanner@216.106.138.184) |
2021-03-16 05:40:02 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-03-16 05:40:22 +0100 | kiweun | (~kiweun@2607:fea8:2a62:9600:c98d:ec81:e94d:3657) () |
2021-03-16 05:40:40 +0100 | <curiousgay> | I thought stack is a modern replacement to cabal-install |
2021-03-16 05:40:53 +0100 | <koz_> | curiousgay: Lol. That's not really accurate in any sense. |
2021-03-16 05:41:09 +0100 | DTZUZU | (~DTZUZO@205.ip-149-56-132.net) |
2021-03-16 05:43:08 +0100 | <charukiewicz> | curiousgay: It's true that if you're using stack on a project, it's true that you probably don't need to use the cabal cli tool. That being said, it's not really a replacement. It layers additional machinery on top of cabal and tries to offer a better UX. Generally I think it is a better UX, despite not being my build tool of choice. |
2021-03-16 05:43:23 +0100 | tanner_ | (~tanner@216.106.138.184) (Ping timeout: 245 seconds) |
2021-03-16 05:43:34 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-03-16 05:43:48 +0100 | <koz_> | I think it has a few nice UX things - it's test output _is_ nicer by default, for example. |
2021-03-16 05:43:50 +0100 | DTZUZU_ | (~DTZUZO@207.81.119.43) (Ping timeout: 265 seconds) |
2021-03-16 05:44:04 +0100 | <koz_> | (you can get the same with cabal-install, just that the flag you need to pass is not memorable) |
2021-03-16 05:44:32 +0100 | <koz_> | (and I keep having to look it up every time) |
2021-03-16 05:44:35 +0100 | <charukiewicz> | I've found that no matter what tool you're using, you probably want to save off your build/repl/test commands in a Makefile |
2021-03-16 05:45:07 +0100 | <koz_> | charukiewicz: The original 'build system' rofl. |
2021-03-16 05:45:12 +0100 | swarmcollective | (~joseph@cpe-24-208-140-96.insight.res.rr.com) (Quit: WeeChat 2.8) |
2021-03-16 05:47:11 +0100 | <curiousgay> | koz_: that sounds like stack deliberately fragments community by not providing a tool that runs cabal-install behind the scenes, but instead creates its own ecosystem |
2021-03-16 05:47:25 +0100 | <koz_> | curiousgay: Some people would make this argument. |
2021-03-16 05:48:02 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-03-16 05:53:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 05:55:15 +0100 | bobweb | (ac381148@172.56.17.72) |
2021-03-16 05:55:29 +0100 | soulseeker_ | (~soulseeke@90.214.167.201) |
2021-03-16 05:55:50 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 264 seconds) |
2021-03-16 05:56:14 +0100 | lupulo | (~lupulo@163.117.64.56) (Read error: Connection reset by peer) |
2021-03-16 05:59:11 +0100 | <bobweb> | Hi. Please tell me how to code a Gen String that only returns strings composed of English letters (case insensitive). My basic approach is: stringGen :: Gen [Char]; stringGen = suchThat arbitrary (elem (['a'..'z'] ++ ['A'..'Z'])). Thanks. |
2021-03-16 05:59:49 +0100 | <koz_> | suchThat arbitrary will run quite slowly. |
2021-03-16 06:01:00 +0100 | <bobweb> | @koz Just working through a text trying to learn the basics right now... |
2021-03-16 06:01:00 +0100 | <lambdabot> | Maybe you meant: yow do |
2021-03-16 06:01:33 +0100 | <koz_> | You probably want something like 'liftArbitrary (elem (['a' .. 'z'] <> [ |
2021-03-16 06:01:37 +0100 | <bobweb> | @koz what to you recommend? |
2021-03-16 06:01:37 +0100 | <lambdabot> | Maybe you meant: yow do |
2021-03-16 06:01:38 +0100 | cobreadmonster | (499efd7f@haskell/developer/breadmonster) |
2021-03-16 06:01:41 +0100 | <koz_> | 'A' .. 'Z'])) |
2021-03-16 06:01:42 +0100 | <koz_> | ' |
2021-03-16 06:02:11 +0100 | <koz_> | Sorry about the line breaks. |
2021-03-16 06:02:25 +0100 | <bobweb> | OK, lift is coming up in the next chapter or two. |
2021-03-16 06:02:32 +0100 | <bobweb> | No worries. |
2021-03-16 06:02:44 +0100 | <koz_> | It works because [] has the liftArbitrary method defined for it. |
2021-03-16 06:02:55 +0100 | <koz_> | So if you have a Gen a, you can get Gen [a] using it. |
2021-03-16 06:03:36 +0100 | <bobweb> | OK, is the '<>' code or a line break? |
2021-03-16 06:03:41 +0100 | <koz_> | Code. |
2021-03-16 06:03:52 +0100 | <koz_> | It's the same as (++) in this case. |
2021-03-16 06:03:59 +0100 | <koz_> | So you can use that instead if you prefer. |
2021-03-16 06:04:34 +0100 | <bobweb> | I see. OK, I'll try your recommendation. Thank you. |
2021-03-16 06:05:10 +0100 | <koz_> | Generally, 'suchThat' isn't the best idea, because it's a pretty brute-force approach. |
2021-03-16 06:05:18 +0100 | <koz_> | It's 'make whatever, then hope it fits, if not, try again'. |
2021-03-16 06:05:23 +0100 | <koz_> | And you might be trying again _a lot_. |
2021-03-16 06:05:54 +0100 | mixfix41 | (~user@unaffiliated/mixfix41) (Read error: Connection reset by peer) |
2021-03-16 06:05:59 +0100 | drbean | (~drbean@TC210-63-209-153.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-03-16 06:06:12 +0100 | <bobweb> | LOL, OK. Yes, I want elegant and beautiful Haskell code for sure! |
2021-03-16 06:10:40 +0100 | <qih> | charukiewicz: Thanks for the tip. |
2021-03-16 06:11:15 +0100 | bobweb | (ac381148@172.56.17.72) (Quit: Connection closed) |
2021-03-16 06:12:38 +0100 | bobweb | (ac3a17de@172.58.23.222) |
2021-03-16 06:14:05 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 06:15:11 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
2021-03-16 06:15:32 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-03-16 06:15:37 +0100 | <bobweb> | @koz I put this: stringGen = liftArbitrary (elem (['a' .. 'z'] <> ['A'..'Z'])) and got this error: https://paste.tomsmeding.com/NtJgPlob I know it's something simple but I am unfamiliar with lifting... |
2021-03-16 06:15:37 +0100 | <lambdabot> | Maybe you meant: yow do |
2021-03-16 06:16:17 +0100 | <koz_> | Ah, yeah, that's probably because I used the wrong function. :P |
2021-03-16 06:16:22 +0100 | <koz_> | It's got nothing to do with lifting. |
2021-03-16 06:16:38 +0100 | <bobweb> | Ok |
2021-03-16 06:16:58 +0100 | <koz_> | It should be 'elements', not 'elem'. |
2021-03-16 06:17:42 +0100 | <bobweb> | Ah, right. I originally used elements and moved to elem when that didn't work. OK, thanks. |
2021-03-16 06:19:34 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 276 seconds) |
2021-03-16 06:20:42 +0100 | <bobweb> | @koz Yup, that works! Thank you. |
2021-03-16 06:20:43 +0100 | <lambdabot> | Maybe you meant: yow do |
2021-03-16 06:26:18 +0100 | remal | (~remal@d24-57-234-201.home.cgocable.net) (Ping timeout: 245 seconds) |
2021-03-16 06:27:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-03-16 06:29:03 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 06:33:27 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2021-03-16 06:36:57 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-03-16 06:39:22 +0100 | bobweb | (ac3a17de@172.58.23.222) (Ping timeout: 240 seconds) |
2021-03-16 06:40:34 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) |
2021-03-16 06:42:13 +0100 | remal | (~remal@d24-57-234-201.home.cgocable.net) |
2021-03-16 06:42:58 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Ping timeout: 245 seconds) |
2021-03-16 06:44:59 +0100 | aggin | (~ecm@103.88.87.37) |
2021-03-16 06:48:39 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 06:49:33 +0100 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Quit: farn) |
2021-03-16 06:50:52 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) |
2021-03-16 06:53:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-03-16 06:53:39 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-sowvivaeecbildoj) (Quit: Connection closed for inactivity) |
2021-03-16 06:54:38 +0100 | tabemann | (~travisb@2600:1700:7990:24e0:101f:ae79:c83b:6c90) (Ping timeout: 264 seconds) |
2021-03-16 06:59:24 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-03-16 06:59:40 +0100 | Wuzzy | (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-03-16 07:00:03 +0100 | cobreadmonster | (499efd7f@haskell/developer/breadmonster) (Quit: Connection closed) |
2021-03-16 07:01:30 +0100 | benkolera | (uid285671@gateway/web/irccloud.com/x-dasgfjgzoqobrquc) (Quit: Connection closed for inactivity) |
2021-03-16 07:04:38 +0100 | elusive | (~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com) (Ping timeout: 245 seconds) |
2021-03-16 07:06:01 +0100 | travisb | (~travisb@2600:1700:7990:24e0:101f:ae79:c83b:6c90) |
2021-03-16 07:07:05 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-dbopwiciasztapdp) (Quit: Connection closed for inactivity) |
2021-03-16 07:08:48 +0100 | ajc | (~ajc@69.231.232.79) (Ping timeout: 246 seconds) |
2021-03-16 07:09:47 +0100 | aggin | (~ecm@103.88.87.37) (Quit: WeeChat 3.0.1) |
2021-03-16 07:10:29 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-03-16 07:12:18 +0100 | carlomagno | (~cararell@148.87.23.13) (Ping timeout: 246 seconds) |
2021-03-16 07:16:08 +0100 | dave_uy | (~david@108.61.193.26) (Quit: The Lounge - https://thelounge.chat) |
2021-03-16 07:16:43 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-03-16 07:19:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 07:19:17 +0100 | dave_uy | (~david@108.61.193.26) |
2021-03-16 07:22:19 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1) |
2021-03-16 07:22:50 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) |
2021-03-16 07:24:14 +0100 | rickygee | (~rickygee@236-53-74-65.gci.net) () |
2021-03-16 07:24:33 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-03-16 07:26:53 +0100 | guest316 | (~user@49.5.6.87) |
2021-03-16 07:27:03 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2021-03-16 07:31:00 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-03-16 07:31:34 +0100 | Guest11557 | (~ccallahan@185.163.110.108) (Remote host closed the connection) |
2021-03-16 07:32:03 +0100 | malumore | (~malumore@151.62.119.219) |
2021-03-16 07:32:40 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 07:32:59 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) (Remote host closed the connection) |
2021-03-16 07:34:34 +0100 | klixto | (~klixto@130.220.8.139) (Quit: WeeChat 3.0.1) |
2021-03-16 07:34:55 +0100 | aki_ | (~aki_@185.204.1.185) |
2021-03-16 07:35:09 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2021-03-16 07:35:56 +0100 | <guest316> | why fixed-point would create a loop? |
2021-03-16 07:37:46 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2021-03-16 07:40:04 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving) |
2021-03-16 07:40:34 +0100 | jayok | (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) |
2021-03-16 07:41:20 +0100 | <olligobber> | guest316, https://en.wikipedia.org/wiki/Fixed-point_combinator#Usage_in_programming |
2021-03-16 07:42:45 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-03-16 07:44:12 +0100 | <olligobber> | I guess a loop is something like `while check(state) { state <- update(state) }' |
2021-03-16 07:45:02 +0100 | <olligobber> | which can be written recursively as `f state = if check state then f (update state) else state` |
2021-03-16 07:45:08 +0100 | gaff | (~user@49.207.217.94) |
2021-03-16 07:45:41 +0100 | <olligobber> | which isn't a proper combinator because it contains f in the definition of f, so you use the fix point to write |
2021-03-16 07:45:57 +0100 | <gaff> | hi -- is there a way to to point cabal to fetch packages from stackage lts in config file |
2021-03-16 07:45:59 +0100 | <gaff> | ? |
2021-03-16 07:46:08 +0100 | <olligobber> | `f = fix \g state -> if check state then g (update state) else state' |
2021-03-16 07:47:11 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 07:47:15 +0100 | jayok | (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Quit: Leaving) |
2021-03-16 07:47:22 +0100 | <gaff> | appreciate any help |
2021-03-16 07:48:12 +0100 | <olligobber> | gaff, I'm fairly new to cabal, but I think if your package relies on a package then it will automatically fetch it from stackage? |
2021-03-16 07:48:37 +0100 | <guest316> | olligobber: call a fixed-point inside a Cont, why it would create a loop? |
2021-03-16 07:48:54 +0100 | <olligobber> | guest316, what's a Cont? |
2021-03-16 07:49:18 +0100 | <guest316> | olligobber: https://www.vex.net/~trebla/haskell/cont-monad.xhtml |
2021-03-16 07:49:24 +0100 | <guest316> | olligobber: Cont Monad |
2021-03-16 07:49:34 +0100 | <gaff> | i am not sure what you are saying. cabal, by default, pulls packages from hackage |
2021-03-16 07:49:38 +0100 | <guest316> | that Setjmp |
2021-03-16 07:49:53 +0100 | <olligobber> | gaff, oh, I'm wrong, someone else needs to help you |
2021-03-16 07:50:05 +0100 | <gaff> | instead, i want cabal to pull packages from stackage LTS |
2021-03-16 07:50:20 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2021-03-16 07:50:26 +0100 | <guest316> | setjmp is Cont action, which wrapped c's fixed-point |
2021-03-16 07:50:42 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-03-16 07:50:50 +0100 | <gaff> | i tried putting stackage url in cabal config file, but that doesn't work. |
2021-03-16 07:51:04 +0100 | <guest316> | call that c's fixed-point inside a Cont do-notaion, it creates a loop |
2021-03-16 07:51:13 +0100 | <guest316> | that's confused me |
2021-03-16 07:51:44 +0100 | <sclv> | stack uses packages from hackage ultimately too |
2021-03-16 07:52:05 +0100 | <sclv> | the lts is just a file listing a subset of pckages and versions |
2021-03-16 07:52:15 +0100 | <sclv> | its not a special package repo |
2021-03-16 07:52:29 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) |
2021-03-16 07:52:32 +0100 | <sclv> | its additional data to hackage not a replacement |
2021-03-16 07:52:36 +0100 | <olligobber> | guest316, are you talking about `setjmp = callCC (\c -> return (fix c))' ? |
2021-03-16 07:52:39 +0100 | <gaff> | ok |
2021-03-16 07:52:48 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) (Client Quit) |
2021-03-16 07:53:04 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) |
2021-03-16 07:53:28 +0100 | <gaff> | so how can you get a curated set of packages using cabal, just like the ones listed in stackage LTS? |
2021-03-16 07:53:56 +0100 | <sclv> | stackage lets you download a freeze file. |
2021-03-16 07:54:04 +0100 | <sclv> | but also, why? |
2021-03-16 07:54:55 +0100 | <gaff> | just so that i can be sure that when cabal installs a package, i don't run into conflicts. |
2021-03-16 07:55:07 +0100 | Lycurgus | (~niemand@98.4.116.165) |
2021-03-16 07:55:24 +0100 | <sclv> | just use cabal build and projects |
2021-03-16 07:55:31 +0100 | <sclv> | and dont install libs directly |
2021-03-16 07:55:35 +0100 | <gaff> | can you elaborate on the freeze file? |
2021-03-16 07:55:43 +0100 | <sclv> | and the solver prevents this for you |
2021-03-16 07:56:00 +0100 | <sclv> | im trying to find it - they hide it for some reason |
2021-03-16 07:56:48 +0100 | aki_ | (~aki_@185.204.1.185) () |
2021-03-16 07:57:51 +0100 | <gaff> | ok, here is what i want -- i don't have any complex set up that requires multiple versions of a package or ghc. so all i want to do is have cabal install packages in ~/.cabal directory, but all installed packages must be compatible. |
2021-03-16 07:58:04 +0100 | <sclv> | gaff: like this — curl https://www.stackage.org/lts-12.21/cabal.config > cabal.project.freeze |
2021-03-16 07:58:21 +0100 | <sclv> | thats not the way to use cabal these days! |
2021-03-16 07:58:30 +0100 | <gaff> | i see |
2021-03-16 07:58:50 +0100 | <sclv> | with new build it just manages your deps for you. You never have to manually install a package at all |
2021-03-16 07:59:23 +0100 | <sclv> | its described in the nix-style builds section of the cabal user guide iirc |
2021-03-16 07:59:42 +0100 | <gaff> | ok |
2021-03-16 07:59:59 +0100 | <sclv> | https://cabal.readthedocs.io/en/3.4/nix-local-build-overview.html |
2021-03-16 08:00:31 +0100 | <sclv> | note that this is outdated in that you don’t need the v2 prefix anymore on a sufficiently recent cabal |
2021-03-16 08:00:31 +0100 | <gaff> | so for each project, you just do a nix style build? |
2021-03-16 08:00:36 +0100 | <sclv> | yep |
2021-03-16 08:00:48 +0100 | <sclv> | which is now just named “build” |
2021-03-16 08:00:56 +0100 | <guest316> | olligobber: yes |
2021-03-16 08:01:07 +0100 | <gaff> | so default is nix style build |
2021-03-16 08:01:09 +0100 | <gaff> | ? |
2021-03-16 08:01:14 +0100 | <sclv> | Yes |
2021-03-16 08:01:55 +0100 | <gaff> | i am using cabal 3.4, by the way |
2021-03-16 08:02:02 +0100 | <sclv> | cool |
2021-03-16 08:02:04 +0100 | <gaff> | and ghc 8.10.4 |
2021-03-16 08:02:23 +0100 | <sclv> | thats all good up to date stuff |
2021-03-16 08:03:02 +0100 | shad0w_ | (67573b43@103.87.59.67) |
2021-03-16 08:03:03 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds) |
2021-03-16 08:04:35 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2021-03-16 08:04:39 +0100 | <gaff> | also, i have a question -- what are the uses of hscolour, alex, and happy? |
2021-03-16 08:04:56 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-03-16 08:05:39 +0100 | <gaff> | i am looking for creating local html documentation of packages pulled by cabal from hackage |
2021-03-16 08:05:58 +0100 | <sclv> | the first produces pretty printed source, haddock uses it. The others are parser and lexer generators used by many packages |
2021-03-16 08:06:20 +0100 | <sclv> | Cabal has flags to generate docs |
2021-03-16 08:06:30 +0100 | <sclv> | Its in the guide |
2021-03-16 08:06:49 +0100 | <gaff> | yeah, set documentation: True |
2021-03-16 08:06:53 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) |
2021-03-16 08:07:32 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) (Remote host closed the connection) |
2021-03-16 08:07:51 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) |
2021-03-16 08:07:58 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:08:21 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) |
2021-03-16 08:09:09 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:09:14 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-evlatajzqwspjogs) (Quit: Connection closed for inactivity) |
2021-03-16 08:09:31 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) |
2021-03-16 08:09:51 +0100 | dni53363 | (~dni46445@static-198-54-131-94.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:10:36 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) |
2021-03-16 08:10:42 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-03-16 08:10:48 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:11:12 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) |
2021-03-16 08:11:23 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:11:52 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) |
2021-03-16 08:12:11 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:12:26 +0100 | poscat | (~poscat@2408:8207:4825:c7c0::1) |
2021-03-16 08:12:34 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) |
2021-03-16 08:12:58 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:13:09 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2021-03-16 08:13:10 +0100 | plutoniix | (~q@ppp-223-24-63-1.revip6.asianet.co.th) |
2021-03-16 08:13:19 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) |
2021-03-16 08:13:25 +0100 | <gaff> | sclv: so i don't need to worry about installing hscolour, alex, or happy. cabal will download & install them if other packages need it. correct? |
2021-03-16 08:13:43 +0100 | dni53363 | (~dni46445@static-198-54-131-60.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:15:42 +0100 | <Uniaika> | gaff: yep |
2021-03-16 08:16:13 +0100 | <gaff> | sclv: thank you |
2021-03-16 08:16:16 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) |
2021-03-16 08:16:38 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:16:59 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) |
2021-03-16 08:17:21 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:17:24 +0100 | <gaff> | sclv: unfortunately, the cabal documentation on nix build looks outdated. it still says v2 in build in cabal 3.4 documentation. |
2021-03-16 08:17:43 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) |
2021-03-16 08:17:50 +0100 | <gaff> | i wonder why they haven't updated this stuff. |
2021-03-16 08:17:57 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:18:01 +0100 | <sclv> | yes. Other than that it’s correct |
2021-03-16 08:18:13 +0100 | <gaff> | sclv: thnks |
2021-03-16 08:18:16 +0100 | <sclv> | They’re working in new docs, but have limited resources |
2021-03-16 08:18:19 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) |
2021-03-16 08:18:24 +0100 | <gaff> | i see |
2021-03-16 08:18:47 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:19:21 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) |
2021-03-16 08:19:45 +0100 | dni53363 | (~dni46445@static-198-54-131-174.cust.tzulo.com) (Max SendQ exceeded) |
2021-03-16 08:20:17 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-03-16 08:20:25 +0100 | <gaff> | juts want to confirm one more thing, since the docs are not updated. to fetch package html documentation through cabal, all i need is to set documentation: True in cabal config file (which is now in ~/.cabal folder)? |
2021-03-16 08:20:37 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-03-16 08:20:49 +0100 | joncol | (~jco@c188-150-101-195.bredband.comhem.se) |
2021-03-16 08:20:53 +0100 | hackage | hs-tags 0.1.5 - Create tag files (ctags and etags) for Haskell code. https://hackage.haskell.org/package/hs-tags-0.1.5 (AndreasAbel) |
2021-03-16 08:21:41 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-03-16 08:22:13 +0100 | <joncol> | I'm trying out Cabal a bit in combination with Nix, is there an equivalent of `stack test --file-watch` that can be used with Cabal? I.e. something that watches the files for changes and automatically reruns the tests when this happens? Or should I be looking into using something like GHCID for this? |
2021-03-16 08:23:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 08:24:13 +0100 | gaff | (~user@49.207.217.94) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-03-16 08:24:53 +0100 | graf_blutwurst | (~user@2001:171b:226e:adc0:7d06:8763:7b6a:1565) |
2021-03-16 08:25:26 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-03-16 08:25:52 +0100 | waleee-cl | (uid373333@gateway/web/irccloud.com/x-nlbmdcqymwlgkesq) (Quit: Connection closed for inactivity) |
2021-03-16 08:26:34 +0100 | benkolera | (uid285671@gateway/web/irccloud.com/x-egzbqtucjdifvolv) |
2021-03-16 08:26:41 +0100 | zanc | (~user@103.154.230.130) |
2021-03-16 08:26:52 +0100 | zanc | (~user@103.154.230.130) (Client Quit) |
2021-03-16 08:30:20 +0100 | forgottenone | (~forgotten@176.42.16.24) (Quit: Konversation terminated!) |
2021-03-16 08:30:35 +0100 | <olligobber> | ok, so Cont r a is roughly equal to (a -> r) -> r |
2021-03-16 08:31:25 +0100 | <olligobber> | that means callCC :: ((a -> Cont r b) -> Cont r a) -> Cont r a |
2021-03-16 08:31:27 +0100 | aforemny_ | aforemny |
2021-03-16 08:31:44 +0100 | <charukiewicz> | joncol: Yes I'd recommend using ghcid. You can use it to invoke tests in a variety of ways. I have an example in the Makefile of a library I published: https://github.com/charukiewicz/hs-isbn/blob/master/Makefile#L10-L14 |
2021-03-16 08:32:24 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-03-16 08:32:25 +0100 | <olligobber> | is similar to ((a -> (b -> r) -> r) -> (a -> r) -> r) -> (a -> r) -> r |
2021-03-16 08:32:36 +0100 | <olligobber> | wat |
2021-03-16 08:32:38 +0100 | <charukiewicz> | joncol: If you don't want to use ghcid, you can probably also do it with the find and entr utilities, e.g. something like: find . -name *.hs | entr -s 'cabal test .....' |
2021-03-16 08:32:42 +0100 | <[exa]> | olligobber: btw lambdabot can do something like @unmtl, you might want to play with that in the /query |
2021-03-16 08:32:54 +0100 | forgottenone | (~forgotten@176.42.16.24) |
2021-03-16 08:35:09 +0100 | <dminuoso> | olligobber: Think of callCC as `catch` or perhaps `setjmp` |
2021-03-16 08:35:25 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 08:35:35 +0100 | <olligobber> | dminuoso, `setjmp = callCC (\c -> return (fix c))' |
2021-03-16 08:35:37 +0100 | <olligobber> | -_- |
2021-03-16 08:35:48 +0100 | <dminuoso> | heh |
2021-03-16 08:35:57 +0100 | cods_ | cods |
2021-03-16 08:35:57 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-03-16 08:36:02 +0100 | cods | (~fred@82-65-232-44.subs.proxad.net) (Changing host) |
2021-03-16 08:36:02 +0100 | cods | (~fred@unaffiliated/cods) |
2021-03-16 08:36:12 +0100 | <dminuoso> | Ah, I see there was some conversation before |
2021-03-16 08:36:32 +0100 | <olligobber> | yeah, then I went for a walk to figure out why Cont r is even Applicative |
2021-03-16 08:36:38 +0100 | ezrakilty | (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection) |
2021-03-16 08:38:08 +0100 | <dminuoso> | Back to figuring out why aesons rejectUnknownFields refuses to work right :( |
2021-03-16 08:38:41 +0100 | <koz_> | olligobber: Yeah, Cont's instances involve some elaborate mind twisting. |
2021-03-16 08:40:14 +0100 | <koz_> | Even the Functor instance is somewhat involved. |
2021-03-16 08:41:26 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-03-16 08:41:47 +0100 | bitmagie | (~Thunderbi@200116b806998b0058b04fa04645b802.dip.versatel-1u1.de) |
2021-03-16 08:41:53 +0100 | <olligobber> | for some reason even the definition of pure took me a bit |
2021-03-16 08:43:15 +0100 | <koz_> | Yeah, Cont is a pretty slippery one. |
2021-03-16 08:43:27 +0100 | <koz_> | It's super-duper general, and can be used to do... well, basically anything. |
2021-03-16 08:44:02 +0100 | Kmos | (~Kmos@217.146.82.202) |
2021-03-16 08:48:23 +0100 | <olligobber> | :t \f c -> f (\x _ -> c x) c |
2021-03-16 08:48:25 +0100 | <lambdabot> | ((t1 -> p -> t2) -> (t1 -> t2) -> t3) -> (t1 -> t2) -> t3 |
2021-03-16 08:49:10 +0100 | <olligobber> | ok that looks like roughly the right type... |
2021-03-16 08:49:38 +0100 | average | (uid473595@gateway/web/irccloud.com/x-gpzntdlygmwptuws) (Quit: Connection closed for inactivity) |
2021-03-16 08:50:25 +0100 | <dminuoso> | koz_: It cant do IO, though. So the people who claim Cont is the mother of all monads are wrong. :p |
2021-03-16 08:50:39 +0100 | <koz_> | Yeah, lol. |
2021-03-16 08:50:45 +0100 | <olligobber> | dminuoso, so ContT IO is the mother of all monads? :P |
2021-03-16 08:51:01 +0100 | <dminuoso> | Mmm, what about STM? |
2021-03-16 08:51:06 +0100 | <koz_> | @unmtl ContT r IO |
2021-03-16 08:51:07 +0100 | <lambdabot> | err: `ContT r IO' is not applied to enough arguments, giving `/\A. (A -> IO r) -> IO r' |
2021-03-16 08:51:10 +0100 | <koz_> | @unmtl ContT r IO a |
2021-03-16 08:51:10 +0100 | <lambdabot> | (a -> IO r) -> IO r |
2021-03-16 08:52:04 +0100 | Lycurgus | (~niemand@98.4.116.165) (Quit: Exeunt) |
2021-03-16 08:56:06 +0100 | <olligobber> | guest316, Cont is messing with my head, sorry I can't help more rn |
2021-03-16 08:57:04 +0100 | <koz_> | Cont messes with your head, confirmed. |
2021-03-16 08:57:40 +0100 | <olligobber> | I got as far as "callCC is similar to \f c -> f (\x _ -> c x) c" |
2021-03-16 08:57:42 +0100 | Geekingfrog_ | Geekingfrog |
2021-03-16 08:57:55 +0100 | <olligobber> | but the implications of that are too much |
2021-03-16 08:57:58 +0100 | average | (uid473595@gateway/web/irccloud.com/x-ywsfnraofofbenfj) |
2021-03-16 08:57:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-03-16 08:58:14 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-03-16 08:58:37 +0100 | <dminuoso> | callCC f = ContT $ \ c -> runContT (f (\ x -> ContT $ \ _ -> c x)) c |
2021-03-16 08:58:56 +0100 | <olligobber> | yeah, I got rid of the ContT and runContT to get that |
2021-03-16 08:59:15 +0100 | <dminuoso> | olligobber: Im not sure getting rid of them is a useful thing to do, since that hides how <*> or =<< interact with that |
2021-03-16 08:59:36 +0100 | <olligobber> | I'm just trying to figure out how callCC works |
2021-03-16 08:59:45 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 08:59:50 +0100 | <dminuoso> | olligobber: Do you understand how to use it? |
2021-03-16 08:59:54 +0100 | <olligobber> | nope |
2021-03-16 08:59:58 +0100 | <dminuoso> | Start with that, maybe. |
2021-03-16 09:00:00 +0100 | <olligobber> | some day I will |
2021-03-16 09:00:02 +0100 | <olligobber> | but not today |
2021-03-16 09:00:07 +0100 | <dminuoso> | It's rather easy to use, really |
2021-03-16 09:00:29 +0100 | <olligobber> | *grits teeth* not ... today ... |
2021-03-16 09:00:34 +0100 | <olligobber> | :P |
2021-03-16 09:00:45 +0100 | <dminuoso> | Im just saying: If you wnat to understand how it works, its probably easier to understand how to use it first. |
2021-03-16 09:00:46 +0100 | <koz_> | "What do we say to ContT?" |
2021-03-16 09:00:51 +0100 | <koz_> | "Not today." |
2021-03-16 09:00:52 +0100 | <dminuoso> | Since that will give you an intution |
2021-03-16 09:00:57 +0100 | <olligobber> | probably |
2021-03-16 09:00:58 +0100 | <olligobber> | but |
2021-03-16 09:01:00 +0100 | <olligobber> | im pooped |
2021-03-16 09:01:13 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) |
2021-03-16 09:01:24 +0100 | <dminuoso> | The probably confusing thing is, this is not just Cont, but *explicit* continuating passing style ontop too. |
2021-03-16 09:01:29 +0100 | <dminuoso> | % :t callCC |
2021-03-16 09:01:29 +0100 | <yahb> | dminuoso: MonadCont m => ((a -> m b) -> m a) -> m a |
2021-03-16 09:03:08 +0100 | <dminuoso> | If you imagine how to call it, it needs one argument - a function. So you write `callCC $ \f -> ...` inside the body of that function you have your regular Cont. The callCC acts as a "catch" block, and you can call "f" at any time to "throw" to it. |
2021-03-16 09:03:10 +0100 | <dminuoso> | Done |
2021-03-16 09:03:35 +0100 | <dminuoso> | One could think of `catch` in IO as having the type": |
2021-03-16 09:03:59 +0100 | <dminuoso> | catch :: ((a -> IO b) -> IO a) -> IO a |
2021-03-16 09:04:09 +0100 | <dminuoso> | And suddenly it's the equivalent here |
2021-03-16 09:04:14 +0100 | <dminuoso> | The type looks the same too |
2021-03-16 09:04:50 +0100 | <dminuoso> | (this requires a bit of pretense, in reality catch cant work like that) |
2021-03-16 09:05:02 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2021-03-16 09:05:16 +0100 | <dminuoso> | or at least the type would be misleading, since if you used the provided "throw" function, there's no guarantee the `catch` will actually receive it. with callCC you have that guarantee |
2021-03-16 09:07:45 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-03-16 09:08:11 +0100 | <olligobber> | I guess IO isn't MonadCont |
2021-03-16 09:08:48 +0100 | <dminuoso> | Yeah. |
2021-03-16 09:08:52 +0100 | <olligobber> | also, no one has fixed the bug I found |
2021-03-16 09:12:00 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 246 seconds) |
2021-03-16 09:12:31 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:17e3:41cc:739d:497d) |
2021-03-16 09:13:18 +0100 | xiinotulp | (~q@ppp-27-55-80-13.revip3.asianet.co.th) |
2021-03-16 09:13:24 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-03-16 09:16:00 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection) |
2021-03-16 09:16:32 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) (Quit: leaving) |
2021-03-16 09:16:42 +0100 | plutoniix | (~q@ppp-223-24-63-1.revip6.asianet.co.th) (Ping timeout: 260 seconds) |
2021-03-16 09:17:20 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-03-16 09:18:16 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) |
2021-03-16 09:19:51 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 09:19:58 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-03-16 09:20:05 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:4aab:53fc:fe7e:1057) (Ping timeout: 265 seconds) |
2021-03-16 09:21:15 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 09:21:23 +0100 | hackage | Z-Data 0.7.1.0 - Array, vector and text https://hackage.haskell.org/package/Z-Data-0.7.1.0 (winterland) |
2021-03-16 09:22:08 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-03-16 09:22:19 +0100 | asheshambasta | (~user@ptr-e1lysavz4fnu38pr3di.18120a2.ip6.access.telenet.be) |
2021-03-16 09:22:52 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-03-16 09:22:52 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-03-16 09:22:52 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-03-16 09:24:43 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2021-03-16 09:25:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-03-16 09:26:28 +0100 | debugloo1 | debugloop |
2021-03-16 09:26:30 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 260 seconds) |
2021-03-16 09:27:20 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-hmvjhlnbprzcamlb) |
2021-03-16 09:27:20 +0100 | idhugo__ | (~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) |
2021-03-16 09:27:51 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:cd42:97fd:be98:3cd9) |
2021-03-16 09:29:30 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds) |
2021-03-16 09:30:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 09:31:57 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
2021-03-16 09:32:02 +0100 | Sorna | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
2021-03-16 09:32:15 +0100 | Sornaensis | (~Sornaensi@077213203030.dynamic.telenor.dk) (Disconnected by services) |
2021-03-16 09:32:19 +0100 | Sorna | Sornaensis |
2021-03-16 09:32:24 +0100 | plutonux | (~q@ppp-223-24-184-182.revip6.asianet.co.th) |
2021-03-16 09:34:46 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) |
2021-03-16 09:35:13 +0100 | xiinotulp | (~q@ppp-27-55-80-13.revip3.asianet.co.th) (Ping timeout: 260 seconds) |
2021-03-16 09:35:51 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-03-16 09:36:04 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-kiyfxvthgbbyzfbg) |
2021-03-16 09:38:52 +0100 | kuribas | (~user@ptr-25vy0iaa19zfetqtyes.18120a2.ip6.access.telenet.be) |
2021-03-16 09:41:58 +0100 | coot_ | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 09:43:23 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 245 seconds) |
2021-03-16 09:43:24 +0100 | coot_ | coot |
2021-03-16 09:44:51 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-03-16 09:46:17 +0100 | int-e_ | int-e |
2021-03-16 09:47:44 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2021-03-16 09:50:37 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 09:52:31 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection) |
2021-03-16 09:54:06 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Quit: Leaving) |
2021-03-16 09:55:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-03-16 09:56:19 +0100 | acidjnk_new | (~acidjnk@p200300d0c72b954785b86a8446f85480.dip0.t-ipconnect.de) |
2021-03-16 09:58:14 +0100 | neiluj_ | (~jco@91-167-203-101.subs.proxad.net) |
2021-03-16 10:01:02 +0100 | bahamas | (~lucian@188.27.48.99) |
2021-03-16 10:01:02 +0100 | bahamas | (~lucian@188.27.48.99) (Changing host) |
2021-03-16 10:01:02 +0100 | bahamas | (~lucian@unaffiliated/bahamas) |
2021-03-16 10:01:21 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 10:01:33 +0100 | <bahamas> | what's the difference between unit and void? |
2021-03-16 10:02:46 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection) |
2021-03-16 10:03:04 +0100 | <int-e> | bahamas: unit has a (non-bottom) value, void has none. |
2021-03-16 10:03:07 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 10:03:13 +0100 | <Taneb> | bahamas: there are zero values of type Void, but one value of type Unit (= ()) |
2021-03-16 10:03:40 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Client Quit) |
2021-03-16 10:04:00 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 10:04:08 +0100 | <int-e> | you can think of it as data () = () {-invalid syntax, but note that there is a constructor-}; data Void {-note lack of constructors-} |
2021-03-16 10:05:06 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-03-16 10:05:21 +0100 | <bahamas> | ah, I see. so with Void you just reference the type, while with unit you can also reference the value |
2021-03-16 10:05:31 +0100 | <int-e> | It's kind of odd that people find uses for Void... but they do :) |
2021-03-16 10:05:48 +0100 | remal | (~remal@d24-57-234-201.home.cgocable.net) (Ping timeout: 265 seconds) |
2021-03-16 10:05:52 +0100 | icebreaker | (michalc@unaffiliated/icebreaker) (Quit: leaving) |
2021-03-16 10:06:54 +0100 | <bahamas> | I'm still wrapping my head around the concept of types without values |
2021-03-16 10:09:46 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) |
2021-03-16 10:10:35 +0100 | fendor | (~fendor@178.165.129.131.wireless.dyn.drei.com) |
2021-03-16 10:11:23 +0100 | <dminuoso> | Well, Void has bottom as an element. |
2021-03-16 10:11:23 +0100 | hackage | Z-IO 0.7.1.0 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.7.1.0 (winterland) |
2021-03-16 10:11:33 +0100 | <dminuoso> | And that's sort of the point of it, in Haskell |
2021-03-16 10:12:47 +0100 | <dminuoso> | Void can more clearly communicate that no value exists (for whatever). Consider |
2021-03-16 10:12:49 +0100 | <dminuoso> | % :t forever |
2021-03-16 10:12:49 +0100 | <yahb> | dminuoso: Applicative f => f a -> f b |
2021-03-16 10:12:55 +0100 | <dminuoso> | We could also write it to have the type |
2021-03-16 10:12:57 +0100 | <guest316> | dminuoso: why call fixed-point inside Cont, would create a loop? |
2021-03-16 10:13:00 +0100 | <dminuoso> | forever :: Applicative f => f a -> f Void |
2021-03-16 10:13:05 +0100 | <guest316> | dminuoso: that Setjmp |
2021-03-16 10:13:25 +0100 | <guest316> | from https://www.vex.net/~trebla/haskell/cont-monad.xhtml |
2021-03-16 10:13:27 +0100 | ADG1089__ | (~aditya@106.214.253.186) |
2021-03-16 10:13:32 +0100 | <guest316> | setjmp = callCC (\c -> return (fix c)) |
2021-03-16 10:13:45 +0100 | <bahamas> | dminuoso: the fact that you mentioned that reminded me of the context in which Void is used: when a branch of execution should never be reached |
2021-03-16 10:13:50 +0100 | <guest316> | setjmp is Cont action, which wrapped c's fixed-point |
2021-03-16 10:14:07 +0100 | <bahamas> | if it is, there should be an error. the fact that Void is populated by bottom does that |
2021-03-16 10:14:21 +0100 | <guest316> | do { l <- setjmp ; modify (+ 1) ; s <- get ; if s == 5 then return s else l } this l is c, right? |
2021-03-16 10:14:22 +0100 | <int-e> | dminuoso: hmm, what do you think of... absurd :: Void -> a; absurd = unsafeCoerce |
2021-03-16 10:14:26 +0100 | <guest316> | c's fixed-point |
2021-03-16 10:14:30 +0100 | int-e | runs |
2021-03-16 10:14:40 +0100 | <guest316> | why call c's fixed-point would jump back? |
2021-03-16 10:15:06 +0100 | <merijn> | bahamas: Another use is that I had "data AST a" where 'a' was the type of unbound variables, so "AST Void" proved all variables were resolved |
2021-03-16 10:15:37 +0100 | <guest316> | I think that setjmp = cont $ \k -> k (fix c) |
2021-03-16 10:16:05 +0100 | <guest316> | that l = fix c, right? |
2021-03-16 10:16:27 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 10:16:29 +0100 | icebreaker | (michalc@unaffiliated/icebreaker) |
2021-03-16 10:17:59 +0100 | tafa | (~tafa@vps-83a5c612.vps.ovh.net) (Quit: ZNC - https://znc.in) |
2021-03-16 10:19:03 +0100 | <bahamas> | merijn: I feel like saying that Void represents 0 at the type level. I don't know if that's right though |
2021-03-16 10:19:04 +0100 | <dminuoso> | 10:13:50 guest316 | setjmp is Cont action, which wrapped c's fixed-point |
2021-03-16 10:19:07 +0100 | <dminuoso> | You are missing the callCC there. |
2021-03-16 10:19:22 +0100 | <dminuoso> | The setjmp magic is encapsulated by callCC. |
2021-03-16 10:20:46 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 10:21:08 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 10:21:17 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 260 seconds) |
2021-03-16 10:23:57 +0100 | esp32_prog | (~esp32_pro@185.254.75.51) |
2021-03-16 10:29:29 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 268 seconds) |
2021-03-16 10:30:31 +0100 | asheshambasta | (~user@ptr-e1lysavz4fnu38pr3di.18120a2.ip6.access.telenet.be) ("ERC (IRC client for Emacs 28.0.50)") |
2021-03-16 10:32:05 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) (Quit: Leaving) |
2021-03-16 10:35:12 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2021-03-16 10:36:08 +0100 | Paks | (~paks@c-69-136-183-189.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-03-16 10:37:35 +0100 | Paks | (~paks@c-69-136-183-189.hsd1.il.comcast.net) |
2021-03-16 10:42:36 +0100 | plutonux | (~q@ppp-223-24-184-182.revip6.asianet.co.th) (Read error: Connection reset by peer) |
2021-03-16 10:42:47 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 10:42:55 +0100 | dftxbs3e | (~dftxbs3e@unaffiliated/dftxbs3e) |
2021-03-16 10:43:12 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 10:46:33 +0100 | <joncol> | charukiewicz: Thanks! |
2021-03-16 10:47:21 +0100 | <guest316> | dminuoso: but callCC x :: Cont r a |
2021-03-16 10:47:35 +0100 | <guest316> | dminuoso: right? |
2021-03-16 10:47:40 +0100 | <guest316> | :t callCC |
2021-03-16 10:47:41 +0100 | <lambdabot> | MonadCont m => ((a -> m b) -> m a) -> m a |
2021-03-16 10:48:18 +0100 | <dminuoso> | guest316: Try to go back one excercise. |
2021-03-16 10:48:46 +0100 | <dminuoso> | Conceptually callCC already is a "setjmp", and it provides "longjmp" as an argument to its function. |
2021-03-16 10:49:41 +0100 | <dminuoso> | Except it's a scoped setjmp, with the trick in the excercise you are looking at, you're leaking the jump target to outside callCC. |
2021-03-16 10:52:00 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-03-16 10:53:41 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 10:54:11 +0100 | <guest316> | dminuoso: I don't get it, "leaking the jump target to outside callCC." |
2021-03-16 10:54:45 +0100 | <guest316> | dminuoso: so the jump back trick isn't related to fixed-point, but related to callCC? |
2021-03-16 10:55:11 +0100 | sz0 | (uid110435@gateway/web/irccloud.com/x-tawqhplyvvjuqusl) (Quit: Connection closed for inactivity) |
2021-03-16 10:56:13 +0100 | <dminuoso> | Yes. |
2021-03-16 10:56:16 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-03-16 10:56:28 +0100 | <dminuoso> | Not just related, that's the entire point of callCC |
2021-03-16 10:56:42 +0100 | <dminuoso> | Think of `callCC` as setting up a catch frame, and providing you with a jump |
2021-03-16 10:56:50 +0100 | <dminuoso> | callCC $ \jumpBack -> ... |
2021-03-16 10:57:31 +0100 | kuribas | (~user@ptr-25vy0iaa19zfetqtyes.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer) |
2021-03-16 10:58:48 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 256 seconds) |
2021-03-16 10:58:54 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2021-03-16 10:59:02 +0100 | shad0w_ | (67573b43@103.87.59.67) (Quit: Connection closed) |
2021-03-16 10:59:04 +0100 | <guest316> | dminuoso: without fixed-point, could callCC jump inside Cont do-notation? |
2021-03-16 10:59:11 +0100 | <dminuoso> | yes |
2021-03-16 10:59:18 +0100 | <guest316> | dminuoso: example code? |
2021-03-16 10:59:23 +0100 | ADG1089__ | (~aditya@106.214.253.186) (Remote host closed the connection) |
2021-03-16 10:59:27 +0100 | <dminuoso> | e.g.: g = callCC $ \throw -> do { n <- getSomeNumber; when (n > 10) (throw 100); m <- getAnotherNumber; pure (n + m) } |
2021-03-16 11:00:23 +0100 | <dminuoso> | Here `throw` can shortcircuit the rest of the inner block. It essentially jumps to the outer callCC back, and resumes with the provided answer. |
2021-03-16 11:00:45 +0100 | <guest316> | dminuoso: could we change `when' to if-then-else? |
2021-03-16 11:00:49 +0100 | <dminuoso> | Sure |
2021-03-16 11:00:58 +0100 | <dminuoso> | Note this "throw" handle is what callCC provides you with. |
2021-03-16 11:01:06 +0100 | <guest316> | I'm not familiar with `when` or `until' |
2021-03-16 11:01:10 +0100 | <dminuoso> | Inside callCC, you can use it at any time to just abort the rest |
2021-03-16 11:01:36 +0100 | <dminuoso> | guest316: Are you familiar with regular exceptions in say IO? |
2021-03-16 11:01:43 +0100 | <guest316> | dminuoso: yes |
2021-03-16 11:01:52 +0100 | <dminuoso> | Imagine catch had the following type signature |
2021-03-16 11:01:57 +0100 | <dminuoso> | catch :: ((a -> IO b) -> IO a) -> IO a |
2021-03-16 11:03:10 +0100 | <dminuoso> | Then you could do something like: `catch $ \abort -> do { n <- getFromDatabase; when (badUser n) (abort Nothing); someMoreCode }` |
2021-03-16 11:03:43 +0100 | <dminuoso> | (Note, this primitive wouldnt behave very well in certain situations, but lets glance over that) |
2021-03-16 11:04:00 +0100 | <dminuoso> | Here, abort would just shortcircuit someMoreCode, and instantly provide an answer |
2021-03-16 11:04:10 +0100 | Wafelack | (~Wafelack@2a01:cb16:6:9385:66f3:f20f:c394:340b) |
2021-03-16 11:04:14 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:1175:1d12:3f7a:f4b9) (Ping timeout: 264 seconds) |
2021-03-16 11:04:25 +0100 | <dminuoso> | Perhaps say via an exception that `catch` instantly catches, and reinserts as a value |
2021-03-16 11:04:26 +0100 | Wafelack | (~Wafelack@2a01:cb16:6:9385:66f3:f20f:c394:340b) (Client Quit) |
2021-03-16 11:04:34 +0100 | <dminuoso> | And that's exactly what callCC does |
2021-03-16 11:04:57 +0100 | <guest316> | dminuoso: wait a sec, g :: Cont r a? |
2021-03-16 11:05:08 +0100 | <dminuoso> | What is g? |
2021-03-16 11:05:21 +0100 | <guest316> | <dminuoso> e.g.: g = callCC $ \throw -> do { n <- getSomeNumber; when (n > 10) (throw 100); m <- getAnotherNumber; pure (n + m) } |
2021-03-16 11:05:25 +0100 | <dminuoso> | Perhaps, you could think of `callCC` as giving you a proper "return" from imperative languages. |
2021-03-16 11:05:40 +0100 | <dminuoso> | guest316: Ah, it would be `g :: Cont r Int` perhaps |
2021-03-16 11:06:04 +0100 | <guest316> | dminuoso: now I know inside callCC can do abort earlier |
2021-03-16 11:06:13 +0100 | <dminuoso> | But callCC doesnt just give you a `return`, but it gives you `return` as a first class value, that you can pass around.. |
2021-03-16 11:06:39 +0100 | <dminuoso> | (Note when I say `return`, I mean it in the sense of say C++ or Java) |
2021-03-16 11:07:01 +0100 | <guest316> | dminuoso: would callCC would care what g would take? |
2021-03-16 11:07:10 +0100 | <dminuoso> | "what g would take"? |
2021-03-16 11:07:32 +0100 | <guest316> | g :: Cont r a, so g would take a continuation to extract r |
2021-03-16 11:07:56 +0100 | <guest316> | g = cons $ \k -> k x |
2021-03-16 11:08:07 +0100 | <dminuoso> | Not extract, but produce |
2021-03-16 11:09:22 +0100 | <dminuoso> | The broad idea is, that rather than `I have an Int`, this says `If you give me a function that knows how to proceed from an Int, I will provide you with an Int` |
2021-03-16 11:09:36 +0100 | <dminuoso> | Turning `Int` into `(Int -> a) -> a` |
2021-03-16 11:09:49 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:1175:1d12:3f7a:f4b9) |
2021-03-16 11:11:00 +0100 | Alleria__ | (~textual@2603-7000-3040-0000-3133-bb30-065f-83b3.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-03-16 11:11:35 +0100 | <guest316> | dminuoso: so what g take would do something to callCC? |
2021-03-16 11:12:04 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) (Ping timeout: 276 seconds) |
2021-03-16 11:12:23 +0100 | <guest316> | g :: (a->r) -> r, would take (a->r) |
2021-03-16 11:12:40 +0100 | <dminuoso> | I dont understand the question |
2021-03-16 11:13:09 +0100 | <guest316> | g = callCC ... :: Cont r a, right? |
2021-03-16 11:13:12 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 11:13:25 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-03-16 11:13:40 +0100 | <guest316> | and g would take x:: (a->r) , so g x :: r, right? |
2021-03-16 11:14:14 +0100 | loller_ | (uid358106@gateway/web/irccloud.com/x-cnpraiotvintahet) (Quit: Connection closed for inactivity) |
2021-03-16 11:14:21 +0100 | <dminuoso> | Lets pick my previous example |
2021-03-16 11:14:32 +0100 | <dminuoso> | g :: Cont r Int; g = callCC $ \throw -> do { n <- getSomeNumber; when (n > 10) (throw 100); m <- getAnotherNumber; pure (n + m) } |
2021-03-16 11:14:35 +0100 | <guest316> | so g x :: r, would be (callCC \abort -> ...) x |
2021-03-16 11:14:40 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-03-16 11:14:52 +0100 | <dminuoso> | g does not take anything, as its not a function |
2021-03-16 11:15:10 +0100 | <dminuoso> | (well, strictly speaking intensionally it contains a function, but that's not as important here) |
2021-03-16 11:16:14 +0100 | <guest316> | dminuoso: (runCont g) x |
2021-03-16 11:16:57 +0100 | <guest316> | dminuoso: data types or functions just wrap and unwrap |
2021-03-16 11:17:07 +0100 | <dminuoso> | Yes, but lets not gloss over having to unrap them first. |
2021-03-16 11:17:29 +0100 | <dminuoso> | It makes a huge difference whether you write `(runCont g) x` or `(g x` |
2021-03-16 11:17:47 +0100 | <dminuoso> | Or rather `runCont g x` or `g x` |
2021-03-16 11:17:58 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 245 seconds) |
2021-03-16 11:18:04 +0100 | <dminuoso> | In my example, the type of `g` is `Cont r Int`, though |
2021-03-16 11:18:22 +0100 | <dminuoso> | So that's isomorphic to `(Int -> r) -> r` |
2021-03-16 11:18:30 +0100 | <dminuoso> | that is, `runCont g :: (Int -> r) -> r` |
2021-03-16 11:18:44 +0100 | son0p | (~son0p@181.58.39.182) |
2021-03-16 11:19:20 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) |
2021-03-16 11:21:05 +0100 | <guest316> | dminuoso: right |
2021-03-16 11:21:38 +0100 | <guest316> | dminuoso: so runCont g $ x :: r, would callCC take x? |
2021-03-16 11:22:32 +0100 | <guest316> | runCont (callCC $ \throw -> ...) x |
2021-03-16 11:22:39 +0100 | Major_Biscuit | (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) |
2021-03-16 11:22:43 +0100 | <guest316> | would this x will be inside callCC? |
2021-03-16 11:27:38 +0100 | ymherklotz | (~ymherklot@2a0c:5bc0:40:107b:fdfc:4d2d:898a:f9f5) (Ping timeout: 264 seconds) |
2021-03-16 11:27:50 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-03-16 11:28:47 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Remote host closed the connection) |
2021-03-16 11:28:47 +0100 | neiluj_ | (~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection) |
2021-03-16 11:30:59 +0100 | <dminuoso> | No, of course not. |
2021-03-16 11:31:21 +0100 | <dminuoso> | Given `runCont expr g`, then `g` is the continuation for whatever expr produces. |
2021-03-16 11:37:19 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 268 seconds) |
2021-03-16 11:38:20 +0100 | kuribas | (~user@ptr-25vy0iaa19zfetqtyes.18120a2.ip6.access.telenet.be) |
2021-03-16 11:38:34 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-03-16 11:38:34 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-03-16 11:38:34 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-03-16 11:39:05 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-03-16 11:39:08 +0100 | dhil | (~dhil@80.208.56.181) |
2021-03-16 11:41:24 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 11:42:15 +0100 | kiweun | (~kiweun@2607:fea8:2a62:9600:f047:e119:fc45:ad77) |
2021-03-16 11:43:09 +0100 | kiweun | (~kiweun@2607:fea8:2a62:9600:f047:e119:fc45:ad77) (Client Quit) |
2021-03-16 11:46:10 +0100 | aforemny | aforemny_ |
2021-03-16 11:46:39 +0100 | aforemny_ | aforemny |
2021-03-16 11:48:02 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:1175:1d12:3f7a:f4b9) (Ping timeout: 264 seconds) |
2021-03-16 11:53:02 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-03-16 11:53:43 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-03-16 12:00:01 +0100 | Alleria | (~textual@69.202.254.168) |
2021-03-16 12:00:26 +0100 | Alleria | Guest22380 |
2021-03-16 12:03:51 +0100 | aarvar | (~foewfoiew@2607:fb90:f25:37c:1175:1d12:3f7a:f4b9) |
2021-03-16 12:04:32 +0100 | Guest22380 | (~textual@69.202.254.168) (Ping timeout: 256 seconds) |
2021-03-16 12:06:36 +0100 | CoconutCrab | (~Cua@unaffiliated/coconutcrab) |
2021-03-16 12:06:36 +0100 | curiousgay | finished reading "9.3 Using Monads" in Gentle Introduction to Haskell |
2021-03-16 12:06:49 +0100 | <curiousgay> | I guess I'll understand that only in practice |
2021-03-16 12:06:51 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-hmvjhlnbprzcamlb) (Quit: Connection closed for inactivity) |
2021-03-16 12:07:19 +0100 | <dminuoso> | Yes. |
2021-03-16 12:07:28 +0100 | <dminuoso> | To be fair, the gentle introduction is anything *but* gentle. :) |
2021-03-16 12:07:44 +0100 | <curiousgay> | Go - reflection is never clear; Haskell - monads are never clear :) |
2021-03-16 12:09:11 +0100 | <kuribas> | curiousgay: that's the worst introduction to monads ever |
2021-03-16 12:09:13 +0100 | Major_Biscuit | (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 245 seconds) |
2021-03-16 12:10:14 +0100 | aarvar | (~foewfoiew@2607:fb90:f25:37c:1175:1d12:3f7a:f4b9) (Ping timeout: 264 seconds) |
2021-03-16 12:11:17 +0100 | <kuribas> | I remember it starting with the monad laws. |
2021-03-16 12:11:24 +0100 | <curiousgay> | yes |
2021-03-16 12:11:32 +0100 | <kuribas> | that's like teaching aritmetic by starting with the associative and commutative laws. |
2021-03-16 12:11:45 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-03-16 12:12:14 +0100 | <curiousgay> | it took some time ti understand: xs >>= return . f = fmap f xs |
2021-03-16 12:12:22 +0100 | <curiousgay> | s/ti/to/ |
2021-03-16 12:12:22 +0100 | <kuribas> | "hello kids, so number form a group is a set equipped with a binary operation that combines any two elements to form a third element in such a way that three conditions called group axioms are satisfied, namely associativity, identity and invertibility. " |
2021-03-16 12:12:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-03-16 12:13:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 12:14:03 +0100 | <kuribas> | curiousgay: don't bother with the laws, try to get some intuition for do notation and the bind function first. |
2021-03-16 12:15:11 +0100 | <Logio> | they used to teach set theory as the first maths back in the day, had a professor who said it was the best thing that could've happened to him (and his colleague who added "and for no one else") |
2021-03-16 12:15:25 +0100 | <pjb> | kuribas: multiple groups, or other structures, and you can pile on new ones. |
2021-03-16 12:15:34 +0100 | <kuribas> | Logio: first math for kids, or for university students? |
2021-03-16 12:15:39 +0100 | <Logio> | kuribas: for kids |
2021-03-16 12:15:44 +0100 | curiousgay | (~gay@178.217.208.8) (Read error: Connection reset by peer) |
2021-03-16 12:15:55 +0100 | <olligobber> | set theory for kids? like how young? |
2021-03-16 12:16:10 +0100 | <kuribas> | we did learn set theory, but that's long after learning arithmetic. |
2021-03-16 12:16:39 +0100 | <Logio> | I'm not sure what grade it was back then, but between 8-11 year olds I'd wager |
2021-03-16 12:17:00 +0100 | <pjb> | kuribas: when you pile 2 groups, you get a field ;-) |
2021-03-16 12:17:01 +0100 | <kuribas> | Logio: but surely at that time they knew how to add numbers? |
2021-03-16 12:17:17 +0100 | <pjb> | olligobber: you can start very young. I did… |
2021-03-16 12:17:35 +0100 | <Logio> | kuribas: no, not necessarily |
2021-03-16 12:17:40 +0100 | <pjb> | But granted, perhaps not for everybody. |
2021-03-16 12:18:00 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 12:18:03 +0100 | <pjb> | and indeed, there are prerequisites. |
2021-03-16 12:18:11 +0100 | <Logio> | but you don't need arithmetic for building sets of (physical) things |
2021-03-16 12:18:24 +0100 | <Logio> | which I guess was partly the point |
2021-03-16 12:18:33 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 12:18:50 +0100 | <pjb> | Definitely. I started in kindergarden with blocks triangles, rectangles, squares, disks, in red, yellow and blue. We could do all kinds of sets and intersections and unions! |
2021-03-16 12:18:58 +0100 | <Logio> | someone said that they still teach it like that in Hungary |
2021-03-16 12:18:58 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 12:19:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-03-16 12:19:23 +0100 | <pjb> | Well, this is real school, vs. nursery… |
2021-03-16 12:19:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 12:19:51 +0100 | <pjb> | But again, you probably cannot do that with everybody, at least from the same age. |
2021-03-16 12:20:18 +0100 | <pjb> | This is the main problem with education, it is not discriminating and differentiating enough the pupils. |
2021-03-16 12:22:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 12:24:50 +0100 | caro | (~caro@212.83.144.58) |
2021-03-16 12:24:52 +0100 | jrqc | (~rofl@96.78.87.197) (Ping timeout: 276 seconds) |
2021-03-16 12:25:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-03-16 12:25:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 12:25:48 +0100 | aarvar | (~foewfoiew@2607:fb90:f33:157e:1175:1d12:3f7a:f4b9) |
2021-03-16 12:28:16 +0100 | jrqc | (~rofl@96.78.87.197) |
2021-03-16 12:28:40 +0100 | Alleria__ | (~textual@zrcout.mskcc.org) |
2021-03-16 12:28:59 +0100 | curiousgay | (~gay@178.217.208.8) |
2021-03-16 12:29:46 +0100 | hpc_ | hpc |
2021-03-16 12:29:50 +0100 | <kuribas> | pjb: not everyone is a genius like you |
2021-03-16 12:30:54 +0100 | <curiousgay> | kuribas: well, I'll need to think of useage of (>>=) outside of (>>) :) (someone playing with electricity in my town) |
2021-03-16 12:31:23 +0100 | bahamas | (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds) |
2021-03-16 12:31:46 +0100 | <kuribas> | curiousgay: I can recommen cis194: https://www.seas.upenn.edu/~cis194/fall16/ |
2021-03-16 12:36:06 +0100 | <curiousgay> | kuribas: ah, right, it binds to a variable, thanks |
2021-03-16 12:38:40 +0100 | geekosaur | (ac3a3b4d@172.58.59.77) |
2021-03-16 12:45:03 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) |
2021-03-16 12:46:03 +0100 | hvr_ | (~hvr@haskell/developer/hvr) (Remote host closed the connection) |
2021-03-16 12:46:44 +0100 | hvr | (~hvr@haskell/developer/hvr) |
2021-03-16 12:46:53 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) (Client Quit) |
2021-03-16 12:47:14 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) |
2021-03-16 12:47:20 +0100 | tougherLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) |
2021-03-16 12:48:11 +0100 | sm2n_ | sm2n |
2021-03-16 12:48:25 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) (Client Quit) |
2021-03-16 12:48:25 +0100 | tougherLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) (Client Quit) |
2021-03-16 12:48:45 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) |
2021-03-16 12:48:51 +0100 | toughLuck | (~Seo@84-112-54-174.cable.dynamic.surfer.at) (Client Quit) |
2021-03-16 12:49:17 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-03-16 12:49:28 +0100 | <pjb> | kuribas: I wasn't special, this was the program for all pupils in 1968-1974 in France… |
2021-03-16 12:49:54 +0100 | <pjb> | kuribas: so you can realize how low the education system has fallen since then! |
2021-03-16 12:50:17 +0100 | <pjb> | thanks for the cis194 link! |
2021-03-16 12:50:43 +0100 | nhs_ | (~nhs@70.113.67.118) |
2021-03-16 12:51:35 +0100 | bahamas | (~lucian@unaffiliated/bahamas) |
2021-03-16 12:51:36 +0100 | <dminuoso> | :t traverseA |
2021-03-16 12:51:38 +0100 | <lambdabot> | error: |
2021-03-16 12:51:38 +0100 | <lambdabot> | • Variable not in scope: traverseA |
2021-03-16 12:51:38 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2021-03-16 12:51:50 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-03-16 12:51:55 +0100 | <kuribas> | dminuoso: traverse? |
2021-03-16 12:51:59 +0100 | <kuribas> | :t traverse |
2021-03-16 12:52:00 +0100 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-03-16 12:52:07 +0100 | <Uniaika> | :t sequenceA |
2021-03-16 12:52:08 +0100 | <lambdabot> | (Traversable t, Applicative f) => t (f a) -> f (t a) |
2021-03-16 12:52:08 +0100 | idhugo__ | (~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds) |
2021-03-16 12:52:15 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2021-03-16 12:52:20 +0100 | <mouseghost> | pjb, "we dont need no category theory to buy apples at the store" |
2021-03-16 12:52:24 +0100 | <hpc> | pjb: sounds nice, i definitely would have liked to have built an intuition for fields in school |
2021-03-16 12:52:41 +0100 | cr4zsci | (b07a57f1@176.122.87.241) |
2021-03-16 12:53:02 +0100 | <kuribas> | pjb: teaching sets in a playful way is different from teaching arithmetic using abstract algebra... |
2021-03-16 12:53:10 +0100 | <cr4zsci> | good day |
2021-03-16 12:53:31 +0100 | nhs | (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 265 seconds) |
2021-03-16 12:53:32 +0100 | <pjb> | kuribas: of course, but it gives a good basis in kinder garden, to teach more abstract things later. |
2021-03-16 12:53:45 +0100 | <cr4zsci> | can I ask newbies here? |
2021-03-16 12:53:48 +0100 | Major_Biscuit | (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) |
2021-03-16 12:54:04 +0100 | <dminuoso> | Uniaika: ah yeah that |
2021-03-16 12:54:06 +0100 | <hpc> | @where asktoask |
2021-03-16 12:54:06 +0100 | <lambdabot> | I know nothing about asktoask. |
2021-03-16 12:54:09 +0100 | <hpc> | blah |
2021-03-16 12:54:09 +0100 | <dminuoso> | Uniaika: Im just annoyed that |
2021-03-16 12:54:11 +0100 | <dminuoso> | % :t sequenceA |
2021-03-16 12:54:11 +0100 | <yahb> | dminuoso: (Traversable t, Applicative f) => t (f a) -> f (t a) |
2021-03-16 12:54:13 +0100 | psygate | (~psygate@unaffiliated/psygate) |
2021-03-16 12:54:14 +0100 | <hpc> | cr4zsci: don't ask to ask, just ask ;) |
2021-03-16 12:54:16 +0100 | <dminuoso> | % :t replicateM |
2021-03-16 12:54:16 +0100 | <yahb> | dminuoso: Applicative m => Int -> m a -> m [a] |
2021-03-16 12:54:21 +0100 | <dminuoso> | This is so inconsistent. |
2021-03-16 12:55:03 +0100 | <pjb> | kuribas: the main complain of pupils and students, is to understand how abstrations are useful and can be applied to real situations. This is why it's important to teach concrete things first ("bathtub problems", but it can also be concrete programming problems ;-) ), and then later teach the theory. |
2021-03-16 12:55:25 +0100 | <kuribas> | pjb: exactly my point :) |
2021-03-16 12:57:41 +0100 | <hpc> | i see it the other way, earlier math classes are so specific/concrete for so long that you don't even realize what math is until you're in college |
2021-03-16 12:57:45 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-03-16 12:57:46 +0100 | toorevitimirp | (~tooreviti@117.182.182.40) (Remote host closed the connection) |
2021-03-16 12:59:31 +0100 | psygate | (~psygate@unaffiliated/psygate) (Quit: Leaving) |
2021-03-16 12:59:55 +0100 | psygate | (~psygate@unaffiliated/psygate) |
2021-03-16 13:00:13 +0100 | <kuribas> | hpc: you don't need to exclude abstract stuff, just teach it after the specifics are known. |
2021-03-16 13:00:48 +0100 | <merijn> | kuribas: I'm reminded of the usual "teaching math" quote I bust out wrt Haskell |
2021-03-16 13:00:49 +0100 | <cr4zsci> | f :: (Ord a, Num b) => a -> b -> a f 1 2 :: (Ord a, Num a) => a How does the compiler determine that a must be a type that implements both Ord and Num? |
2021-03-16 13:01:22 +0100 | <hpc> | i would like to have at least seen it interleaved |
2021-03-16 13:01:32 +0100 | <merijn> | "Suppose that you want to teach the 'cat' concept to a very young child. Do you explain that a cat is a relatively small, primarily carnivorous mammal with retractible claws, a distinctive sonic output, etc.? I'll bet not. You probably show the kid a lot of different cats, saying 'kitty' each time, until it gets the idea. To put it more generally, generalizations are best made by abstraction from |
2021-03-16 13:01:38 +0100 | <cr4zsci> | * :t f 1 2 :: (Ord a, Num a) => a |
2021-03-16 13:01:38 +0100 | <merijn> | experience." |
2021-03-16 13:01:41 +0100 | <merijn> | - R. P. Boas (Can we make mathematics intelligible?, American Mathematical Monthly 88 (1981), pp. 727-731) |
2021-03-16 13:01:49 +0100 | <hpc> | i had to explain to a coworker that "you know math, you just don't realize it" |
2021-03-16 13:02:11 +0100 | <hpc> | he didn't realize that real algebra and boolean algebra are the same thing |
2021-03-16 13:02:42 +0100 | <merijn> | cr4zsci: That depends on what 'f' is |
2021-03-16 13:03:23 +0100 | hackage | dyre 0.9.1 - Dynamic reconfiguration in Haskell https://hackage.haskell.org/package/dyre-0.9.1 (frasertweedale) |
2021-03-16 13:03:31 +0100 | cur8or | (~cur8or@72canterbury.cybersmart.co.za) |
2021-03-16 13:03:32 +0100 | <merijn> | cr4zsci: Ah, wait |
2021-03-16 13:03:44 +0100 | <kuribas> | cr4zsci: the type inference algorithm infers the constraints from the context. |
2021-03-16 13:03:51 +0100 | <merijn> | cr4zsci: Are you asking why 'a' has to be Ord and Num, despite the type of 'f' only requiring Ord? |
2021-03-16 13:04:14 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2021-03-16 13:04:28 +0100 | <cr4zsci> | Yes |
2021-03-16 13:04:36 +0100 | <merijn> | cr4zsci: That's fairly straightforward |
2021-03-16 13:04:36 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 13:04:37 +0100 | <merijn> | :t 1 |
2021-03-16 13:04:39 +0100 | <lambdabot> | Num p => p |
2021-03-16 13:04:55 +0100 | <merijn> | cr4zsci: Numeric literals are polymorphic (i.e. can be any type that is an instance of Num) |
2021-03-16 13:05:00 +0100 | <merijn> | > 1 :: Int |
2021-03-16 13:05:03 +0100 | <lambdabot> | 1 |
2021-03-16 13:05:03 +0100 | <merijn> | > 1 :: Double |
2021-03-16 13:05:06 +0100 | <lambdabot> | 1.0 |
2021-03-16 13:05:06 +0100 | <merijn> | > 1 :: Rational |
2021-03-16 13:05:09 +0100 | <lambdabot> | 1 % 1 |
2021-03-16 13:05:40 +0100 | <merijn> | cr4zsci: So the compiler knows: 1) first argument of 'f' must be an instance of Ord, and 2) 1 must be an instance of Num |
2021-03-16 13:06:15 +0100 | <merijn> | So, if 1 is the first argument to 'f', we can conclude that whatever 'a' is, it *must* be both an instance of Ord (because of 'f') and Num (because of 1) |
2021-03-16 13:07:30 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-03-16 13:07:52 +0100 | <merijn> | cr4zsci: if you do ":t f 'c' 2" you'd just get back Char (because 'c' is not polymorphic, but type Char) |
2021-03-16 13:08:02 +0100 | geekosaur | (ac3a3b4d@172.58.59.77) (Ping timeout: 240 seconds) |
2021-03-16 13:08:03 +0100 | <cr4zsci> | I understood! Many thanks |
2021-03-16 13:08:11 +0100 | <olligobber> | > 1 :: Sum Int |
2021-03-16 13:08:13 +0100 | <lambdabot> | Sum {getSum = 1} |
2021-03-16 13:11:16 +0100 | peanut_ | (~peanut@2a02:8388:a101:2600:2ba8:dc0d:2e25:a003) |
2021-03-16 13:12:18 +0100 | <curiousgay> | I wonder if it makes any sense if type classes were called type sets where in inheritance parents are subsets (as opposed to superclass) and children are supersets (as opposed to subclass) |
2021-03-16 13:12:51 +0100 | <olligobber> | isn't there already a thing called type sets |
2021-03-16 13:12:55 +0100 | <cr4zsci> | type is taken from parameter and most generic type from argument |
2021-03-16 13:12:59 +0100 | <olligobber> | like, sets of types |
2021-03-16 13:14:10 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 13:15:09 +0100 | <olligobber> | https://hackage.haskell.org/package/type-level-sets-0.8.9.0/docs/Data-Type-Set.html |
2021-03-16 13:15:41 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-03-16 13:15:50 +0100 | bitmagie | (~Thunderbi@200116b806998b0058b04fa04645b802.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-03-16 13:16:11 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-03-16 13:17:09 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-03-16 13:18:13 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-03-16 13:18:48 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 245 seconds) |
2021-03-16 13:18:59 +0100 | <curiousgay> | olligobber: that's a container called Set |
2021-03-16 13:19:16 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 13:19:28 +0100 | <merijn> | curiousgay: Set is a common name for what we in Haskell call "types" in type theory |
2021-03-16 13:19:42 +0100 | <merijn> | (or was Set for kinds? I forget) |
2021-03-16 13:19:55 +0100 | <merijn> | Anyway, Set is rather ambiguous |
2021-03-16 13:20:27 +0100 | <curiousgay> | merijn: so in type theory a type class can be considered a set class? |
2021-03-16 13:20:59 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) |
2021-03-16 13:21:24 +0100 | <merijn> | I don't think anyone would recognise/understand that term |
2021-03-16 13:21:38 +0100 | aarvar | (~foewfoiew@2607:fb90:f33:157e:1175:1d12:3f7a:f4b9) (Ping timeout: 264 seconds) |
2021-03-16 13:21:55 +0100 | <merijn> | So..."no"? |
2021-03-16 13:23:22 +0100 | <curiousgay> | hm, set is actually a mathetical term for types, where function takes a value in set A and produces a value in set B |
2021-03-16 13:24:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 13:24:25 +0100 | <hpc> | sort of |
2021-03-16 13:24:38 +0100 | <hpc> | something like natural numbers is a set, but then there's also power sets and other weird things |
2021-03-16 13:26:29 +0100 | codygman` | (~user@47.186.207.161) |
2021-03-16 13:26:35 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 13:26:51 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) |
2021-03-16 13:26:58 +0100 | <curiousgay> | I thought that "set" instead of "class" would sound more mathematical and less object-oriented |
2021-03-16 13:27:18 +0100 | <merijn> | What makes "class" object oriented? |
2021-03-16 13:27:52 +0100 | <merijn> | Besides bias from people who learned OO first |
2021-03-16 13:28:40 +0100 | Sorna | (~Sornaensi@077213203030.dynamic.telenor.dk) |
2021-03-16 13:28:46 +0100 | <merijn> | "class" as word describing "a collection of things matching some common characteristics" is hardly an OO invention |
2021-03-16 13:29:13 +0100 | <dminuoso> | curiousgay: Also, "instance" should have been "member" instead. ;) |
2021-03-16 13:29:24 +0100 | <dminuoso> | `member Functor [] where ...` |
2021-03-16 13:29:31 +0100 | <ocharles> | Is there anyway to force cabal to "keep going" when building a multi-component project? It's weird, if one component fails to build, that'll usually stop cabal, but restarting cabal will try at least one more thing. Constantly re-running cabal gets me to a fixed point where only one thing is failing, but it's annoying to keep having to up-enter |
2021-03-16 13:29:35 +0100 | <curiousgay> | merijn: but that's also a definition of set |
2021-03-16 13:29:39 +0100 | zar | (~zar@fw1.ciirc.cvut.cz) |
2021-03-16 13:29:45 +0100 | <merijn> | There's a reason why people use terms like "class" when describing, say, "a class of ships" |
2021-03-16 13:29:50 +0100 | <Logio> | class is also a mathematical term, when considering set-like things that cannot be sets |
2021-03-16 13:30:11 +0100 | Sorny | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
2021-03-16 13:30:11 +0100 | <dminuoso> | isnt `type` yet another synonym for `set` too? |
2021-03-16 13:30:25 +0100 | <curiousgay> | it is |
2021-03-16 13:30:34 +0100 | <Logio> | types have different axioms, going to fundamentals |
2021-03-16 13:31:04 +0100 | <Logio> | intuitively they are similar |
2021-03-16 13:31:22 +0100 | <Uniaika> | ocharles: not that I know of :/ But if it's not in the Cabal guide, could you please open a ticket asking to fix this? |
2021-03-16 13:31:24 +0100 | <Taneb> | dminuoso: you can do different things with types and sets! You can't take the intersection of two types, for example |
2021-03-16 13:31:28 +0100 | <Uniaika> | we ought to have more How-Tos |
2021-03-16 13:31:28 +0100 | <curiousgay> | dminuoso: when I was learning OO, "instance" was the variable holding a value of some type |
2021-03-16 13:31:38 +0100 | <merijn> | ocharles: afaik there isn't |
2021-03-16 13:31:44 +0100 | <dminuoso> | Taneb: Sure I can. It's by definition always Void! :P |
2021-03-16 13:31:49 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 276 seconds) |
2021-03-16 13:31:53 +0100 | <ocharles> | Uniaika: I don't think there's a how to if it can't be done :) I think I'll raise an issue. Might as well add to the pile of 1000 ;) |
2021-03-16 13:32:17 +0100 | <ocharles> | also, hi! |
2021-03-16 13:32:23 +0100 | <merijn> | ocharles: Per component builds aren't that well sorted out yet, tbh |
2021-03-16 13:32:40 +0100 | Sornaensis | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 265 seconds) |
2021-03-16 13:32:48 +0100 | <codygman`> | Merijn the 'query in progress issue' for postgres with persistent/Data.Pool was because of an imprecise exception we found out: https://github.com/yesodweb/persistent/issues/1199#issuecomment-799803365 |
2021-03-16 13:33:10 +0100 | <curiousgay> | Taneb: fair enough :) |
2021-03-16 13:33:16 +0100 | <Logio> | dminuoso: by what definition though? |
2021-03-16 13:33:46 +0100 | Sorna | (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 276 seconds) |
2021-03-16 13:34:14 +0100 | <dminuoso> | Logio: If I consider a type to be a collection of values, then they dont intersect since each value has a unique type. |
2021-03-16 13:34:15 +0100 | <merijn> | codygman`: Spidey sense...tingling |
2021-03-16 13:34:24 +0100 | <dminuoso> | Though, with polymorphic values, this gets more interesting I suppose. |
2021-03-16 13:34:36 +0100 | <dminuoso> | (Is a polymorphic value an intersection between types?) |
2021-03-16 13:35:08 +0100 | <Logio> | dminuoso: you haven't defined intersection, so you can't say that they do not intersect |
2021-03-16 13:35:12 +0100 | <dminuoso> | I suppose |
2021-03-16 13:35:42 +0100 | cr4zsci | (b07a57f1@176.122.87.241) (Quit: Connection closed) |
2021-03-16 13:35:48 +0100 | <curiousgay> | even if intersection between types was possible, it doesn't sound practical at all |
2021-03-16 13:35:49 +0100 | <dminuoso> | I was just implicitly burrowing the set theoretic notion of intersection. |
2021-03-16 13:36:04 +0100 | <Logio> | dminuoso: burrowing indeed :) |
2021-03-16 13:36:24 +0100 | <Logio> | burying definitions is what leads to ambiguity |
2021-03-16 13:36:24 +0100 | <curiousgay> | s/types/types or type classes/ |
2021-03-16 13:37:33 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds) |
2021-03-16 13:37:58 +0100 | <merijn> | codygman`: there's a whole bunch of unsafe foreign imports in in postgresql-libpq, now I'm wondering it that's messing with exceptions |
2021-03-16 13:38:04 +0100 | <lortabac> | I am pretty sure I have seen type systems in which intersection is possible |
2021-03-16 13:39:07 +0100 | <codygman`> | merijn: I was reading that section in Parallel and Concurrent programming and that made me think the same. It doesn't help that running PQ.finish, PQ.cancel, PQ.flush etc all seemingly have no effect when the connection is busy. |
2021-03-16 13:40:31 +0100 | <merijn> | codygman`: unsafe foreign imports make me worried, because I don't trust anyone to be sufficiently paranoid about them :p |
2021-03-16 13:40:45 +0100 | <codygman`> | I will remind you though that I wasn't able to reproduce the same issue with postgresql-simple and Data.Pool... but 1) I might have not made them perfectly equivalent and 2) unsafe foreign import could be it and could be some interaction that only happens between libpq and persistent for... reasons |
2021-03-16 13:41:29 +0100 | <lortabac> | if I remember correctly, there was a type system for Erlang where each type was a sum of possible constructors, so you could have for example the type true+false and the type true+false+maybe |
2021-03-16 13:41:30 +0100 | <merijn> | I mean, it could be a bug in postgresql-simple too :p |
2021-03-16 13:41:55 +0100 | <codygman`> | I also found a use of atomicModifyIORef that didn't have a seq soon after in persistent... but I think that would only affect performance? |
2021-03-16 13:42:49 +0100 | <merijn> | I mean, what if postgresql-simple assumes something is threadsafe, but it isn't? |
2021-03-16 13:43:08 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) |
2021-03-16 13:43:40 +0100 | <merijn> | codygman`: Or, what if postgres uses thread local storage, meaning operations on a connection should always be from the same thread or... |
2021-03-16 13:43:55 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-03-16 13:44:34 +0100 | mouseghost | (~draco@wikipedia/desperek) (Read error: Connection reset by peer) |
2021-03-16 13:44:36 +0100 | <codygman`> | I did at least try using withAsyncBound for that last problem... There could have been confounding factors though. |
2021-03-16 13:44:39 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-03-16 13:44:42 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-03-16 13:44:51 +0100 | <codygman`> | This might corroborate your suspicions of postgresql-simple: https://github.com/lpsmith/postgresql-simple/issues/177#issuecomment-229001308 |
2021-03-16 13:44:57 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2021-03-16 13:45:06 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-03-16 13:45:06 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-03-16 13:45:06 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-03-16 13:45:55 +0100 | <merijn> | codygman`: oh! |
2021-03-16 13:46:14 +0100 | <merijn> | codygman`: I wonder if somewhere deep down that calls a foreign import that's marked as interruptible |
2021-03-16 13:46:37 +0100 | <merijn> | codygman`: Leading the RTS to interrupt it with a signal, causing libpq to report an error |
2021-03-16 13:47:21 +0100 | <merijn> | codygman`: Because timeout shouldn't work on code blocked in a foreign call |
2021-03-16 13:47:27 +0100 | <merijn> | Unless it's marked interruptible |
2021-03-16 13:47:48 +0100 | <merijn> | but, tbh, nobody should be using interruptible, because the state of GHC signal handling is a clusterfuck |
2021-03-16 13:48:39 +0100 | <codygman`> | I just searched postgresql-simple and see no uninterruptible: https://github.com/haskellari/postgresql-simple/search?q=uninterruptible |
2021-03-16 13:48:42 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-03-16 13:49:02 +0100 | <merijn> | interruptible, not uninterruptible :p |
2021-03-16 13:49:17 +0100 | <codygman`> | :D None for that one either |
2021-03-16 13:49:18 +0100 | <merijn> | codygman`: foreign calls are uninterruptible by default |
2021-03-16 13:51:48 +0100 | <codygman`> | Hm it sounds like PG.rollback doesn't block either: https://github.com/lpsmith/postgresql-simple/issues/177#issuecomment-229089849 |
2021-03-16 13:52:11 +0100 | <merijn> | Rule 1 of multi-threaded/concurrent programming |
2021-03-16 13:52:15 +0100 | <merijn> | Trust no one |
2021-03-16 13:52:29 +0100 | <merijn> | I don't trust myself, but I *especially* don't trust anyone else |
2021-03-16 13:54:36 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-03-16 13:54:47 +0100 | <codygman`> | Is there a way to see if the RTS is sending a signal? Any recommendation to debug that or ideas to chase that theory down? |
2021-03-16 13:55:05 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-03-16 13:55:12 +0100 | <codygman`> | Yeah, I lose trust the more I debug these concurrent issues :) |
2021-03-16 13:55:43 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-03-16 13:56:32 +0100 | <codygman`> | That mistrust was why I went down to the level of "hold on, is Data.Pool even doing the right thing here" in: https://mail.haskell.org/pipermail/haskell-cafe/2021-March/133613.html |
2021-03-16 13:56:33 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 246 seconds) |
2021-03-16 13:56:33 +0100 | jespada | (~jespada@90.254.243.187) (Ping timeout: 260 seconds) |
2021-03-16 13:56:37 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) |
2021-03-16 13:57:04 +0100 | <merijn> | codygman`: Seeing if the RTS is sending a signal is fairly easy |
2021-03-16 13:57:08 +0100 | <codygman`> | The response says it seems expected though and I've not yet had time to look at it again. |
2021-03-16 13:57:19 +0100 | <merijn> | codygman`: Just compile with -debug and run inside gdb |
2021-03-16 13:58:28 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-03-16 13:59:38 +0100 | esp32_prog | (~esp32_pro@185.254.75.51) (Ping timeout: 245 seconds) |
2021-03-16 13:59:40 +0100 | jespada | (~jespada@90.254.243.187) |
2021-03-16 14:00:20 +0100 | Deide | (~Deide@217.155.19.23) |
2021-03-16 14:00:44 +0100 | Tario | (~Tario@201.192.165.173) |
2021-03-16 14:01:50 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-03-16 14:03:57 +0100 | <codygman`> | Alright, thanks! |
2021-03-16 14:04:26 +0100 | Lycurgus | (~niemand@98.4.116.165) |
2021-03-16 14:04:35 +0100 | jonathanx_ | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-03-16 14:05:15 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 14:05:26 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Read error: No route to host) |
2021-03-16 14:06:11 +0100 | <curiousgay> | I wonder if it's necessary to provide "+RTS -N" flags, like it can't figure that out from the amount of CPU cores? |
2021-03-16 14:06:33 +0100 | hexfive | (~hexfive@50.35.83.177) (Quit: i must go. my people need me.) |
2021-03-16 14:06:46 +0100 | <merijn> | curiousgay: Because using 1 capability per existing core is far from optimal |
2021-03-16 14:06:48 +0100 | <codygman`> | Yesterday I learned `-N` includes hyperthreads btw and isn't NUMCPU |
2021-03-16 14:07:20 +0100 | <merijn> | On machines with a large number of cores you almost certainly don't want 1 thread per core |
2021-03-16 14:07:44 +0100 | <curiousgay> | merijn: eh? doesn't runtime has M:N strategy? |
2021-03-16 14:07:47 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) () |
2021-03-16 14:08:09 +0100 | <curiousgay> | s/has/have/ |
2021-03-16 14:08:10 +0100 | <merijn> | Additionally, it's very likely that a program isn't, you know, the only thing running on a machine, so you don't wanna claim all cores |
2021-03-16 14:08:24 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection) |
2021-03-16 14:08:31 +0100 | <merijn> | curiousgay: It does, but I don't see how that relates to your question? |
2021-03-16 14:08:48 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 14:09:12 +0100 | <curiousgay> | merijn: because I don't understand why it can't create threads without "+RTS -N" flags? |
2021-03-16 14:09:36 +0100 | <merijn> | curiousgay: -N says you want 1 OS thread per core to run stuff on |
2021-03-16 14:09:53 +0100 | <merijn> | curiousgay: Haskell threads don't need any commandline arguments |
2021-03-16 14:09:57 +0100 | Sorny | Sornaensis |
2021-03-16 14:10:20 +0100 | <merijn> | curiousgay: forkIO will create new threads, regardless of how many OS threads you're specifying with -N |
2021-03-16 14:10:23 +0100 | <curiousgay> | then I don't understand why those command line arguments are even mentioned in tutorials |
2021-03-16 14:10:47 +0100 | <merijn> | curiousgay: Because lots of clueless people also write tutorials and there's no way to stop them |
2021-03-16 14:11:01 +0100 | <merijn> | See: 90% of all writing on programming online |
2021-03-16 14:11:08 +0100 | Rudd0^ | (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds) |
2021-03-16 14:11:38 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer) |
2021-03-16 14:11:42 +0100 | <siraben> | Which tutorial is this? |
2021-03-16 14:12:00 +0100 | <curiousgay> | merijn: well, such kinds of people could be not mentioned on https://www.haskell.org/documentation/ |
2021-03-16 14:12:15 +0100 | <merijn> | curiousgay: In GHC parlance "a capability" is "an OS thread that's running Haskell code" (the RTS may use some more OS threads for, say, running an epoll event loop, foreign calls, etc.), -N controls the number of capabilities the RTS creates |
2021-03-16 14:12:53 +0100 | <merijn> | curiousgay: This can also be controlled from code at runtime, via setNumCapabilities |
2021-03-16 14:13:15 +0100 | <curiousgay> | siraben: "What I Wish I Knew When Learning Haskell" book and "Haskell in 5 steps" on Haskell wiki |
2021-03-16 14:13:15 +0100 | Lycurgus | (~niemand@98.4.116.165) ("Deus Ex") |
2021-03-16 14:13:17 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) |
2021-03-16 14:13:18 +0100 | ADG1089__ | (~aditya@106.214.253.186) |
2021-03-16 14:13:20 +0100 | caro | akhesacaro |
2021-03-16 14:13:36 +0100 | <merijn> | curiousgay: The number of *Haskell* threads concurrently on the capabilities is always unbounded (well, it's bounded by machine resources) |
2021-03-16 14:14:15 +0100 | <siraben> | oof WIWIKWLH has a lot of incorrect info |
2021-03-16 14:14:25 +0100 | <merijn> | siraben: It doesn't actually mention -N |
2021-03-16 14:14:30 +0100 | <curiousgay> | thanks |
2021-03-16 14:14:31 +0100 | <merijn> | siraben: Only -N with an actual number |
2021-03-16 14:14:37 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-03-16 14:14:47 +0100 | <merijn> | siraben: At least, according to a quick search |
2021-03-16 14:15:10 +0100 | <geekosaur> | -N without a number is relatively new |
2021-03-16 14:15:25 +0100 | <curiousgay> | merijn: it does at page 296 |
2021-03-16 14:16:03 +0100 | <merijn> | I'm not sure what "page 296" is on an unnumbered website |
2021-03-16 14:16:23 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-03-16 14:16:52 +0100 | <curiousgay> | you need to get it from there as PDF file |
2021-03-16 14:17:05 +0100 | <curiousgay> | click "Screen PDF" |
2021-03-16 14:17:12 +0100 | DirefulSalt | (~DirefulSa@109.201.152.181) (Remote host closed the connection) |
2021-03-16 14:17:27 +0100 | <merijn> | The PDF doesn't mention -N without a number either |
2021-03-16 14:17:40 +0100 | DirefulSalt | (~DirefulSa@109.201.152.168) |
2021-03-16 14:17:52 +0100 | <merijn> | http://dev.stephendiehl.com/hask/tutorial.pdf |
2021-03-16 14:18:04 +0100 | <curiousgay> | I know, I didn't mean to use -N without a number |
2021-03-16 14:18:28 +0100 | <merijn> | -N8 or -N4 are perfectly fine, though |
2021-03-16 14:18:32 +0100 | <curiousgay> | just didn't want to insert random number |
2021-03-16 14:18:49 +0100 | <merijn> | "Additionally the program itself can be specified to take runtime options with -rtsopts such as the number of cores to" |
2021-03-16 14:18:52 +0100 | <merijn> | use. |
2021-03-16 14:18:56 +0100 | <merijn> | I mean, that's not incorrect |
2021-03-16 14:19:14 +0100 | Benzi-Junior | (~BenziJuni@dsl-149-67-143.hive.is) (Ping timeout: 264 seconds) |
2021-03-16 14:19:17 +0100 | <merijn> | Without -N it will default to 1 capability = 1 OS thread running Haskell code = using only 1 core |
2021-03-16 14:19:42 +0100 | <merijn> | It even goes into that later |
2021-03-16 14:20:11 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3) |
2021-03-16 14:20:27 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) |
2021-03-16 14:20:34 +0100 | alx741 | (~alx741@181.196.68.64) |
2021-03-16 14:20:41 +0100 | <curiousgay> | if it goes later to that it's impossible to notice by someone who wants to see examples of concurrent code :) |
2021-03-16 14:20:46 +0100 | <merijn> | curiousgay: It doesn't say you can't create threads without -N. It's just saying they won't run on multiple cores |
2021-03-16 14:20:55 +0100 | <merijn> | Which is true |
2021-03-16 14:21:09 +0100 | <merijn> | curiousgay: "later" as in "the very next page" |
2021-03-16 14:21:20 +0100 | <curiousgay> | ah |
2021-03-16 14:23:06 +0100 | <curiousgay> | well, 1 OS thread is definetely not the behavior I want, but I'd like it to automatically figure out how many OS threads need to be created just like Go runtime does that |
2021-03-16 14:27:25 +0100 | <yushyin> | curiousgay: 'Omitting ⟨x⟩, i.e. +RTS -N -RTS, lets the runtime choose the value of ⟨x⟩ itself based on how many processors are in your machine.' https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using-concurrent.html#rts-flag--N |
2021-03-16 14:27:26 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) (Remote host closed the connection) |
2021-03-16 14:28:27 +0100 | <yushyin> | also 'Omitting -N⟨x⟩ entirely means -N1' |
2021-03-16 14:28:56 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
2021-03-16 14:29:24 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-03-16 14:30:21 +0100 | bahamas | (~lucian@unaffiliated/bahamas) (Quit: leaving) |
2021-03-16 14:30:22 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-03-16 14:30:27 +0100 | Kmos | (~Kmos@217.146.82.202) (Remote host closed the connection) |
2021-03-16 14:31:23 +0100 | son0p | (~son0p@181.58.39.182) (Quit: leaving) |
2021-03-16 14:31:46 +0100 | <curiousgay> | yushyin: I mean the behavior without "+RTS" and flags following it, but I guess I simply have to create a 2-line shell script because there is nothing I can do about decisions behind GHC |
2021-03-16 14:32:27 +0100 | hiroaki1 | (~hiroaki@2a02:8108:8c40:2bb8:45f7:66d:ca9:84) (Ping timeout: 272 seconds) |
2021-03-16 14:32:40 +0100 | <yushyin> | there is a reason we use build tools like cabal |
2021-03-16 14:33:15 +0100 | hiroaki1 | (~hiroaki@2a02:8108:8c40:2bb8:7b72:cc15:1305:937f) |
2021-03-16 14:33:34 +0100 | lkurusa | (~lkurusa@fedora/Levex) (Ping timeout: 276 seconds) |
2021-03-16 14:34:06 +0100 | <curiousgay> | you mean cabal and stack build binaries in a way "+RTS" opts are not needed for multiple OS threads? |
2021-03-16 14:34:06 +0100 | <yushyin> | curiousgay: maybe you are missing, that you can set rtsopts at compile time? |
2021-03-16 14:34:49 +0100 | <yushyin> | curiousgay: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/phases.html#ghc-flag--with-rtsopts=%E2%9F%A8opt… |
2021-03-16 14:34:53 +0100 | Otoo | (590cde70@dynamic-089-012-222-112.89.12.pool.telefonica.de) |
2021-03-16 14:35:05 +0100 | <merijn> | curiousgay: "automatically figuring out how many OS threads need to be created" is an unsolved problem |
2021-03-16 14:35:29 +0100 | <Otoo> | Hello |
2021-03-16 14:35:34 +0100 | <Otoo> | crap I spelt my name wrong |
2021-03-16 14:35:57 +0100 | <curiousgay> | yushyin: thanks :) |
2021-03-16 14:36:11 +0100 | Otoo | (590cde70@dynamic-089-012-222-112.89.12.pool.telefonica.de) (Client Quit) |
2021-03-16 14:37:43 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 14:37:51 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 14:38:23 +0100 | <curiousgay> | merijn: I guess "what do other projects (like Go) do?" doesn't provide contructive answer |
2021-03-16 14:38:45 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:cef:c525:4834:4938) |
2021-03-16 14:38:47 +0100 | <merijn> | curiousgay: "whatever works as default for Google" |
2021-03-16 14:38:56 +0100 | hexreel | (~hr@2600:1700:28e2:14d0:cef:c525:4834:4938) () |
2021-03-16 14:39:16 +0100 | <merijn> | curiousgay: I mean, you can hard code something like max(8, num_cores-1) or something and use that |
2021-03-16 14:39:42 +0100 | <merijn> | curiousgay: But there isn't really a good way to determine "a good number of OS threads for a problem" automatically |
2021-03-16 14:42:38 +0100 | cur8or | (~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 256 seconds) |
2021-03-16 14:43:47 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-03-16 14:46:38 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 14:50:07 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 14:50:09 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) |
2021-03-16 14:50:35 +0100 | jonathanx_ | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-03-16 14:52:23 +0100 | sajith_ | sajith |
2021-03-16 14:52:25 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) (Remote host closed the connection) |
2021-03-16 14:52:26 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 14:53:40 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:6cd8:b958:caec:b1dc) |
2021-03-16 14:53:46 +0100 | tinhatcat | (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) |
2021-03-16 14:54:22 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-03-16 14:55:42 +0100 | tinhatcat | (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) (Client Quit) |
2021-03-16 14:56:30 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-03-16 14:57:00 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-cnfnotqfqspqvzjj) |
2021-03-16 14:57:56 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-03-16 14:59:20 +0100 | emetrusky | (561e1a8f@cpc152439-cosh18-2-0-cust142.6-1.cable.virginm.net) |
2021-03-16 14:59:37 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-03-16 15:00:40 +0100 | Wuzzy | (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) |
2021-03-16 15:04:34 +0100 | aldum_ | (~vishera@aldum.pw) (Quit: leaving) |
2021-03-16 15:05:36 +0100 | aldum | (~vishera@aldum.pw) |
2021-03-16 15:06:20 +0100 | <emetrusky> | Write a function: |
2021-03-16 15:06:21 +0100 | <emetrusky> | sumDifference :: Int -> Int -> (Int,Int) |
2021-03-16 15:06:21 +0100 | <emetrusky> | which returns both the sum and the difference between the first and second arguments. |
2021-03-16 15:06:22 +0100 | <emetrusky> | For example, sumDifference 3 7 = (10,-4). |
2021-03-16 15:06:22 +0100 | <emetrusky> | How would i do this? |
2021-03-16 15:07:29 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2021-03-16 15:09:20 +0100 | <dminuoso> | What have you tried? |
2021-03-16 15:09:30 +0100 | <kuribas> | :t (+) &&& (-) |
2021-03-16 15:09:32 +0100 | <lambdabot> | Num b => b -> (b -> b, b -> b) |
2021-03-16 15:09:47 +0100 | <emetrusky> | sumDifference :: Int -> Int -> (Int,Int) |
2021-03-16 15:09:47 +0100 | <emetrusky> | sumDifference x y |
2021-03-16 15:09:48 +0100 | <emetrusky> | sumDifference x + y | x - y = (x,y) |
2021-03-16 15:10:25 +0100 | <dminuoso> | Mmm. That syntax looks weirdly wrong. |
2021-03-16 15:10:34 +0100 | <dminuoso> | Can you, with your own words, explain what you think that code even means? |
2021-03-16 15:10:46 +0100 | pehjota | (~pehjota@217.146.82.202) |
2021-03-16 15:11:19 +0100 | <emetrusky> | so it takes in two numbers and then adds them up and then will do the difference between them and spit out the results in a list |
2021-03-16 15:11:45 +0100 | <dminuoso> | Really curious about how you envision your code does that. |
2021-03-16 15:11:48 +0100 | <kuribas> | :t curry $ (,) <$> uncurry (+) <*> uncurry (-) |
2021-03-16 15:11:50 +0100 | <lambdabot> | Num a => a -> a -> (a, a) |
2021-03-16 15:12:09 +0100 | <dminuoso> | emetrusky: Other than "that definition is not even remotely valid haskell" Im not sure what to tell you. |
2021-03-16 15:12:33 +0100 | <dminuoso> | emetrusky: Let me give you a starting point. Start the definition as follows: |
2021-03-16 15:12:41 +0100 | <dminuoso> | sumDifference x y = ... |
2021-03-16 15:12:47 +0100 | <dminuoso> | Where `...` is some expression |
2021-03-16 15:12:47 +0100 | <dolio> | Also, what text have you been following? |
2021-03-16 15:12:58 +0100 | <kuribas> | emetrusky: why do you even have a guard? |
2021-03-16 15:13:16 +0100 | <dminuoso> | kuribas: Its not a guard, it's something they believe does something that doesnt work like that in Haskell |
2021-03-16 15:13:26 +0100 | <dminuoso> | Perhaps transferring some code style from some other cryptic programming language |
2021-03-16 15:13:28 +0100 | <kuribas> | > (curry $ (,) <$> uncurry (+) <*> uncurry (-)) 3 7 |
2021-03-16 15:13:31 +0100 | <lambdabot> | (10,-4) |
2021-03-16 15:14:05 +0100 | <emetrusky> | ye so i give in two number like 3 and 7 and gives out (10,-4) as a tuple |
2021-03-16 15:15:12 +0100 | <dminuoso> | Oh I understand what the intended result it. |
2021-03-16 15:16:08 +0100 | <dolio> | The only thing I can think of is that this is somehow borrowed from Agda, but that seems impossible. :) |
2021-03-16 15:16:26 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
2021-03-16 15:16:44 +0100 | <tomsmeding> | dolio: it kind of looks like that, but also not |
2021-03-16 15:17:09 +0100 | <kuribas> | emetrusky: for example, you cannot have a declaration without '=' (disregarding template haskell), like your first clause. |
2021-03-16 15:17:22 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-03-16 15:17:35 +0100 | peanut_ | (~peanut@2a02:8388:a101:2600:2ba8:dc0d:2e25:a003) (Quit: Leaving) |
2021-03-16 15:18:52 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-03-16 15:19:19 +0100 | <emetrusky> | sumDifference :: Int -> Int -> (Int,Int) |
2021-03-16 15:19:19 +0100 | <emetrusky> | sumDifference x y = let sum = x + y | let difference = x - y = (sum,difference) |
2021-03-16 15:19:20 +0100 | <emetrusky> | so i got this far but it says parse error on '|' |
2021-03-16 15:20:32 +0100 | <tomsmeding> | emetrusky: what tells you that '|' should be valid? |
2021-03-16 15:20:39 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 15:20:44 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 15:21:06 +0100 | <emetrusky> | idk thought that would act like a guard |
2021-03-16 15:21:09 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 15:21:16 +0100 | <tomsmeding> | why do you think you need guards here? |
2021-03-16 15:21:20 +0100 | <tomsmeding> | (you don't :) ) |
2021-03-16 15:22:28 +0100 | <emetrusky> | sumDifference :: Int -> Int -> (Int,Int) |
2021-03-16 15:22:29 +0100 | <emetrusky> | sumDifference x y = (x+y,x-y) |
2021-03-16 15:22:31 +0100 | <emetrusky> | got it |
2021-03-16 15:22:43 +0100 | <tomsmeding> | indeed, that should work well |
2021-03-16 15:22:44 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-03-16 15:23:03 +0100 | <tomsmeding> | emetrusky: I (and I suppose others here) would still be curious where you got the idea to try your other variants |
2021-03-16 15:23:20 +0100 | <tomsmeding> | not as a comment to you, but just to satisfy our curiosity |
2021-03-16 15:23:33 +0100 | <dminuoso> | tomsmeding: They are not supposed to be guards. |
2021-03-16 15:23:35 +0100 | <emetrusky> | that there is a long story of what uni used in practice marterial |
2021-03-16 15:23:50 +0100 | <dminuoso> | tomsmeding: Dont interpret them as guards, interpret them as "a wild guess at what a vertical bar could mean in the language" |
2021-03-16 15:23:51 +0100 | <tomsmeding> | different programming language with different syntax? |
2021-03-16 15:23:52 +0100 | <dminuoso> | :p |
2021-03-16 15:24:04 +0100 | <tomsmeding> | dminuoso: they said "thought that would act like a guard" :) |
2021-03-16 15:24:17 +0100 | <emetrusky> | this is my first time doing functional programming |
2021-03-16 15:24:29 +0100 | <tomsmeding> | welcome :) |
2021-03-16 15:24:35 +0100 | <emetrusky> | its v hard |
2021-03-16 15:24:52 +0100 | <tomsmeding> | but can also be rewarding |
2021-03-16 15:24:58 +0100 | <tomsmeding> | if you like the ideas |
2021-03-16 15:25:10 +0100 | <tomsmeding> | most people here do |
2021-03-16 15:25:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 15:25:51 +0100 | <dminuoso> | tomsmeding: I think they might not understand what a guard even is. |
2021-03-16 15:26:00 +0100 | <tomsmeding> | dminuoso: which is why I was asking :p |
2021-03-16 15:26:02 +0100 | <dminuoso> | Ah |
2021-03-16 15:26:07 +0100 | <emetrusky> | do what is guard lads? |
2021-03-16 15:26:16 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 15:26:20 +0100 | <dminuoso> | emetrusky: are you familiar with functions in math defined as |
2021-03-16 15:26:24 +0100 | <emetrusky> | yes |
2021-03-16 15:27:01 +0100 | <dminuoso> | f(x) = x | x > 10 |
2021-03-16 15:27:02 +0100 | <dminuoso> | 2*x | otherwise |
2021-03-16 15:27:04 +0100 | <dminuoso> | Like this? |
2021-03-16 15:27:16 +0100 | idhugo__ | (~idhugo@130.225.16.16) |
2021-03-16 15:27:25 +0100 | <dminuoso> | Perhaps in your country it might look a bit different. But this is a step-wise defined function. |
2021-03-16 15:27:30 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 15:27:37 +0100 | <dminuoso> | The pipe plus the thing to the right, that's what we'd call a guard in Haskell |
2021-03-16 15:27:51 +0100 | <dminuoso> | i.e. the `| x > 10` sort of "condition" is what we call a guard |
2021-03-16 15:28:05 +0100 | <emetrusky> | so a guard is like an if statement |
2021-03-16 15:28:19 +0100 | <dminuoso> | It's kind of related, I guess |
2021-03-16 15:28:23 +0100 | <tomsmeding> | Different notation: |
2021-03-16 15:28:23 +0100 | <tomsmeding> | f(x) = / x, x > 10, |
2021-03-16 15:28:23 +0100 | <tomsmeding> | \ 2*x, otherwise |
2021-03-16 15:28:33 +0100 | <tomsmeding> | oh bummer alignment fails |
2021-03-16 15:28:46 +0100 | <tomsmeding> | anyway multiple lines preceded by a large { |
2021-03-16 15:29:42 +0100 | <dminuoso> | emetrusky: In Haskell, however, we place the guard on the left side of the equals sign. |
2021-03-16 15:29:46 +0100 | <dminuoso> | So the Haskell equivalent of the above is: |
2021-03-16 15:29:50 +0100 | <dminuoso> | f x | x > 10 = x |
2021-03-16 15:29:52 +0100 | <dminuoso> | | otherwise = 2 * x |
2021-03-16 15:29:57 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 264 seconds) |
2021-03-16 15:30:09 +0100 | <tomsmeding> | which can also be written using an if-then-else expression as: f x = if x > 10 then x else 2 * x |
2021-03-16 15:30:24 +0100 | <emetrusky> | oh ok thanks very much i think i have got a bit better understanding |
2021-03-16 15:30:35 +0100 | <dminuoso> | So these are sort of separate "branches" a function can take. When the function is applied, each guard is tested from top to bottom, the first definition where the guard evaluates to True in the guard is then taken |
2021-03-16 15:30:57 +0100 | <ADG1089__> | can anyone help with https://github.com/haskell/cabal/issues/7325 |
2021-03-16 15:31:02 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 15:31:06 +0100 | <dminuoso> | (If you read this carefully, you might notice that this implies that `otherwise` must evaluate to True |
2021-03-16 15:31:18 +0100 | <dminuoso> | And it turns out, we just have this definition in our Prelude `otherwise = True`. |
2021-03-16 15:31:32 +0100 | <emetrusky> | yep understand that |
2021-03-16 15:31:55 +0100 | <emetrusky> | if everything fails then it will go to otherwise as that will be true |
2021-03-16 15:32:16 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-03-16 15:32:26 +0100 | <dminuoso> | Sure. I was just emphasizing that `otherwise` is, unlike say in math, not a specially defined keyword. |
2021-03-16 15:32:29 +0100 | <dminuoso> | You could have also written this as: |
2021-03-16 15:32:42 +0100 | <dminuoso> | f x | x > 10 = x |
2021-03-16 15:32:44 +0100 | <dminuoso> | | True = 2 * x |
2021-03-16 15:33:01 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8) |
2021-03-16 15:35:49 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 15:36:06 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2021-03-16 15:36:07 +0100 | <teddyc> | reading through the prelude actually removed a lot of the magic for me. Just seeing how functions like map and filer where not different to what I would implement myself. |
2021-03-16 15:36:16 +0100 | <teddyc> | discovere otherwise=True this way |
2021-03-16 15:36:24 +0100 | <teddyc> | *discovered |
2021-03-16 15:37:26 +0100 | emetrusky | (561e1a8f@cpc152439-cosh18-2-0-cust142.6-1.cable.virginm.net) (Quit: Connection closed) |
2021-03-16 15:37:26 +0100 | <dminuoso> | teddyc: Would you also be surprised to learn that `data Bool = True | False`? :) |
2021-03-16 15:38:10 +0100 | epstein | (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) |
2021-03-16 15:38:12 +0100 | epstein | (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) (K-Lined) |
2021-03-16 15:38:24 +0100 | <teddyc> | i was sort of surprised when I read that, but I dont know why. I always think that things "included" in a language is super complex, when in many cases its not |
2021-03-16 15:39:18 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) (Ping timeout: 256 seconds) |
2021-03-16 15:39:23 +0100 | <tomsmeding> | ADG1089__: I don't have LLVM 9 so I removed -fllvm from the flags, but both the 'cabal install' command and the 'cabal run --enable-profiling' command run ghc using -O2 for me |
2021-03-16 15:39:39 +0100 | <tomsmeding> | though indeed 'cabal install' compiles all executables |
2021-03-16 15:39:59 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-03-16 15:40:56 +0100 | idhugo__ | (~idhugo@130.225.16.16) (Read error: Connection reset by peer) |
2021-03-16 15:41:18 +0100 | <dminuoso> | teddyc: To be fair, things like Text have some really complicated internals. But, interestingly, even Text is implement in pure Haskell. |
2021-03-16 15:41:34 +0100 | <dminuoso> | Well. pure GHC haskell, since text makes liberal use of highly dangerous internal GHC primitives |
2021-03-16 15:41:43 +0100 | <merijn> | dminuoso: Depends how you define "pure" Haskell ;) |
2021-03-16 15:41:53 +0100 | <dminuoso> | I just corrected myself :) |
2021-03-16 15:42:21 +0100 | <merijn> | teddyc: Well, there's a bunch of rewrite rules for stuff in Prelude for things like list fusion |
2021-03-16 15:42:39 +0100 | <merijn> | teddyc: But that doesn't (well, shouldn't!) affect the behaviour, only performance :p |
2021-03-16 15:42:45 +0100 | idhugo__ | (~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) |
2021-03-16 15:42:57 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-03-16 15:43:19 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 15:43:25 +0100 | <geekosaur> | the Report Prelude is probably better for reading to see how Haskell works |
2021-03-16 15:43:37 +0100 | <teddyc> | yeah, most of it is greek to me |
2021-03-16 15:43:45 +0100 | <geekosaur> | ghc's Prelude shows how to make it fast :) |
2021-03-16 15:44:02 +0100 | <geekosaur> | (and overly general, cf. Foldable) |
2021-03-16 15:44:20 +0100 | <tomsmeding> | teddyc: haskell allows unicode in variable names, so you can actually make it greek :) |
2021-03-16 15:44:35 +0100 | <teddyc> | hoho, nice |
2021-03-16 15:44:43 +0100 | <dminuoso> | teddyc: Now imagine, what if even numbers were defined in plain Haskell |
2021-03-16 15:44:43 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer) |
2021-03-16 15:44:50 +0100 | <dminuoso> | Like `data Nat = Nil | Succ Nat` |
2021-03-16 15:45:10 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 15:45:22 +0100 | <tomsmeding> | (raising the bar quite a bit on the difference between semantics and performance) |
2021-03-16 15:45:44 +0100 | <dminuoso> | And it turns out, in Idris its done exactly like that (with some tricks to regain performance) |
2021-03-16 15:45:52 +0100 | <teddyc> | hmm interesting |
2021-03-16 15:45:55 +0100 | <dminuoso> | data Nat : Type where Z : Nat; S : Nat -> Nat |
2021-03-16 15:46:28 +0100 | <curiousgay> | merijn: actually how Go manages threads is very complicated, it tries to optimize thread usage per CPU cores and at the same time it increments the amount of OS threads dynamically where you can have thousands of OS threads on 4 core CPU (default limit is 10000), don't ask me what are the conditions to increment the amount of OS threads |
2021-03-16 15:47:03 +0100 | <dminuoso> | Or you could have made lists yourself too. The *only* reason its not a real Haskell definition, is because they use characters not admissable for constructors. |
2021-03-16 15:47:25 +0100 | <dminuoso> | Somewhere in `base` you find `data [] a = a : [a] | []` I think |
2021-03-16 15:48:13 +0100 | <dminuoso> | But `data List a = Nil | Cons a (List a)` is equivalent. In fact, you can even unsafeCoerce between `List a` and `[a]` and it will work mostly. :P |
2021-03-16 15:48:17 +0100 | <dminuoso> | So not even lists are magic |
2021-03-16 15:48:18 +0100 | <tomsmeding> | (in that vein: https://hackage.haskell.org/package/ghc-prim-0.4.0.0/docs/src/GHC-Tuple.html ) |
2021-03-16 15:48:46 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-03-16 15:48:48 +0100 | sepples_ | (~sepples@67.205.168.224) (Ping timeout: 245 seconds) |
2021-03-16 15:49:12 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-03-16 15:49:17 +0100 | <dminuoso> | To me, the ability to just bootstrap efficient data primitives is what makes Haskell an enjoyable language. If you cant even model lists yourself, how are you expected to model more complicated data structures? |
2021-03-16 15:49:27 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Remote host closed the connection) |
2021-03-16 15:49:38 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-rdlxtdjjstsfznpl) |
2021-03-16 15:51:28 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 260 seconds) |
2021-03-16 15:51:30 +0100 | idhugo__ | (~idhugo@80-62-116-180-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds) |
2021-03-16 15:53:49 +0100 | puke | (~vroom@217.138.252.202) (Read error: Connection reset by peer) |
2021-03-16 15:54:39 +0100 | puke | (~vroom@217.138.252.202) |
2021-03-16 15:55:36 +0100 | <teddyc> | Agree, it took me some time to understand that lists are just a simple data structure with fancy syntatic sugar. |
2021-03-16 15:56:52 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer) |
2021-03-16 15:57:06 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 15:57:07 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-03-16 15:59:24 +0100 | specdrake | (~anurag@103.209.223.76) |
2021-03-16 15:59:36 +0100 | seven_three | (~user@2601:18d:c180:4060::2829) |
2021-03-16 16:02:18 +0100 | seven_three | (~user@2601:18d:c180:4060::2829) () |
2021-03-16 16:02:22 +0100 | <mouseghost> | o-o |
2021-03-16 16:02:46 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-03-16 16:02:49 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) |
2021-03-16 16:03:36 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 246 seconds) |
2021-03-16 16:05:00 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-03-16 16:06:20 +0100 | frozenErebus | (~frozenEre@94.128.82.20) |
2021-03-16 16:06:58 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) |
2021-03-16 16:08:35 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Client Quit) |
2021-03-16 16:09:55 +0100 | plutoniix | (~q@node-un3.pool-125-24.dynamic.totinternet.net) |
2021-03-16 16:10:42 +0100 | acidjnk_new | (~acidjnk@p200300d0c72b954785b86a8446f85480.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-03-16 16:10:54 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2021-03-16 16:11:59 +0100 | jespada | (~jespada@90.254.243.187) (Quit: Leaving) |
2021-03-16 16:12:26 +0100 | jespada | (~jespada@90.254.243.187) |
2021-03-16 16:15:26 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 16:16:19 +0100 | carlomagno | (~cararell@148.87.23.5) |
2021-03-16 16:16:32 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2021-03-16 16:18:38 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2021-03-16 16:18:53 +0100 | jhrcek | (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) (Quit: Leaving) |
2021-03-16 16:19:15 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 16:19:21 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) (Ping timeout: 246 seconds) |
2021-03-16 16:20:06 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 16:21:22 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-03-16 16:21:31 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 16:23:01 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 16:23:09 +0100 | plutoniix | (~q@node-un3.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2021-03-16 16:24:16 +0100 | plutoniix | (~q@node-un3.pool-125-24.dynamic.totinternet.net) |
2021-03-16 16:26:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 16:26:36 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) |
2021-03-16 16:27:12 +0100 | asheshambasta | (~user@ptr-e1lysawivss4sgbwwfc.18120a2.ip6.access.telenet.be) |
2021-03-16 16:28:27 +0100 | <yushyin> | curiousgay: same is true for ghc, -N sets the capabilities (virtual cpus) not the number of os threads. |
2021-03-16 16:29:34 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) |
2021-03-16 16:29:43 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 16:30:32 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 265 seconds) |
2021-03-16 16:30:51 +0100 | DataComputist | (~lumeng@50.43.26.251) (Quit: Leaving...) |
2021-03-16 16:31:07 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:698d:4b25:a12b:af32) (Ping timeout: 260 seconds) |
2021-03-16 16:31:46 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:ed20:88c:e6f5:e319) |
2021-03-16 16:31:53 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2021-03-16 16:31:57 +0100 | z0k | (~user@115-186-141-88.nayatel.pk) |
2021-03-16 16:32:27 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 16:34:08 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 16:34:14 +0100 | carlomagno1 | (~cararell@148.87.23.5) |
2021-03-16 16:34:28 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer) |
2021-03-16 16:34:58 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 16:35:46 +0100 | jespada | (~jespada@90.254.243.187) (Read error: Connection timed out) |
2021-03-16 16:36:19 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-03-16 16:36:42 +0100 | asheshambasta | (~user@ptr-e1lysawivss4sgbwwfc.18120a2.ip6.access.telenet.be) (Ping timeout: 258 seconds) |
2021-03-16 16:36:56 +0100 | <Aquazi> | are there good file system libs out there? |
2021-03-16 16:37:18 +0100 | <Aquazi> | I have only found System.Directory which I'm not fond of api-wise |
2021-03-16 16:37:42 +0100 | carlomagno | (~cararell@148.87.23.5) (Ping timeout: 260 seconds) |
2021-03-16 16:37:49 +0100 | <[exa]> | Aquazi: well, what API would you like? |
2021-03-16 16:38:19 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2021-03-16 16:38:19 +0100 | <Aquazi> | one that treats errors as first class data rather than having IOErrors |
2021-03-16 16:38:22 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 276 seconds) |
2021-03-16 16:38:49 +0100 | <Aquazi> | a Result, or Either type of sensible api rather than this ugliness |
2021-03-16 16:38:59 +0100 | stevenxl | (uid133530@gateway/web/irccloud.com/x-ugkyksdwpgkpdwuw) |
2021-03-16 16:39:14 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-03-16 16:39:22 +0100 | frozenErebus | (~frozenEre@94.128.82.20) (Ping timeout: 256 seconds) |
2021-03-16 16:40:09 +0100 | frozenErebus | (~frozenEre@37.231.243.22) |
2021-03-16 16:41:02 +0100 | jespada | (~jespada@90.254.243.187) |
2021-03-16 16:42:20 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 16:43:47 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-03-16 16:46:03 +0100 | <[exa]> | Aquazi: ah so, that may be complicated because the underlying OS functions may actually produce the IO errors |
2021-03-16 16:46:08 +0100 | <dminuoso> | One persons ugliness is another persons blessing. |
2021-03-16 16:46:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 16:47:04 +0100 | ajc | (~ajc@69.231.232.79) |
2021-03-16 16:47:04 +0100 | <Aquazi> | blessed with poor error handling experience...? |
2021-03-16 16:48:40 +0100 | <dminuoso> | Try writing Go for a while. Manual error passing can be really cumbersome to work with. :) |
2021-03-16 16:51:35 +0100 | <Aquazi> | i never mentioned error passing? I'm merely saying I wanted to know if there are libraries that have a more explicit encoding of errors and better dx than io/ioerror |
2021-03-16 16:51:41 +0100 | graf_blutwurst | (~user@2001:171b:226e:adc0:7d06:8763:7b6a:1565) (Remote host closed the connection) |
2021-03-16 16:51:41 +0100 | <dminuoso> | Also, you rather quickly begin asking for row types if you want to propagate errors upwards. |
2021-03-16 16:51:52 +0100 | <dminuoso> | Hiding them inside IO avoids that |
2021-03-16 16:52:04 +0100 | <dminuoso> | Ah. |
2021-03-16 16:52:08 +0100 | <Aquazi> | that's the point, I want to handle them not hide them |
2021-03-16 16:52:21 +0100 | <dminuoso> | Welcome to the effect system game. |
2021-03-16 16:52:22 +0100 | <Aquazi> | IOError doesn't offer a great dx for that |
2021-03-16 16:52:26 +0100 | <dminuoso> | Well |
2021-03-16 16:52:44 +0100 | <dminuoso> | Strictly speaking we have good ergonomics with exceptions, *if* you use exception hierarchies |
2021-03-16 16:53:05 +0100 | <dminuoso> | In the sense of https://simonmar.github.io/bib/papers/ext-exceptions.pdf |
2021-03-16 16:53:15 +0100 | minoru_shiraeesh | (~shiraeesh@109.166.59.197) (Ping timeout: 265 seconds) |
2021-03-16 16:53:47 +0100 | frozenErebus | (~frozenEre@37.231.243.22) (Quit: leaving) |
2021-03-16 16:53:58 +0100 | <dminuoso> | But you still have to document possible exceptions outside Haskell. If you want these to reside in the type system, you likely end up in the effect system game. |
2021-03-16 16:54:53 +0100 | hackage | boomerang 1.4.7 - Library for invertible parsing and printing https://hackage.haskell.org/package/boomerang-1.4.7 (JeremyShaw) |
2021-03-16 16:55:43 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-03-16 16:57:30 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-03-16 17:00:02 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-03-16 17:00:03 +0100 | pineapples[m] | (pineapples@gateway/shell/matrix.org/x-cruihamqujucfumq) (Quit: Idle for 30+ days) |
2021-03-16 17:00:14 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 17:00:27 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 17:00:33 +0100 | zar | (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving) |
2021-03-16 17:01:17 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-03-16 17:02:55 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-03-16 17:03:07 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 17:03:43 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-03-16 17:03:50 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 17:05:26 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
2021-03-16 17:05:52 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-03-16 17:07:18 +0100 | barnowl_ | (~barnowl@gateway/tor-sasl/barnowl) (Remote host closed the connection) |
2021-03-16 17:07:39 +0100 | barnowl_ | (~barnowl@gateway/tor-sasl/barnowl) |
2021-03-16 17:07:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds) |
2021-03-16 17:08:04 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-03-16 17:09:23 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-luczsnoowjqghapa) |
2021-03-16 17:09:30 +0100 | gitgoood | gitgood |
2021-03-16 17:09:45 +0100 | crobbins | (~crobbins@2600:1700:48eb:8490:b577:6e36:e383:a1d9) |
2021-03-16 17:09:52 +0100 | <curiousgay> | yushyin: well then default to amount of CPU cores is good enough |
2021-03-16 17:13:37 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-03-16 17:13:47 +0100 | <codygman`> | Isn't resource finalization in effect systems still an unsolved issue as well? I recall at least a tricky issue on that subject with Eff. |
2021-03-16 17:14:53 +0100 | hackage | api-tools 0.9.0.0 - DSL for generating API boilerplate and docs https://hackage.haskell.org/package/api-tools-0.9.0.0 (AdamGundry) |
2021-03-16 17:15:15 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:6cd8:b958:caec:b1dc) (Remote host closed the connection) |
2021-03-16 17:15:36 +0100 | zopsi_ | (zopsi@2600:3c00::f03c:91ff:fe14:551f) ("Leaving") |
2021-03-16 17:15:50 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-03-16 17:16:15 +0100 | <yushyin> | curiousgay: and the go runtime does a similar thing 'The GOMAXPROCS variable limits the number of operating system threads that can execute user-level Go code simultaneously.' where the default value is the number of logical CPUs reported by the OS. |
2021-03-16 17:16:32 +0100 | <yushyin> | curiousgay: this is very similar to capabilities, if you ask me. |
2021-03-16 17:17:48 +0100 | Feuermagier | (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
2021-03-16 17:17:55 +0100 | <curiousgay> | yushyin: huh, I've seen discussion between Go developers in 2012 where GOMAXPROCS is the limit to OS threads, defaulted to 10000, because blocking code in CGo caused spawning thousands of OS threads |
2021-03-16 17:19:18 +0100 | Benzi-Junior | (~BenziJuni@88-149-67-143.du.xdsl.is) |
2021-03-16 17:19:25 +0100 | <curiousgay> | never mind |
2021-03-16 17:19:38 +0100 | idhugo_ | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds) |
2021-03-16 17:19:43 +0100 | zopsi | (zopsi@2600:3c00::f03c:91ff:fe14:551f) |
2021-03-16 17:20:37 +0100 | idhugo | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
2021-03-16 17:21:00 +0100 | martin02 | (silas@hund.fs.lmu.de) (Ping timeout: 265 seconds) |
2021-03-16 17:21:12 +0100 | toorevitimirp | (~tooreviti@117.182.180.1) |
2021-03-16 17:21:15 +0100 | <curiousgay> | yushyin: well, the difference is that GOMAXPROCS is an environment variable and doesn't require user to manually pass something like "-rtsopts=-N" to compiler |
2021-03-16 17:21:16 +0100 | <yushyin> | you can still have many many blocking OS threads, GOMAXPROCS is more similar to the virtual CPUs/capabilities |
2021-03-16 17:21:52 +0100 | <loyon> | TIL, you can run the editor in the web browser, pretty awesome: https://godotengine.org/editor/latest/godot.tools.html |
2021-03-16 17:22:06 +0100 | <yushyin> | curiousgay: yes, GOMAXPROCS has a different default, but as I linked you earlier you can set a different default at compile time |
2021-03-16 17:22:30 +0100 | codygman` | (~user@47.186.207.161) (Ping timeout: 260 seconds) |
2021-03-16 17:22:37 +0100 | <yushyin> | so no harm done? |
2021-03-16 17:22:39 +0100 | hiredman_ | hiredman |
2021-03-16 17:23:12 +0100 | <curiousgay> | yeah, I'll need a separate file to not repeat typing the same option again |
2021-03-16 17:24:37 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Remote host closed the connection) |
2021-03-16 17:24:38 +0100 | <curiousgay> | because there is no way GHC devs will change their default from "-N1" to "-N" |
2021-03-16 17:25:04 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-03-16 17:25:31 +0100 | toorevitimirp | (~tooreviti@117.182.180.1) (Remote host closed the connection) |
2021-03-16 17:25:37 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-03-16 17:26:28 +0100 | CoconutCrab | (~Cua@unaffiliated/coconutcrab) (Ping timeout: 276 seconds) |
2021-03-16 17:27:55 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 17:28:56 +0100 | ADG1089__ | (~aditya@106.214.253.186) (Remote host closed the connection) |
2021-03-16 17:28:58 +0100 | <dolio> | The program can be set to use -N when compiling it. |
2021-03-16 17:29:09 +0100 | tanner_ | (~tanner@216.106.138.184) |
2021-03-16 17:29:51 +0100 | <merijn> | curiousgay: But GHC doesn't need to spawn 1 OS thread per blocking IO thing, so there's no reason to have a limit that high |
2021-03-16 17:30:03 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2021-03-16 17:30:31 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2021-03-16 17:30:50 +0100 | <merijn> | curiousgay: GHC's RTS uses an epoll/kqueue/whatever the windows variant is based event loop that blocks/unblocks Haskell threads as needed |
2021-03-16 17:32:24 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 265 seconds) |
2021-03-16 17:33:02 +0100 | <curiousgay> | merijn: Go does the same thing, the problem with CGo is that it's basically an FFI problem |
2021-03-16 17:33:16 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-03-16 17:33:45 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 17:34:08 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:6cd8:b958:caec:b1dc) |
2021-03-16 17:35:09 +0100 | <dolio> | Was there an actual observed problem at some point, or is this whole conversation about how GHC doesn't do whatever Go does? |
2021-03-16 17:36:04 +0100 | <curiousgay> | dolio: never mind, it's just me being puzzled about GHC binaries not using more than 1 capability if I don't pass them "-N" flag |
2021-03-16 17:36:17 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-03-16 17:37:10 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) |
2021-03-16 17:38:18 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2021-03-16 17:41:52 +0100 | vnz | (~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in) |
2021-03-16 17:42:02 +0100 | vnz | (~vnz@51.15.143.225) |
2021-03-16 17:42:02 +0100 | vnz | (~vnz@51.15.143.225) (Changing host) |
2021-03-16 17:42:02 +0100 | vnz | (~vnz@unaffiliated/vnz) |
2021-03-16 17:42:25 +0100 | Tristan | (~tristan@luna.whatbox.ca) |
2021-03-16 17:42:48 +0100 | bonz060_ | (~quassel@2001:bc8:47a4:a23::1) (Remote host closed the connection) |
2021-03-16 17:42:49 +0100 | Tristan | Guest29917 |
2021-03-16 17:43:11 +0100 | bonz060 | (~quassel@2001:bc8:47a4:a23::1) |
2021-03-16 17:44:03 +0100 | Guest41116 | (~tristan@luna.whatbox.ca) (Read error: Connection reset by peer) |
2021-03-16 17:44:37 +0100 | Guest41046 | (~melkor@2a02:2b88:2:1::5b34:1) (Ping timeout: 260 seconds) |
2021-03-16 17:44:51 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 17:44:54 +0100 | Guest41046 | (~melkor@31.31.76.126) |
2021-03-16 17:46:26 +0100 | <yushyin> | curiousgay: is it really that of a problem to pass an additional flag at compile time? Maybe the defaults will change in the feature but until then just add the compile-time flag? |
2021-03-16 17:48:44 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 17:50:28 +0100 | nfd | (~nfd9001@2601:602:77f:1820:ad30:5ebc:6324:c6c5) |
2021-03-16 17:52:06 +0100 | <curiousgay> | yushyin: already done in shell script: stack ghc -- -threaded -rtsopts -with-rtsopts=-N $@ |
2021-03-16 17:52:32 +0100 | <xsperry> | you can also add it in cabal file |
2021-03-16 17:52:55 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 17:54:31 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 17:56:36 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 17:57:38 +0100 | Major_Biscuit | (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 264 seconds) |
2021-03-16 17:59:04 +0100 | stree | (~stree@68.36.8.116) (Quit: Caught exception) |
2021-03-16 17:59:31 +0100 | stree | (~stree@68.36.8.116) |
2021-03-16 17:59:42 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 18:00:26 +0100 | <merijn> | -N without disabling parallel GC is a great way to make your code super slow, btw |
2021-03-16 18:00:58 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-03-16 18:01:25 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection) |
2021-03-16 18:01:59 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) |
2021-03-16 18:03:19 +0100 | <yushyin> | if you really want to you can set -with-rtsopts=-N in a global stack/cabal config file |
2021-03-16 18:04:05 +0100 | polxy | (~polxy@2001:b07:a15:ec0c:14d1:ef73:1822:ceed) |
2021-03-16 18:05:19 +0100 | jw4 | (~jw4@unaffiliated/jw4) |
2021-03-16 18:05:52 +0100 | michalz | (~user@185.246.204.47) |
2021-03-16 18:06:14 +0100 | polxy | (~polxy@2001:b07:a15:ec0c:14d1:ef73:1822:ceed) (Excess Flood) |
2021-03-16 18:06:25 +0100 | polxy | (~polxy@2001:b07:a15:ec0c:14d1:ef73:1822:ceed) |
2021-03-16 18:06:27 +0100 | <koz_> | merijn: What's the flag for turning off parallel GC again? |
2021-03-16 18:08:40 +0100 | <merijn> | -qg |
2021-03-16 18:08:49 +0100 | <koz_> | Thanks! |
2021-03-16 18:09:05 +0100 | <merijn> | or -gq one of the two :p |
2021-03-16 18:09:20 +0100 | <geekosaur> | -qg |
2021-03-16 18:09:24 +0100 | <curiousgay> | parallel GC - slower, but on by default |
2021-03-16 18:09:34 +0100 | <geekosaur> | for the moment |
2021-03-16 18:09:50 +0100 | <geekosaur> | it's getting turned off by default in an upcoming ghc release |
2021-03-16 18:10:09 +0100 | polxy | (~polxy@2001:b07:a15:ec0c:14d1:ef73:1822:ceed) (Client Quit) |
2021-03-16 18:10:16 +0100 | <curiousgay> | btw, I was taking a look at haddock's dependencies |
2021-03-16 18:10:34 +0100 | <curiousgay> | it always depends on specific GHC x series |
2021-03-16 18:10:38 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-03-16 18:10:40 +0100 | <merijn> | Well, yes |
2021-03-16 18:11:09 +0100 | <curiousgay> | does that mean GHC frequently breaks compatibility? |
2021-03-16 18:11:13 +0100 | <merijn> | It uses GHC to parse code, how could it not |
2021-03-16 18:11:17 +0100 | <koz_> | geekosaur: Is that change gonna get backported? |
2021-03-16 18:11:30 +0100 | <merijn> | curiousgay: Define "compatibility"\ |
2021-03-16 18:12:50 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 18:13:37 +0100 | <curiousgay> | merijn: haddock 2.25.0 strictly depends on GHC 9.0.x, so it won't build with GHC 9.1.x, haddock 2.24.x depend on GHC 8.10.x and won't build on any GHC 9 |
2021-03-16 18:13:38 +0100 | Lycurgus | (~niemand@98.4.116.165) |
2021-03-16 18:13:42 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-03-16 18:13:49 +0100 | <curiousgay> | s/on/with/ |
2021-03-16 18:13:56 +0100 | banjiewen__ | (sid115913@gateway/web/irccloud.com/x-rsmfwpptfrqcdppn) () |
2021-03-16 18:13:59 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-03-16 18:14:12 +0100 | b20n | (sid115913@gateway/web/irccloud.com/x-lczkliukjfykdgvl) |
2021-03-16 18:14:19 +0100 | Morrow_ | (~MorrowM_@147.161.13.246) |
2021-03-16 18:14:40 +0100 | <merijn> | curiousgay: Because haddock uses GHC as library and therefore depends on GHC internals |
2021-03-16 18:14:45 +0100 | Sorna | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
2021-03-16 18:15:10 +0100 | Sornaensis | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Read error: Connection reset by peer) |
2021-03-16 18:15:40 +0100 | MorrowM | (~MorrowM_@147.161.13.246) |
2021-03-16 18:15:54 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Ping timeout: 246 seconds) |
2021-03-16 18:17:42 +0100 | <geekosaur> | sorry, I don't know |
2021-03-16 18:18:08 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2021-03-16 18:18:31 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-03-16 18:18:51 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 18:19:11 +0100 | stree | (~stree@68.36.8.116) (Quit: Caught exception) |
2021-03-16 18:19:38 +0100 | stree | (~stree@68.36.8.116) |
2021-03-16 18:19:44 +0100 | <monochrom> | haddock comes with GHC anyway. You are not supposed to build haddock yourself. (Apart from building GHC yourself.) |
2021-03-16 18:20:09 +0100 | nhs_ | (~nhs@70.113.67.118) (Read error: Connection reset by peer) |
2021-03-16 18:20:45 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-03-16 18:22:51 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-03-16 18:23:50 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-03-16 18:25:36 +0100 | Sorny | (~Sornaensi@077213203030.dynamic.telenor.dk) |
2021-03-16 18:25:52 +0100 | <tomsmeding> | (which you're also not supposed to do if you're not hacking on GHC) |
2021-03-16 18:26:41 +0100 | <dolio> | I build every version of GHC from source, but I don't hack on it. |
2021-03-16 18:26:59 +0100 | <tomsmeding> | okay sure, and also unless you want it for a specific reason that most people don't have :p |
2021-03-16 18:27:38 +0100 | <tomsmeding> | dolio: for my curiosity, why do you build ghc yourself? Custom optimisation flags? |
2021-03-16 18:27:54 +0100 | <merijn> | masochism :p |
2021-03-16 18:28:01 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 18:28:03 +0100 | landonf_ | landonf |
2021-03-16 18:28:19 +0100 | <dolio> | No, I have many versions of GHC installed in /opt/ghc. |
2021-03-16 18:28:40 +0100 | <merijn> | dolio: That seems unrelated to building GHC from source, though? |
2021-03-16 18:28:48 +0100 | Sorna | (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 245 seconds) |
2021-03-16 18:28:56 +0100 | <dolio> | Well, I use the previous version to build the next one. |
2021-03-16 18:29:20 +0100 | <tomsmeding> | to help prevent the Thompson problem? |
2021-03-16 18:30:29 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 18:30:31 +0100 | <dolio> | I guess another reason is that it ensures they're built against the right library versions on my system, although it's uncommon for that to be a problem. |
2021-03-16 18:30:42 +0100 | <dolio> | I think it was a problem around the time I started. |
2021-03-16 18:32:17 +0100 | <dolio> | I needed to use the Fedora-distributed ghc to begin the process, because the ghc homepage one was built on Debian or something, and they disagreed on glibc or something. |
2021-03-16 18:32:55 +0100 | <monochrom> | I did that for a little while, around the time of 7.6. It was the infamous libgmp versioning problem. |
2021-03-16 18:33:11 +0100 | <dolio> | Oh, maybe that's what itw as. |
2021-03-16 18:33:43 +0100 | <dolio> | 7.6 is the earliest version I have, I think. |
2021-03-16 18:34:07 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2021-03-16 18:34:35 +0100 | Lycurgus | (~niemand@98.4.116.165) (Quit: Exeunt) |
2021-03-16 18:35:16 +0100 | <monochrom> | http://www.vex.net/~trebla/haskell/I-built-GHC.xhtml |
2021-03-16 18:35:29 +0100 | <monochrom> | "Give a man a fire, and he is warm for a day. Show him how to build GHC, and he is warm for life." |
2021-03-16 18:35:31 +0100 | <edwardk> | i was staring at https://hackage.haskell.org/package/recover-rtti and wishing i could register custom handlers for my own types. then i realized there might be a way to make an extensible version of that scheme, but its super baroque. |
2021-03-16 18:35:47 +0100 | <LKoen> | are you saying GHC will overheat the computer? |
2021-03-16 18:36:56 +0100 | <dolio> | Anyhow, it doesn't take a significant amount of effort at this point. Just time. |
2021-03-16 18:37:03 +0100 | <edwardk> | haskell doesn't really give me hooks that let me in separate files tell a function it should also consider another case.. but c++ does. i can register a top level definition of a class and have it hook itself on a global list of such objects in its static initializer. libraries that parse command lines, etc. tend to do this in c++ all the time. |
2021-03-16 18:37:07 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:17e3:41cc:739d:497d) (Ping timeout: 260 seconds) |
2021-03-16 18:37:24 +0100 | <edwardk> | and we have inline-c-cpp which can use template haskell to spew out a bit of c++ and link it into the program you are writing |
2021-03-16 18:38:07 +0100 | <dolio> | I think the biggest snag I've hit was that I unrelatedly installed some of the dependencies needed to build the docs on the latest version, so GHC thought it should try to build them, but wasn't able to. |
2021-03-16 18:38:18 +0100 | <edwardk> | so in theory one could install a c++-side list of all the handlers you want, then haskell side use a template haskell splice to register a new handler for a new type, and then extend the scheme offered by something like recover-rtti to new types you made up after the library was coined. |
2021-03-16 18:39:11 +0100 | <edwardk> | the main difference would be that classifier would become a data family and some other things like that would change, but overall i think you could keep the feel of the library |
2021-03-16 18:39:36 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 18:47:37 +0100 | seven_three | (~user@2601:18d:c180:4060::2829) |
2021-03-16 18:48:30 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-03-16 18:48:49 +0100 | shad0w_ | (67573b43@103.87.59.67) |
2021-03-16 18:49:38 +0100 | average | (uid473595@gateway/web/irccloud.com/x-ywsfnraofofbenfj) (Quit: Connection closed for inactivity) |
2021-03-16 18:50:19 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-03-16 18:50:41 +0100 | <hyiltiz> | What's the lens for [[Maybe Bool]], i.e. I'd like to view, (also set and over) the Bool nested inside the Maybe inside the list inside a list, and |
2021-03-16 18:50:41 +0100 | <seven_three> | would you say that parser combinators have an advantage over regexps in terms of creating recursive expression parsers? For example data with a structure like `(4 + (4 + (4 * (2 + 1))))`? |
2021-03-16 18:50:50 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds) |
2021-03-16 18:51:27 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-03-16 18:51:27 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2021-03-16 18:51:53 +0100 | <hyiltiz> | I could do `fromJust $ x !! m !! n` but returning the whole stuff with only a single element changed (aka set) is more clunky |
2021-03-16 18:52:03 +0100 | <dolio> | Yes, regular expressions are only suitable for very simple languages. |
2021-03-16 18:52:53 +0100 | hackage | haskoin-store 0.50.2 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.50.2 (jprupp) |
2021-03-16 18:52:58 +0100 | <dolio> | Like, tokenizing at most, really. |
2021-03-16 18:54:22 +0100 | <edmundnoble> | Yeah regular expressions are really not about "nesting", they're more "linear" |
2021-03-16 18:54:29 +0100 | <seven_three> | dolio: Yes I am finding it unnatural currently |
2021-03-16 18:54:48 +0100 | <dminuoso> | % [[Just True, Just False], [Just True]] ^.. each . each . _Just -- hyiltiz |
2021-03-16 18:54:48 +0100 | <yahb> | dminuoso: [True,False,True] |
2021-03-16 18:56:38 +0100 | <seven_three> | I see how that works. You could quickly get into making really big parsers that you can just call like that. And then easily use those blocks to make a grammar. |
2021-03-16 18:57:46 +0100 | conal | (~conal@64.71.133.70) |
2021-03-16 18:58:05 +0100 | <hyiltiz> | domenkozar[m]: thx! Now can I define ^..each.each._Just myself (it is fine if it only works for [[Maybe Bool]] so I do not have to pull in a dependency? |
2021-03-16 18:58:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-03-16 18:58:29 +0100 | <seven_three> | Thats what I am trying to do now with my regexs but it is more about program structure then the regexs themselves |
2021-03-16 18:58:34 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-03-16 18:58:45 +0100 | stevenxl | (uid133530@gateway/web/irccloud.com/x-ugkyksdwpgkpdwuw) (Quit: Connection closed for inactivity) |
2021-03-16 18:58:56 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) |
2021-03-16 18:59:02 +0100 | geekosaur | (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
2021-03-16 19:00:55 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 19:01:13 +0100 | <hyiltiz> | also I am not doing each though, I have the coordinates (m,n) for the 2D list [[]] that I'd like to view and edit (it is a grid) |
2021-03-16 19:02:44 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2021-03-16 19:02:47 +0100 | Deide | (~Deide@217.155.19.23) |
2021-03-16 19:03:54 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-jiwetompintgtwib) (Quit: Connection closed for inactivity) |
2021-03-16 19:06:31 +0100 | conal | (~conal@192.145.118.119) |
2021-03-16 19:07:28 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer) |
2021-03-16 19:09:11 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-03-16 19:10:34 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 268 seconds) |
2021-03-16 19:11:36 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-03-16 19:12:07 +0100 | plutoniix | (~q@node-un3.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2021-03-16 19:12:25 +0100 | jrqc | (~rofl@96.78.87.197) (Ping timeout: 276 seconds) |
2021-03-16 19:13:02 +0100 | rj_ | (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
2021-03-16 19:13:53 +0100 | nisstyre | (wes@python-zero/conduct-committee/nisstyre) (Ping timeout: 260 seconds) |
2021-03-16 19:14:56 +0100 | jrqc | (~rofl@96.78.87.197) |
2021-03-16 19:15:08 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) |
2021-03-16 19:16:02 +0100 | nisstyre | (wes@python-zero/conduct-committee/nisstyre) |
2021-03-16 19:16:18 +0100 | geekosaur | (82650c7a@130.101.12.122) |
2021-03-16 19:16:55 +0100 | rj_ | (~x@gateway/tor-sasl/rj) |
2021-03-16 19:18:12 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2021-03-16 19:18:14 +0100 | jakalx | (~jakalx@base.jakalx.net) ("Error from remote client") |
2021-03-16 19:18:29 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-03-16 19:19:13 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
2021-03-16 19:20:44 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-03-16 19:22:50 +0100 | <edwardk> | hyiltiz: traverse.traverse.traverse |
2021-03-16 19:23:22 +0100 | <dolio> | That won't set. But it's somewhat unclear what setting means. |
2021-03-16 19:24:05 +0100 | <dolio> | At least, if it's supposed to be based on index. |
2021-03-16 19:24:29 +0100 | ADG1089__ | (~aditya@106.214.253.186) |
2021-03-16 19:25:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 19:25:25 +0100 | wickedjargon | (~ff@2607:9880:2198:4e:fd0d:cbfa:ce9e:8708) (Remote host closed the connection) |
2021-03-16 19:25:52 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) |
2021-03-16 19:27:31 +0100 | jdt_ | jdt |
2021-03-16 19:27:34 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
2021-03-16 19:27:55 +0100 | idhugo | (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds) |
2021-03-16 19:29:06 +0100 | waleee-cl | (uid373333@gateway/web/irccloud.com/x-trkstrvybvcbmzax) |
2021-03-16 19:30:31 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) (Remote host closed the connection) |
2021-03-16 19:30:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-03-16 19:30:37 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:31:14 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:ed20:88c:e6f5:e319) (Ping timeout: 264 seconds) |
2021-03-16 19:31:49 +0100 | <tomsmeding> | hyiltiz: also random writes in a list are kind of slow |
2021-03-16 19:31:59 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:2c5:e186:20dd:e6dd) |
2021-03-16 19:32:02 +0100 | <tomsmeding> | so depends on how often, how large, and how serious :p |
2021-03-16 19:32:16 +0100 | stevenxl | (uid133530@gateway/web/irccloud.com/x-lcskfaqclhmjmrbi) |
2021-03-16 19:32:44 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 19:33:46 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:35:47 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 19:36:05 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:36:20 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) |
2021-03-16 19:36:39 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-03-16 19:36:59 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-03-16 19:37:13 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 19:37:45 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:38:52 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 19:39:17 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:39:19 +0100 | <hyiltiz> | it is always 3x3 |
2021-03-16 19:39:19 +0100 | <hyiltiz> | at most 9 times :D |
2021-03-16 19:39:19 +0100 | <hyiltiz> | so performance is not concern |
2021-03-16 19:40:05 +0100 | Chousuke_ | (oranenj@coffee.modeemi.fi) (Remote host closed the connection) |
2021-03-16 19:40:39 +0100 | Chousuke | (oranenj@coffee.modeemi.fi) |
2021-03-16 19:40:50 +0100 | joncol | (~jco@c188-150-101-195.bredband.comhem.se) (Remote host closed the connection) |
2021-03-16 19:42:10 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Remote host closed the connection) |
2021-03-16 19:43:19 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 19:43:58 +0100 | <hyiltiz> | assuming the baord is b, setting means b[m][n]=Just newVal in psudocode |
2021-03-16 19:44:23 +0100 | <hyiltiz> | [[Maybe Bool]] is a 2D grid/borad |
2021-03-16 19:45:18 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 19:48:09 +0100 | jdt | (~jdt@38.77.195.50) ("ERC (IRC client for Emacs 26.3)") |
2021-03-16 19:48:11 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-03-16 19:48:37 +0100 | tinhatcat | (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) |
2021-03-16 19:48:44 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) |
2021-03-16 19:49:21 +0100 | elliott_ | (~elliott_@170.121.246.234) (Ping timeout: 246 seconds) |
2021-03-16 19:50:21 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Client Quit) |
2021-03-16 19:50:22 +0100 | tinhatcat | (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) (Client Quit) |
2021-03-16 19:52:17 +0100 | geowiesnot_bis | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-03-16 19:55:14 +0100 | nfd | (~nfd9001@2601:602:77f:1820:ad30:5ebc:6324:c6c5) (Ping timeout: 264 seconds) |
2021-03-16 19:57:11 +0100 | mikoto-chan | (~anass@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan) |
2021-03-16 19:58:10 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-03-16 19:58:12 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-03-16 19:58:34 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-03-16 19:58:58 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) |
2021-03-16 19:59:00 +0100 | Tario | (~Tario@201.192.165.173) |
2021-03-16 19:59:38 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 20:02:46 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) |
2021-03-16 20:03:33 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 264 seconds) |
2021-03-16 20:03:54 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-luczsnoowjqghapa) (Quit: Connection closed for inactivity) |
2021-03-16 20:05:13 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:05:50 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 260 seconds) |
2021-03-16 20:08:54 +0100 | shad0w_ | (67573b43@103.87.59.67) (Quit: Connection closed) |
2021-03-16 20:09:21 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:2c5:e186:20dd:e6dd) (Ping timeout: 244 seconds) |
2021-03-16 20:10:13 +0100 | xff0x | (~xff0x@2001:1a81:52ee:e100:f577:1f30:738f:e56) |
2021-03-16 20:10:41 +0100 | codygman` | (~user@47.186.207.161) |
2021-03-16 20:11:45 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 20:15:34 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:17:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 20:18:04 +0100 | seven_three | (~user@2601:18d:c180:4060::2829) ("ERC (IRC client for Emacs 27.1)") |
2021-03-16 20:19:41 +0100 | elliott_ | (~elliott_@170.121.246.234) (Ping timeout: 244 seconds) |
2021-03-16 20:21:13 +0100 | <Unhammer> | I wonder how much work it'd be to hack lsp-mode into changing the message "Occurs check: cannot construct the infinite type" into "You've got your arguments ass-backwards again" |
2021-03-16 20:21:15 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:22:54 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 20:24:00 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:26:18 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Remote host closed the connection) |
2021-03-16 20:26:27 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 246 seconds) |
2021-03-16 20:27:10 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-03-16 20:27:32 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-03-16 20:28:11 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-03-16 20:28:43 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9) |
2021-03-16 20:29:50 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 20:30:05 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-03-16 20:30:15 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:31:11 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-03-16 20:31:34 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 20:31:41 +0100 | metadave | (sid28102@gateway/web/irccloud.com/x-ojtbvqwfgtmjogse) () |
2021-03-16 20:32:30 +0100 | elliott_ | (~elliott_@170.121.246.234) |
2021-03-16 20:34:48 +0100 | ajc | (~ajc@69.231.232.79) (Remote host closed the connection) |
2021-03-16 20:35:16 +0100 | ajc | (~ajc@69.231.232.79) |
2021-03-16 20:35:47 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
2021-03-16 20:36:11 +0100 | elliott_ | (~elliott_@170.121.246.234) (Read error: Connection reset by peer) |
2021-03-16 20:39:14 +0100 | hwataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-03-16 20:39:17 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-03-16 20:41:05 +0100 | hwataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-03-16 20:41:49 +0100 | my_name_is_not_j | (mynameisno@gateway/shell/matrix.org/x-gktbydycwnuqcokz) |
2021-03-16 20:41:55 +0100 | weechat3 | (~mingc@2400:8902::f03c:91ff:feb7:8e82) (Ping timeout: 240 seconds) |
2021-03-16 20:42:00 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 20:43:36 +0100 | Franciman | (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
2021-03-16 20:44:00 +0100 | cur8or | (~cur8or@72canterbury.cybersmart.co.za) |
2021-03-16 20:44:16 +0100 | <shapr> | Unhammer: I recently saw https://doisinkidney.com/posts/2021-03-14-hyperfunctions.html which mentions the "infinite type" can be used for good |
2021-03-16 20:44:49 +0100 | <shapr> | I'm trying to write a basic slackbot with https://hackage.haskell.org/package/slack-web and https://hackage.haskell.org/package/weeder |
2021-03-16 20:45:03 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-03-16 20:45:13 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) (Remote host closed the connection) |
2021-03-16 20:45:16 +0100 | <shapr> | hyvää huomenta Tuplanolla |
2021-03-16 20:46:01 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 20:46:06 +0100 | <Tuplanolla> | Thanks, shapr, although it's evening and my system just crashed after 400 days up. |
2021-03-16 20:46:14 +0100 | <shapr> | aw :-( |
2021-03-16 20:46:46 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 20:46:49 +0100 | Franciman | (~francesco@host-79-53-62-46.retail.telecomitalia.it) |
2021-03-16 20:47:02 +0100 | <Tuplanolla> | That's a decent run. |
2021-03-16 20:47:53 +0100 | hackage | wraxml 0.4.4.2 - Lazy wrapper to HaXML, HXT, TagSoup via custom XML tree structure https://hackage.haskell.org/package/wraxml-0.4.4.2 (HenningThielemann) |
2021-03-16 20:49:14 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 268 seconds) |
2021-03-16 20:51:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-03-16 20:51:34 +0100 | weechat3 | (~mingc@li1683-39.members.linode.com) |
2021-03-16 20:52:21 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-03-16 20:53:38 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:1175:1d12:3f7a:f4b9) |
2021-03-16 20:54:21 +0100 | specdrake | (~anurag@103.209.223.76) (Remote host closed the connection) |
2021-03-16 20:54:53 +0100 | ptrcmd_ | (~ptrcmd@unaffiliated/petercommand) (Ping timeout: 256 seconds) |
2021-03-16 20:55:01 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2021-03-16 20:55:14 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-03-16 20:55:25 +0100 | nfd | (~nfd9001@c-73-225-42-170.hsd1.wa.comcast.net) |
2021-03-16 20:55:51 +0100 | Morrow_ | (~MorrowM_@147.161.13.246) (Ping timeout: 246 seconds) |
2021-03-16 20:56:25 +0100 | MorrowM | (~MorrowM_@147.161.13.246) (Ping timeout: 276 seconds) |
2021-03-16 20:57:30 +0100 | MorrowM | (~MorrowM_@147.161.13.246) |
2021-03-16 20:57:30 +0100 | Morrow_ | (~MorrowM_@147.161.13.246) |
2021-03-16 20:58:00 +0100 | <shapr> | Has anyone built a slackbot with slack-web? |
2021-03-16 20:58:15 +0100 | <shapr> | I should probably just read more docs about the Slack API |
2021-03-16 20:58:19 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-03-16 21:04:27 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-03-16 21:04:57 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
2021-03-16 21:05:12 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-03-16 21:07:09 +0100 | petersen | (~petersen@redhat/juhp) |
2021-03-16 21:08:16 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) |
2021-03-16 21:08:53 +0100 | hackage | mohws 0.2.1.7 - Modular Haskell Web Server https://hackage.haskell.org/package/mohws-0.2.1.7 (HenningThielemann) |
2021-03-16 21:09:00 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-03-16 21:10:07 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 21:10:11 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:6cd8:b958:caec:b1dc) (Remote host closed the connection) |
2021-03-16 21:10:42 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 21:13:02 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-03-16 21:15:49 +0100 | Sornaensis | (~Sornaensi@45.56.183.30) |
2021-03-16 21:16:24 +0100 | son0p | (~son0p@181.58.39.182) |
2021-03-16 21:17:30 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-03-16 21:17:56 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-03-16 21:19:17 +0100 | Sorny | (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 265 seconds) |
2021-03-16 21:21:42 +0100 | cur8or | (~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 265 seconds) |
2021-03-16 21:22:52 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-03-16 21:24:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 21:25:09 +0100 | ddellacosta | (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
2021-03-16 21:25:51 +0100 | malumore | (~malumore@151.62.119.219) (Ping timeout: 265 seconds) |
2021-03-16 21:27:42 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9) |
2021-03-16 21:29:01 +0100 | average | (uid473595@gateway/web/irccloud.com/x-fgnpvzuoluocxrze) |
2021-03-16 21:29:21 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-03-16 21:30:33 +0100 | ADG1089__ | (~aditya@106.214.253.186) (Quit: Konversation terminated!) |
2021-03-16 21:37:22 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-03-16 21:38:43 +0100 | geekosaur | (82650c7a@130.101.12.122) (Quit: Connection closed) |
2021-03-16 21:38:50 +0100 | jneira | (501e6406@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.6) |
2021-03-16 21:39:47 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 21:39:52 +0100 | kuribas | (~user@ptr-25vy0iaa19zfetqtyes.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-03-16 21:40:39 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-03-16 21:45:08 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 21:45:10 +0100 | conal | (~conal@192.145.118.119) (Quit: Computer has gone to sleep.) |
2021-03-16 21:45:37 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) |
2021-03-16 21:45:56 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-03-16 21:45:58 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) (Ping timeout: 244 seconds) |
2021-03-16 21:46:12 +0100 | Sathiana | (~kath@185-113-98-38.cust.bredband2.com) |
2021-03-16 21:46:35 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) |
2021-03-16 21:48:32 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-03-16 21:48:58 +0100 | <hololeap> | @djinn t m (m a) -> t m a |
2021-03-16 21:48:58 +0100 | <lambdabot> | -- f cannot be realized. |
2021-03-16 21:49:21 +0100 | <hololeap> | @djinn (MonadTrans t, Monad (t m), Monad m) => t m (m a) -> t m a |
2021-03-16 21:49:21 +0100 | <lambdabot> | Error: Class not found: MonadTrans |
2021-03-16 21:50:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) (Ping timeout: 264 seconds) |
2021-03-16 21:50:33 +0100 | roconnor | (~roconnor@host-45-58-230-226.dyn.295.ca) (Client Quit) |
2021-03-16 21:50:51 +0100 | <Taneb> | :t join . fmap lift |
2021-03-16 21:50:53 +0100 | <lambdabot> | (MonadTrans t, Monad m, Monad (t m)) => t m (m a) -> t m a |
2021-03-16 21:51:06 +0100 | <hololeap> | sweet, thanks Taneb |
2021-03-16 21:51:29 +0100 | <Taneb> | :t (>>= lift) |
2021-03-16 21:51:31 +0100 | <lambdabot> | (MonadTrans t, Monad m, Monad (t m)) => t m (m b) -> t m b |
2021-03-16 21:51:42 +0100 | conal | (~conal@192.145.118.119) |
2021-03-16 21:53:16 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 21:58:57 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
2021-03-16 21:59:55 +0100 | cawfee | (chiya@2406:3003:2077:2341::babe) (Ping timeout: 240 seconds) |
2021-03-16 22:00:13 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:cd42:97fd:be98:3cd9) (Ping timeout: 272 seconds) |
2021-03-16 22:01:20 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-03-16 22:01:55 +0100 | stevenxl | (uid133530@gateway/web/irccloud.com/x-lcskfaqclhmjmrbi) (Quit: Connection closed for inactivity) |
2021-03-16 22:01:58 +0100 | kam1 | (~kam1@83.123.167.219) (Read error: Connection reset by peer) |
2021-03-16 22:02:05 +0100 | hrdl_ | hrdl |
2021-03-16 22:03:58 +0100 | coot | (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) |
2021-03-16 22:04:43 +0100 | Sathiana | (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.0) |
2021-03-16 22:05:31 +0100 | Sathiana | (~kath@185-113-98-38.cust.bredband2.com) |
2021-03-16 22:06:07 +0100 | cawfee | (chiya@2406:3003:2077:2341::babe) |
2021-03-16 22:06:33 +0100 | Sathiana | (~kath@185-113-98-38.cust.bredband2.com) (Client Quit) |
2021-03-16 22:08:32 +0100 | qih_ | (~pi@210-54-120-166.adsl.xtra.co.nz) |
2021-03-16 22:09:01 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 22:10:34 +0100 | Not-Morgan | (~mason@2620:101:c040:860:7483:49e5:8f17:9887) |
2021-03-16 22:10:48 +0100 | Alleria__ | (~textual@zrcout.mskcc.org) (Ping timeout: 265 seconds) |
2021-03-16 22:11:05 +0100 | malumore | (~malumore@151.62.119.219) |
2021-03-16 22:11:21 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:f837:3533:97b:1f44) |
2021-03-16 22:11:48 +0100 | qih | (~pi@210-54-120-166.adsl.xtra.co.nz) (Ping timeout: 260 seconds) |
2021-03-16 22:12:29 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:e09e:eb7a:70f9:6a37) |
2021-03-16 22:13:36 +0100 | Not-Morgan | (~mason@2620:101:c040:860:7483:49e5:8f17:9887) () |
2021-03-16 22:14:23 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-03-16 22:15:45 +0100 | cuz | (~user@38.140.58.234) |
2021-03-16 22:15:48 +0100 | Not-Morgan | (~mason@2620:101:c040:860:7483:49e5:8f17:9887) |
2021-03-16 22:16:09 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 264 seconds) |
2021-03-16 22:17:47 +0100 | Not-Morgan | (~mason@2620:101:c040:860:7483:49e5:8f17:9887) () |
2021-03-16 22:19:25 +0100 | qih_ | (~pi@210-54-120-166.adsl.xtra.co.nz) (Quit: leaving) |
2021-03-16 22:20:11 +0100 | Not-Morg1n | (~Not-Morga@nat-5-156.uws.ualberta.ca) |
2021-03-16 22:20:35 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-03-16 22:20:54 +0100 | Not-Morg1n | (~Not-Morga@nat-5-156.uws.ualberta.ca) (Client Quit) |
2021-03-16 22:22:34 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) |
2021-03-16 22:23:02 +0100 | nfd | (~nfd9001@c-73-225-42-170.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) |
2021-03-16 22:23:09 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-03-16 22:23:28 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-03-16 22:28:51 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 244 seconds) |
2021-03-16 22:29:18 +0100 | lawid_ | (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) (Quit: lawid_) |
2021-03-16 22:30:34 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-03-16 22:31:23 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-03-16 22:31:25 +0100 | lawid | (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) |
2021-03-16 22:32:26 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
2021-03-16 22:36:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-03-16 22:39:02 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) (Read error: Connection reset by peer) |
2021-03-16 22:39:46 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) |
2021-03-16 22:41:08 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2021-03-16 22:41:28 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2021-03-16 22:41:53 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-03-16 22:42:32 +0100 | minoru_shiraeesh | (~shiraeesh@46.34.206.65) |
2021-03-16 22:42:36 +0100 | Not_Morgan | (~Not_Morga@nat-5-156.uws.ualberta.ca) |
2021-03-16 22:42:48 +0100 | Not_Morgan | (~Not_Morga@nat-5-156.uws.ualberta.ca) () |
2021-03-16 22:43:29 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-03-16 22:43:36 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Client Quit) |
2021-03-16 22:44:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-03-16 22:44:28 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds) |
2021-03-16 22:47:32 +0100 | michalz | (~user@185.246.204.47) (Remote host closed the connection) |
2021-03-16 22:48:10 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) (Remote host closed the connection) |
2021-03-16 22:49:23 +0100 | hackage | spacecookie 1.0.0.0 - Gopher server library and daemon https://hackage.haskell.org/package/spacecookie-1.0.0.0 (sternenseemann) |
2021-03-16 22:49:45 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) |
2021-03-16 22:51:06 +0100 | Codaraxis | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-03-16 22:54:10 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) (Ping timeout: 244 seconds) |
2021-03-16 22:54:18 +0100 | alx741 | (~alx741@181.196.68.64) (Ping timeout: 265 seconds) |
2021-03-16 23:01:28 +0100 | Hi-Angel | (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru) |
2021-03-16 23:04:08 +0100 | Moyst | (~moyst@212-149-213-144.bb.dnainternet.fi) (Ping timeout: 256 seconds) |
2021-03-16 23:06:15 +0100 | fendor | (~fendor@178.165.129.131.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-03-16 23:06:42 +0100 | alx741 | (~alx741@186.178.109.138) |
2021-03-16 23:07:16 +0100 | Tops2 | (~Tobias@dyndsl-095-033-026-078.ewe-ip-backbone.de) |
2021-03-16 23:08:31 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:e09e:eb7a:70f9:6a37) (Ping timeout: 265 seconds) |
2021-03-16 23:08:36 +0100 | Not_Morgan | (~Not_Morga@nat-5-156.uws.ualberta.ca) |
2021-03-16 23:09:53 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-03-16 23:10:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-03-16 23:10:32 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-03-16 23:12:05 +0100 | Franciman | (~francesco@host-79-53-62-46.retail.telecomitalia.it) (Quit: Leaving) |
2021-03-16 23:12:28 +0100 | Moyst | (~moyst@212-149-213-144.bb.dnainternet.fi) |
2021-03-16 23:13:22 +0100 | <hololeap> | is there any way to rename a pakage once it's been uploaded? |
2021-03-16 23:13:25 +0100 | <hololeap> | to hackage |
2021-03-16 23:14:14 +0100 | crobbins | (~crobbins@2600:1700:48eb:8490:b577:6e36:e383:a1d9) (Remote host closed the connection) |
2021-03-16 23:15:27 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-03-16 23:16:08 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-03-16 23:16:18 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-03-16 23:17:51 +0100 | Thra11 | (~Thra11@5.1.169.217.in-addr.arpa) |
2021-03-16 23:19:20 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) |
2021-03-16 23:19:33 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-03-16 23:19:33 +0100 | <Thra11> | As far as cabal is concerned, does Cabal-2.2.0.1 satisfy the requirement `Cabal > 2.2`? |
2021-03-16 23:21:22 +0100 | hiroaki | (~hiroaki@2a02:8108:8c40:2bb8:3347:96de:66cc:cf9e) |
2021-03-16 23:21:38 +0100 | <monochrom> | I think yes. |
2021-03-16 23:24:02 +0100 | molehillish | (~molehilli@2600:8800:8d06:1800:2195:2964:ee:f10b) (Ping timeout: 264 seconds) |
2021-03-16 23:27:07 +0100 | <Thra11> | `Cabal > 2.2` seems like a slightly odd thing to specify in that case. "I don't want Cabal-2.2.0.0, but if it's got even the most insignificant change afterwards, it's fine". I suppose if you know there's a required bug fix in 2.2.0.1 it might make sense. |
2021-03-16 23:27:51 +0100 | pavonia_ | (~user@unaffiliated/siracusa) |
2021-03-16 23:28:07 +0100 | vnz_ | (~vnz@2001:bc8:604:94f::1) |
2021-03-16 23:28:50 +0100 | fissureman | (~quassel@c-73-201-159-163.hsd1.dc.comcast.net) |
2021-03-16 23:29:36 +0100 | lawid_ | (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) |
2021-03-16 23:29:42 +0100 | recon_- | (~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.) |
2021-03-16 23:30:25 +0100 | son0p_ | (~son0p@181.58.39.182) |
2021-03-16 23:30:27 +0100 | <hololeap> | yeah, Cabal >= 2.2 makes more sense |
2021-03-16 23:30:56 +0100 | icebreak1r | (michalc@freeshell.de) |
2021-03-16 23:30:57 +0100 | cole-h_ | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-03-16 23:31:06 +0100 | <hololeap> | 'package > num' is usually a typo |
2021-03-16 23:31:09 +0100 | recon_- | (~quassel@2602:febc:0:b6::6ca2) |
2021-03-16 23:31:31 +0100 | weechat_4 | (~mingc@2400:8902::f03c:91ff:feb7:8e82) |
2021-03-16 23:31:43 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 245 seconds) |
2021-03-16 23:32:02 +0100 | <monochrom> | If the bug fix in 2.2.0.1 is desired, >= 2.2.0.1 is much clearer. |
2021-03-16 23:34:19 +0100 | lemmih | (~lemmih@2406:3003:2072:44:5ef0:b049:fd85:f050) (Remote host closed the connection) |
2021-03-16 23:34:40 +0100 | lemmih | (~lemmih@2406:3003:2072:44:ae54:3bb1:1680:3911) |
2021-03-16 23:35:25 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (*.net *.split) |
2021-03-16 23:35:25 +0100 | pavonia | (~user@unaffiliated/siracusa) (*.net *.split) |
2021-03-16 23:35:25 +0100 | Hi-Angel | (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru) (*.net *.split) |
2021-03-16 23:35:25 +0100 | lawid | (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) (*.net *.split) |
2021-03-16 23:35:25 +0100 | jneira | (501e6406@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.6) (*.net *.split) |
2021-03-16 23:35:25 +0100 | son0p | (~son0p@181.58.39.182) (*.net *.split) |
2021-03-16 23:35:25 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (*.net *.split) |
2021-03-16 23:35:25 +0100 | weechat3 | (~mingc@li1683-39.members.linode.com) (*.net *.split) |
2021-03-16 23:35:25 +0100 | vnz | (~vnz@unaffiliated/vnz) (*.net *.split) |
2021-03-16 23:35:25 +0100 | tanner_ | (~tanner@216.106.138.184) (*.net *.split) |
2021-03-16 23:35:25 +0100 | carlomagno1 | (~cararell@148.87.23.5) (*.net *.split) |
2021-03-16 23:35:25 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (*.net *.split) |
2021-03-16 23:35:25 +0100 | pehjota | (~pehjota@217.146.82.202) (*.net *.split) |
2021-03-16 23:35:25 +0100 | ukari | (~ukari@unaffiliated/ukari) (*.net *.split) |
2021-03-16 23:35:25 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (*.net *.split) |
2021-03-16 23:35:25 +0100 | icebreaker | (michalc@unaffiliated/icebreaker) (*.net *.split) |
2021-03-16 23:35:26 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) (*.net *.split) |
2021-03-16 23:35:26 +0100 | vnz_ | vnz |
2021-03-16 23:35:26 +0100 | vnz | (~vnz@2001:bc8:604:94f::1) (Changing host) |
2021-03-16 23:35:26 +0100 | vnz | (~vnz@unaffiliated/vnz) |
2021-03-16 23:35:38 +0100 | zopsi | (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Max SendQ exceeded) |
2021-03-16 23:36:02 +0100 | zopsi | (~zopsi@irc.dir.ac) |
2021-03-16 23:37:38 +0100 | pyuk | (~vroom@217.138.252.181) |
2021-03-16 23:38:57 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 264 seconds) |
2021-03-16 23:39:43 +0100 | RandomArcher | (~RandomArc@90.153.151.187) |
2021-03-16 23:40:33 +0100 | kam1 | (~kam1@83.123.167.219) |
2021-03-16 23:40:44 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2021-03-16 23:40:52 +0100 | puke | (~vroom@217.138.252.202) (Ping timeout: 276 seconds) |
2021-03-16 23:41:32 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-03-16 23:42:03 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-kiyfxvthgbbyzfbg) (Quit: Connection closed for inactivity) |
2021-03-16 23:42:06 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-03-16 23:42:13 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-03-16 23:42:15 +0100 | Tops2 | (~Tobias@dyndsl-095-033-026-078.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-03-16 23:42:18 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) |
2021-03-16 23:42:38 +0100 | carlomagno | (~cararell@148.87.23.5) |
2021-03-16 23:43:19 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Ping timeout: 265 seconds) |
2021-03-16 23:43:36 +0100 | acidjnk_new | (~acidjnk@p200300d0c72b9506e0723511d2830c2e.dip0.t-ipconnect.de) |
2021-03-16 23:44:20 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) |
2021-03-16 23:44:54 +0100 | Hi-Angel | (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru) |
2021-03-16 23:45:48 +0100 | dragestil_ | dragestil |
2021-03-16 23:46:44 +0100 | pavonia_ | pavonia |
2021-03-16 23:48:33 +0100 | pyuk | (~vroom@217.138.252.181) (Quit: pyuk) |
2021-03-16 23:48:53 +0100 | puke | (~vroom@217.138.252.181) |
2021-03-16 23:49:12 +0100 | spoonm | (~spoonm@tokyo.spoonm.org) (Ping timeout: 260 seconds) |
2021-03-16 23:50:05 +0100 | malumore | (~malumore@151.62.119.219) (Ping timeout: 265 seconds) |
2021-03-16 23:53:46 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection) |
2021-03-16 23:55:26 +0100 | molehillish | (~molehilli@ip98-167-226-26.ph.ph.cox.net) |
2021-03-16 23:56:14 +0100 | LKoen | (~LKoen@194.250.88.92.rev.sfr.net) |
2021-03-16 23:56:47 +0100 | <Axman6> | @hoogle joist |
2021-03-16 23:56:47 +0100 | <lambdabot> | No results found |
2021-03-16 23:56:49 +0100 | <Axman6> | @hoogle hoist |
2021-03-16 23:56:50 +0100 | <lambdabot> | Pipes hoist :: (MFunctor t, Monad m) => (forall a . () => m a -> n a) -> t m b -> t n b |
2021-03-16 23:56:50 +0100 | <lambdabot> | Control.Monad.Morph hoist :: (MFunctor t, Monad m) => (forall a . m a -> n a) -> t m b -> t n b |
2021-03-16 23:56:50 +0100 | <lambdabot> | Streaming hoist :: (MFunctor t, Monad m) => (forall a . () => m a -> n a) -> t m b -> t n b |
2021-03-16 23:57:06 +0100 | <Axman6> | % :t hoist |
2021-03-16 23:57:06 +0100 | <yahb> | Axman6: (Recursive s, Corecursive t) => (forall a. Base s a -> Base t a) -> s -> t |
2021-03-16 23:57:19 +0100 | <Axman6> | % :t Control.Monad.Morph.hoist |
2021-03-16 23:57:20 +0100 | <yahb> | Axman6: ; <interactive>:1:1: error:; Not in scope: `Control.Monad.Morph.hoist'; No module named `Control.Monad.Morph' is imported. |
2021-03-16 23:57:23 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:85cc:3a34:36cf:1a53) (Ping timeout: 272 seconds) |
2021-03-16 23:58:33 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |