Home freenode/#haskell: Logs Calendar

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.