Logs on 2021-02-27 (freenode/#haskell)
| 00:00:17 | <hololeap> | LogicT is confusing for me. i don't understand what this means semantically: forall r. (a -> r -> r) -> r -> r |
| 00:01:18 | <hololeap> | honestly, i barely understand the semantics of ContT, but why does that one specify what r is while LogicT says it has to work for any r? |
| 00:03:33 | <hololeap> | isn't id the only possible function with the type `forall r. r -> r`? |
| 00:04:14 | <hololeap> | so, with that in mind, writing it like this makes it extra confusing: forall r. (a -> (r -> r)) -> (r -> r) |
| 00:04:56 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 00:04:57 | <hololeap> | "give me a function that takes an `a` and returns `id`, and i'll give you `id`" |
| 00:06:17 | × | theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer) |
| 00:06:50 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 00:07:25 | → | theelous3 joins (~theelous3@unaffiliated/theelous3) |
| 00:07:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:08:06 | → | ozataman joins (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) |
| 00:08:23 | <monochrom> | I don't use Cont to explain Logic. I use church encoding of [a] aka foldr. |
| 00:09:34 | <hololeap> | monochrom: that would make sense to me except for the forall thrown into the mix |
| 00:09:48 | <monochrom> | (\op z -> foldr op z [1,2]) = (\op z -> 1 `op` 2 `op` z) is the church encoding of [1,2]. Type is forall r. (Int->r->r) -> r -> r |
| 00:10:02 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:d121:eb35:d957:d1dd) |
| 00:10:54 | <hololeap> | :t \op z -> foldr op z [1,2] |
| 00:10:56 | <lambdabot> | Num a => (a -> b -> b) -> b -> b |
| 00:11:51 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 265 seconds) |
| 00:12:16 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
| 00:12:20 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 00:13:20 | <monochrom> | The "forall r" or "forall b" is important because it gives you parametricity (free theorems), and it is what you need to assure that everything of type "forall r. (Int->r->r) -> r -> r)" is convertible back to some [Int]. |
| 00:14:15 | <hololeap> | maybe i was thinking about it as though it were `(a -> (forall r. r -> r)) -> (forall r. r -> r)` |
| 00:14:41 | <monochrom> | Ah yes you were thinking that, and it doesn't work. |
| 00:16:27 | <hololeap> | i don't really understand how the placement of forall affects things. i can see that those signatures are very different, but i feel like there must be something more formal than that. |
| 00:17:05 | → | borne joins (~fritjof@200116b864cbc80010f2d07664396fd4.dip.versatel-1u1.de) |
| 00:18:11 | <hololeap> | like some kind of rewrite rules, perhaps |
| 00:18:40 | <monochrom> | Not rewrite rules. forall allows you to invoke free theorems. |
| 00:20:00 | <hololeap> | ok, well for instance, is (forall r. a -> r -> r) different than (a -> (forall r. r -> r)) ? if so, why? |
| 00:20:26 | <monochrom> | Suppose someone gave me "fxs :: forall r. (Int->r->r) -> r -> r". They didn't give me the source code. But I test it with "fxs (:) []" and get [1,2]. |
| 00:21:28 | <monochrom> | Then I can invoke a free theorem to conclude: fxs = (\op z -> 1 `op` 2 `op z). Maybe the actual code is a less efficent way of doing that, I don't know, I still don't have the source code, but I know semantically it does that, there is no other choice. |
| 00:23:08 | → | banyanRob joins (268ce492@38.140.228.146) |
| 00:23:22 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:23:31 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 276 seconds) |
| 00:24:25 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 00:25:27 | <hololeap> | i get that the forall makes things as general as possible, which oftentimes limits the possible implementations |
| 00:25:37 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:26:01 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 00:26:10 | <hololeap> | but i would still like an answer to my last question, because i feel like it's important to understand this |
| 00:26:23 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 00:26:53 | <hololeap> | and it's always been a source of confusion for me |
| 00:27:03 | × | ozataman quits (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 00:29:02 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 00:30:39 | <dolio> | `T -> (forall r. U)` is equivalent to `forall r. T -> U` as long as `r` does not occur in `T`. |
| 00:30:42 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds) |
| 00:31:52 | <dolio> | But `(forall r. T) -> U` is not equivalent to `forall r. (T -> U)` even if `r` doesn't occur in `U`. |
| 00:33:41 | → | juri_ joins (~juri@178.63.35.222) |
| 00:34:10 | <dolio> | Even in classical logic that does not work. |
| 00:34:45 | <hololeap> | how would that translate to classical logic? |
| 00:35:46 | × | jess quits (jess@freenode/staff/jess) (Quit: - think) |
| 00:36:36 | <dolio> | 1. (all fruit is red) implies bananas are red, 2. for all fruit F. (F is red) implies bananas are red. |
| 00:36:40 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 00:37:00 | <dolio> | The second allows me to reason from a red apple to bananas being red. |
| 00:37:35 | → | jess joins (jess@freenode/staff/jess) |
| 00:38:04 | <dolio> | The first just reasons from the false statement that all fruit is red to bananas being red. |
| 00:39:22 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:d121:eb35:d957:d1dd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:39:45 | <hololeap> | i'm not sure i follow. how do types translate to logic? |
| 00:39:52 | → | vchlup__ joins (~vchlup@115.128.broadband17.iol.cz) |
| 00:39:56 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Read error: Connection reset by peer) |
| 00:40:14 | <hololeap> | like, what would "all fruit is red" look like as types? |
| 00:40:38 | <dolio> | (forall f. Red f) -> Red Banana |
| 00:41:11 | <dolio> | Or maybe `Fruit f -> Red f` |
| 00:41:47 | → | bennofs__ joins (~quassel@dslb-094-222-055-234.094.222.pools.vodafone-ip.de) |
| 00:41:57 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 00:42:33 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 00:44:15 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 00:44:20 | <dolio> | Clasical logic says you can reason from `(forall x. T) -> U` to `exists x. (T -> U)`. In this case, I think it involves magic foreknowledge that I am going to reason about a banana, and choosing it as the existential witness. |
| 00:45:07 | <dolio> | But programming languages often don't allow that sort of thing. |
| 00:45:24 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-timnstzhilonhtxu) |
| 00:45:37 | × | bennofs_ quits (~quassel@dslb-094-222-093-100.094.222.pools.vodafone-ip.de) (Ping timeout: 276 seconds) |
| 00:47:08 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 00:47:19 | <dolio> | Oh, actually, in this case you could choose any non-red fruit. |
| 00:48:20 | <dolio> | Anyhow, Haskell's types don't work that way. |
| 00:48:42 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) |
| 00:49:26 | <hololeap> | Red Apple -> (forall f. Red f) |
| 00:49:55 | <hololeap> | is this "all apples are red therefore all fruit is red" ? how does this make any more sense? |
| 00:50:10 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds) |
| 00:50:27 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
| 00:50:55 | <dolio> | Yeah, that's how you could read it. Anyhow, it make exactly as much sense as shifting the quantifier to the left. |
| 00:51:13 | <dolio> | 'For all fruit F, if apples are red, then F is red.' |
| 00:51:21 | <MarcelineVQ> | Iso {to : Fruit -> Red; from : Red -> Fruit } |
| 00:52:09 | × | conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:52:11 | <dolio> | You can pull a forall out from the right of an arrow, but not the left. |
| 00:52:52 | × | alx741 quits (~alx741@186.178.108.37) (Quit: alx741) |
| 00:53:05 | <hololeap> | would studying the curry-howard isomorphism lead to a deeper understanding of this? |
| 00:53:22 | <dolio> | I don't know. But this is the Curry-Howard isomorphism, basically. |
| 00:53:42 | <dolio> | It would only help you if you know the rules for intuitionistic logic with quantifiers. |
| 00:53:52 | <dolio> | Because they're the same rules. |
| 00:54:02 | <hololeap> | ok. i don't have much exposure to formal logic so i suppose that's a good place to start. |
| 00:54:14 | <hololeap> | then the forall trickery will make sense to me |
| 00:54:29 | <monochrom> | Curry-Howard will convince you that logic laws double as type laws. |
| 00:54:30 | <__minoru__shirae> | ST relies on forall trickery |
| 00:54:57 | <monochrom> | But you need free theorems to see why we bother with the forall in the first place. |
| 00:55:08 | <sclv> | i don't think that's true |
| 00:55:19 | <sclv> | polymorphism is useful regardless |
| 00:55:25 | <dolio> | It might also help the other way, because it lets you think about logical statements in terms of computationally well-behaved things. |
| 00:56:04 | <dolio> | So you can remember which logical inferences are classical-only by thinking about whether or not you could write a Haskell program that does it. |
| 00:56:36 | <monochrom> | sclv, the context is, for example, why "if f :: forall r. (Int->r)->r, f id = 5, then we are sure f = \g -> g 5". |
| 00:57:41 | <monochrom> | More contextually, the Logic monad in logict uses "forall r. (a->r->r) -> r -> r", why it is equiv to [a], and why the forall guarantees that, in particular the difficult direction. |
| 00:57:43 | <sclv> | ok that makes a bit more sense |
| 00:58:55 | <sclv> | i still think you can reason from parametricity qua parametricity without free theorems here... |
| 00:58:58 | <monochrom> | Or even more simply what's the forall doing there, why not just go along the line of the Cont r monad (i.e. drop the "forall r"). |
| 00:59:24 | <monochrom> | Yes. |
| 01:00:21 | <dolio> | Yeah, the more intuitive precursor to free theorems is useful to think about. |
| 01:01:11 | <monochrom> | Eh, I don't feel raw parametricity intuitive (until after working out a million examples). |
| 01:01:36 | <monochrom> | free theorems are almost just naturality. That's more natural and intuitive to me. >:) |
| 01:02:08 | <dolio> | I mean the original Strachey version about being 'uniform' because r is unknown to you. |
| 01:02:30 | <dolio> | Not relational parametricity. :) |
| 01:02:31 | → | supercoven_ joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 01:02:32 | × | supercoven_ quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Max SendQ exceeded) |
| 01:02:34 | <monochrom> | Oh, that one I tell my students. |
| 01:02:46 | → | supercoven_ joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 01:02:47 | × | supercoven_ quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Max SendQ exceeded) |
| 01:03:01 | → | supercoven_ joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 01:03:58 | <monochrom> | May I brag that I thought it up myself too before today knowing that Strachey said that? :) |
| 01:04:44 | <sclv> | ooh look at the fancy thinking of stuff person over here |
| 01:05:07 | <monochrom> | Because some years ago I was trying to explain to my friends why one single test case "f id = 5" already nails "so f = \g -> g 5 no other choice". |
| 01:05:07 | × | supercoven quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Ping timeout: 276 seconds) |
| 01:05:32 | <monochrom> | One friend brought up "but this doesn't work in Java because it lets you ask about the type" |
| 01:05:46 | × | m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 276 seconds) |
| 01:06:01 | <monochrom> | So I realized that it comes down to having or not having type-case, i.e., whether you know the type or not. |
| 01:06:03 | <sclv> | i tend to agree that "the expressive power of typecase" is a nice way to think about parametricity in the negative |
| 01:07:21 | <__minoru__shirae> | monochrom: you mean overriding Object.equals in Java? |
| 01:07:31 | <monochrom> | No. instanceOf. |
| 01:07:43 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 276 seconds) |
| 01:08:17 | <monochrom> | Yes, even if your method sig is like "<T> T f(T x)" your f can still use "x instanceOf Integer" and do evil things. I tried. |
| 01:09:41 | <monochrom> | sclv, years ago I realized the dialectic class struggle between "the author can do more" and "the user can deduce more". |
| 01:10:35 | <monochrom> | My Freedom Is Your Slavery. Your Ignorance Is My Strength. |
| 01:11:21 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
| 01:11:51 | × | hiroaki_ quits (~hiroaki@2a02:908:4b18:8c40:417b:587b:f9ad:a890) (Ping timeout: 272 seconds) |
| 01:11:55 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 01:12:00 | → | Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
| 01:13:35 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:13:48 | × | Feuermagier_ quits (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Client Quit) |
| 01:14:26 | × | dpl quits (~dpl@ec2-18-133-105-122.eu-west-2.compute.amazonaws.com) (Disconnected by services) |
| 01:14:27 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 01:15:03 | <sclv> | ajoint |
| 01:15:04 | <sclv> | adjoint |
| 01:15:16 | → | dpl- joins (~dpl@ec2-18-133-105-122.eu-west-2.compute.amazonaws.com) |
| 01:15:31 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 276 seconds) |
| 01:15:57 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:16:40 | → | slack1256 joins (~slack1256@45.4.2.52) |
| 01:17:31 | → | ozataman joins (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) |
| 01:18:21 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) |
| 01:18:46 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
| 01:20:02 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 01:21:03 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 01:21:42 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 01:24:33 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
| 01:26:21 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 264 seconds) |
| 01:26:21 | × | gentauro quits (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
| 01:26:52 | → | gentauro joins (~gentauro@unaffiliated/gentauro) |
| 01:28:13 | → | int80h joins (uid148779@gateway/web/irccloud.com/x-ajavsncudlqnodzo) |
| 01:30:32 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…) |
| 01:32:14 | → | plutoniix joins (~q@node-usa.pool-125-24.dynamic.totinternet.net) |
| 01:32:24 | → | psutcliffe joins (~psutcliff@m83-187-173-212.cust.tele2.se) |
| 01:32:24 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 01:32:34 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 01:36:19 | → | conal joins (~conal@64.71.133.70) |
| 01:36:58 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 276 seconds) |
| 01:37:08 | <koz_> | sclv: A joint rofl. |
| 01:37:42 | Moyst_ | is now known as Moyst |
| 01:38:07 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 01:39:06 | <hololeap> | an adjoint joint? |
| 01:39:09 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 01:39:10 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 01:39:17 | <koz_> | hololeap: an ad(joint)^2. |
| 01:39:37 | <hololeap> | echo {ad,}joint |
| 01:39:43 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 01:40:05 | × | carlomagno quits (~cararell@148.87.23.4) (Quit: Leaving.) |
| 01:41:04 | × | psutcliffe quits (~psutcliff@m83-187-173-212.cust.tele2.se) (Quit: Leaving) |
| 01:41:26 | → | psutcliffe joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 01:43:09 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
| 01:44:29 | → | Svet_ joins (~svet@90.200.185.163) |
| 01:45:43 | × | vchlup__ quits (~vchlup@115.128.broadband17.iol.cz) (Remote host closed the connection) |
| 01:45:51 | → | vchlup joins (~vchlup@115.128.broadband17.iol.cz) |
| 01:46:09 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 01:46:19 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 01:49:27 | × | pacak quits (~pacak@bb116-14-220-91.singnet.com.sg) (Quit: Leaving.) |
| 01:49:47 | → | pacak joins (~pacak@bb116-14-220-91.singnet.com.sg) |
| 01:52:47 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 01:52:55 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 01:55:12 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 01:55:35 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 01:55:45 | × | mrchampion quits (~mrchampio@38.18.109.23) (Ping timeout: 264 seconds) |
| 01:56:48 | × | ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 01:57:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 01:57:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 02:00:07 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 265 seconds) |
| 02:00:42 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 02:01:29 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 02:03:30 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 265 seconds) |
| 02:04:57 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 265 seconds) |
| 02:05:23 | × | xff0x quits (~xff0x@2001:1a81:52d0:d300:4228:6d0f:7477:ec73) (Ping timeout: 260 seconds) |
| 02:05:31 | × | mceier quits (~mceier@89-68-132-187.dynamic.chello.pl) (Ping timeout: 268 seconds) |
| 02:05:46 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 02:05:46 | × | vchlup quits (~vchlup@115.128.broadband17.iol.cz) (Read error: Connection reset by peer) |
| 02:05:57 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 02:06:09 | → | mceier joins (~mceier@89-68-132-187.dynamic.chello.pl) |
| 02:06:55 | → | xff0x joins (~xff0x@2001:1a81:530a:8600:faf9:7441:8836:4d7d) |
| 02:08:21 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 264 seconds) |
| 02:08:28 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 02:10:45 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 265 seconds) |
| 02:11:14 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Remote host closed the connection) |
| 02:11:40 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 02:12:36 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
| 02:13:24 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:13:55 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:14:09 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 02:18:02 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 02:18:41 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
| 02:20:03 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:20:10 | → | conal joins (~conal@64.71.133.70) |
| 02:20:19 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 02:20:23 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:22:54 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 02:25:53 | × | ozataman quits (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 02:27:36 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 240 seconds) |
| 02:27:40 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 02:30:57 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 02:33:38 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:34:01 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:34:49 | × | banyanRob quits (268ce492@38.140.228.146) (Quit: Connection closed) |
| 02:35:27 | → | HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) |
| 02:38:08 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 02:38:26 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 02:38:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:39:02 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 02:39:53 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds) |
| 02:40:20 | × | viluon quits (uid453725@gateway/web/irccloud.com/x-dqymabneifveqvzq) (Quit: Connection closed for inactivity) |
| 02:40:20 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:40:23 | → | wildlander joins (~wildlande@unaffiliated/wildlander) |
| 02:40:25 | Lord_of_Life_ | is now known as Lord_of_Life |
| 02:40:36 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:43:03 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 02:43:37 | × | Wuzzy quits (~Wuzzy@p5790e341.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 02:47:03 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:47:13 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:51:12 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 02:53:05 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 02:53:26 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 02:53:39 | × | deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
| 02:53:56 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 02:54:13 | → | drbean_ joins (~drbean@TC210-63-209-22.static.apol.com.tw) |
| 02:54:18 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 02:55:06 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 02:55:18 | × | urodna quits (~urodna@unaffiliated/urodna) (Read error: Connection reset by peer) |
| 02:55:28 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 02:56:05 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 02:56:51 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 03:02:03 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 272 seconds) |
| 03:03:51 | hackage | aur 7.0.6 - Access metadata from the Arch Linux User Repository. https://hackage.haskell.org/package/aur-7.0.6 (fosskers) |
| 03:03:57 | × | xff0x quits (~xff0x@2001:1a81:530a:8600:faf9:7441:8836:4d7d) (Ping timeout: 272 seconds) |
| 03:04:51 | hackage | aura 3.2.3 - A secure package manager for Arch Linux and the AUR. https://hackage.haskell.org/package/aura-3.2.3 (fosskers) |
| 03:05:08 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:d9f4:8c95:2d13:97c0) |
| 03:05:15 | → | nineonine joins (~nineonine@50.216.62.2) |
| 03:05:22 | × | __minoru__shirae quits (~shiraeesh@46.34.207.247) (Ping timeout: 265 seconds) |
| 03:08:55 | → | vchlup joins (~vchlup@115.128.broadband17.iol.cz) |
| 03:09:11 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Read error: Connection reset by peer) |
| 03:10:01 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 03:13:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 03:14:03 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:17:34 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 03:18:27 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 03:18:33 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 03:19:17 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 03:19:17 | finn_elija | is now known as Guest92478 |
| 03:19:17 | FinnElija | is now known as finn_elija |
| 03:22:27 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 03:23:22 | × | Guest92478 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 03:27:25 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 03:27:33 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 03:27:42 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 03:27:44 | <ezzieyguywuf> | just stumbled across liquidhaskell - y'all have any familiarity with it? is it something worth looking into? |
| 03:27:44 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 03:27:55 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 03:28:52 | → | gitgoood joins (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) |
| 03:30:04 | × | gitgoood quits (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) (Client Quit) |
| 03:31:34 | × | gitgood quits (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) (Ping timeout: 260 seconds) |
| 03:33:15 | × | vchlup quits (~vchlup@115.128.broadband17.iol.cz) (Remote host closed the connection) |
| 03:33:41 | → | vchlup joins (~vchlup@115.128.broadband17.iol.cz) |
| 03:34:15 | → | bibek joins (~bibek@27.34.20.148) |
| 03:34:35 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 03:35:06 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 03:36:21 | hackage | lens-family-th 0.5.2.0 - Generate lens-family style lenses https://hackage.haskell.org/package/lens-family-th-0.5.2.0 (DanBurton) |
| 03:38:08 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 03:38:26 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 03:39:03 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 03:40:03 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 03:40:03 | × | borne quits (~fritjof@200116b864cbc80010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 03:40:08 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 03:40:34 | × | vchlup quits (~vchlup@115.128.broadband17.iol.cz) (Read error: Connection reset by peer) |
| 03:41:25 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 03:41:42 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 03:43:56 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
| 03:46:42 | <MarcelineVQ> | ezzieyguywuf: no, yes |
| 03:47:10 | <MarcelineVQ> | just depends on if you need the gurantees/assurances it provides |
| 03:47:39 | × | jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.0.1) |
| 03:48:36 | × | theDon quits (~td@94.134.91.130) (Ping timeout: 240 seconds) |
| 03:49:22 | hackage | haskell-src-meta 0.8.6 - Parse source to template-haskell abstract syntax. https://hackage.haskell.org/package/haskell-src-meta-0.8.6 (DanBurton) |
| 03:49:22 | → | xiinotulp joins (~q@node-un4.pool-125-24.dynamic.totinternet.net) |
| 03:50:14 | × | theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer) |
| 03:50:37 | → | theDon joins (~td@94.134.91.67) |
| 03:52:15 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 03:52:36 | × | plutoniix quits (~q@node-usa.pool-125-24.dynamic.totinternet.net) (Ping timeout: 240 seconds) |
| 03:52:57 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:53:21 | → | ozataman joins (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) |
| 03:54:03 | × | int80h quits (uid148779@gateway/web/irccloud.com/x-ajavsncudlqnodzo) (Quit: Connection closed for inactivity) |
| 03:54:21 | hackage | lti13 0.2.0.1 - Core functionality for LTI 1.3. https://hackage.haskell.org/package/lti13-0.2.0.1 (jade) |
| 03:55:02 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 03:55:03 | <MarcelineVQ> | for stronger guarantees I use idris because I'm a hipster, but not academic enough of a hipster to do it in agda. liquid haskell's thrust is to be easier to use than these fully depenent langs, idk if it is |
| 03:55:17 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 03:55:21 | hackage | yesod-auth-lti13 0.2.0.1 - A yesod-auth plugin for LTI 1.3 https://hackage.haskell.org/package/yesod-auth-lti13-0.2.0.1 (jade) |
| 03:55:33 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 03:56:21 | → | DTZUZU joins (~DTZUZU@205.ip-149-56-132.net) |
| 03:56:43 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 276 seconds) |
| 03:57:22 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
| 03:58:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 03:59:08 | × | xiinotulp quits (~q@node-un4.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
| 04:01:26 | → | syd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 04:06:42 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 04:07:48 | → | vchlup joins (~vchlup@115.128.broadband17.iol.cz) |
| 04:08:25 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Read error: Connection reset by peer) |
| 04:08:25 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:08:34 | → | forgottenone joins (~forgotten@176.42.27.254) |
| 04:08:41 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 04:08:53 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 04:11:52 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:13:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:14:24 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
| 04:15:39 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 04:17:51 | hackage | haskell-src-meta 0.8.7 - Parse source to template-haskell abstract syntax. https://hackage.haskell.org/package/haskell-src-meta-0.8.7 (DanBurton) |
| 04:18:50 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 04:18:50 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 265 seconds) |
| 04:20:57 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 264 seconds) |
| 04:22:05 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:22:30 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 04:23:20 | × | syd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Remote host closed the connection) |
| 04:24:01 | × | shadowdao quits (~user@unaffiliated/shadowdaemon) (Quit: ERC Version 5.3 (IRC client for Emacs)) |
| 04:25:09 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 04:25:18 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:28:19 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 04:28:56 | × | vchlup quits (~vchlup@115.128.broadband17.iol.cz) (Ping timeout: 240 seconds) |
| 04:28:56 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:29:05 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 04:29:17 | × | HarveyPwca quits (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving) |
| 04:29:22 | ← | mehwork parts (~mehwork@98.185.199.35.bc.googleusercontent.com) () |
| 04:31:38 | × | ozataman quits (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 04:32:00 | → | redmp joins (~redmp@172.58.35.77) |
| 04:32:16 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 240 seconds) |
| 04:32:28 | → | Tario joins (~Tario@201.192.165.173) |
| 04:36:49 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Remote host closed the connection) |
| 04:37:03 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 272 seconds) |
| 04:37:07 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 04:38:08 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 04:38:26 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 04:40:13 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 272 seconds) |
| 04:41:13 | × | styledash quits (~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat) |
| 04:42:16 | → | styledash joins (~styledash@157.230.173.136) |
| 04:42:28 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:42:36 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
| 04:42:41 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 04:44:01 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 04:45:23 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds) |
| 04:46:28 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 04:46:29 | → | ozataman joins (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) |
| 04:46:52 | → | Tario joins (~Tario@201.192.165.173) |
| 04:50:36 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 04:51:04 | → | cheater joins (~user@unaffiliated/cheater) |
| 04:51:36 | × | ozataman quits (~ozataman@pool-100-37-221-69.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
| 04:51:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:53:59 | → | cheater1 joins (~user@unaffiliated/cheater) |
| 04:55:15 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 246 seconds) |
| 04:55:24 | cheater1 | is now known as cheater |
| 04:55:56 | <desophos> | hey koz_, i'm having a lot of trouble translating the combination algorithm you sent me yesterday into Haskell. the language in the paper is very imperative and the wording confuses me. could you help me understand and translate it? what i have so far is a complete mess, very unoptimized, and doesn't work (stops after 1 recursion), but here it is. i know my bars' (step 6) is wrong, but i don't understand why. |
| 04:55:56 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:55:57 | <desophos> | https://paste.tomsmeding.com/i8Yeubbd |
| 04:56:12 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 04:56:16 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 04:56:27 | → | Tario joins (~Tario@201.192.165.173) |
| 04:56:30 | <koz_> | desophos: I'm afraid that's quite a lot of work, and I'm not sure I have the time, sorry. |
| 04:57:00 | <desophos> | ah, that's alright. i'll give it another shot another time |
| 04:57:14 | <desophos> | thanks for the resource either way |
| 04:57:45 | <koz_> | No worries. |
| 04:58:14 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 05:00:06 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 05:00:26 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 05:02:10 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 05:02:16 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 240 seconds) |
| 05:02:29 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 05:03:03 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 05:03:22 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 05:07:11 | → | __minoru__shirae joins (~shiraeesh@46.34.207.247) |
| 05:08:08 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 265 seconds) |
| 05:09:30 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 05:09:55 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 05:10:15 | → | shadowdaemon joins (~user@unaffiliated/shadowdaemon) |
| 05:10:32 | → | nineonine joins (~nineonine@50.216.62.2) |
| 05:10:57 | × | slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 256 seconds) |
| 05:12:24 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 05:15:33 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 264 seconds) |
| 05:16:17 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 05:16:22 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 05:16:30 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 05:21:02 | × | poscat quits (~poscat@2408:8207:4822:a280::1) (Ping timeout: 264 seconds) |
| 05:21:10 | → | Tario joins (~Tario@201.192.165.173) |
| 05:21:26 | × | wildlander quits (~wildlande@unaffiliated/wildlander) (Quit: Konversation terminated!) |
| 05:25:40 | → | fnlaai joins (67691c87@103.105.28.135) |
| 05:26:21 | hackage | dbus 1.2.21 - A client library for the D-Bus IPC system. https://hackage.haskell.org/package/dbus-1.2.21 (blaze) |
| 05:26:36 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds) |
| 05:27:23 | × | shatriff quits (~vitaliish@protective.remission.volia.net) (Remote host closed the connection) |
| 05:27:37 | → | shatriff joins (~vitaliish@protective.remission.volia.net) |
| 05:28:28 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 05:30:18 | → | catt joins (~r@31.127.31.99) |
| 05:32:01 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 05:32:57 | × | sm2n quits (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) (Ping timeout: 264 seconds) |
| 05:33:21 | → | sm2n joins (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) |
| 05:34:25 | → | Tops21 joins (~Tobias@dyndsl-095-033-025-207.ewe-ip-backbone.de) |
| 05:35:40 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-ngsliaqaashyeyvi) |
| 05:36:18 | → | slack1256 joins (~slack1256@45.4.2.52) |
| 05:36:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:37:28 | × | Tops2 quits (~Tobias@dyndsl-095-033-090-206.ewe-ip-backbone.de) (Ping timeout: 276 seconds) |
| 05:38:26 | × | Benett quits (~Benett@unaffiliated/benett) (Ping timeout: 240 seconds) |
| 05:38:35 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 265 seconds) |
| 05:38:39 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds) |
| 05:40:23 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 05:40:33 | → | Benett joins (~Benett@unaffiliated/benett) |
| 05:41:48 | × | vchlup_ quits (~vchlup@115.128.broadband17.iol.cz) (Remote host closed the connection) |
| 05:43:27 | → | vchlup joins (~vchlup@115.128.broadband17.iol.cz) |
| 05:43:27 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 05:43:40 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 05:43:58 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 276 seconds) |
| 05:45:16 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
| 05:45:18 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
| 05:45:50 | × | __minoru__shirae quits (~shiraeesh@46.34.207.247) (Ping timeout: 265 seconds) |
| 05:49:56 | × | mawk quits (mawk@serveur.io) (Ping timeout: 240 seconds) |
| 05:50:21 | hackage | slack-web 0.3.0.0 - Bindings for the Slack web API https://hackage.haskell.org/package/slack-web-0.3.0.0 (igrep) |
| 05:52:37 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 05:53:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:53:57 | × | average quits (uid473595@gateway/web/irccloud.com/x-zorlcjntmtivoxma) (Quit: Connection closed for inactivity) |
| 05:56:36 | × | fnlaai quits (67691c87@103.105.28.135) (Quit: Connection closed) |
| 05:56:42 | × | slack1256 quits (~slack1256@45.4.2.52) (Remote host closed the connection) |
| 05:57:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 06:00:31 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 06:00:51 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 06:01:08 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 06:01:28 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 06:03:04 | × | shatriff quits (~vitaliish@protective.remission.volia.net) (Remote host closed the connection) |
| 06:03:40 | → | shatriff joins (~vitaliish@protective.remission.volia.net) |
| 06:04:16 | × | Narinas quits (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Ping timeout: 240 seconds) |
| 06:04:16 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:04:56 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 06:06:39 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 06:07:45 | → | nineonine joins (~nineonine@50.216.62.2) |
| 06:09:55 | × | forgottenone quits (~forgotten@176.42.27.254) (Quit: Konversation terminated!) |
| 06:10:35 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:11:20 | → | forgottenone joins (~forgotten@176.42.27.254) |
| 06:11:43 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 06:12:38 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:d9f4:8c95:2d13:97c0) (Ping timeout: 264 seconds) |
| 06:13:20 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:5eb:94a4:8141:c21f) |
| 06:16:07 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 06:16:29 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 06:17:44 | × | afidegnum quits (~afidegnum@102.176.65.26) (Ping timeout: 265 seconds) |
| 06:20:25 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 06:24:26 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:24:58 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 06:28:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 06:29:06 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 06:29:20 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 06:30:40 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:32:36 | → | _vaibhavingale_ joins (~Adium@203.188.228.9) |
| 06:35:01 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 06:37:53 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:38:37 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 06:39:12 | → | nineonin_ joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 06:39:31 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 06:42:28 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 276 seconds) |
| 06:43:05 | × | psutcliffe quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Ping timeout: 272 seconds) |
| 06:44:39 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:45:15 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 06:45:26 | × | danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Quit: WeeChat 3.0) |
| 06:46:53 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
| 06:46:54 | → | frozenErebus joins (~frozenEre@94.128.219.166) |
| 06:47:07 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 06:49:08 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 06:49:29 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 06:51:10 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 06:54:23 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 06:55:06 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 06:55:27 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 06:57:33 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 264 seconds) |
| 06:58:16 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 06:58:46 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 06:59:00 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:04:04 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:05:07 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:05:47 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:10:33 | → | psutcliffe joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 07:11:12 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:12:03 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:12:31 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:14:38 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:15:16 | × | frozenErebus quits (~frozenEre@94.128.219.166) (Ping timeout: 240 seconds) |
| 07:17:19 | × | sm2n quits (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) (Ping timeout: 256 seconds) |
| 07:19:09 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 07:23:36 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds) |
| 07:25:20 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:26:18 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:29:37 | → | moet joins (~moet@172.58.35.77) |
| 07:30:03 | → | poscat joins (~poscat@114.243.61.85) |
| 07:30:39 | → | aggin joins (~ecm@103.88.87.10) |
| 07:30:42 | <moet> | i made a silly "fifo" datatype which implements "push" with (:) and "drain" with `reverse` .. does this make sense? it's useful if you're going to side-effect with eg `mapM_` but it's totally dumb if you want to fold because "foldl is bad" .. |
| 07:30:50 | <moet> | what's a better approach than this? |
| 07:31:09 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:32:03 | <moet> | tbh, this has my head all screwed up.. people saying things like "foldr is forwards" is batshit: https://stackoverflow.com/questions/3082324/foldl-versus-foldr-behavior-with-infinite-lists |
| 07:32:17 | <moet> | > foldr ($) 0 [(+1), (*10), (/2)] :: Float |
| 07:32:17 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:32:18 | <lambdabot> | 1.0 |
| 07:32:25 | <moet> | > foldl (flip ($)) 0 [(+1), (*10), (/2)] :: Float |
| 07:32:27 | <lambdabot> | 5.0 |
| 07:32:44 | <moet> | foldr applies the division first, then the multiplication .. it's clearly the backwards one |
| 07:32:52 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:36:19 | → | zmv- joins (~zmv@189.79.134.102) |
| 07:37:26 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds) |
| 07:38:17 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 07:39:37 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:40:07 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:40:29 | <boxscape> | I wouldn't put too much emphasis on which one is forwards vs backwards, that seems to depend on how you use those terms. The important thing is that one converts [a,b,c] into (((z `f` a) `f` b) `f` c) `f` z, and the other into a `f` (b `f` (c `f` z))). |
| 07:41:13 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 07:41:19 | <boxscape> | moet as for a fifo data structure, not sure what would be the best option but you can get a large performance improvement here if you use Sequences rather than lists |
| 07:41:34 | <boxscape> | i.e. Data.Sequence.Seq |
| 07:42:04 | <boxscape> | if I'm understanding what you want to do correctly |
| 07:42:34 | <moet> | You are. I can't use external libraries for reasons, so I did a quick and dirty fifo |
| 07:42:41 | <boxscape> | ah |
| 07:42:45 | <moet> | I expect the lists to be very small, so perhaps all this doesn't matter |
| 07:44:07 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 07:44:29 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 07:44:37 | <moet> | I need to internalize that associativity interpretation aparrently; thanks boxscape |
| 07:44:44 | <moet> | apparently** ok, it's bedtime |
| 07:44:56 | <boxscape> | good night :) |
| 07:45:04 | <moet> | thanks; good night |
| 07:45:06 | × | moet quits (~moet@172.58.35.77) (Quit: leaving) |
| 07:45:36 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
| 07:45:43 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:46:54 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:47:06 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 07:48:11 | <Feuermagier> | \list |
| 07:49:53 | → | CatWithMoustache joins (~CatWithMo@gateway/tor-sasl/catwithmoustache) |
| 07:50:21 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 07:50:55 | ← | CatWithMoustache parts (~CatWithMo@gateway/tor-sasl/catwithmoustache) () |
| 07:52:00 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-pcguwrpjphfcmwqk) (Quit: Connection closed for inactivity) |
| 07:52:27 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:53:13 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 07:54:58 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:59:23 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 07:59:59 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:01:02 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 08:01:30 | pavonia^\_^\ | is now known as pavonia |
| 08:02:06 | × | desophos quits (~desophos@2601:249:1680:a570:b97d:e49f:4b50:473b) (Read error: Connection reset by peer) |
| 08:03:18 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 08:03:33 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Ping timeout: 246 seconds) |
| 08:05:18 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-ngsliaqaashyeyvi) (Quit: Connection closed for inactivity) |
| 08:06:01 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:06:42 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:10:36 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
| 08:17:13 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:19:53 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 08:19:53 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:20:22 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:21:16 | → | frozenErebus joins (~frozenEre@94.128.219.166) |
| 08:21:27 | <koz_> | @unmtl ReaderT r (Cont r') a |
| 08:21:27 | <lambdabot> | r -> (a -> r') -> r' |
| 08:21:36 | <koz_> | @unmtl ContT r' (Reader r) a |
| 08:21:36 | <lambdabot> | (a -> r -> r') -> r -> r' |
| 08:22:10 | → | ubert joins (~Thunderbi@p200300ecdf25d93028739d2391791b0e.dip0.t-ipconnect.de) |
| 08:22:31 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 08:24:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:24:58 | × | frozenErebus quits (~frozenEre@94.128.219.166) (Client Quit) |
| 08:26:23 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:27:10 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:28:43 | × | carldd11 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Ping timeout: 256 seconds) |
| 08:30:03 | <jackdk> | ARRRR |
| 08:31:14 | <koz_> | ARR'R :P |
| 08:32:08 | <Uniaika> | :t ARRRR |
| 08:32:09 | <lambdabot> | error: Data constructor not in scope: ARRRR |
| 08:32:27 | <Uniaika> | jackdk: fix your imporrrrts! :P |
| 08:32:51 | <koz_> | Needs more Data.Arrrrrrrray. |
| 08:33:07 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 08:33:28 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 08:33:28 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:33:35 | <Uniaika> | yup |
| 08:34:01 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:34:26 | × | aggin quits (~ecm@103.88.87.10) (Quit: WeeChat 3.0.1) |
| 08:34:42 | <boxscape> | looks like combinator calculus to me, just not sure yet what the A and R combinators do |
| 08:37:43 | <koz_> | So basically every program is just pirate talk. |
| 08:39:51 | <boxscape> | AYE MATEY |
| 08:40:48 | <koz_> | What's a pirate's favourite type class? |
| 08:40:52 | <koz_> | Answer: Arrow. |
| 08:44:26 | × | ubert quits (~Thunderbi@p200300ecdf25d93028739d2391791b0e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 08:46:49 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:47:02 | × | drbean_ quits (~drbean@TC210-63-209-22.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 08:47:48 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:53:34 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 08:54:31 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 08:54:40 | → | andy joins (01c84f1a@1.200.79.26) |
| 08:55:03 | andy | is now known as Guest34200 |
| 08:55:30 | <Guest34200> | hello |
| 08:55:56 | → | kit joins (~kit@103.231.91.232) |
| 08:56:15 | × | kit quits (~kit@103.231.91.232) (Client Quit) |
| 08:59:50 | <boxscape> | hey |
| 09:01:56 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 240 seconds) |
| 09:05:03 | <Guest34200> | is anyone familiar with hip? i'm trying to use it to read an image and then represent the pixels of the image in a list of doubles. can someone point me in the right direction? i've tried using readImageY but that seems to give me the type IO (Image arr Y Double) and i'm not sure how to convert from here |
| 09:05:35 | → | borne joins (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) |
| 09:09:14 | → | hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga) |
| 09:09:57 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 268 seconds) |
| 09:10:15 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:13:55 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 09:14:35 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 09:19:18 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 09:20:37 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:4406:ac3b:67d1:16b9) |
| 09:20:41 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 09:21:54 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 09:22:25 | × | dwts_ quits (pid@gateway/shell/blinkenshell.org/x-cbprcwhcmsnoinei) (Remote host closed the connection) |
| 09:25:01 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:27:02 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:5eb:94a4:8141:c21f) (Ping timeout: 264 seconds) |
| 09:27:33 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:9530:24a1:6c01:a8d6) |
| 09:27:33 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 09:28:10 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 09:29:26 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:4406:ac3b:67d1:16b9) (Ping timeout: 264 seconds) |
| 09:30:02 | × | Yumasi quits (~guillaume@2a01:e0a:5cb:4430:2f12:f782:a87b:e2ae) (Ping timeout: 264 seconds) |
| 09:31:32 | <tomsmeding> | Guest34200: not familiar with hip, but you might want to try https://hackage.haskell.org/package/hip-1.5.6.0/docs/Graphics-Image-Interface.html#v:toVector ? |
| 09:33:05 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Read error: Connection reset by peer) |
| 09:35:01 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 09:38:45 | → | sQVe joins (~sQVe@unaffiliated/sqve) |
| 09:40:52 | × | puffnfresh_ quits (~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in) |
| 09:41:11 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 09:41:23 | × | nineonin_ quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 09:41:49 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 09:41:59 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 09:42:06 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 09:43:38 | × | BIG_JIMMY_D quits (~jim@108.61.185.76) (Ping timeout: 265 seconds) |
| 09:44:15 | → | puffnfresh_ joins (~puffnfres@45.76.124.5) |
| 09:45:34 | × | raym quits (~ray@45.64.220.3) (Quit: leaving) |
| 09:46:45 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 272 seconds) |
| 09:47:17 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Quit: Leaving) |
| 09:47:29 | <ij> | I am trying out the hip library and I noticed that if the channel's value is constrained by Interface.Elevator.Elevator e, then I can't write an image, because the concrete value is undecidable. If I divide the image (and thus channels) by (/ 400), then channel becomes (Elevator e, Fractional e) and then it collapses into something concrete/digestable for writeImage. How does that work from the |
| 09:47:30 | <ij> | type system perspective? |
| 09:47:30 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 09:48:31 | <ij> | When I give it to writeImage, that also puts more constraints on the channel type, but still – how does anything end up being concrete after putting multiple constraints on it? |
| 09:49:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 09:49:08 | → | BIG_JIMMY_D joins (~jim@108.61.185.76) |
| 09:49:12 | <ij> | ha, it's hip day today, I guess |
| 09:52:03 | × | psutcliffe quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Quit: Leaving) |
| 09:52:22 | <ij> | Guest34200, you might have to constrain arr to VS like in the Graphics.Image.IO docs example |
| 09:54:31 | <ij> | this works for me: :t readImageExact JPG "images/frog.jpg" :: IO (Either String (Image VS Y Double)) |
| 09:54:46 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 09:55:22 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 09:55:54 | <Guest34200> | hmm okay let me give it a shot |
| 09:56:24 | <ij> | make sure you have the frog! (.jpg) |
| 09:57:06 | <Guest34200> | how would I extract the pixel info from the image? I feel like i'm misunderstanding something lol |
| 09:57:21 | <Guest34200> | i'm assuming readImage already stores the pixels with double precision |
| 09:57:35 | <Guest34200> | I'm a bit lost on how to access said information and do stuff with it |
| 09:57:37 | <ij> | do you want to read a single pixel? |
| 09:57:46 | <Guest34200> | all of them |
| 09:58:10 | <ij> | well, I couldn't get readImage to work myself. Do you know what each bit of info in Image type variables means, btw? |
| 09:58:29 | <Guest34200> | you mean in Image VS Y Double ? |
| 09:58:32 | <ij> | yeah |
| 09:58:36 | <Guest34200> | uhhh |
| 09:58:44 | <Guest34200> | i think VS is how the image is represented |
| 09:58:56 | <Guest34200> | Y is for grayscale? |
| 09:59:05 | <Guest34200> | and double is how the pixels r represented |
| 09:59:08 | <ij> | cool |
| 09:59:14 | <Guest34200> | is that right |
| 09:59:26 | × | borne quits (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) (Ping timeout: 264 seconds) |
| 09:59:39 | <ij> | yes, I am not sure which specific kind of vector VS is, but I knew the VU one I am working with |
| 09:59:59 | <ij> | well, the docs outline many kinds of accessors: https://hackage.haskell.org/package/hip-1.5.6.0/docs/Graphics-Image.html#g:6 |
| 10:00:19 | → | int80h joins (uid148779@gateway/web/irccloud.com/x-yapefbeohzqydcto) |
| 10:00:38 | → | ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net) |
| 10:00:38 | × | ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
| 10:00:38 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 10:01:02 | <ij> | what kind of reading are you looking for exactly? |
| 10:01:22 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:01:27 | <Guest34200> | to provide some more context, i want to represent the image as a 2d list of doubles [ [Double] ] |
| 10:01:41 | <ij> | you're looking for toLists |
| 10:01:56 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:02:05 | <Guest34200> | ah |
| 10:02:16 | <Guest34200> | toLists :: MArray arr cs e => Image arr cs e -> [[Pixel cs e]] |
| 10:02:49 | <ij> | if you click on Pixel, you'll get docs on how to break that down further |
| 10:03:31 | <Guest34200> | ah so you can specify the colorspace and the precision |
| 10:04:01 | <Guest34200> | what is so special about MArray? |
| 10:04:18 | <Guest34200> | "Array representation that is actually has real data stored in memory, " |
| 10:04:19 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 10:06:39 | → | psutcliffe joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 10:07:01 | <ij> | the regular Arrays will probably be also stored in memory, but they'll have their operations defined in a pure way |
| 10:07:17 | <Guest34200> | right |
| 10:07:39 | <tomsmeding> | MArray stands for Mutable Array; note the 'write' method of the class |
| 10:07:58 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:08:17 | <Guest34200> | ahh |
| 10:08:17 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:09:09 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:09:15 | <ij> | anyway, I converted the frog to grayscale with specifying that only with types :D |
| 10:09:37 | <Guest34200> | so if I were to use toLists, how would I specify the colorspace and the precision? from the example: img == fromLists (toLists img) it only provides the image |
| 10:10:03 | <ij> | first read an image with the concrete desired types and toLists will output those |
| 10:10:49 | <ij> | see the readImageExact I posted above |
| 10:11:25 | <Guest34200> | oh so you need to read the image first, and toLists will take whatever colorspace and precision the image was read with and just put it into a list of lists? |
| 10:11:46 | <ij> | unsurprisingly, yes :) |
| 10:12:05 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:9530:24a1:6c01:a8d6) (Ping timeout: 272 seconds) |
| 10:12:45 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:99b1:a451:602d:e252) |
| 10:13:14 | <Guest34200> | ah ok i'll try that |
| 10:14:06 | <Guest34200> | ooh how does it know how many lists to have nested within the outer list? does it read the dimensions of the image? |
| 10:14:45 | <ij> | it would be a weird image library if it didn't read the dimensions |
| 10:14:56 | <Guest34200> | true true |
| 10:14:56 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:15:03 | <ij> | "VS - Vector Storable representation." |
| 10:15:28 | <Guest34200> | oh right |
| 10:15:40 | <Guest34200> | so If I were to use, say VU |
| 10:15:43 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:15:49 | <Guest34200> | i would not be able to do this? because that information isn't stored? |
| 10:16:10 | <ij> | no, both should be fine |
| 10:16:18 | <ij> | it's about vector internals, it shouldn't matter |
| 10:17:12 | <Guest34200> | oh |
| 10:17:14 | <ij> | (it's Vector.Storable vs Vector.Unboxed) |
| 10:19:47 | <Guest34200> | Expected kind `* -> * -> *', but `Image I.VS' has kind `*' |
| 10:20:00 | <Guest34200> | does this mean more inputs were expected? |
| 10:20:16 | <Guest34200> | sorry I'm still learning about type signatures so this is all very unfamiliar to me |
| 10:20:44 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 10:21:45 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:22:05 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 10:22:26 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:23:38 | <ij> | image should have 3 type arguments like readImageExact example above, right? |
| 10:26:26 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 264 seconds) |
| 10:27:22 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-xgujbhvivyzipvnb) (Quit: Connection closed for inactivity) |
| 10:28:07 | <Guest34200> | yeah |
| 10:28:23 | <Guest34200> | procImg <- I.readImageY I.VS img |
| 10:28:23 | <Guest34200> | let newImg = toLists |
| 10:28:24 | <Guest34200> | return newImg |
| 10:28:42 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:29:11 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:29:12 | <Guest34200> | img should be a file path |
| 10:29:53 | <Guest34200> | procImg <- I.readImageY I.VS "test.png" |
| 10:30:38 | → | LKoen joins (~LKoen@185.61.176.203) |
| 10:34:58 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:35:24 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:35:56 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:36:55 | → | fendor joins (~fendor@91.141.0.74.wireless.dyn.drei.com) |
| 10:37:23 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 10:40:07 | → | _noblegas joins (uid91066@gateway/web/irccloud.com/x-hqwlvmypxcgqlrdh) |
| 10:42:07 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:42:44 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:43:53 | <Guest34200> | it seems toLists is formatted in this way: [[<Luma:(0.9372549019607843)>,<Luma:(0.8549019607843137)>]], is there a way to get rid of the name of the precision? |
| 10:45:04 | × | z0k quits (~user@115-186-141-91.nayatel.pk) (Read error: Connection reset by peer) |
| 10:45:55 | → | z0k joins (~user@115-186-141-91.nayatel.pk) |
| 10:48:49 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 10:49:14 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 268 seconds) |
| 10:49:54 | → | m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 10:50:00 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 10:52:14 | <tomsmeding> | Guest34200: that would be the Show instance of Pixel |
| 10:52:19 | <tomsmeding> | what's the type of those Pixel values? |
| 10:52:56 | <tomsmeding> | Guest34200: you might want to try https://hackage.haskell.org/package/hip-1.5.6.0/docs/Graphics-Image-Interface.html#v:toListPx ? |
| 10:53:26 | <Guest34200> | uh I wanted to get a 2d list of just the pixel values in double precision |
| 10:54:18 | <Guest34200> | so I guess i would use toListPx? but it seems that would only produce one list |
| 10:54:34 | <tomsmeding> | well you'd map that over your lists of pixels |
| 10:54:41 | <tomsmeding> | so map (map toListPx) (toList ...) |
| 10:55:03 | <tomsmeding> | but what that returns exactly will depend on the precise type of Pixel you have |
| 10:58:22 | → | average joins (uid473595@gateway/web/irccloud.com/x-ojfayrlpvuxvtkja) |
| 10:59:05 | <Guest34200> | ah okay |
| 10:59:09 | <Guest34200> | thanks |
| 11:00:13 | × | troydm quits (~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 11:02:28 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:02:47 | × | jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 11:02:58 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 11:03:01 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:03:23 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 11:04:50 | × | darjeeling_ quits (~darjeelin@122.245.218.150) (Ping timeout: 265 seconds) |
| 11:06:33 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 11:06:35 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 11:07:59 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 11:08:21 | × | kam1 quits (~kam1@5.125.126.175) (Ping timeout: 264 seconds) |
| 11:08:56 | × | haritz quits (~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds) |
| 11:09:28 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:09:48 | → | haritz joins (~hrtz@62.3.70.206) |
| 11:09:48 | × | haritz quits (~hrtz@62.3.70.206) (Changing host) |
| 11:09:48 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 11:10:11 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:10:28 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 11:12:59 | × | nhs quits (~nhs@ip68-2-235-160.ph.ph.cox.net) (Ping timeout: 256 seconds) |
| 11:13:18 | → | borne joins (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) |
| 11:16:03 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:16:23 | → | coot_ joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 11:16:27 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 11:16:41 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:16:57 | × | bibek quits (~bibek@27.34.20.148) (Quit: WeeChat 3.0) |
| 11:17:08 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 11:17:15 | × | terrorjack quits (~terrorjac@ec2-52-47-143-92.eu-west-3.compute.amazonaws.com) (Quit: The Lounge - https://thelounge.chat) |
| 11:17:19 | × | fendor quits (~fendor@91.141.0.74.wireless.dyn.drei.com) (Remote host closed the connection) |
| 11:17:38 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 11:17:38 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 11:17:38 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 11:17:42 | <Guest34200> | if I have a function foo that produces the 2d list constructed from the toList function, and I have another function bar that takes in a 2d list as an argument, how would I pass that 2d list produced by foo into bar? currently I have foo ( do stuff return (2dlist) and in main i'm trying to do bar (foo) but it's giving me type errors, saying it's |
| 11:17:43 | <Guest34200> | expecting IO[Double]. i don't have much experience with functional programming so I'm pretty sure I"m thinking about this the wrong way, can anyone point me in the right direction? |
| 11:19:33 | <mouseghost> | im not sure if you need the `return' |
| 11:19:56 | <mouseghost> | afaik it often refers to wrapping `a' into a monad |
| 11:19:57 | <__monty__> | Guest34200: Does producing the list require IO? (Btw, what do you mean when you say 2d? Because it looks like a flat list of Doubles.) |
| 11:20:40 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 276 seconds) |
| 11:20:41 | coot_ | is now known as coot |
| 11:20:53 | <mouseghost> | nvm what i said.. |
| 11:21:01 | <tomsmeding> | Guest34200: a function of type 'a -> b' needs an 'a' as input, not an 'IO a' |
| 11:21:09 | <Guest34200> | 2d list as in a nested list |
| 11:21:28 | <tomsmeding> | your foo, and the do-block containing foo, will be returning IO [[Pixel ...]] |
| 11:21:52 | <Guest34200> | right yeah |
| 11:21:53 | <tomsmeding> | since 'bar' needs a [[Pixel ...]], you'll need to work in the IO monad |
| 11:22:07 | <Guest34200> | yeah that's the exact error i was getting |
| 11:22:12 | → | fendor joins (~fendor@91.141.0.74.wireless.dyn.drei.com) |
| 11:22:29 | <tomsmeding> | one way is: do res <- foo ... ; let output = bar res ; doSomethingWithOutput output |
| 11:22:38 | <Axman6> | No one escapes the Glasgow IO composition! |
| 11:22:45 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:22:49 | <tomsmeding> | because in the do block, after unwrapping with <- , you can use the value as-is, without the IO wrapper |
| 11:23:13 | <Guest34200> | this is my foo: readImg img = do |
| 11:23:13 | <Guest34200> | procImg <- I.readImageY I.VS img |
| 11:23:13 | <Guest34200> | let newImg = I.toLists procImg |
| 11:23:14 | <Guest34200> | return newImg |
| 11:23:19 | <tomsmeding> | a do-block is actually syntactic sugar: it's exactly equivalent to some usage of >>= |
| 11:23:24 | <tomsmeding> | :t (>>=) |
| 11:23:25 | × | _xor quits (~xor@74.215.46.133) (Quit: brb) |
| 11:23:25 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
| 11:23:26 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:23:28 | → | kit joins (~kit@103.231.91.232) |
| 11:23:43 | <tomsmeding> | :t (>>=) :: IO a -> (a -> IO b) -> IO b |
| 11:23:44 | <lambdabot> | IO a -> (a -> IO b) -> IO b |
| 11:23:50 | → | Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
| 11:24:00 | <Guest34200> | oh |
| 11:24:16 | × | kit quits (~kit@103.231.91.232) (Client Quit) |
| 11:24:23 | <tomsmeding> | that 'IO a' would be the result of foo |
| 11:24:37 | <tomsmeding> | that 'a -> IO b' is another IO action that needs to use the result of foo |
| 11:24:41 | <tomsmeding> | i.e. bar |
| 11:25:00 | <tomsmeding> | if bar doesn't need to perform IO, you can just use the Functor instance of IO: |
| 11:25:07 | <tomsmeding> | :t fmap :: (a -> b) -> IO a -> IO b |
| 11:25:08 | <lambdabot> | (a -> b) -> IO a -> IO b |
| 11:25:20 | <tomsmeding> | fmap bar (readImg img) |
| 11:26:05 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:26:12 | <xsperry> | Guest12880, your code looks fine, assuming readImage returns IO something, and that toLists returns non-IO |
| 11:27:06 | <Guest34200> | readImage doesn't return IO i don't think but the function returns IO [[Graphics.Image.ColorSpace.Pixel Y Double]] |
| 11:27:24 | <xsperry> | what function? |
| 11:27:36 | <xsperry> | readImageY? |
| 11:27:38 | <Guest34200> | foo |
| 11:27:45 | <Guest34200> | readimageY is inside of foo |
| 11:28:00 | <xsperry> | what do readImageY and toLists return |
| 11:28:05 | → | _xor joins (~xor@74.215.46.133) |
| 11:28:41 | <Guest34200> | oh wait |
| 11:28:46 | <Guest34200> | readImageY does return IO |
| 11:28:50 | <Guest34200> | IO (Image VS Y Double) |
| 11:28:59 | → | basoares joins (~basoares@2a04:ee41:4:2178:a846:18f7:81d4:249b) |
| 11:29:05 | → | basoares_ joins (~basoares@2a04:ee41:4:2178:a846:18f7:81d4:249b) |
| 11:29:06 | <Guest34200> | to lists returns [[Pixel Y Double]] |
| 11:29:35 | <xsperry> | so your readImg function looks fine.. if you get errors post a test case, with error messages |
| 11:29:36 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:29:54 | × | basoares_ quits (~basoares@2a04:ee41:4:2178:a846:18f7:81d4:249b) (Client Quit) |
| 11:30:21 | hackage | arch-hs 0.7.1.0 - Distribute hackage packages to archlinux https://hackage.haskell.org/package/arch-hs-0.7.1.0 (berberman) |
| 11:30:42 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:31:07 | → | jacks2 joins (~bc8134e3@217.29.117.252) |
| 11:31:09 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 11:32:43 | <Guest34200> | * Couldn't match type `[]' with `IO' |
| 11:32:43 | <Guest34200> | Expected type: IO [Double] |
| 11:32:44 | <Guest34200> | Actual type: [[Double]] |
| 11:33:01 | <Guest34200> | this is on one of the lines in bar |
| 11:33:30 | <xsperry> | there's no bar above |
| 11:33:31 | <Guest34200> | someFunction (readImg filepath) |
| 11:33:58 | <Guest34200> | this is the line ghci is screaming at ^ |
| 11:34:32 | <Guest34200> | sorry ill make it more clear |
| 11:34:35 | → | Deide joins (~Deide@217.155.19.23) |
| 11:34:49 | <jacks2> | best to post compilable example |
| 11:34:59 | <Guest34200> | main :: IO () |
| 11:34:59 | <Guest34200> | main = do |
| 11:35:00 | <Guest34200> | bar (readImg filepath) |
| 11:35:10 | <jacks2> | use some pastebin |
| 11:36:39 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:36:54 | <Guest34200> | https://pastebin.com/js1mUD5N |
| 11:37:05 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 11:37:26 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 11:37:26 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:37:46 | <mouseghost> | 404 not found |
| 11:37:53 | <Guest34200> | ?.? |
| 11:37:53 | <lambdabot> | Maybe you meant: ? . |
| 11:37:59 | <Guest34200> | one sec lol |
| 11:38:07 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 11:38:13 | <__monty__> | @where paste |
| 11:38:13 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 11:38:30 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 11:39:30 | <Guest34200> | https://paste.tomsmeding.com/YFGfSk0C |
| 11:40:36 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 11:41:07 | × | borne quits (~fritjof@2a06:8782:ffbb:1337:2133:4ed6:e22f:c3eb) (Quit: WeeChat 3.0) |
| 11:41:48 | <jacks2> | what's the type of convolveXY? |
| 11:42:29 | <Guest34200> | forall a. Num a => [[a]] -> [[a]] -> [[a]] |
| 11:42:37 | <jacks2> | and what's the type of readImg "volcano.jpg"? |
| 11:42:51 | <Guest34200> | FilePath -> IO [[Graphics.Image.ColorSpace.Pixel Y Double]] |
| 11:42:57 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 11:43:07 | <jacks2> | it's IO [[Graphics.Image.ColorSpace.Pixel Y Double]] |
| 11:43:07 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:43:15 | <Guest34200> | oh |
| 11:43:18 | <jacks2> | see the problem? |
| 11:43:26 | <Guest34200> | yeah it outputs io |
| 11:43:32 | <jacks2> | yes |
| 11:43:37 | <Guest34200> | but convolvexy takes in [[a]] |
| 11:43:43 | <Guest34200> | specifically [[double]] |
| 11:43:57 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:44:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:44:46 | <Guest34200> | tomsmeding mentioned earlier working in the IO monad as a resolution |
| 11:45:34 | <jacks2> | you can do the same thing you did in readImg, use <- |
| 11:47:57 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
| 11:48:11 | <Guest34200> | as in |
| 11:48:25 | <Guest34200> | set convolvexy ....... to a variable? |
| 11:48:26 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 11:48:33 | → | terrorjack joins (~terrorjac@ec2-18-162-149-225.ap-east-1.compute.amazonaws.com) |
| 11:48:38 | <Guest34200> | like result <- convolvexy .. . ... |
| 11:48:59 | → | chloekek joins (~chloekek@84-80-232-61.fixed.kpn.net) |
| 11:49:29 | <jacks2> | no, your issue, as you noticed above, is that readImg "volcano.jpg" returns IO [[..]] and convolvexy accepts [[..]] |
| 11:49:32 | <chloekek> | Does it make sense to use Cabal’s Nix integration when already running cabal from nix-shell? |
| 11:49:54 | <Guest34200> | right |
| 11:49:54 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:50:22 | hackage | xml-conduit 1.9.1.0 - Pure-Haskell utilities for dealing with XML with the conduit package. https://hackage.haskell.org/package/xml-conduit-1.9.1.0 (koral) |
| 11:50:26 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:50:33 | <jacks2> | so use <- to end up with [[..]] from readImg "volcano.jpg" |
| 11:51:28 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 11:53:54 | <Guest34200> | hmm I think I'm misunderstanding <-. I'm thinking of it in a imperative way, <- is like a statement no? |
| 11:54:58 | <jacks2> | :t getLine |
| 11:54:59 | <lambdabot> | IO String |
| 11:55:11 | <jacks2> | do line <- getLine; -- line is now String |
| 11:55:19 | <Guest34200> | :o |
| 11:55:25 | <Guest34200> | wow |
| 11:55:56 | <Guest34200> | so you're able to assign types like that? |
| 11:56:07 | <jacks2> | I figured you understand that much, since you are doing it in readImg |
| 11:56:35 | <Guest34200> | well I was thinking of it in the imperative way haha |
| 11:56:44 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 11:57:06 | <Guest34200> | like i'm assigning the output of some function to procImg |
| 11:57:34 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 11:58:39 | <__monty__> | Guest34200: What helped me understand is seeing do-notation desugared. `do { x <- getLine; putStrLn x }` desugars to `getLine >>= \x -> putStrLn x`. |
| 11:59:57 | <__monty__> | While `do { print 1; print 2 }` desugars to `print 1 >> print 2` which is equivalent to `print 1 >>= \_ -> print 2`, so unless you use <- you're not binding the value in what follows. |
| 12:01:51 | <jacks2> | <- in do allows you to seemingly remove IO within a do block, with a ceveat caveat that do block itself returns IO at the end. you can't escape IO once you start using it |
| 12:02:24 | <Guest34200> | i see |
| 12:02:24 | × | jacks2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (EOF)) |
| 12:03:17 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 12:04:02 | → | jacks2 joins (~bc8134e3@217.29.117.252) |
| 12:04:07 | <jacks2> | "do line <- getLine; putStrLn line" desugars to "getLine >>= \line -> putStrLn line" which is just "getLine >>= putStrLn" |
| 12:05:08 | <jacks2> | havre you used Maybe yet? |
| 12:05:10 | <jacks2> | have* |
| 12:05:35 | <Guest34200> | no |
| 12:06:05 | <Guest34200> | doing res <- readImg "vol.jpg" and then convolveXY res [[0.33,0.33,0.33],[0.33,0.33,0.33],[0.33,0.33,0.33]] still gives me the same error |
| 12:06:27 | <Guest34200> | but res shows up as the correct type |
| 12:06:50 | → | zaquest joins (~notzaques@5.128.210.178) |
| 12:06:57 | codedmart_ | is now known as codedmart |
| 12:07:24 | <ezzieyguywuf> | MarcelineVQ: thanks for yoyr thoughts on liquidhaskell |
| 12:07:47 | Guest34200 | is now known as daffy |
| 12:07:58 | <jacks2> | convolveXY doesn't return IO, which is what you have to return in IO do block |
| 12:08:00 | <jacks2> | :t return |
| 12:08:02 | <lambdabot> | Monad m => a -> m a |
| 12:08:18 | <jacks2> | use return to make IO a out of a |
| 12:09:25 | <daffy> | ohhh |
| 12:09:32 | <jacks2> | or, I guess, just print the result since you are in main |
| 12:10:22 | hackage | PortMidi-simple 0.1.0.0 - Simplified PortMidi wrapper https://hackage.haskell.org/package/PortMidi-simple-0.1.0.0 (AlexanderBondarenko) |
| 12:12:17 | <daffy> | right |
| 12:13:43 | → | EoF joins (~EoF@ip5b419221.dynamic.kabel-deutschland.de) |
| 12:15:27 | <daffy> | if I want to allow the user to input a filepath, does getLine work? or i guess the question i'm asking is does ghci read a filepath as a string |
| 12:15:35 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 12:15:49 | <jacks2> | yes. FilePath is just alias for String |
| 12:15:54 | × | EoF quits (~EoF@ip5b419221.dynamic.kabel-deutschland.de) (Client Quit) |
| 12:16:25 | <jacks2> | or you can pass it as command line argument |
| 12:16:28 | <jacks2> | :t getArgs |
| 12:16:29 | <lambdabot> | error: Variable not in scope: getArgs |
| 12:16:34 | <jacks2> | @hoogle getArgs |
| 12:16:34 | <lambdabot> | System.Environment getArgs :: IO [String] |
| 12:16:35 | <lambdabot> | System.Environment.Blank getArgs :: IO [String] |
| 12:16:35 | <lambdabot> | System.Directory.Internal.Prelude getArgs :: IO [String] |
| 12:17:32 | <jacks2> | use the one in System.Environment getArgs |
| 12:18:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 12:19:16 | <daffy> | ah okay, thank you man |
| 12:21:27 | → | gitgood joins (~gitgood@80-44-13-166.dynamic.dsl.as9105.com) |
| 12:22:10 | <__monty__> | If you want to do command-line arguments take a look at optparse-applicative. |
| 12:23:21 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 12:23:39 | <jacks2> | he has yet to use Maybe, and is just starting how to use do blocks, optparse-applicative might be a bit too advanced at this point :) |
| 12:23:46 | <jacks2> | starting to learn* |
| 12:23:49 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 12:24:44 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 12:25:32 | × | peutetre quits (~peutetre@185.163.110.108) (Remote host closed the connection) |
| 12:26:59 | × | basoares quits (~basoares@2a04:ee41:4:2178:a846:18f7:81d4:249b) (Ping timeout: 272 seconds) |
| 12:27:47 | <__monty__> | Didn't see that context. And it still depends. Some people prefer just getting things done the dirty way, others prefer investing some more time up front to come to a more elegant solution. |
| 12:28:14 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 264 seconds) |
| 12:31:27 | → | drbean_ joins (~drbean@TC210-63-209-94.static.apol.com.tw) |
| 12:32:58 | → | __minoru__shirae joins (~shiraeesh@46.34.207.247) |
| 12:33:51 | <daffy> | thanks guys for the help, do you guys have any recommendations on books to read or websites for learning haskell? |
| 12:34:14 | → | geekosaur joins (ac3a8f5e@172.58.143.94) |
| 12:34:24 | → | BigLama joins (~alex@static-176-165-167-17.ftth.abo.bbox.fr) |
| 12:35:22 | <BigLama> | Hi guys, I have somme issues with the Req library https://hackage.haskell.org/package/req-3.9.0/docs/Network-HTTP-Req.html |
| 12:35:28 | <__monty__> | If you're very new there's the books by Graham Hutton or Richard Bird or Haskell from first principles. If you're familiar with functional programming concepts CIS194 is often recommended. |
| 12:35:46 | <__monty__> | @where hutton |
| 12:35:46 | <lambdabot> | I know nothing about hutton. |
| 12:36:12 | <BigLama> | The doc says "Note that if you use req to do all your requests, connection sharing and reuse is done for you automatically." However, I've mad a first requestion to log in (successful) but a second requestion do not seem to share connection... |
| 12:36:30 | <BigLama> | s/requestion/request/ |
| 12:37:13 | <daffy> | completely new to functional programming, i've done a little bit of racket but that's it |
| 12:37:39 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 12:37:39 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 12:37:49 | <__monty__> | @where PIH |
| 12:37:49 | <lambdabot> | "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html> |
| 12:38:04 | <__monty__> | http://www.cs.ox.ac.uk/publications/books/functional/ |
| 12:38:12 | <__monty__> | @where HPFFP |
| 12:38:12 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
| 12:38:26 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 12:38:29 | <daffy> | awesome, thanks! |
| 12:39:26 | <__monty__> | BigLama: Compiled or in GHCi? And maybe it's only about reusing TCP connections? |
| 12:42:37 | × | chloekek quits (~chloekek@84-80-232-61.fixed.kpn.net) (Quit: Leaving) |
| 12:43:56 | <ij> | does repa or vector have functionality that could grow each pixel into a NxN in place? |
| 12:45:22 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 12:45:57 | × | xelxebar_ quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 12:47:48 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 12:48:18 | × | LKoen quits (~LKoen@185.61.176.203) (Remote host closed the connection) |
| 12:48:28 | <BigLama> | __monty__: compiled |
| 12:48:52 | hackage | hslua-core 1.0.0 - Bindings to Lua, an embeddable scripting language https://hackage.haskell.org/package/hslua-core-1.0.0 (tarleb) |
| 12:49:04 | <BigLama> | __monty__: that would be too bad. I'm looking for the same functionnalites as sessions in Python's requests |
| 12:49:53 | <__monty__> | BigLama: I'd wait for someone who's familiar with the library. That may well be the intent. |
| 12:50:58 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 12:50:58 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 12:51:22 | <BigLama> | __monty__: Okay, thanks. I've spend quite a few hours trying to make this work but could not figure it out |
| 12:51:32 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 12:51:57 | <ij> | what I'm looking for is actually flatten :D |
| 12:52:53 | → | basoares joins (~basoares@2a04:ee41:4:2178:ed37:7464:5079:3088) |
| 12:54:39 | <__monty__> | BigLama: Are you doing all the requests with req in a single `runReq`? |
| 12:55:33 | <BigLama> | __monty__: I've tried in a single runReq and in severals |
| 12:57:04 | <__monty__> | And you're sure you don't need to pass an authentication token you get from the login in the headers of other requests? |
| 12:57:08 | × | forgottenone quits (~forgotten@176.42.27.254) (Read error: Connection reset by peer) |
| 12:57:29 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 12:57:57 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 12:58:11 | → | forgottenone joins (~forgotten@176.42.27.254) |
| 12:58:54 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 12:59:31 | <BigLama> | __monty__: I don't know. In python, I log in first using a POST request and using their sessions mecanims, there is no need to pass anything else later on |
| 12:59:46 | → | darjeeling_ joins (~darjeelin@122.245.218.150) |
| 12:59:54 | <tomsmeding> | presumably it stores a cookie or something |
| 13:00:10 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:00:31 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 13:00:59 | <BigLama> | tomsmeding: Req does not allow for cookies management at my beginner level :/ |
| 13:01:02 | <BigLama> | https://paste.tomsmeding.com/DBMIZz02 |
| 13:01:03 | <tomsmeding> | web services don't generally require you to actually keep one tcp connection open when sending multiple requests for one account, because many http applications don't support that for various reasons |
| 13:01:40 | <tomsmeding> | "Support for cookies is quite minimalistic at the moment." - oh |
| 13:01:45 | <BigLama> | Here's my code for reference. The first GET request is a hack to get some attribute. The second request should be enough to stay logged Inoperable |
| 13:02:02 | <BigLama> | logged in* |
| 13:02:12 | <BigLama> | Back to Python I think :/ |
| 13:02:46 | <tomsmeding> | let me have a look |
| 13:04:21 | <tomsmeding> | oh I was looking at the wrong library lol |
| 13:04:40 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:05:06 | <BigLama> | tomsmeding: It's this one https://hackage.haskell.org/package/req. Thanks ! |
| 13:05:16 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 13:05:31 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 13:06:05 | <ij> | ah, it's actually the kronecker product I'm looking for!\ |
| 13:06:31 | <tomsmeding> | ij: you sure it's not traverse? |
| 13:06:36 | <ij> | tomsmeding, haha |
| 13:06:39 | <ij> | it's always traverse |
| 13:06:46 | <tomsmeding> | it's always traverse |
| 13:07:01 | × | swarmcollective quits (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Quit: WeeChat 2.8) |
| 13:07:39 | × | dxld quits (~dxld@80-109-136-248.cable.dynamic.surfer.at) (Quit: Bye) |
| 13:08:08 | → | Spidey joins (51cfc725@81-207-199-37.fixed.kpn.net) |
| 13:08:47 | → | LKoen joins (~LKoen@185.61.176.203) |
| 13:09:26 | <tomsmeding> | BigLama: could you double-check for me what the exact type of r2 is in your code? |
| 13:09:42 | <Spidey> | I'm trying to install ghcup on Ubuntu on Windows 10. I'm get compilation errors. Is that known? |
| 13:10:05 | <maerwald> | Spidey: what kind |
| 13:10:37 | <Spidey> | I've just checked that the dependencies are met and cleaned up the temp build folder. It will print the message again, 1 sec. |
| 13:10:44 | <tomsmeding> | BigLama: if you're using an editor with IDE integration you can just check the type that way; if not, you could put the following after line 21 of your paste and read the compiler error: (r2 :: ()) `seq` return () |
| 13:11:34 | <tomsmeding> | (there are easier/better ways but this one is the easiest to describe I think) |
| 13:11:34 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:11:45 | <Spidey> | [ ghc-make ] # on Win64, "install -s" calls a strip that doesn't understand 64bit binaries. |
| 13:11:46 | <Spidey> | [ ghc-make ] "/home/spidey/.ghcup/ghc/8.10.4/lib/ghc-8.10.4/bin/ghc-pkg" --force --global-package-db "/home/spidey... |
| 13:11:48 | <Spidey> | [ ghc-make ] Makefile:51: recipe for target 'install' failed |
| 13:12:02 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 13:12:14 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Quit: Leaving) |
| 13:12:24 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 13:12:49 | <maerwald> | Spidey: can you pastebin the whole error? https://paste.tomsmeding.com/ |
| 13:13:22 | <Spidey> | https://paste.tomsmeding.com/Ranh3C52 |
| 13:13:40 | × | daffy quits (01c84f1a@1.200.79.26) (Quit: Connection closed) |
| 13:13:49 | <Spidey> | I may pastebin the whole build log if necessary. |
| 13:14:13 | <BigLama> | tomsmeding: with your method, It says "BsResponse" |
| 13:14:15 | <Spidey> | I'm using the install script from the website: curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh |
| 13:14:47 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 13:14:52 | <maerwald> | Spidey: there's stuff cut off in the past |
| 13:14:56 | <tomsmeding> | BigLama: cool, that's what I thought |
| 13:15:05 | <maerwald> | *paste |
| 13:15:08 | → | emi00 joins (524df5b9@82.77.245.185) |
| 13:15:08 | × | hrdl quits (~ef24a0e6@unaffiliated/hrdl) (Quit: leaving) |
| 13:15:12 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 13:15:25 | <tomsmeding> | maerwald: I think they're copying from their terminal, which probably cuts off; is there a log file they can send? |
| 13:15:34 | → | hrdl joins (~ef24a0e6@unaffiliated/hrdl) |
| 13:15:46 | <maerwald> | ~/.ghcup/logs |
| 13:15:52 | <tomsmeding> | Spidey: ^ |
| 13:16:50 | <Spidey> | https://paste.tomsmeding.com/EtVs82M7 |
| 13:17:33 | <tomsmeding> | BigLama: can you try replacing the 'mempty' on the last line of your paste with the following: cookieJar (responseCookieJar (toVanillaResponse r2)) |
| 13:17:50 | <Spidey> | Yeah, I was copying from the terminal. I had looked on the log file and couldn't see anything more/before the part printed on the terminal that would |
| 13:17:51 | <Spidey> | indicate the root cause. |
| 13:18:21 | <tomsmeding> | Spidey: when in doubt, always send more logs, and avoid truncating logs, when asking questions :) |
| 13:18:39 | <Spidey> | Ok, sure. |
| 13:18:42 | <BigLama> | tomsmd |
| 13:18:57 | <maerwald> | ghc-pkg: Couldn't open database /home/spidey/.ghcup/ghc/8.10.4/lib/ghc-8.10.4/package.conf.d for modification: {handle: /home/spidey/.ghcup/ghc/8.10.4/lib/ghc-8.10.4/package.conf.d/package.cache.lock}: hLock: invalid argument (Invalid argument) |
| 13:19:01 | <maerwald> | I haven't seen that before |
| 13:19:07 | <tomsmeding> | maerwald: what do you think of the change (as of this morning) that paste code blocks now scroll horizontally instead of overflowing the page? |
| 13:19:14 | <BigLama> | tomsmeding: Not for the second requestion then ? Only the third ? |
| 13:19:19 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:19:34 | tomsmeding | thinks maybe this should be a mobile-only change |
| 13:19:39 | <BigLama> | (Sorry about the mistakes, the auto-complete got me every time...) |
| 13:19:54 | <tomsmeding> | BigLama: the second does the login, right, and the third should use that login? |
| 13:19:59 | <tomsmeding> | if that's correct, then yes |
| 13:20:00 | <BigLama> | Yes |
| 13:20:12 | <maerwald> | tomsmeding: I think it's fine either way, not sure if a button to force wrapping would be interesting |
| 13:21:06 | × | zmv- quits (~zmv@189.79.134.102) (Ping timeout: 256 seconds) |
| 13:21:10 | <hololeap> | % type Foo = Int; type Bar = Int; type Baz t = Int |
| 13:21:10 | <yahb> | hololeap: |
| 13:21:20 | <tomsmeding> | maerwald: that's a decent idea actually |
| 13:21:23 | <hololeap> | % (5 :: Foo) == (5 :: Bar) |
| 13:21:23 | <yahb> | hololeap: True |
| 13:21:43 | <hololeap> | % (5 :: Baz Bool) == (5 :: Baz Float) |
| 13:21:43 | <yahb> | hololeap: True |
| 13:21:56 | × | sQVe quits (~sQVe@unaffiliated/sqve) (Ping timeout: 240 seconds) |
| 13:22:17 | <BigLama> | tomsmeding: r3 <- req GET url NoReqBody bsResponse (cookieJar (responseCookieJar (toVanillaResponse r2))) |
| 13:22:27 | <BigLama> | returns the following error : |
| 13:22:35 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 13:22:51 | <Spidey> | I think I found a solution: https://stackoverflow.com/a/66191627 |
| 13:22:51 | <BigLama> | https://paste.tomsmeding.com/Z25MC3Vn |
| 13:23:26 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz) |
| 13:25:11 | <tomsmeding> | BigLama: oh wait remove that toVanillaResponse |
| 13:25:20 | <tomsmeding> | just 'cookieJar (responseCookieJar r2)' |
| 13:25:45 | tomsmeding | is too lazy to compile req myself |
| 13:25:55 | <maerwald> | Spidey: WSL 1? |
| 13:26:03 | <Spidey> | Yes. |
| 13:26:07 | <maerwald> | Use WSL 2 |
| 13:26:27 | <Spidey> | I don't use it too frequently, I think I install Ubuntu a while ago and never upgraded. |
| 13:26:44 | <maerwald> | it seems it's a known limitation on WSL1 |
| 13:26:48 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:99b1:a451:602d:e252) (Ping timeout: 246 seconds) |
| 13:27:02 | <BigLama> | tomsmeding: it compiles but it still asks for authentification the second time. Maybe I should set "keep-alive" in the headers ? |
| 13:27:12 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:27:16 | <tomsmeding> | BigLama: "asks for authentication"? |
| 13:27:19 | <BigLama> | In python, I can examine the headers but I don't know how to it in Haskell... |
| 13:27:24 | <tomsmeding> | what service are you connecting to |
| 13:27:28 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 13:27:49 | <Spidey> | Thanks. Gotta reboot to test it. |
| 13:27:54 | × | Spidey quits (51cfc725@81-207-199-37.fixed.kpn.net) (Quit: Connection closed) |
| 13:27:57 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:8291:22ac:ed1e:10e3) |
| 13:28:30 | <BigLama> | tomsmeding: the url is a private login page (for my university). Once you are logged in, you should not see the login page again. But the third request redirects to the login page... |
| 13:28:43 | <tomsmeding> | I see |
| 13:28:58 | <tomsmeding> | you can use responseHeader to get a single header, but unsure how to get all of them |
| 13:29:33 | <tomsmeding> | oh perhaps: responseHeaders (toVanillaResponse r3) |
| 13:30:40 | → | theelous3 joins (~theelous3@unaffiliated/theelous3) |
| 13:30:53 | <tomsmeding> | BigLama: can you perhaps print the value returned by 'responseCookieJar r2'? |
| 13:31:12 | <tomsmeding> | and look in your web browser what cookies are set by the website after login |
| 13:31:28 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
| 13:31:32 | <tomsmeding> | I have to go unfortunately, good luck :) |
| 13:31:51 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 13:31:52 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:31:53 | <BigLama> | tomsmeding: thanks for the help ! |
| 13:32:26 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Ping timeout: 264 seconds) |
| 13:32:54 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 13:38:21 | → | son0p joins (~son0p@181.136.122.143) |
| 13:38:43 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-kykpxwvfcawrxiyd) |
| 13:38:43 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:39:46 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 13:40:49 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 13:43:03 | × | drbean_ quits (~drbean@TC210-63-209-94.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 13:48:49 | → | Spidey joins (51cfc725@81-207-199-37.fixed.kpn.net) |
| 13:49:36 | <Spidey> | Wow, just wow. WSL2 with virtualization instructions support is absurdly faster, the IO is greatly improved. And now installation worked. |
| 13:49:50 | <Spidey> | Just wanted to tip the hat to you guys for the attention and help. |
| 13:50:11 | <maerwald> | o/ |
| 13:50:22 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 260 seconds) |
| 13:50:28 | × | Spidey quits (51cfc725@81-207-199-37.fixed.kpn.net) (Client Quit) |
| 13:50:40 | <maerwald> | should consider switching to windows and using WSL for deving |
| 13:52:03 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:52:10 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 13:52:44 | → | Tario joins (~Tario@201.192.165.173) |
| 13:53:01 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 13:54:21 | hackage | fbrnch 0.7.2 - Build and create Fedora package repos and branches https://hackage.haskell.org/package/fbrnch-0.7.2 (JensPetersen) |
| 13:57:39 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-ppogqhnucstulgdr) |
| 13:58:39 | → | mjevans- joins (~mjevans-@185.163.110.108) |
| 13:58:47 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 13:59:32 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 14:03:27 | <Franciman> | maerwald, and giving in to propertary software? |
| 14:04:16 | <maerwald> | idc when linux is unable to set my laptop to sleep, wakes it up while lid is closed and causes cpu overheating (it did) |
| 14:04:56 | <Franciman> | sad :< |
| 14:08:11 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-bfiroajaabomwjor) |
| 14:08:13 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:08:35 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:09:08 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 14:10:45 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 14:12:12 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:12:21 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 14:12:34 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:13:02 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 14:14:52 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:15:11 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:15:32 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:15:56 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 14:16:14 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:16:17 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) |
| 14:16:36 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:17:11 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:17:33 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:18:12 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:18:35 | → | GZJ0X__ joins (~gzj@unaffiliated/gzj) |
| 14:18:38 | × | _vaibhavingale_ quits (~Adium@203.188.228.9) (Quit: Leaving.) |
| 14:18:59 | <hololeap> | i haven't had a laptop be that incompatible with linux in years, but i remember having to mess with some weird acpi-related firmware in the past |
| 14:19:10 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:ace8:9f2e:8b98:ae8a) (Client Quit) |
| 14:19:13 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 14:19:18 | <maerwald> | thinkpad are incompatible since the dawn of time |
| 14:19:29 | <maerwald> | multi-monitor with different DPI is also crap on linux |
| 14:19:43 | × | LKoen quits (~LKoen@185.61.176.203) (Remote host closed the connection) |
| 14:20:01 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 14:20:13 | × | GZJ0X__ quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:20:17 | → | hiroaki_ joins (~hiroaki@2a02:908:4b18:8c40:1704:72f0:b8b1:4ff4) |
| 14:20:40 | × | TimWolla quits (~timwolla@chrono.xqk7.com) (Quit: Bye) |
| 14:21:47 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 14:21:57 | <hololeap> | maerwald: that's too bad. even with wayland? |
| 14:22:18 | <maerwald> | wayland isn't even an option |
| 14:22:49 | <Chousuke> | What kind of hardware do you have that it isn't? Works fine for me :P |
| 14:23:05 | <maerwald> | Chousuke: wayland doesn't support my graphics card? |
| 14:23:12 | <Chousuke> | nvidia? |
| 14:23:26 | <maerwald> | see, all those problems don't exist on windows |
| 14:23:40 | <maerwald> | and with WSL2, haskell deving makes sense |
| 14:23:52 | <Chousuke> | Instead, you get to deal with all the problems that do exist on Windows :) |
| 14:24:06 | <maerwald> | at least my hardware works |
| 14:24:12 | <jackdk> | True, but you will forever be uninstalling Bubble Witch 3 Saga, Clash of Empires: War of Lords, Cortana, Edge, telemetry, ... |
| 14:24:12 | <Chousuke> | but if your hardware happens to be particularly incompatible with Linux, there's not much you can do. |
| 14:24:46 | <jackdk> | It is absolutely appalling that people have to choose between being abused by their OS and hardware support. |
| 14:25:08 | <Chousuke> | I bought my machine with very deliberate choices for good Linux support, and it works. |
| 14:25:12 | <hololeap> | jackdk: have you tried this? https://github.com/Wohlstand/Destroy-Windows-10-Spying |
| 14:25:57 | <Chousuke> | basically, stay far away from nvidia and buy bog-standard stuff that isn't quite bleeding edge, and things generally work out fine :P |
| 14:26:32 | <hololeap> | there was also this: https://github.com/Sycnex/Windows10Debloater |
| 14:26:58 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:5561:62ee:ba22:2677) |
| 14:27:13 | <hololeap> | i barely use windows and i haven't tested to see if these get deactivated at some point, but they at least gave "success" messages when i ran them :) |
| 14:27:34 | → | TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667) |
| 14:27:44 | <mouseghost> | task failed successfuly |
| 14:29:01 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 14:29:38 | <Chousuke> | And with laptops I guess if you buy the cheapest stuff you can be quite certain that the manufacturer has barely bothered to make it work with Windows, never mind testing at all on other platforms. :/ |
| 14:30:47 | <Chousuke> | higher-end stuff may work better. |
| 14:31:20 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 14:31:46 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 14:32:25 | <hololeap> | i got my 10-year-old HP ProBook for $115 and it's great. It actually comes with VGA and ethernet ports built in :) |
| 14:32:42 | <Chousuke> | the only laptop I have is an older HP Elitebook and it works without issues out-of-the-box with Fedora, so I can't really say how common it is for laptops to have such issues with Linux. |
| 14:33:15 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 14:33:18 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:33:38 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Ping timeout: 264 seconds) |
| 14:34:28 | <geekosaur> | I'm currently using a (used) thinkpad x220 for which I specifically checked for linux support before buying |
| 14:35:06 | <geekosaur> | before that I had an hp envy which had various hardware issues in any OS (the model I had turned out to be somewhat infamous) but what did work worked fine in linux as well as windows |
| 14:36:12 | <geekosaur> | the only thing not working on either machine is the fingerprint sensor |
| 14:36:51 | → | carlomagno joins (~cararell@148.87.23.6) |
| 14:37:21 | hackage | hextream 0.3.0.0 - Streaming-friendly XML parsers https://hackage.haskell.org/package/hextream-0.3.0.0 (koral) |
| 14:39:20 | <Chousuke> | It's not guaranteed that things always work on Windows, either :P My work laptop is a newer HP and for a time I was prevented from upgrading to a newer release of Windows 10 because of a known driver bug that would render the machine unbootable if upgraded. |
| 14:41:05 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:2494:eb54:ea13:73ca) |
| 14:41:12 | → | albert_42 joins (~albert_42@2a02:8108:1100:16d8:148b:5e15:b9c8:a370) |
| 14:41:53 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 14:46:10 | → | HarveyPwca joins (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
| 14:48:01 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 276 seconds) |
| 14:49:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 14:49:10 | → | LKoen joins (~LKoen@185.61.176.203) |
| 14:49:16 | → | son0p joins (~son0p@181.136.122.143) |
| 14:53:17 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 14:53:37 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 14:54:48 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-nbzxxnjcuwzfkarj) |
| 14:55:24 | × | geekosaur quits (ac3a8f5e@172.58.143.94) (Quit: Connection closed) |
| 15:00:04 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:00:13 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:00:57 | → | slack1256 joins (~slack1256@45.4.2.52) |
| 15:06:32 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 15:06:50 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:07:13 | × | basoares quits (~basoares@2a04:ee41:4:2178:ed37:7464:5079:3088) (Ping timeout: 272 seconds) |
| 15:07:19 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:11:52 | hackage | hkgr 0.2.7 - Simple Hackage release workflow for package maintainers https://hackage.haskell.org/package/hkgr-0.2.7 (JensPetersen) |
| 15:12:36 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 240 seconds) |
| 15:14:42 | → | gehmehgeh_ joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 15:15:37 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds) |
| 15:16:10 | × | ekleog_ quits (~ii@grym.ekleog.org) (Quit: WeeChat 2.9) |
| 15:17:01 | → | ekleog joins (~ii@prologin/ekleog) |
| 15:18:47 | → | zmv- joins (~zmv@189.79.134.102) |
| 15:20:26 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:8291:22ac:ed1e:10e3) (Ping timeout: 264 seconds) |
| 15:20:26 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:20:55 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:20:57 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 264 seconds) |
| 15:21:09 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:3a91:83a8:1897:4aa2) |
| 15:22:23 | × | darjeeling_ quits (~darjeelin@122.245.218.150) (Ping timeout: 256 seconds) |
| 15:26:48 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 15:27:07 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:27:30 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:28:15 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 265 seconds) |
| 15:28:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:29:50 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 15:34:25 | → | ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net) |
| 15:34:25 | × | ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
| 15:34:25 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 15:34:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Ping timeout: 264 seconds) |
| 15:35:01 | → | Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) |
| 15:35:21 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 15:36:45 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 15:38:15 | × | psutcliffe quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Ping timeout: 272 seconds) |
| 15:38:29 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 15:38:37 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 15:39:22 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 15:39:34 | → | Tario joins (~Tario@201.192.165.173) |
| 15:40:57 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:41:07 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:42:12 | → | darjeeling_ joins (~darjeelin@122.245.218.150) |
| 15:43:16 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 15:44:57 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 15:44:57 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:45:04 | → | danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 15:45:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:47:29 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 15:47:48 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 15:47:49 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 15:52:00 | × | LKoen quits (~LKoen@185.61.176.203) (Remote host closed the connection) |
| 15:53:01 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 15:53:09 | → | mawk joins (mawk@serveur.io) |
| 15:53:51 | → | geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 15:55:07 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 15:55:11 | × | slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 256 seconds) |
| 15:55:14 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:56:20 | × | cartwright quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 268 seconds) |
| 15:57:53 | × | int80h quits (uid148779@gateway/web/irccloud.com/x-yapefbeohzqydcto) (Quit: Connection closed for inactivity) |
| 15:59:42 | → | cartwright joins (~chatting@gateway/tor-sasl/cantstanya) |
| 16:03:02 | → | bitmagie joins (~Thunderbi@200116b8069d920024758e6b0c3524c9.dip.versatel-1u1.de) |
| 16:03:08 | → | jophish joins (~jophish@2400:8901::f03c:91ff:fe39:7a9) |
| 16:03:08 | × | jophish quits (~jophish@2400:8901::f03c:91ff:fe39:7a9) (Client Quit) |
| 16:03:45 | × | geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 16:07:12 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:5561:62ee:ba22:2677) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:07:48 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 16:08:36 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 16:08:36 | × | troydm quits (~troydm@unaffiliated/troydm) (Ping timeout: 240 seconds) |
| 16:09:16 | × | bitmagie quits (~Thunderbi@200116b8069d920024758e6b0c3524c9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 16:13:02 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:5561:62ee:ba22:2677) |
| 16:14:48 | → | Wamanuz joins (~wamanuz@78-70-34-81-no84.tbcn.telia.com) |
| 16:14:48 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 16:15:23 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 16:15:50 | → | basoares joins (~basoares@2a04:ee41:4:2178:888c:4f28:a48f:16bd) |
| 16:16:36 | × | forgottenone quits (~forgotten@176.42.27.254) (Ping timeout: 240 seconds) |
| 16:16:58 | → | ixlun joins (~user@109.249.184.227) |
| 16:20:41 | <ixlun> | Hi all, does anyone know how I could map a function over the second element of a list of tuples? |
| 16:21:12 | → | bitmagie joins (~Thunderbi@200116b8069d920024758e6b0c3524c9.dip.versatel-1u1.de) |
| 16:21:22 | <Rembane> | ixlun: second is a function that lets you do that |
| 16:21:22 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 16:21:23 | <monochrom> | map (\(x,y) -> (x, f y)) |
| 16:21:24 | <Rembane> | :t second |
| 16:21:25 | <lambdabot> | Arrow a => a b c -> a (d, b) (d, c) |
| 16:21:45 | <Rembane> | That's not the type signature I had in mind... |
| 16:22:07 | <monochrom> | :) |
| 16:22:09 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 16:22:19 | <monochrom> | Set a=(->) and you're alright. |
| 16:22:34 | <dolio> | Does second element mean second element of the list, or second value in every tuple? |
| 16:23:01 | <ixlun> | second element of every tuple |
| 16:23:11 | <ixlun> | say, [("a", 1), ("b", 2)] and then map ((+) 1), so that [("a", 2), ("b", 3)] |
| 16:23:55 | <dolio> | > (fmap.fmap) (+1) [("a",1),("b",2),("c",3)] |
| 16:23:57 | <lambdabot> | [("a",2),("b",3),("c",4)] |
| 16:24:37 | <ixlun> | whoa, |
| 16:24:45 | ← | emmanuel_erc parts (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) () |
| 16:24:56 | <ixlun> | Looks like I need to study (fmap . fmap) |
| 16:25:10 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 16:25:59 | <monochrom> | The 1st fmap is list's map. The 2nd fmap is "instance Functor ((,) a) where you apply f to the second element" |
| 16:26:42 | <monochrom> | You can insert one more fmap there. |
| 16:27:22 | <jacks2> | > (fmap fmap fmap) (+1) [("a",1),("b",2),("c",3)] |
| 16:27:23 | × | bitmagie quits (~Thunderbi@200116b8069d920024758e6b0c3524c9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 16:27:23 | <lambdabot> | [("a",2),("b",3),("c",4)] |
| 16:27:27 | <monochrom> | Since (.) is "instance Functor ((->) e) where fmap = (.)", fmap . fmap = fmap `fmap` fmap = fmap fmap fmap |
| 16:28:32 | <monochrom> | https://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffalo_buffalo_buffalo_Buffalo_buffalo |
| 16:29:04 | <tomsmeding> | > map (fmap (+1)) [("a",1), ("b",2), ("c",3)] -- ixlun |
| 16:29:06 | <lambdabot> | [("a",2),("b",3),("c",4)] |
| 16:29:17 | <ixlun> | Hm, interesting, what is the rationale behind instance Functor (,) applying f to the second element of the tuple? |
| 16:29:53 | <tomsmeding> | > :t fmap :: (a -> b) -> (z,a) -> (z,b) |
| 16:29:55 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’ |
| 16:29:57 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 16:29:59 | <tomsmeding> | % :t fmap :: (a -> b) -> (z,a) -> (z,b) |
| 16:29:59 | <yahb> | tomsmeding: (a -> b) -> (z, a) -> (z, b) |
| 16:30:14 | <tomsmeding> | % :i Functor |
| 16:30:15 | <yahb> | tomsmeding: type Functor :: (* -> *) -> Constraint; class Functor f where; fmap :: (a -> b) -> f a -> f b; (<$) :: a -> f b -> f a; {-# MINIMAL fmap #-}; -- Defined in `GHC.Base'; instance [safe] Functor m => Functor (WriterT w m) -- Defined in `Control.Monad.Trans.Writer.Lazy'; instance [safe] Functor m => Functor (StateT s m) -- Defined in `Control.Monad.Trans.State.Lazy'; instance [safe] Functor m => Func |
| 16:30:15 | <monochrom> | The type leaves you no choice, as shown. |
| 16:30:27 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 16:30:33 | <tomsmeding> | f a -> f b, where f a should be (x,y) |
| 16:31:01 | <tomsmeding> | the thing you're mapping over is necessarily the last type parameter of the data type, which in the case of (,) is the second argument |
| 16:31:38 | <tomsmeding> | (note that (x,y) is the same as (,) x y) |
| 16:31:48 | → | kam1 joins (~kam1@5.125.126.175) |
| 16:32:10 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:32:13 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 260 seconds) |
| 16:32:33 | <ixlun> | Right, I think I get it. |
| 16:32:35 | × | [1]MrMobius quits (~MrMobius@208.58.206.154) (Ping timeout: 256 seconds) |
| 16:32:51 | hackage | monad-parallel 0.7.2.4 - Parallel execution of monadic computations https://hackage.haskell.org/package/monad-parallel-0.7.2.4 (MarioBlazevic) |
| 16:33:35 | <ixlun> | Ah, just found it.. https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.Base.html#line-983 |
| 16:34:17 | <tomsmeding> | and it's the only possible type-checking implementation, if you don't count undefined or nontermination |
| 16:34:34 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:5561:62ee:ba22:2677) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:34:56 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Ping timeout: 240 seconds) |
| 16:35:37 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 16:35:59 | → | troydm joins (~troydm@unaffiliated/troydm) |
| 16:37:45 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 16:39:28 | → | Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
| 16:41:27 | <c_wraith> | tomsmeding: not *quite* true. there are two possible implementations with different strictness |
| 16:41:55 | <tomsmeding> | and again you catch me worrying too little about laziness |
| 16:41:58 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 16:42:13 | <c_wraith> | actually, I guess there are three, if you do something terrifying and use seq |
| 16:42:52 | <tomsmeding> | but then there are eight possible implementations, right? there are three different values (x, y and f y), and each can be either forced or not |
| 16:43:18 | <tomsmeding> | oh and you can also force the input tuple or not, so that makes 16 |
| 16:43:46 | <tomsmeding> | I suspect you only counted forcing the input tuple or not? |
| 16:43:49 | <c_wraith> | you can't force x or y without forcing the tuple |
| 16:43:49 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-vvucditfymkrygow) |
| 16:43:56 | ← | albert_42 parts (~albert_42@2a02:8108:1100:16d8:148b:5e15:b9c8:a370) () |
| 16:43:58 | <c_wraith> | so those aren't independent |
| 16:43:59 | <tomsmeding> | oh true |
| 16:44:23 | <tomsmeding> | 8 + 1 = 9 then |
| 16:44:26 | <c_wraith> | but let's not count things using seq. I mostly just meant matching the input with a ! or not |
| 16:44:33 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:44:36 | <c_wraith> | err, with a ~ or not |
| 16:44:37 | × | ixlun quits (~user@109.249.184.227) (Read error: Connection reset by peer) |
| 16:44:52 | <tomsmeding> | (or bang patterns) |
| 16:45:06 | <tomsmeding> | but yes the "~ or not" is the most reasonable choice |
| 16:46:04 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 16:46:08 | <tomsmeding> | s/most/only/ |
| 16:47:11 | → | ixlun joins (~user@213.205.241.177) |
| 16:49:00 | <monochrom> | You might not like how "fmap id ⊥ = (⊥, ⊥) ≠ id ⊥" |
| 16:49:00 | × | ixlun quits (~user@213.205.241.177) (Read error: Connection reset by peer) |
| 16:50:30 | → | ixlun joins (~user@213.205.241.177) |
| 16:51:27 | → | ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
| 16:54:07 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 16:55:36 | → | ixlun` joins (~user@213.205.241.43) |
| 16:55:50 | × | basoares quits (~basoares@2a04:ee41:4:2178:888c:4f28:a48f:16bd) (Quit: Leaving) |
| 16:56:05 | <tomsmeding> | > length (fmap id (undefined, undefined) :: (Int, Bool)) |
| 16:56:06 | <lambdabot> | 1 |
| 16:56:07 | × | lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 260 seconds) |
| 16:56:11 | <tomsmeding> | > length (fmap id undefined :: (Int, Bool)) |
| 16:56:13 | <lambdabot> | 1 |
| 16:56:21 | <tomsmeding> | wut lambdabot does not agree with my ghci |
| 16:56:24 | → | conal joins (~conal@64.71.133.70) |
| 16:57:00 | <tomsmeding> | % length (fmap id undefined :: (Int, Bool)) |
| 16:57:00 | <yahb> | tomsmeding: 1 |
| 16:57:09 | tomsmeding | is confused |
| 16:57:30 | <tomsmeding> | my ghci throws undefined on that input |
| 16:57:35 | <tomsmeding> | % :q |
| 16:57:35 | <yahb> | tomsmeding: |
| 16:57:38 | <tomsmeding> | % length (fmap id undefined :: (Int, Bool)) |
| 16:57:40 | <yahb> | tomsmeding: 1 |
| 16:57:40 | × | ixlun quits (~user@213.205.241.177) (Ping timeout: 265 seconds) |
| 16:57:47 | <tomsmeding> | ¯\_(ツ)_/¯ |
| 16:58:55 | <tomsmeding> | this did not change between 8.8.4 and whatever yahb uses, did it? |
| 17:00:58 | <monochrom> | Hrm what does yahb use???!!!! Heh |
| 17:01:18 | <dmwit> | Yes, it changed very recently. Compare base-4.13 and base-4.14: |
| 17:01:24 | <dmwit> | http://hackage.haskell.org/package/base-4.13.0.0/docs/src/Data.Foldable.html#line-363 |
| 17:01:30 | <dmwit> | http://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.Foldable.html#line-363 |
| 17:01:47 | <tomsmeding> | OH length CHANGED |
| 17:01:53 | × | ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 17:02:03 | <dmwit> | IDK why `length` and `null` were special-cased. You would think they would go all the way and `foldMap f ~(_, y) = f y`. |
| 17:02:09 | tomsmeding | thought to have found a good way to check whether a tuple is evaluated or not |
| 17:02:29 | <dmwit> | Does... does seq not work for some reason? |
| 17:02:49 | <tomsmeding> | it does |
| 17:03:06 | <tomsmeding> | % (fmap id (undefined, undefined) :: (Int, Bool)) `seq` () |
| 17:03:06 | <yahb> | tomsmeding: () |
| 17:03:12 | <tomsmeding> | % (fmap id undefined :: (Int, Bool)) `seq` () |
| 17:03:13 | <yahb> | tomsmeding: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:3:10 in interactive:Ghci6 |
| 17:03:18 | <tomsmeding> | there we go |
| 17:03:20 | <dmwit> | why so complicated |
| 17:03:25 | <dmwit> | > (undefined, undefined) `seq` () |
| 17:03:25 | × | ixlun` quits (~user@213.205.241.43) (Read error: Connection reset by peer) |
| 17:03:27 | <lambdabot> | () |
| 17:03:55 | <tomsmeding> | monochrom: fmap id ⊥ = ⊥ ≠ (⊥, ⊥) |
| 17:04:16 | <dmwit> | So? We also have ⊥ = ⊥ ≠ (⊥, ⊥) |
| 17:04:19 | <monochrom> | Oh, I mean if you go "fmap f ~(x,y) = (x, f y)" |
| 17:04:39 | <jacks2> | > [undefined] `seq` () |
| 17:04:41 | <lambdabot> | () |
| 17:04:48 | <tomsmeding> | oh right, you meant "you might not like X if you'd use a lazy pattern-match" |
| 17:05:29 | <tomsmeding> | I'm not sure I've yet had a case where that would've tripped me up |
| 17:05:31 | <dmwit> | ohhh, that explains why not `foldMap f ~(_, y) = f y`, too, then. |
| 17:05:42 | → | ixlun` joins (~user@213.205.241.43) |
| 17:05:45 | <dmwit> | Wait, no it doesn't. |
| 17:06:14 | <dmwit> | Yeah, I don't know why they didn't do that. |
| 17:06:20 | <tomsmeding> | dmwit: I was trying to prove monochrom wrong, but they never claimed to have described the real state of things |
| 17:06:32 | <dmwit> | ah ^_^ |
| 17:07:09 | → | psutcliffe joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 17:07:20 | × | clog quits (~nef@bespin.org) (Ping timeout: 265 seconds) |
| 17:07:49 | <tomsmeding> | though I personally find `foldMap f p = f (snd p)`, or perhaps `foldMap f = f . snd`, easier to read than `foldMap f ~(_, y) = f y` |
| 17:08:02 | <dmwit> | Sure, why not. |
| 17:08:10 | <tomsmeding> | but that's bike-shedding |
| 17:08:27 | <c_wraith> | that's just saying there's value in writing functions :) |
| 17:08:30 | × | zmv- quits (~zmv@189.79.134.102) (Ping timeout: 246 seconds) |
| 17:08:31 | <dmwit> | foldMap f p = f y where (_, y) = p |
| 17:08:56 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 17:09:47 | <tomsmeding> | that's also the lazy variant, right? |
| 17:09:53 | <c_wraith> | yes |
| 17:10:04 | → | zmv- joins (~zmv@189.79.134.102) |
| 17:11:19 | <dmwit> | The fact that you have to ask suggests it may not be as readable as I was hoping. ^_^ |
| 17:11:48 | → | ixlun`` joins (~user@213.205.241.113) |
| 17:13:45 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 17:14:12 | → | toorevitimirp joins (~tooreviti@117.182.182.60) |
| 17:14:16 | × | ixlun` quits (~user@213.205.241.43) (Ping timeout: 276 seconds) |
| 17:15:41 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:16:53 | → | ixlun``` joins (~user@213.205.241.227) |
| 17:17:35 | → | yangby joins (~secret@125.120.165.139) |
| 17:18:34 | → | flocks joins (~user@2a01cb04044b57005aa023fffe35c956.ipv6.abo.wanadoo.fr) |
| 17:18:36 | × | ixlun`` quits (~user@213.205.241.113) (Ping timeout: 240 seconds) |
| 17:18:37 | → | redmp joins (~redmp@172.58.35.77) |
| 17:19:05 | ← | flocks parts (~user@2a01cb04044b57005aa023fffe35c956.ipv6.abo.wanadoo.fr) () |
| 17:21:34 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 17:21:53 | → | anon1891[m] joins (anon1891ma@gateway/shell/matrix.org/x-vgmfrgdeedfuosds) |
| 17:21:59 | → | ixlun```` joins (~user@109.249.184.198) |
| 17:22:27 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 17:23:43 | × | yangby quits (~secret@125.120.165.139) (Quit: Go out for a walk and buy a drink.) |
| 17:24:09 | × | ixlun``` quits (~user@213.205.241.227) (Ping timeout: 256 seconds) |
| 17:24:17 | × | aveltras quits (uid364989@gateway/web/irccloud.com/x-nbzxxnjcuwzfkarj) (Quit: Connection closed for inactivity) |
| 17:24:35 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 17:25:45 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds) |
| 17:27:46 | → | errst joins (~errst@unaffiliated/tirej) |
| 17:28:09 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 17:28:22 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 17:28:24 | → | conal joins (~conal@208.91.109.22) |
| 17:29:30 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:29:55 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:30:03 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 17:30:16 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 17:30:52 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 17:32:12 | → | dxld joins (~dxld@rush.pub.dxld.at) |
| 17:32:15 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 17:34:54 | × | Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
| 17:35:03 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 17:35:29 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 258 seconds) |
| 17:37:26 | × | jrqc quits (~rofl@96.78.87.197) (Ping timeout: 272 seconds) |
| 17:37:53 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 17:38:39 | zmv- | is now known as notzmv |
| 17:38:51 | × | notzmv quits (~zmv@189.79.134.102) (Changing host) |
| 17:38:51 | → | notzmv joins (~zmv@unaffiliated/zmv) |
| 17:38:52 | <kupi> | in the haskell community which is more widely used? >>> from Data.Function or .> from the flow package? |
| 17:39:39 | → | jrqc joins (~rofl@96.78.87.197) |
| 17:41:24 | × | errst quits (~errst@unaffiliated/tirej) (Ping timeout: 246 seconds) |
| 17:41:34 | → | forgottenone joins (~forgotten@176.42.27.254) |
| 17:41:43 | <dolio> | I doubt either is widely used. |
| 17:42:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:42:33 | <dolio> | If I had to guess, I'd say the one in base is more used. |
| 17:46:03 | × | average quits (uid473595@gateway/web/irccloud.com/x-ojfayrlpvuxvtkja) (Quit: Connection closed for inactivity) |
| 17:48:43 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 17:50:42 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 17:51:59 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 256 seconds) |
| 17:52:56 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds) |
| 17:53:48 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:54:33 | × | ixlun```` quits (~user@109.249.184.198) (Ping timeout: 264 seconds) |
| 17:56:25 | → | Wuzzy joins (~Wuzzy@p5790eecb.dip0.t-ipconnect.de) |
| 17:56:38 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:58:36 | <tomsmeding> | :t (&) |
| 17:58:37 | <lambdabot> | a -> (a -> b) -> b |
| 17:59:16 | <tomsmeding> | kupi: >>> is not in Data.Function, perhaps you meant a different package? |
| 17:59:58 | <c_wraith> | it's in Control.Arrow |
| 18:00:21 | <c_wraith> | the instance for (->) is flip (.) |
| 18:00:43 | <kupi> | tomsmeding: you are right |
| 18:00:55 | <kupi> | & is not the same as >>> |
| 18:01:00 | <tomsmeding> | ah c_wraith |
| 18:01:05 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 18:01:25 | <tomsmeding> | flip (.), I see |
| 18:01:29 | <kupi> | yup |
| 18:01:41 | <kupi> | more general than that, but for functions it does that |
| 18:04:10 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 18:06:31 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 18:07:55 | <[exa]> | kupi: where did you get Data.Function that contains >>> ? |
| 18:08:13 | <[exa]> | (maybe I should upgrade ghc) |
| 18:08:19 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 18:08:45 | → | soft-warm joins (44695313@ip68-105-83-19.sd.sd.cox.net) |
| 18:08:45 | <[exa]> | (also I should read faster it seems.) |
| 18:09:17 | <kupi> | [exa]: my dumb head, I was thinking about Control.Arrow >>> |
| 18:10:38 | <[exa]> | anyway afaik the widest usage of these (specialized to function) is with lens-ish code, but there everyone seems to use (&) |
| 18:11:40 | <[exa]> | >>> is too overloaded and .> has multiple semantics across hackage |
| 18:11:51 | <[exa]> | s/overloaded/polymorphic/ |
| 18:12:33 | × | xff0x quits (~xff0x@2001:1a81:5311:f400:3a91:83a8:1897:4aa2) (Ping timeout: 260 seconds) |
| 18:13:23 | → | xff0x joins (~xff0x@2001:1a81:5311:f400:9a7d:6852:57d4:8353) |
| 18:14:38 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:14:56 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 18:14:57 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 18:15:02 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:16:38 | × | usr25 quits (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
| 18:18:01 | <tomsmeding> | "multiple" is an understatement |
| 18:20:12 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 18:20:18 | <topos> | maerwald: do you genuinely want me to fix that issue? Because if so, give a mouse a cookie etc. i *will* end up contributing more :P |
| 18:21:17 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 18:23:57 | <maerwald> | topos: what cookies do you like? |
| 18:26:16 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 240 seconds) |
| 18:26:47 | <monochrom> | Give a mouse a cookie, and it becomes an ant haven for the rest of its support cycle. |
| 18:26:49 | <topos> | fair enough lol (oatmeal raisin) |
| 18:26:55 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 18:27:16 | <topos> | yes, i'm one of those degenerates |
| 18:27:36 | <sm[m]> | nothing wrong with oatmeal raisin |
| 18:27:46 | [exa] | appends to a shopping list |
| 18:27:52 | <maerwald> | I can offer spelt |
| 18:28:18 | <koz_> | Oat raisin cookies are great. |
| 18:28:26 | koz_ | is also a degenerate. |
| 18:28:53 | × | toorevitimirp quits (~tooreviti@117.182.182.60) (Read error: Connection reset by peer) |
| 18:29:22 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 18:32:04 | <monochrom> | Real degenerates eat cookies made of https://en.wikipedia.org/wiki/Degenerate_matter |
| 18:33:06 | <koz_> | monochrom: Real degenerates are Lovecraftian horrors? |
| 18:33:08 | <tomsmeding> | that's kinda hard, I'd think |
| 18:33:14 | <koz_> | tomsmeding: Hurr hurr. |
| 18:33:29 | tomsmeding | is proud |
| 18:33:34 | → | sQVe joins (~sQVe@unaffiliated/sqve) |
| 18:33:41 | <monochrom> | You can bet neutron star cookies are really dense and hard. :) |
| 18:34:47 | → | geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 18:35:23 | <topos> | koz_: i knew we |
| 18:35:27 | <topos> | *we'd like the same :) |
| 18:35:33 | <topos> | it just works out that way |
| 18:35:37 | <koz_> | Lol, yes. |
| 18:40:46 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-83-46.w86-212.abo.wanadoo.fr) |
| 18:40:48 | → | NGravity joins (csp@gateway/shell/xshellz/x-kkpjcyneagkaknmz) |
| 18:41:02 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 18:41:04 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-timnstzhilonhtxu) (Quit: Connection closed for inactivity) |
| 18:42:01 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Ping timeout: 276 seconds) |
| 18:43:58 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 276 seconds) |
| 18:45:26 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 240 seconds) |
| 18:45:43 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 18:46:57 | × | totte quits (~totte@chakra/totte) (Ping timeout: 256 seconds) |
| 18:48:23 | → | totte joins (~totte@chakra/totte) |
| 18:50:09 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 18:54:12 | × | __minoru__shirae quits (~shiraeesh@46.34.207.247) (Ping timeout: 246 seconds) |
| 18:54:15 | → | minoru_shiraeesh joins (~shiraeesh@109.166.56.139) |
| 18:54:39 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 18:57:42 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 18:57:57 | → | Tario joins (~Tario@201.192.165.173) |
| 18:58:09 | × | sQVe quits (~sQVe@unaffiliated/sqve) (Ping timeout: 264 seconds) |
| 18:59:28 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 19:01:37 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 19:01:57 | × | gawen_ quits (~gawen@movzbl.root.sx) (Quit: cya) |
| 19:02:11 | × | jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:02:43 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 19:03:35 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:54 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 19:04:05 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
| 19:04:05 | → | gawen joins (~gawen@movzbl.root.sx) |
| 19:07:40 | → | redmp joins (~redmp@172.58.35.77) |
| 19:07:46 | → | viluon joins (uid453725@gateway/web/irccloud.com/x-ignoxmynamzxzkoi) |
| 19:11:31 | → | lassulus joins (~lassulus@NixOS/user/lassulus) |
| 19:12:17 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:13:00 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 19:15:21 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 19:16:45 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 19:16:54 | → | ryankung joins (~ryankung@220.167.79.142) |
| 19:18:36 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
| 19:19:35 | × | _noblegas quits (uid91066@gateway/web/irccloud.com/x-hqwlvmypxcgqlrdh) (Quit: Connection closed for inactivity) |
| 19:20:16 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 240 seconds) |
| 19:20:27 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 19:20:35 | × | ryankung quits (~ryankung@220.167.79.142) (Remote host closed the connection) |
| 19:21:22 | → | redmp joins (~redmp@172.58.35.77) |
| 19:24:34 | → | zmv- joins (~zmv@189.79.134.102) |
| 19:24:55 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 19:25:22 | zmv- | is now known as notzmv |
| 19:25:32 | × | notzmv quits (~zmv@189.79.134.102) (Changing host) |
| 19:25:32 | → | notzmv joins (~zmv@unaffiliated/zmv) |
| 19:30:21 | → | redmp_ joins (~redmp@172.58.35.206) |
| 19:30:45 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 19:30:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:31:25 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 276 seconds) |
| 19:32:35 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 19:32:40 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 19:33:16 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
| 19:34:07 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 19:34:13 | <fresheyeball> | Is there a way I can do a runtime lookup of a typeclass instance? |
| 19:34:36 | <fresheyeball> | lets say I have `data Ext = forall a. Ext a` |
| 19:34:50 | <dolio> | No. |
| 19:35:18 | <fresheyeball> | There is no way I can lookup if `a` has an `Ord` instance and prove it to the compiler? |
| 19:35:24 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 19:35:34 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 19:35:37 | <fresheyeball> | I figured typeable might do this |
| 19:36:38 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 264 seconds) |
| 19:37:27 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:37:55 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 19:37:58 | <EvanR> | instanceable |
| 19:38:16 | <fresheyeball> | ?? |
| 19:38:29 | <EvanR> | might be what you would call this feature that doesn't exist |
| 19:39:33 | <fresheyeball> | I am pretty sure I did this before |
| 19:39:56 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 19:40:07 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 19:40:38 | <fresheyeball> | oh wait I remember |
| 19:40:44 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 19:40:47 | <fresheyeball> | yeah I did do this before, but it was horrible beyond reason |
| 19:41:06 | <fresheyeball> | https://hackage.haskell.org/package/exinst-0.7/docs/Exinst.html#t:Dict |
| 19:41:10 | <fresheyeball> | this is it |
| 19:42:53 | <ski> | fresheyeball : pretty sure it would violate parametricity |
| 19:43:05 | <fresheyeball> | nah, it really is doable |
| 19:43:11 | <fresheyeball> | but you need dependant pairs |
| 19:43:12 | <ski> | (`exists a. a' ought to be isomorphic to `()') |
| 19:43:22 | <dolio> | What you said is not possible. |
| 19:43:50 | <dolio> | Like, adding Typeable is different than your original example. |
| 19:43:57 | <ski> | if you ask about doing something slightly different, which may also apply as a solution to whatever you're doing, that might be possible |
| 19:44:24 | <fresheyeball> | if you have a pair where one part gives you the type, and the other part is a member, you can hookup things just so that pattern matching on the singleton, gives you proof of the constraint |
| 19:44:33 | <fresheyeball> | but I don't want to do that |
| 19:44:35 | <ski> | fresheyeball : in which way did you intend to use dependent pairs (and what exactly do you mean by that) ? |
| 19:44:38 | <fresheyeball> | so I am going to just take the no |
| 19:44:44 | lisq_ | is now known as lisq |
| 19:45:18 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:45:24 | <dolio> | Also, anything you do won't be 'runtime lookup of a typeclass instance' per se. |
| 19:45:27 | <fresheyeball> | ski: If I changed my code to existentialize in a singleton, as well as my term, it would be possible for me to lookup an arbitrary typeclass instance |
| 19:45:31 | <fresheyeball> | at runtime |
| 19:45:58 | <fresheyeball> | it's a runtime lookup because we don't know the type at compile time |
| 19:46:12 | <fresheyeball> | we have to branch at runtime because of the singleton |
| 19:46:37 | <ski> | it might just as well just be a run-time dispatch to a type class dictionary |
| 19:46:46 | <monochrom> | Typeable supports asking "is it an Int?" but not "is it an Eq?". |
| 19:47:01 | <ski> | (rather than statically, at compile-time, knowing which dictionary you're going to use) |
| 19:47:06 | <fresheyeball> | right typeable is not enough |
| 19:47:24 | <nshepperd> | technically that would be runtime type matching, following by returning the instance for that type looked up at compile time |
| 19:47:26 | <ski> | if you happen to know `Eq Int' already, you get the instance, though |
| 19:47:34 | <fresheyeball> | if my code had lots of existential stuff, I would use that exinst library to help me answer questions like "is it an Eq?" |
| 19:47:50 | <monochrom> | This is ample opportunity to do an "is it a pigeon?" meme. >:) |
| 19:47:54 | <fresheyeball> | I remember hooking this up being quite tricky even with exinst |
| 19:48:57 | <fresheyeball> | but for the record it really is doable |
| 19:49:08 | <fresheyeball> | I just forgot how, and now that I recall, I will not be doing this |
| 19:49:57 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 19:50:36 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Client Quit) |
| 19:50:51 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 19:51:30 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 19:54:03 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 19:55:53 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
| 19:58:31 | → | Tario joins (~Tario@201.192.165.173) |
| 19:59:24 | × | kam1 quits (~kam1@5.125.126.175) (Ping timeout: 265 seconds) |
| 19:59:46 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-ssveckbgtfjmjehe) |
| 19:59:53 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 20:05:12 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 265 seconds) |
| 20:07:12 | → | petersen joins (~petersen@redhat/juhp) |
| 20:10:01 | × | jacks2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout)) |
| 20:15:41 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:21:05 | × | psutcliffe quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Remote host closed the connection) |
| 20:21:26 | → | psutcliffe joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 20:21:43 | → | fendor_ joins (~fendor@178.165.128.181.wireless.dyn.drei.com) |
| 20:23:34 | → | son0p_ joins (~son0p@181.136.122.143) |
| 20:24:27 | → | crobbins_ joins (~crobbins@2601:2c1:200:ec50:5155:efb:dbf7:71bd) |
| 20:24:48 | → | rndBob2 joins (49ac8a24@c-73-172-138-36.hsd1.de.comcast.net) |
| 20:25:01 | × | fendor quits (~fendor@91.141.0.74.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
| 20:25:22 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 20:25:25 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 20:27:18 | × | crobbins quits (~crobbins@2601:2c1:200:ec50:6092:acc2:26a1:f490) (Ping timeout: 260 seconds) |
| 20:27:22 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 20:27:26 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 265 seconds) |
| 20:28:37 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
| 20:29:30 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Client Quit) |
| 20:29:31 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
| 20:31:24 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) |
| 20:31:29 | <redmp_> | is there a way to get the ip addr of a host with the nixops "nodes" input? |
| 20:31:58 | <redmp_> | sorry, wrong channel |
| 20:37:06 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Remote host closed the connection) |
| 20:38:39 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 20:39:16 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator") |
| 20:39:58 | × | rndBob2 quits (49ac8a24@c-73-172-138-36.hsd1.de.comcast.net) (Quit: Connection closed) |
| 20:40:10 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 20:42:46 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 20:42:57 | → | vicfred joins (vicfred@gateway/vpn/mullvad/vicfred) |
| 20:44:23 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 20:45:18 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator") |
| 20:45:28 | → | usr25 joins (~J@50.red-83-46-59.dynamicip.rima-tde.net) |
| 20:46:49 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 20:47:38 | × | gehmehgeh_ quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 20:48:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 20:49:03 | → | gehmehgeh_ joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 20:51:35 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Client Quit) |
| 20:52:26 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 20:52:30 | × | puke quits (~vroom@217.138.252.56) (Ping timeout: 272 seconds) |
| 20:53:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:53:25 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 20:55:01 | × | usr25 quits (~J@50.red-83-46-59.dynamicip.rima-tde.net) (Quit: Bye) |
| 20:58:22 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 20:58:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 20:58:44 | × | catt quits (~r@31.127.31.99) (Remote host closed the connection) |
| 21:00:21 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:02:38 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 21:03:37 | × | emi00 quits (524df5b9@82.77.245.185) (Quit: Connection closed) |
| 21:04:21 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:411:b35c:bf3:8b48) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:06:04 | pierrot_ | is now known as pierrot |
| 21:06:18 | × | pierrot quits (~pi@5.189.155.139) (Changing host) |
| 21:06:18 | → | pierrot joins (~pi@unaffiliated/pierrot) |
| 21:07:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 21:09:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:13:59 | × | crobbins_ quits (~crobbins@2601:2c1:200:ec50:5155:efb:dbf7:71bd) (Remote host closed the connection) |
| 21:15:25 | → | average joins (uid473595@gateway/web/irccloud.com/x-vkybhfbovzssiwuk) |
| 21:16:06 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:17:05 | × | hiroaki_ quits (~hiroaki@2a02:908:4b18:8c40:1704:72f0:b8b1:4ff4) (Ping timeout: 272 seconds) |
| 21:20:52 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 21:21:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 21:22:18 | → | alx741 joins (~alx741@186.178.108.37) |
| 21:24:10 | → | knupfer joins (~Thunderbi@200116b82ca67500acedfe2ebb5ba223.dip.versatel-1u1.de) |
| 21:24:52 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 21:25:27 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 21:28:22 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 21:28:32 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:29:36 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 21:30:57 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 21:31:02 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 21:32:06 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 21:32:33 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 21:32:39 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 21:33:37 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 21:36:10 | → | kam1 joins (~kam1@5.125.126.175) |
| 21:37:13 | → | epsyloN joins (~epsyloN-@192-222-209-220.qc.cable.ebox.net) |
| 21:37:30 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 21:38:21 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 21:39:28 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Remote host closed the connection) |
| 21:39:36 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 21:40:36 | → | coot_ joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 21:41:10 | × | coot_ quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 21:42:23 | → | coot_ joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 21:42:29 | × | epsyloN quits (~epsyloN-@192-222-209-220.qc.cable.ebox.net) (Remote host closed the connection) |
| 21:46:19 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 21:46:19 | × | coot_ quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (K-Lined) |
| 21:49:48 | → | hiroaki_ joins (~hiroaki@2a02:908:4b18:8c40:331:1c71:e87e:3061) |
| 21:54:35 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 21:56:36 | × | kam1 quits (~kam1@5.125.126.175) (Ping timeout: 240 seconds) |
| 21:57:43 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 21:57:56 | × | knupfer quits (~Thunderbi@200116b82ca67500acedfe2ebb5ba223.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 21:59:46 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 22:00:32 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 22:01:04 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Remote host closed the connection) |
| 22:01:25 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 22:01:32 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 22:01:56 | × | son0p_ quits (~son0p@181.136.122.143) (Ping timeout: 240 seconds) |
| 22:02:42 | → | son0p joins (~son0p@181.136.122.143) |
| 22:04:55 | → | kam1 joins (~kam1@5.125.126.175) |
| 22:06:27 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 260 seconds) |
| 22:06:42 | × | son0p quits (~son0p@181.136.122.143) (Client Quit) |
| 22:08:22 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 22:10:45 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 22:11:05 | → | emmanuel_erc joins (~user@cpe-74-71-106-64.nyc.res.rr.com) |
| 22:11:32 | <emmanuel_erc> | Has anyone tried to use https://github.com/ocharles/ghc-nix? |
| 22:11:44 | <emmanuel_erc> | s/anyone/anyone here/ |
| 22:11:59 | × | deja quits (~deja@212095008174.public.telering.at) (Quit: requested) |
| 22:12:12 | × | mjevans- quits (~mjevans-@185.163.110.108) (Remote host closed the connection) |
| 22:12:22 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 22:12:28 | → | deja joins (~deja@212095008174.public.telering.at) |
| 22:12:30 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 22:14:24 | <ddellacosta> | nope, but looks really neat, thanks |
| 22:15:05 | <ddellacosta> | seems pretty experimental still though |
| 22:15:16 | <emmanuel_erc> | Yeah, I'm trying to get it to work. |
| 22:15:17 | <Franciman> | no, it is really interesting, but I will never use it. I prefer using as much free software as I can |
| 22:15:26 | <Franciman> | it may be cool to make a ghc-guix |
| 22:15:26 | <Franciman> | :') |
| 22:15:51 | <emmanuel_erc> | Does guix has "recursive guix"? |
| 22:16:58 | <Franciman> | what would it be? |
| 22:18:22 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 22:18:28 | <emmanuel_erc> | This library (ghc-nix) needs to call nix-build within a nix-build. |
| 22:18:39 | <emmanuel_erc> | I suspect guix would have to do something similar |
| 22:19:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:21:50 | <jackdk> | hololeap: no, but also it's disgusting that such things are necessary |
| 22:22:16 | <NieDzejkob> | argh, MonadState's functional dependency prevents me from writing a neat instance. Now I'll have to make up names for my special variants of get, gets, put, modify... |
| 22:23:10 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:24:05 | × | psutcliffe quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Quit: Leaving) |
| 22:27:52 | → | I440r joins (~I440r@217.146.82.202) |
| 22:30:31 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 22:31:37 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 22:32:10 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 22:35:28 | <koz_> | How do you spell 'please fetch this package from Github right here' in a cabal.project file again? |
| 22:36:47 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 22:37:37 | × | forgottenone quits (~forgotten@176.42.27.254) (Quit: Konversation terminated!) |
| 22:37:44 | × | Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
| 22:39:13 | <int-e> | koz_: https://cabal.readthedocs.io/en/3.4/cabal-project.html#specifying-packages-from-remote-version-control-locations |
| 22:39:32 | <koz_> | int-e: Perfect, thank you! |
| 22:39:36 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 22:39:38 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) (Remote host closed the connection) |
| 22:39:48 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 22:40:01 | → | Tario joins (~Tario@201.192.165.173) |
| 22:42:37 | → | puke joins (~vroom@217.138.252.56) |
| 22:42:38 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Ping timeout: 264 seconds) |
| 22:43:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 22:48:05 | <dolio> | If the fundep prevents an instance, the instance is pretty suspicious. |
| 22:48:05 | × | Wuzzy quits (~Wuzzy@p5790eecb.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 22:48:24 | <dolio> | Because the purpose of the fundeps is to make the classes practically useful. |
| 22:49:08 | <koz_> | NieDzejkob: What exactly are you trying to do? |
| 22:49:25 | × | gehmehgeh_ quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 22:50:31 | <NieDzejkob> | I basically need to thread many different parts of context through the same state monad, so I'm using State TMap |
| 22:51:06 | <NieDzejkob> | I have a typeclass that provides the initial value so I was hoping I could do instance InitialValue a => MonadState a (State TMap) |
| 22:52:25 | <koz_> | Yeah, that's why it won't work. You wanna newtype and then define over that. |
| 22:52:49 | <koz_> | For State, the instance is (MonadState s (State s)) |
| 22:52:55 | <koz_> | And the fundep burns that in. |
| 22:53:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:53:20 | <NieDzejkob> | yeah, I'm simplifying. I do have a newtype |
| 22:53:57 | <NieDzejkob> | the issue is that there are many possible state types for the same monad type |
| 22:53:58 | <int-e> | :t gets |
| 22:53:59 | <lambdabot> | MonadState s m => (s -> a) -> m a |
| 22:55:27 | <ski> | the FDs here always felt awkward |
| 22:55:41 | <NieDzejkob> | what's the motivation for that functional dep? |
| 22:55:47 | <nshepperd> | i sometimes think about the difference between "class MonadState s m | m -> s; instance MonadState Foo Bar" and "class MonadState s m; instance (s ~ Foo) => MonadState s Bar" |
| 22:55:55 | <merijn> | That's because all the classes in mtl are bad anyway, tbh |
| 22:56:14 | <ski> | being able to identify which state/environment/output to refer to, solely from its type |
| 22:56:16 | <dolio> | It ensures that the relevant instance can be inferred from just `m`. |
| 22:56:29 | <int-e> | NieDzejkob: so you can write 'get' and the result type is inferred |
| 22:56:41 | <nshepperd> | the latter lets you have effectively different fundep rules for each instance, but doesn't give as good inference when the second parameter is unknown |
| 22:56:46 | → | cntrl joins (~cntrl_@p200300ea6f41360063c0e986f070bad8.dip0.t-ipconnect.de) |
| 22:56:46 | <dolio> | Otherwise you'd need to annotate every use of `get` with the type of state you want to extract, unless it was determined by something else. |
| 22:57:16 | <ski> | yea .. better would possibly be to associate some kind of labels or identifiers with it |
| 22:57:27 | <int-e> | it's a design decision... you get better type inference if the monad determines what the embedded state's type is |
| 22:57:39 | × | cntrl quits (~cntrl_@p200300ea6f41360063c0e986f070bad8.dip0.t-ipconnect.de) (Client Quit) |
| 22:58:03 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:b84a:c23b:9840:733b) |
| 22:58:41 | → | systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) |
| 22:59:08 | <koz_> | jared-w: Ping on Github Actions for Haskell-related stuff. |
| 22:59:22 | <int-e> | it might also fit better with transformers which would otherwise easily become very overlapping (if you don't have the fundep you may be tempted to lift MonadState through a StateT... because who would have the same state type twice in a transformer stack?) |
| 23:00:02 | <NieDzejkob> | ski: yeah, but I'd like the declaration of each part of state to be self-contained in the component that uses it |
| 23:00:06 | <int-e> | (which will work fine until somebody does exactly that) |
| 23:00:08 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 23:00:33 | <nshepperd> | you could use lens combinators in this case. without a typeclass even, unless you really have a good reason for wanting to look things up by type specifically |
| 23:00:40 | <ski> | (yea, and ideally, doing that should be a reasonable thing to do) |
| 23:00:56 | <ski> | NieDzejkob : not sure what you have in mind by that |
| 23:02:26 | × | systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection) |
| 23:02:33 | → | systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) |
| 23:05:55 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
| 23:08:58 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 23:09:44 | inkbottle | is now known as zebrag |
| 23:10:45 | × | systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Ping timeout: 264 seconds) |
| 23:10:59 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 23:11:05 | × | fendor_ quits (~fendor@178.165.128.181.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 23:13:20 | × | conal quits (~conal@208.91.109.22) (Quit: Computer has gone to sleep.) |
| 23:13:47 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 23:16:29 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 23:16:51 | × | ddellacosta quits (~ddellacos@86.106.143.10) (Remote host closed the connection) |
| 23:17:17 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 23:20:57 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 265 seconds) |
| 23:21:05 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 23:21:55 | × | alx741 quits (~alx741@186.178.108.37) (Quit: alx741) |
| 23:22:15 | → | conal joins (~conal@192.145.118.121) |
| 23:24:32 | <NieDzejkob> | OH, so import cycles are an error and I actually NEED to do this |
| 23:25:38 | <fresheyeball> | https://gitlab.com/fresheyeball/Shpadoinkle/-/blob/master/html/Shpadoinkle/Html/Memo.hs#L44 |
| 23:25:39 | <davean> | NieDzejkob: there are ways to do cylces, but they're special. You should avoid it. |
| 23:25:48 | <fresheyeball> | turns out I am wrong about what this bit of code does |
| 23:25:52 | <fresheyeball> | but I don't know how to fix it |
| 23:26:02 | <fresheyeball> | I thought it would make an IORef on the first eval |
| 23:26:09 | <fresheyeball> | and then re-use it for subsequent evals |
| 23:26:20 | <fresheyeball> | but ghci is showing me it runs that monad on each eval |
| 23:26:41 | <fresheyeball> | I added putStrLn between 44 and 45 and it prints each time |
| 23:28:34 | <fresheyeball> | oh shit I see it |
| 23:28:37 | <fresheyeball> | duck duck |
| 23:31:29 | NieDzejkob | quacks |
| 23:35:12 | <NieDzejkob> | Okay, let me try explaining what I'm trying to do again. Let's say I have a set of modules, and each of them defines a data type. I want to create a state monad that holds one of each type (the Context), and write operations in the Context monad, where each module uses its own part. I'm currently using a type-indexed map, and the simple-somewhat-ugly approach of just defining a record with all of the types doesn't work because of an import cycle. Any |
| 23:35:12 | <NieDzejkob> | other options? |
| 23:35:23 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-bfiroajaabomwjor) (Quit: Connection closed for inactivity) |
| 23:37:29 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 23:40:23 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:44cd:7ec7:332d:f0ab) |
| 23:45:39 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 23:45:45 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 23:50:08 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 23:51:43 | × | usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 245 seconds) |
| 23:51:45 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:b84a:c23b:9840:733b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:56:03 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:b84a:c23b:9840:733b) |
| 23:59:53 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
All times are in UTC on 2021-02-27.