Home liberachat/#haskell: Logs Calendar

Logs on 2021-07-30 (liberachat/#haskell)

00:02:36 × betelgeuse quits (~john2gb@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
00:06:31 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
00:07:02 <Axman6> I've been working on translating a python project which makes heavy use of the new types stuff into Haskell, and once you understand what the translation is, it's been fairly mechanical. I should get back to that
00:12:58 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
00:19:27 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:20:06 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
00:25:07 × epolanski quits (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
00:26:04 lavaman joins (~lavaman@98.38.249.169)
00:27:39 × vicfred_ quits (~vicfred@user/vicfred) (Quit: Leaving)
00:31:15 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 276 seconds)
00:31:46 × Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_)
00:37:14 euouae joins (~euouae@user/euouae)
00:44:38 averell joins (~averell@user/averell)
00:45:40 × haritz quits (~hrtz@user/haritz) (Ping timeout: 268 seconds)
00:50:36 × alx741 quits (~alx741@181.196.69.85) (Quit: alx741)
00:51:15 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
00:51:49 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
00:56:20 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 250 seconds)
00:56:25 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
00:57:14 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
00:58:03 ukari joins (~ukari@user/ukari)
00:58:24 haritz joins (~hrtz@62.3.70.206)
00:58:25 × haritz quits (~hrtz@62.3.70.206) (Changing host)
00:58:25 haritz joins (~hrtz@user/haritz)
01:01:04 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
01:01:05 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
01:01:38 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
01:01:40 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
01:03:10 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds)
01:03:27 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
01:05:18 <lechner> Hi, is it possible to use Aeson's omitNothingFields in this example without a parameterized type? Thanks! https://hackage.haskell.org/package/aeson-1.5.6.0/docs/Data-Aeson.html#v:omitNothingFields
01:05:42 retroid_ joins (~retro@5ec19a54.skybroadband.com)
01:07:11 <Axman6> lechner: I'm not sure what you mean
01:08:47 <lechner> i think i have an import problem: ‘toJSON’ is not a (visible) method of class ‘ToJSON’
01:09:36 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 276 seconds)
01:09:56 <Axman6> did you import Data.Aeson (ToJSON(..))?
01:11:10 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
01:11:40 × xff0x quits (~xff0x@2001:1a81:52ef:f900:6be3:99e6:cbd0:482d) (Ping timeout: 272 seconds)
01:12:48 xff0x joins (~xff0x@2001:1a81:532e:4200:3fe0:364:9ae2:d4b0)
01:14:26 × bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 256 seconds)
01:16:52 roboguy__ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
01:17:42 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
01:18:48 Null_A joins (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
01:20:06 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 256 seconds)
01:22:20 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
01:28:39 × roboguy__ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) ()
01:29:03 neurocyte3 joins (~neurocyte@45.93.108.22)
01:29:03 × neurocyte3 quits (~neurocyte@45.93.108.22) (Changing host)
01:29:03 neurocyte3 joins (~neurocyte@user/neurocyte)
01:32:06 <lechner> Axman6: thanks! I forgot the brackets
01:32:38 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
01:32:38 neurocyte3 is now known as neurocyte
01:32:43 <lechner> also, is it possible to generate pretty, canonical JSON?
01:35:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:36:51 × bruceleewees quits (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 268 seconds)
01:37:44 bruceleewees joins (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl)
01:39:08 <c_wraith> um. what does "canonical" mean in this context?
01:39:23 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
01:39:23 <lechner> sorted by field name
01:39:34 <c_wraith> I've never seen a spec say that's canonical
01:40:09 <lechner> c_wraith: https://metacpan.org/pod/JSON#canonical
01:40:41 <c_wraith> CPAN isn't a JSON spec
01:41:05 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
01:41:26 Erutuon joins (~Erutuon@user/erutuon)
01:41:31 <lechner> is there another way? we commit some JSON to Git. maybe there is an external program
01:42:14 <euouae> it's the same data, why does it matter?
01:42:22 <euouae> If you want it sorted, then you can sort it
01:42:35 <lechner> how?
01:43:12 <euouae> https://hackage.haskell.org/package/aeson-1.5.6.0/docs/Data-Aeson.html#g:3
01:43:24 <euouae> Apply a tree transformation
01:44:08 <lechner> actually, there is https://hackage.haskell.org/package/canonical-json
01:45:28 <lechner> although Decoding/encoding Unicode code-points beyond U+00ff is currently broken
01:46:07 phma joins (phma@2001:5b0:210d:748:6bd3:69b4:5bd0:5d7a)
01:46:13 <euouae> https://hackage.haskell.org/package/canonical-json-0.6.0.0/docs/src/Text.JSON.Canonical.Parse.html#renderCanonicalJSON
01:46:22 <euouae> You can see they're just using a tree transformation that sorts it
01:47:37 <euouae> Looks like the canonical-json package should be avoided
01:47:52 <lechner> yeah
01:48:13 <euouae> just sort the tree yourself and rely on aeson for printing
01:49:03 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
01:49:11 lavaman joins (~lavaman@98.38.249.169)
01:52:32 <euouae> What does forall s. mean? In a signature
01:52:56 <euouae> For example, https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Monad-ST-Safe.html#v:runST
01:53:32 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
01:53:47 <EvanR> in that case it's how you use rankN types, in this case rank 2. The argument type is itself a polymorphic function type
01:54:04 <c_wraith> It's a polymorphic value, not a function. :P
01:54:14 <EvanR> shoot i was going by memory xD
01:54:14 <lechner> euouae: how about pretty?
01:54:46 <euouae> I'm not following
01:54:52 <EvanR> yeah I'm lost now.
01:55:00 <euouae> lechner: What about pretty?
01:55:02 <c_wraith> euouae: it literally means "for all s". It's the consequences of that which get interesting.
01:55:16 <lechner> euouae: sorry, pretty JSON
01:55:21 <euouae> c_wraith: but 'a' means for any. So... ?
01:55:33 <euouae> lechner: I don't know what that means, explain please?
01:55:36 <c_wraith> euouae: the interesting thing there is that it's inside the parenthesis
01:56:06 <euouae> c_wraith: so it's (for all s. ST s) a ?
01:56:07 <EvanR> the letter itself doesn't matter, it's just a name
01:56:09 <c_wraith> euouae: more explicitly, the type of runST is forall a. (forall s. ST s a) -> a
01:56:55 <c_wraith> euouae: since it's in the parenthesis, the scope of the polymorphism is constrained. The argument to the function must be polymorphic over all s, no matter what choice is made for a
01:56:55 <lechner> euouae: formatted for human consumption, for example https://metacpan.org/pod/JSON#pretty
01:57:31 <euouae> c_wraith: Ok, thus it is 'private'. Kinda like being unable to have a general arrow a->b
01:58:17 <c_wraith> euouae: in a sense. It means the choice of s is unknown to the caller, so they must provide a value that will work with any s
02:00:21 <c_wraith> > let foo :: (forall n. Num n => n -> n) -> (Int, Double) ; foo f = (f 1, f 3.2) in foo (+1) -- a slightly more obvious use case
02:00:23 <lambdabot> (2,4.2)
02:00:29 alx741 joins (~alx741@181.196.69.85)
02:01:15 <c_wraith> euouae: That's a simple example of requiring the function being passed in to work with any instance of Num, so that it can be used at two different types in the body
02:01:40 sh9 joins (~sh9@softbank060116136158.bbtec.net)
02:01:46 <euouae> nice
02:01:50 <euouae> wait, is that valid Haskell?
02:02:01 <c_wraith> it is if you add the RankNTypes extension
02:02:48 <euouae> why is it called rank N types?
02:03:14 <c_wraith> The rank of a type is (in rough terms) how nested the foralls in it are
02:03:30 × paravida quits (~myChateau@user/paravida) (Ping timeout: 240 seconds)
02:03:31 <c_wraith> Without that extension, all foralls are implicit and at the top level - rank 1
02:03:45 <c_wraith> That extension allows you to nest them arbitrarily deep
02:04:10 <euouae> using the forall word?
02:04:18 <c_wraith> yeah
02:04:38 <euouae> seems like there's different kinds of 'type N' types
02:04:42 <euouae> sorry, rank N
02:05:12 × alx741 quits (~alx741@181.196.69.85) (Client Quit)
02:05:47 <c_wraith> hmm. you can divide them up a bunch of different ways, but I don't think that's what you mean. Are you making a comparison to higher-kinded types?
02:06:23 laman joins (laman@2600:3c02::f03c:92ff:fe3e:c08d)
02:06:46 <euouae> forall a -> (forall b -> (forall c -> d)) and a -> (forall b -> (forall c -> forall d)) ?
02:06:52 <euouae> Are not these both rank 2?
02:07:07 <euouae> Ugh, are these not both rank 2? I'm way too tired
02:08:50 <c_wraith> you mean forall a. a -> (forall b. b -> (forall c. c -> d)), and such with the other?
02:09:01 <euouae> yeah
02:09:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
02:09:48 <euouae> ok well take a rank 2 type X and form a -> b -> X and a -> X -> b. Seems like both are still rank 2
02:09:51 <c_wraith> Those are higher-rank, but not meaningfully so. They can be rewritten to not nest the foralls, with no loss of generality
02:10:13 <c_wraith> It's on the argument side that it gets more interesting
02:10:32 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
02:11:20 <euouae> lechner: There's https://hackage.haskell.org/package/aeson-pretty-0.8.8/docs/Data-Aeson-Encode-Pretty.html
02:11:38 <euouae> There's also https://hackage.haskell.org/package/aeson-pretty
02:12:43 <c_wraith> I honestly have trouble thinking of a practical rank-3 type. I know some people have managed them, but I've always been able to do what I want with rank-2
02:13:08 <c_wraith> Probably means I don't want things that are hard enough in that direction :)
02:13:10 <euouae> Hey I'm having trouble with the State stuff as it is :)
02:13:51 <c_wraith> anyway, the way runST uses it is a little bit indirect. But the reason for it is to prevent leaking STRef values between uses of runST
02:14:06 <euouae> why is that important?
02:14:15 <c_wraith> When that leaking is prevented, it's possible to prove that the results of runST are deterministic
02:14:35 <euouae> ah okay, nice
02:14:45 <euouae> That is a good trick
02:14:51 <c_wraith> Therefore no matter how much mutability you use inside, runST doesn't impose an IO restriction or anything
02:15:02 <euouae> I would never come up with it
02:15:32 <c_wraith> But once you know about it, you can find your own uses - you create things in certain contexts and want to prevent them from leaking to other contexts? the ST trick does the job!
02:16:03 <euouae> So for example a type with private info that you don't want leaked
02:16:22 <euouae> such as when you're logging your apps actions and you don't want to log user credentials
02:16:59 <euouae> is that anywhere close to what it is? I'm trying to get a feel fo rit
02:17:11 <c_wraith> You can do stuff like that, though you need to watch out for it making types more complex than pay for themselves
02:17:53 <euouae> Ok in this context it would be some form of type correctness for security, it might be a worthwhile tradeoff
02:18:44 <lechner> euouae: thanks!
02:19:14 <euouae> You're welcome :)
02:24:20 pfurla_ joins (~pfurla@52.15.195.173.client.static.strong-in52.as13926.net)
02:24:37 <euouae> c_wraith: Thank you :)
02:24:51 <c_wraith> you're welcome
02:25:10 <euouae> I feel like my place in the Haskell world would be to write some FFI for C
02:25:14 <euouae> or C++
02:25:38 <euouae> It would be fun to translate and redesign some APIs
02:26:25 <euouae> but maybe another day... too many things left hanging :)
02:26:58 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds)
02:28:00 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:28:01 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services)))
02:28:01 finn_elija is now known as FinnElija
02:28:03 nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
02:29:46 ext0l joins (~vector@157-131-102-171.fiber.dynamic.sonic.net)
02:31:13 <ext0l> i'm a nixos user trying to set up a new haskell project. what's the current best practice? haskell.nix, cabal2nix, or? i'd like something with relatively little extra verbosity.
02:31:50 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
02:32:26 neightchan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
02:33:20 pfurla__ joins (~pfurla@216.151.180.237)
02:34:06 <ext0l> or just ignore all that and use the new-foo commands, i guess?
02:34:49 × pfurla_ quits (~pfurla@52.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 268 seconds)
02:36:40 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 268 seconds)
02:38:00 <dsal> "the current best practice" is fighting words. :)
02:38:11 <dsal> I still use stack for most development + haskell.nix
02:40:08 <ext0l> haha
02:40:31 matthias1 joins (~igloo@4.15.245.90)
02:40:36 <drakonis> itc: nix users
02:41:04 <ext0l> haskell.nix seems nice; is it in common use? it seems to come up less than the other options i saw
02:43:33 <dsal> I don't know how to judge common. I have several projects using it, so it's common among my projects.
02:43:41 × hrnz quits (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
02:43:59 <ext0l> fair enough
02:44:04 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds)
02:44:10 hrnz joins (~ulli@irc.plumbing)
02:44:20 <dsal> It gets updated once per day with all the latest things, so it's at least maintainedish.
02:45:19 <dsal> I mostly do stack for the least effort for spinning up a project. 'stack new x' gives me my defaults with my test suite ready to go so I can just `stack test --file-watch` and get moving.
02:45:53 <ext0l> yeah, that does seem really nice
02:47:18 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
02:47:20 <dsal> Many folks make good arguments for why modern cabal itself is better, but I've still not successfully moved a project to plain cabal.
02:47:22 × matthias1 quits (~igloo@4.15.245.90) (Ping timeout: 256 seconds)
02:49:26 × euouae quits (~euouae@user/euouae) (Quit: Client closed)
02:50:30 × mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
02:50:49 mrkajetanp joins (~mrkajetan@88.98.245.28)
02:50:57 <lechner> being a beginner, i came here for the past half year and started with stack. a month ago someone said to use just cabal, and i never looked back. i am on debian bullseye
02:55:29 <ext0l> i'm going to try stack --nix, and if that doesn't work well for me i'll go from there
02:58:06 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 250 seconds)
02:58:08 × td_ quits (~td@94.134.91.37) (Ping timeout: 256 seconds)
02:58:10 <dsal> I just have `nix:\n enable: true` in ~/.stack/config.yaml
02:58:32 × nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
02:59:17 × funsafe quits (~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) (Ping timeout: 245 seconds)
03:00:01 td_ joins (~td@94.134.91.212)
03:00:18 funsafe joins (~funsafe@c-71-59-221-7.hsd1.wa.comcast.net)
03:01:05 <ext0l> yeah that
03:03:45 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
03:03:56 <dsal> The one annoying thing is every stack.yaml needs `nix:\n packages: [ zlib ]`
03:04:07 <ext0l> oh really? weird
03:04:17 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:04:31 <dsal> It's hard to build anything that doesn't eventually use zlib, and it's not in the build shell.
03:04:50 <ext0l> aaah
03:05:00 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
03:05:12 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:06:30 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
03:07:03 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:11:15 <lechner> Hi, what's this, please? file descriptor 1024 out of range for select (0--1024). Recompile with -threaded to work around this. haskell
03:11:51 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
03:12:03 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:13:23 <c_wraith> you opened a lot of files
03:13:41 <c_wraith> honestly, that error message seems to say everything relevant
03:13:51 <c_wraith> what part of it is unfamiliar?
03:14:56 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
03:15:13 × ext0l quits (~vector@157-131-102-171.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
03:17:42 <lechner> it's a socket-based worker that does not open or write any files https://dpaste.org/Rte0
03:17:50 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
03:17:52 <c_wraith> sockets still use file descriptors
03:19:35 <c_wraith> select is a system call that waits for activity on any* number of file descriptors, then tells you which one had activity. *except there's a max it can wait for, and it seems to be 1024 on your system
03:20:10 <c_wraith> if you compile with the -threaded option, ghc will link against a different runtime that doesn't use the select system call
03:21:19 nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
03:21:37 <lechner> i think the ZeroMQ sockets, which I am trying to close and reopen following a recommendation from upstream, are not getting closed even thoug i used their code example. i'll have to investigate. thanks!
03:22:34 <dsal> lechner: One thing that's unrelated this problem that you may want to consider is that you pretty much don't ever want to call `error`
03:23:37 <dsal> Oh. I don't think you are, you just name something error. That was confusing. :)
03:23:47 <lechner> yeah
03:23:57 <lechner> i was looking for the word
03:24:07 <lechner> it's not a variable, is it?
03:24:50 <dsal> :t error
03:24:50 <lechner> it used to be 'e' but i write out most words
03:24:51 <lambdabot> [Char] -> a
03:24:57 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
03:25:10 <lechner> no i meant my use
03:25:12 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
03:25:20 × berberman quits (~berberman@user/berberman) (Ping timeout: 256 seconds)
03:25:23 <lechner> an 'immutable'?
03:25:30 <dsal> Sure. You're just shadowing it.
03:25:34 × nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
03:25:45 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:25:46 <lechner> because it's in Prelude?
03:25:50 Izem joins (~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
03:25:54 berberman joins (~berberman@user/berberman)
03:26:27 <dsal> Yeah.
03:27:22 <lechner> i'll try to avoid that. thanks for the hint. do not know so much yet
03:27:26 <dsal> This code is a lot taller than I'm used to. Some of the wrapping is a bit weird as well. e.g., this is kind of confusing. https://usercontent.irccloud-cdn.com/file/pkcD1BAp/Screen%20Shot%202021-07-29%20at%2020.27.03.png
03:27:54 <dsal> I don't see people putting long names on variables that much. `e` is fine. Not naming it is even better.
03:28:17 <lechner> how?
03:29:30 <lechner> the formatting is from brittany, which did something about the long lines
03:30:07 justsomeguy joins (~justsomeg@user/justsomeguy)
03:30:07 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 245 seconds)
03:30:25 <dsal> Something like this: https://www.irccloud.com/pastebin/HvYTa6jj/thing.hs
03:30:42 <lechner> i think the underscores are weird. they come from the JSON
03:30:52 <dsal> I've never seen anything formatted with that. It likes really tall code for some reason.
03:31:22 <dsal> I missed some parens there, but something like that
03:31:23 <dsal> :t either
03:31:24 <lambdabot> (a -> c) -> (b -> c) -> Either a b -> c
03:31:32 <lechner> i didn't think it was as bad as ormulo
03:31:36 ext0l joins (~vector@157-131-102-171.fiber.dynamic.sonic.net)
03:32:15 <dsal> (also, you don't need `do` there -- I just left out the `ExitSuccess -> ` bit part.
03:32:18 <dsal> )
03:32:42 <lechner> yeah. well my code stinks a little. i have to brush someone's teeth. brb
03:33:09 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
03:33:43 <dsal> It looks like you're establishing a connection in each iteration of the loop and then just like, keeping it open.
03:34:38 geekosaur joins (~geekosaur@xmonad/geekosaur)
03:35:32 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
03:35:38 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
03:35:49 <dsal> :t bracket -- lechner
03:35:50 <lambdabot> IO a -> (a -> IO b) -> (a -> IO c) -> IO c
03:36:03 lavaman joins (~lavaman@98.38.249.169)
03:37:53 nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
03:38:19 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:38:24 × pfurla__ quits (~pfurla@216.151.180.237) (Ping timeout: 250 seconds)
03:40:04 <dsal> Actually, this API is super weird. You'd need to make your own `withConnection` thing possibly with `bracket` but their API is weird.
03:40:22 <dsal> Normally you'd do something like `bracket (open something) close $ \conn -> do stuff with conn`
03:40:38 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
03:41:51 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
03:45:56 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
03:49:07 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:50:38 × xff0x quits (~xff0x@2001:1a81:532e:4200:3fe0:364:9ae2:d4b0) (Ping timeout: 272 seconds)
03:51:00 <dsal> I don't know zeromq all, but I'm going to guess each one of these `connect` calls is eating a file descriptor and you never free it. It's a good thing you ran out of file descriptors as it made it easier to catch this bug earlier.
03:51:01 xff0x joins (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506)
03:51:51 <lechner> the ZeroMQ stuff is from here: https://zguide.zeromq.org/docs/chapter1/
03:52:06 <lechner> hw client in haskell
03:52:41 <lechner> although in all fairness i moved the 'connect' inside the loop
03:53:34 <dsal> It claims to have a finalizer on the socket but like, that's not the right way to do that kind of thing.
03:54:33 <lechner> in chapter 4 they recommend cosing and reopening. i am eventually trying to get to the Laz Pirate pattern (which they say does that) but i did not understand it in haskell https://zguide.zeromq.org/docs/chapter4/
03:55:25 <lechner> there are several zmq libraries but i think the FFI bindings are pretty much preferred everywhere now
03:56:08 <dsal> That code seems to be reopening on failure and just completely ignoring the previously opened connection hoping the finalizer will eventually figure it out.
03:56:40 <lechner> yeah that's why i thought it was okay
03:57:59 <dsal> You should generally close things you open. I don't know as much about how finalizers work in haskell, but bracketing is generally the right thing to do.
03:58:26 <lechner> it's actually a great socket system, beating out AMQP in many places (like CERN), but the inventor died
03:59:16 <lechner> i know even less about finalizers
03:59:34 <dsal> I've never tried it. Most of the things I do that are anything like this are using MQTT.
04:00:08 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
04:05:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:07:06 × nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
04:08:50 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:08:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
04:09:49 <dsal> This doc is pretty nice, though.
04:11:15 <lechner> try it. sometimes you just need a better socket.
04:12:27 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:13:14 <monochrom> Finalizers are run at GC time only.
04:13:46 <monochrom> Unfortunately the threaded RTS is so nice to, when it detects idleness, run GC.
04:14:17 <monochrom> This has encouraged very reckless habits of ignoring to close anything and then complaining that the unthreaded RTS leaks.
04:14:29 <monochrom> s/ignoring/neglecting/
04:15:34 <lechner> i think i saw some of those bug reports
04:15:44 <monochrom> Humans take the path of least resistance. Programmers take it to the next level, path of least understanding.
04:16:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:17:17 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
04:17:27 <lechner> dsal: ZeroMQ won this evaluation at CERN ten years ago http://ais-grid-2011.jinr.ru/docs/MW-in-Controls-DUBNA-Oct2011.pptx
04:17:49 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
04:18:05 <dsal> monochrom: I assume it's bad practice to try to lean on the GC to clean up file descriptors.
04:19:25 <dsal> lechner: I remember hearing about it a while back, but just never had a chance to use it. I don't have a pptx viewer handy.
04:19:46 <lechner> dsal: http://zeromq.wdfiles.com/local--files/intro%3Aread-the-manual/Middleware%20Trends%20and%20Market%20Leaders%202011.pdf
04:21:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
04:23:04 <dsal> Looks neat. Work is all protobuf all the time. Home is mostly mqtt. I'm not sure where zmq fits in to anything. What are you using it for?
04:23:41 <lechner> protobuf will go over it. that's a different layer isn't it?
04:24:57 <lechner> i use it to produce the data for lintian.debian.org. some other parts of debian use rabbitmq but they will come around
04:25:49 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 268 seconds)
04:26:26 <lechner> do use protbuf with haskell?
04:26:30 <lechner> you
04:27:01 <Axman6> Facebook have released a tool for doing protobuf stuff with Haskell I believe, they uise it internally in Sigma
04:27:15 <Axman6> hmm, maybe it wasn't protobuff..
04:27:30 <Axman6> it was thrift
04:29:24 <lechner> marlow works there?
04:30:35 Izem parts (~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Good Bye)
04:30:41 <Axman6> yeah
04:31:20 <Axman6> Facebook are probably the world's biggest user of GHC.s concurrency stuff, and he implemented most of it
04:31:59 <lechner> i only saw a talk by a lady about some spam filtering some time ago
04:34:19 <Axman6> If by "some spam filtering" you mean, all spam filtering at over 2m requests per second, then yes, that's Sigma
04:35:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
04:35:56 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:36:32 <ext0l> what's the easiest way to play back some music files and allow seeking, play/pause, etc? a la a music player
04:36:38 <ext0l> other than using mpd
04:36:52 × jmorris quits (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
04:37:08 <Axman6> probably using some native gui widget, but then you need a gui
04:37:22 <lechner> Axman6: i may have seen an early talk...
04:37:29 <ext0l> i mean, to actually do the "shove audio to output" bits
04:37:56 <sm> Axman6: wow. Could we have one of those for #haskell ?
04:38:11 <Axman6> writeFile "/dev/audio" musicWav
04:38:23 <Axman6> one of what?
04:38:32 <lechner> spam filters
04:38:35 <Axman6> (probably musicPCM)
04:38:48 <Axman6> we could... but we don't actually get much spam here.
04:40:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
04:42:07 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
04:43:36 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
04:45:57 jmorris joins (uid433911@id-433911.stonehaven.irccloud.com)
04:47:45 <ext0l> hm, doesn't look look like there's a lot of decoder support. so i'd wind up having to just make ffi bindings myself
04:48:01 × pgib quits (~textual@173.38.117.81) (Ping timeout: 268 seconds)
04:49:17 <sm> still. No harm being overpowered
04:50:58 <sm> spammers beware! We will ban your ass 2m times/s!
04:51:36 mthvedt joins (uid501949@id-501949.stonehaven.irccloud.com)
04:51:39 <lechner> dsal: this 'either' does not work here, even with some extra brackets https://www.irccloud.com/pastebin/HvYTa6jj/thing.hs
04:52:25 <lechner> shouldn't the branches be partially applied functions?
04:53:02 <dsal> Yeah, a function that receives left and then one that receives right.
04:53:17 <dsal> That was a rough sketch. I didn't try actually building anything.
04:54:05 <lechner> i like the idea. should i try 'reverse' to change tha argument order?
04:55:06 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
04:55:07 <dsal> You mean flip?
04:55:37 <sm> lechner: you can't use $ in a partially applied function, liftIO . printf .... would be better
04:55:38 <dsal> You can always start with a lambda then decide whether something could be simplified if you don't e it.
04:56:06 pe200012_ joins (~pe200012@183.236.83.77)
04:56:10 <sm> also, I don't think you can partially apply printf at all, it's speical
04:57:31 <sm> (I have often wanted to, but the types defeat me)
05:00:59 <lechner> dsal: yes the lambda! i am getting it, slowly
05:01:22 <dsal> I'm trying to remember how to TH. heh.
05:01:25 × cjb quits (~cjb@user/cjb) (Read error: Connection reset by peer)
05:02:10 <lechner> sm: thanks! folks here are helping me get off of printf. it's hard to say bye to an old friend
05:03:56 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 256 seconds)
05:04:56 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
05:06:20 Vajb joins (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
05:06:47 <dsal> I've never used printf in haskell.
05:09:31 <Axman6> printf is only acceptable if it's a type safe version of it. If you're not writing printf @"format %s string %d" you're doing it wrong
05:10:55 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
05:12:02 ukari joins (~ukari@user/ukari)
05:15:15 <ext0l> i haven't written haskell in ages. are lenses the recommended approach to avoid record field name collisions?
05:15:25 matthias1 joins (~igloo@4.15.245.90)
05:15:53 <Axman6> We have an extension which allows overlapping field names, but lenses are also pretty useful
05:16:42 × matthias1 quits (~igloo@4.15.245.90) (Remote host closed the connection)
05:16:51 <ext0l> aha
05:17:06 <ext0l> yeah i remember lenses also being useful for updates and the like
05:18:34 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
05:18:41 <Axman6> I'm not sure that the overloaded field name problem is a completely solved issue, but things are improving. I'm not sure what the state of the art is at the moment
05:19:14 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
05:19:28 jneira joins (~jneira@212.8.115.226)
05:25:56 <ext0l> nod nod
05:26:09 <ext0l> i'm glad this language/the community is still around
05:27:12 MQ-17J joins (~MQ-17J@8.6.144.192)
05:27:21 <c_wraith> records are *almost* solved now. GHC 9.2 will have the last piece. I'm a bit surprised it hasn't been released yet
05:27:33 <Axman6> what's coming in 9.2?
05:27:40 <c_wraith> -XNoFieldSelectors
05:27:55 <Axman6> Haven't heard of that one
05:28:12 <c_wraith> It means records don't create top-level accessor functions
05:28:20 <ext0l> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0282-record-dot-syntax.rst
05:28:21 <c_wraith> so there's no global namespace pollution
05:28:23 <ext0l> also this
05:28:36 <Axman6> ah nice, so you can set fieldzs by name, but you don't get the accessor functions?
05:28:42 <c_wraith> yes
05:28:51 <Axman6> Yeah we use record dot syntax all the time in DAML, it's pretty nice
05:28:54 <c_wraith> record dot syntax is solving the problem of "making things comfortable for OO programmers", not the problem of "making records good"
05:30:46 <c_wraith> https://www.reddit.com/r/haskell/comments/mhzf9l/announce_ghc_921alpha1_now_available/gt3lexp/ the current state of the art in pleasant records
05:30:52 <justsomeguy> Here is a link I found to a pretty exhaustive list of different approaches... https://gitlab.haskell.org/ghc/ghc/-/wikis/records
05:31:54 justsomeguy is only a noob, so he doesn't know which of these makes sense, and just generally tries to avoid records (and also tuples, because they are weird).
05:33:03 qbt joins (~edun@user/edun)
05:37:27 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
05:40:23 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Remote host closed the connection)
05:40:45 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
05:42:06 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 272 seconds)
05:42:35 trent joins (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
05:43:24 <dsal> How do you write useful code without records or tuples?
05:43:51 <siraben> Map String a /s
05:44:13 <siraben> hm not polymorphic enough
05:45:17 <dsal> Can I generate lenses with NoFieldSelectors? That sounds kind of nice.
05:45:28 <Axman6> everything is just tuples and Either anyway
05:45:52 <siraben> polynomial functors
05:45:54 <Axman6> dsal: I would be surprised if you couldn't, since they work of the Generic representation
05:46:31 anandprabhu joins (~anandprab@45.83.220.206)
05:47:12 michalz joins (~michalz@185.246.204.61)
05:47:35 <dsal> That's pretty cool. Now I just need the feature to automatically export all my lenses
05:47:40 <sm> lechner, I use it all the time, for the readability. Just can't partially apply it
05:50:24 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
05:51:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
05:51:30 chris_ joins (~chris@81.96.113.213)
05:51:50 × anandprabhu quits (~anandprab@45.83.220.206) (Quit: Leaving)
05:54:20 <ext0l> hmm. if i'm using gstreamer bindings, am i guaranteed that the gc will run often enough that i can rely on finalizers actually running?
05:57:01 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:58:38 <Axman6> "gc ... guarantee" no
05:59:16 <ext0l> haha
06:02:25 <davean> sm: To aprtially apply printf you need to give a type signature a lot of the time.
06:02:42 <davean> At least of the partially applied result
06:20:47 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
06:21:08 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
06:21:59 Lord_of_Life_ is now known as Lord_of_Life
06:24:32 × Vajb quits (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
06:25:55 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
06:32:51 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:36:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:39:43 neceve joins (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
06:42:35 sergio812 joins (~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr)
06:48:40 wei2912 joins (~wei2912@112.199.250.21)
06:49:13 lortabac joins (~lortabac@2a01:e0a:541:b8f0:f0d1:c4fb:1626:e1c7)
06:49:33 <sm> davean, for sure - I couldn't find the right one in the past, but sounds like you did - good to know
06:50:45 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
06:51:01 <sergio812> Hi,While using
06:51:06 <sergio812> Hi,
06:51:22 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
06:52:14 <sergio812> While using QuickCheck, I happen to need some generator (like https://stackoverflow.com/questions/39291494/only-generate-positive-integers-with-quickcheck), but then shrinking is not applied anymore. What is the workaround?
06:52:30 × ext0l quits (~vector@157-131-102-171.fiber.dynamic.sonic.net) (Quit: WeeChat 3.1)
06:53:36 <sergio812> i.e. with a property "prop_gt_3" that checks that all elements in a list are greater than 3, "quickCheck prop_gt_3" gives the minimal counterexample "[0]"
06:54:21 <sergio812> whereas "quickCheck $ forAll genListOfPos $ prop_gt_3" can give me a (relatively) big couterexample, like "[2,2]"
06:55:34 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 256 seconds)
06:55:34 <sergio812> For the record, generator definitions are "genListOfPos = listOf genPos" and "genPos = (arbitrary :: Gen Int) `suchThat` (> 0)" (see the stackoverflow page for type signatures)
06:57:08 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds)
06:58:26 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
06:59:45 × trent quits (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Quit: WeeChat 3.1)
07:00:31 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
07:00:39 <sergio812> [BTW, on the stackoverflow, "genPos" is a spurious "abs `fmap`" at the start of its definition.]
07:02:43 <tomsmeding> sergio812: if you specifically need positive integers, have you tried using Positive? https://hackage.haskell.org/package/QuickCheck-2.14/docs/Test-QuickCheck.html#t:Positive
07:02:47 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
07:03:01 <tomsmeding> (or NonNegative)
07:03:52 chele joins (~chele@user/chele)
07:04:15 <tomsmeding> sergio812: the 'fmap abs' is I think taken from the quickcheck implementation of Arbitrary for Positive, which has the crucial difference of being generic over any type that is Ord, Num and Arbitrary
07:04:44 <tomsmeding> then 'abs' is not necessarily guaranteed to produce something that is '> 0', so they do an extra check just to be sure (which makes no difference for Int)
07:05:27 mattil joins (~mattilinn@87-92-232-85.rev.dnainternet.fi)
07:05:43 × mattil quits (~mattilinn@87-92-232-85.rev.dnainternet.fi) (Remote host closed the connection)
07:06:05 mattil joins (~mattilinn@87-92-232-85.rev.dnainternet.fi)
07:06:30 gehmehgeh joins (~user@user/gehmehgeh)
07:07:09 <sergio812> tomsmeding: I know "Positive", but I deliberately shied away from it,since generators like "genPos" may produce much funkier data not covered by QuickCheck.
07:07:40 × hueso quits (~root@user/hueso) (Quit: No Ping reply in 210 seconds.)
07:07:41 <tomsmeding> you mean that you actually want a condition more complicated than just '> 0' ?
07:07:54 <sergio812> in the generator, yes
07:08:16 <tomsmeding> consider looking at the implementation of Arbitrary for Positive, perhaps: https://hackage.haskell.org/package/QuickCheck-2.14/docs/src/Test.QuickCheck.Modifiers.html#line-266
07:08:35 <tomsmeding> they specially implement 'shrink' using shrink on the original value pre-filtering, then mapping abs afterwards
07:08:50 <tomsmeding> s/mapping abs/filtering on >0/
07:09:04 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
07:09:37 <tomsmeding> shrink has a default implementation of \_ -> [], so if you want to get shrinking for your custom data type, you'll have to implement 'shrink' somehow
07:09:58 hueso joins (~root@user/hueso)
07:09:58 <sergio812> Ah, many thanks!
07:11:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
07:11:23 <tomsmeding> sergio812: I believe 'hedgehog' (a quickcheck alternative) has a different approach (based on explicit generator objects instead of typeclass instances) that automatically determine shrinking paths from the combinators that you use
07:12:16 <sergio812> tomsmeding: BTW, I didn't quite get your explanation of 'fmap abs' being useful for other types than mere Int. Do you have an example of type which would need 'abs'?
07:14:57 epolanski joins (uid312403@id-312403.brockwell.irccloud.com)
07:15:01 <tomsmeding> sergio812: no type would _need_ abs, but it might provide a performance improvement
07:15:21 <tomsmeding> just filtering on '> 0' will reject half of the samples, on average, while first applying 'abs' will accept roughly all samples
07:15:39 <tomsmeding> and just applying 'abs' is not enough, since you might generate 0 :0
07:15:41 <tomsmeding> * :)
07:16:06 <tomsmeding> my remark earlier was wrong
07:16:08 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
07:16:36 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
07:16:50 <tomsmeding> (this applies for Int as well)
07:17:56 <sergio812> Got it, thanks!
07:19:35 <sergio812> I got the execution order wrong...
07:21:21 acidjnk_new joins (~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de)
07:22:30 <tomsmeding> sergio812: yeah those inline function applications are confusing without parentheses
07:22:41 <tomsmeding> quickcheck's own definition is more readable :p https://hackage.haskell.org/package/QuickCheck-2.14.2/docs/src/Test.QuickCheck.Modifiers.html#line-266
07:23:21 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:26:48 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
07:28:13 cfricke joins (~cfricke@user/cfricke)
07:28:22 peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
07:29:52 mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be)
07:30:24 × EvanR quits (~evan@user/evanr) (Ping timeout: 252 seconds)
07:32:52 × jamestmartin quits (~james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
07:32:53 × arkeet quits (~arkeet@moriya.ca) (Remote host closed the connection)
07:33:01 jamestmartin joins (james@jtmar.me)
07:33:07 arkeet joins (arkeet@moriya.ca)
07:34:01 <sergio812> tomsmeding: YMMV, I would have preferred yet an extra pair of parentheses, i.e. "fmap Positive ((fmap abs arbitrary) `suchThat` (> 0))" instead of "fmap Positive (fmap abs arbitrary `suchThat` (> 0))", that is if I understood correctly
07:34:44 × radw quits (~radw@user/radw) (Ping timeout: 258 seconds)
07:35:44 <tomsmeding> sergio812: I guess. I know that record syntax (r { key = value }) goes before normal function application (f a b) which goes before all infix operators (a + b, or x `div` y), so I don't find quickcheck's version confusing
07:36:21 <tomsmeding> if you have (a `f` b `g` c), however, then someone may have explicitly messed with the precedences of f and g using infix* statements, which may shift the meaning :p
07:36:37 <tomsmeding> from the default left-associative binding
07:36:57 radw joins (~radw@user/radw)
07:37:43 lavaman joins (~lavaman@98.38.249.169)
07:42:24 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
07:43:18 fendor joins (~fendor@178.165.162.84.wireless.dyn.drei.com)
07:45:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:45:57 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
07:46:25 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
07:49:39 vysn joins (~vysn@user/vysn)
07:51:06 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
07:51:21 zeenk joins (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38)
07:54:34 neurocyte parts (~neurocyte@user/neurocyte) (The Lounge - https://thelounge.chat)
07:56:23 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
07:57:41 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:58:33 anandprabhu joins (~anandprab@185.65.135.253)
07:59:34 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
07:59:58 Vajb joins (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
08:00:15 jakalx joins (~jakalx@base.jakalx.net)
08:00:16 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
08:04:09 × bens quits (~bens@www.typius.com) (Ping timeout: 265 seconds)
08:06:00 hendursa1 joins (~weechat@user/hendursaga)
08:09:06 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds)
08:10:15 betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be)
08:14:16 sergio81242 joins (~sergio812@141.143.193.76)
08:14:19 × sergio81242 quits (~sergio812@141.143.193.76) (Client Quit)
08:14:38 kuribas joins (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be)
08:15:28 × xff0x quits (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 256 seconds)
08:15:43 deejaytee is now known as Guest578
08:15:43 × Guest578 quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Killed (silver.libera.chat (Nickname regained by services)))
08:15:47 deejaytee joins (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk)
08:16:52 rain3 joins (~rain3___@79.115.250.43)
08:17:13 rain3 parts (~rain3___@79.115.250.43) (Leaving)
08:17:46 × sergio812 quits (~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr) (Ping timeout: 246 seconds)
08:17:48 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:48 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:51 allbery_b is now known as geekosaur
08:17:51 pesada joins (~agua@191.177.175.57)
08:18:32 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds)
08:22:00 × agua quits (~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 268 seconds)
08:22:05 × koz quits (~koz@121.99.240.58) (Remote host closed the connection)
08:22:45 × aegon quits (~mike@174.127.249.180) (Quit: leaving)
08:23:44 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
08:24:42 × _xor quits (~xor@74.215.232.67) (Ping timeout: 240 seconds)
08:25:40 _xor joins (~xor@74.215.232.67)
08:26:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
08:27:42 × anandprabhu quits (~anandprab@185.65.135.253) (Quit: Leaving)
08:28:22 koz joins (~koz@121.99.240.58)
08:32:06 × kuribas quits (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
08:32:58 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
08:33:44 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
08:33:57 kuribas joins (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be)
08:37:51 × silverwhitefish quits (~hidden@47.202.102.10) (Remote host closed the connection)
08:38:02 × [exa] quits (exa@user/exa/x-3587197) (Ping timeout: 245 seconds)
08:38:21 silverwhitefish joins (~hidden@47.202.102.10)
08:38:36 × caubert quits (~caubert@136.244.111.235) (Ping timeout: 252 seconds)
08:38:49 [exa] joins (exa@srv3.blesmrt.net)
08:39:36 caubert joins (~caubert@136.244.111.235)
08:42:17 × oxide quits (~lambda@user/oxide) (Ping timeout: 252 seconds)
08:42:18 × azeem quits (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
08:42:31 jumper149 joins (~jumper149@80.240.31.34)
08:42:36 agua joins (~agua@2804:18:4f:b157:1:0:6976:119)
08:42:53 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:42:59 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
08:44:14 oxide joins (~lambda@user/oxide)
08:44:49 × pesada quits (~agua@191.177.175.57) (Ping timeout: 268 seconds)
08:47:11 × MQ-17J quits (~MQ-17J@8.6.144.192) (Ping timeout: 258 seconds)
08:47:16 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
08:50:46 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:53:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
08:56:14 xff0x joins (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506)
08:56:22 gensyst joins (gensyst@user/gensyst)
09:04:50 × jneira_ quits (~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 252 seconds)
09:10:12 __monty__ joins (~toonn@user/toonn)
09:12:59 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
09:15:03 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:16:15 × michalz quits (~michalz@185.246.204.61) (Remote host closed the connection)
09:16:36 bontaq joins (~user@ool-18e47f8d.dyn.optonline.net)
09:18:42 × mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 272 seconds)
09:20:41 × xff0x quits (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 252 seconds)
09:21:25 xff0x joins (~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e)
09:22:01 pesada joins (~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7)
09:26:12 × agua quits (~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 276 seconds)
09:32:49 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
09:33:32 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 268 seconds)
09:34:10 × oxide quits (~lambda@user/oxide) (Ping timeout: 240 seconds)
09:34:19 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:38:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
09:39:55 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:42:05 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: No route to host)
09:43:33 eggplant_ joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:44:41 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
09:45:36 michalz joins (~michalz@185.246.204.40)
09:46:10 <dexterfoo> Data.Vector has 'Foldable' instance. But Data.Vector.Unboxed does not. why?
09:47:07 <dminuoso> % :t fold
09:47:07 <yahb> dminuoso: (Foldable t, Monoid m) => t m -> m
09:47:12 <dminuoso> % :t foldr
09:47:12 <yahb> dminuoso: Foldable t => (a -> b -> b) -> b -> t a -> b
09:47:19 <dminuoso> dexterfoo: This is too liberabl on a.
09:48:03 <dminuoso> It's the same reason why we cant have Functor on Set
09:48:04 × eggplant_ quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
09:48:43 <tomsmeding> how exactly would foldr on vector be different (semantically) from \f x v -> foldr f x (toList v)
09:49:17 <tomsmeding> Unboxed.Vector can't be Functor for the reason you mention, but it could be Foldable, right?
09:49:18 <dminuoso> You can have MonoFoldable for it though.
09:50:09 <dminuoso> tomsmeding: No.
09:50:15 <dminuoso> foldr has to work for *all* a.
09:50:23 MoC joins (~moc@user/moc)
09:50:26 <tomsmeding> given that you have a 't a', yes
09:50:48 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
09:50:49 <tomsmeding> oh right, the point is that an unboxed vector doesn't carry its Unbox dict with it?
09:51:03 <dminuoso> Not even that, it's that foldr is too general
09:51:47 <tomsmeding> well if I would define: data V a where V :: Unbox a => Unboxed.Vector a -> V a
09:51:50 <dminuoso> An `instance Foldable UnboxedVector` would need to impose an additional constraint on `a`, namely that its Unbox, such that you can actually make use of it.
09:51:57 <dminuoso> Oh well
09:51:59 <dminuoso> Yes you are right
09:52:11 <tomsmeding> I see
09:52:16 <dminuoso> If the dictionary was embedded and accessible, it seems possible
09:53:06 <tomsmeding> not saying that an unboxed vector should carry its Unbox dict with it -- not at all, just trying to understand :)
09:53:14 <tomsmeding> dexterfoo: ^
09:53:24 <dminuoso> Sure.
09:54:16 <dminuoso> Though I think its hard to say what seems possible and what that would even mean, without an exact specification.
09:54:32 <dminuoso> So Ill stick to: Not possible
09:54:42 <dminuoso> MonoFoldable however can possibly get half the way
09:55:07 <dminuoso> Depending on your needs that is
09:55:43 dhil joins (~dhil@195.213.192.47)
09:57:41 <tomsmeding> This compiles:
09:57:42 <tomsmeding> import qualified Data.Vector.Unboxed as U
09:57:42 <tomsmeding> data FatUVector a where FatUVector :: U.Unbox a => U.Vector a -> FatUVector a
09:57:42 <tomsmeding> instance Foldable FatUVector where foldr f x (FatUVector v) = U.foldr f x v
09:58:05 <nshepperd> you can totally have Foldable on a wrapper that carries the Unbox dict
09:59:03 <nshepperd> still can't have functor though ofc
09:59:46 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
10:00:41 fossdd joins (~fossdd@sourcehut/user/fossdd)
10:00:42 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
10:03:24 oxide joins (~lambda@user/oxide)
10:06:26 × mthvedt quits (uid501949@id-501949.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
10:09:06 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds)
10:10:47 × OscarH quits (~OscarH@97e0e7ba.skybroadband.com) (Ping timeout: 265 seconds)
10:11:00 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
10:12:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
10:13:20 fossdd joins (~fossdd@sourcehut/user/fossdd)
10:15:46 × azeem quits (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 240 seconds)
10:15:52 × pe200012_ quits (~pe200012@183.236.83.77) (Remote host closed the connection)
10:16:19 pe200012_ joins (~pe200012@113.105.10.33)
10:16:31 pe200012_ is now known as pe200012
10:19:45 azeem joins (~azeem@176.200.236.58)
10:23:33 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
10:23:34 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
10:25:28 × euandreh quits (~euandreh@2804:14c:33:9fe5:9526:d20a:c7ef:dc9b) (Quit: WeeChat 3.2)
10:26:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:28:42 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
10:35:03 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:35:40 bens joins (~bens@www.typius.com)
10:37:00 × jespada quits (~jespada@90.254.247.46) (Ping timeout: 250 seconds)
10:39:24 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:39:31 jespada joins (~jespada@90.254.247.46)
10:41:34 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
10:44:50 × hueso quits (~root@user/hueso) (Ping timeout: 252 seconds)
10:48:00 × acidjnk_new quits (~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
10:48:44 hueso joins (~root@user/hueso)
10:54:50 × michalz quits (~michalz@185.246.204.40) (Ping timeout: 252 seconds)
10:55:54 fef joins (~thedawn@user/thedawn)
10:56:43 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
10:57:05 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
10:58:21 hexfive joins (~eric@50.35.83.177)
11:00:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
11:00:28 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
11:04:19 × mattil quits (~mattilinn@87-92-232-85.rev.dnainternet.fi) (Quit: Leaving)
11:05:57 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
11:09:22 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:13:03 jakalx parts (~jakalx@base.jakalx.net) ()
11:13:58 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
11:15:32 mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be)
11:16:31 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 265 seconds)
11:19:28 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:21:30 × azeem quits (~azeem@176.200.236.58) (Ping timeout: 240 seconds)
11:22:19 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:22:45 azeem joins (~azeem@176.200.236.58)
11:23:59 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
11:28:42 × Vajb quits (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
11:29:19 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
11:29:28 jakalx joins (~jakalx@base.jakalx.net)
11:29:59 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
11:31:03 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
11:33:12 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
11:34:10 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
11:35:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:37:22 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
11:37:53 fossdd joins (~fossdd@sourcehut/user/fossdd)
11:38:57 lavaman joins (~lavaman@98.38.249.169)
11:41:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
11:43:10 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
11:43:10 allbery_b joins (~geekosaur@xmonad/geekosaur)
11:43:13 allbery_b is now known as geekosaur
11:43:58 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:44:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
11:45:32 nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
11:47:37 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
11:48:28 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
11:48:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
11:50:02 × nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
11:50:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
11:50:25 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:50:55 fossdd joins (~fossdd@sourcehut/user/fossdd)
11:51:34 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
11:52:16 × gensyst quits (gensyst@user/gensyst) (Quit: Leaving)
11:53:29 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds)
11:58:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
11:58:23 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:00:12 × azeem quits (~azeem@176.200.236.58) (Ping timeout: 272 seconds)
12:03:30 azeem joins (~azeem@176.200.236.58)
12:04:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:05:00 × qbt quits (~edun@user/edun) (Quit: WeeChat 3.2)
12:08:18 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
12:08:41 × hexfive quits (~eric@50.35.83.177) (Quit: WeeChat 3.0)
12:08:54 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
12:10:39 × azeem quits (~azeem@176.200.236.58) (Ping timeout: 265 seconds)
12:12:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
12:13:24 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:13:33 azeem joins (~azeem@176.201.3.116)
12:16:11 qbt joins (~edun@user/edun)
12:17:14 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:17:34 × qbt quits (~edun@user/edun) (Client Quit)
12:18:17 slowButPresent joins (~slowButPr@user/slowbutpresent)
12:21:22 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
12:22:02 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
12:22:23 chexum joins (~quassel@gateway/tor-sasl/chexum)
12:23:07 × azeem quits (~azeem@176.201.3.116) (Ping timeout: 268 seconds)
12:23:22 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
12:23:34 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:24:28 × int-e quits (~noone@int-e.eu) (Ping timeout: 252 seconds)
12:24:32 Kammao joins (~Kammao@188.27.128.31)
12:24:32 × noctuks quits (oGswB5gyub@user/noctux) (Ping timeout: 258 seconds)
12:24:52 noctuks joins (mWTCqxoKka@user/noctux)
12:25:25 × [exa] quits (exa@srv3.blesmrt.net) (Changing host)
12:25:25 [exa] joins (exa@user/exa/x-3587197)
12:25:41 <Kammao> Hello! I want to deploy my webapp on heroku (I used the Yesod webframework) but i can'
12:25:59 <Kammao> but it shuts down if i want to push it because it takes too long
12:26:17 azeem joins (~azeem@176.201.3.116)
12:26:24 <Lycurgus> does herouku support haskell?
12:27:06 <Kammao> I found multiple guides online (quite old tbh)..officially in the documenation I have not seen them mentioning Haskell tho
12:27:37 <Lycurgus> seems like a culture clash to me. They do support python though.
12:27:48 <Lycurgus> or rather django
12:28:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
12:28:13 <Kammao> I was using github pages for my previous website..but now I have a database and I thought heroku would be a good free option since I don't really have traffic there
12:28:31 <Kammao> Any other alternatives ideas? Would be much appreciated
12:28:34 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:28:49 <Lycurgus> maybe someone else will say there's a haskell herouku like thing, i don't know of any
12:29:47 <Lycurgus> other than noone wants to there's no reason in principle for there not to be
12:30:00 <Kammao> Cheers! I'm quite new to programming in general so using docker or messing with nix is a bit over my head. Those being some ways to deploy it - mentioned in the official yesod docs
12:31:03 <Lycurgus> easy, quick and dirty, etc, are discordant with the hs culture
12:31:26 <Kammao> Fair enough, fair enough
12:32:58 <lechner> justsomeguy: thanks for sending that https://gitlab.haskell.org/ghc/ghc/-/wikis/records
12:33:46 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
12:34:45 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:35:21 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds)
12:37:13 <Kammao> Also, I found this : Just split dependencies in half and make a push with only part of the dependencies enabled. Then make a push with all of them enabled. The latter build will use cached dependencies from the former build.` Would that mean commenting out some of the dependencies in the stack.yaml file or cabal file and then pushing to heroku?
12:39:48 qbt joins (~edun@user/edun)
12:39:48 × qbt quits (~edun@user/edun) (Client Quit)
12:40:22 qbt joins (~edun@user/edun)
12:40:22 × qbt quits (~edun@user/edun) (Client Quit)
12:40:25 × lechner quits (~lechner@debian/lechner) (Quit: WeeChat 3.0)
12:44:26 lechner joins (~lechner@debian/lechner)
12:44:59 fendor_ joins (~fendor@91.141.37.142.wireless.dyn.drei.com)
12:45:28 nate3 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
12:45:54 × jneira quits (~jneira@212.8.115.226) (Quit: Client closed)
12:47:42 × fendor quits (~fendor@178.165.162.84.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
12:50:18 × nate3 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
12:52:10 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
12:53:34 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
12:54:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
12:55:14 fossdd joins (~fossdd@sourcehut/user/fossdd)
12:56:22 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 245 seconds)
13:03:26 × azeem quits (~azeem@176.201.3.116) (Ping timeout: 252 seconds)
13:03:47 azeem joins (~azeem@176.201.3.116)
13:05:22 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
13:08:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:09:46 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
13:10:30 fossdd joins (~fossdd@sourcehut/user/fossdd)
13:13:00 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
13:18:14 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
13:18:53 × m4lvin quits (~m4lvin@w4eg.de) (Quit: m4lvin)
13:19:13 m4lvin joins (~m4lvin@w4eg.de)
13:22:10 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
13:22:34 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
13:23:02 fossdd joins (~fossdd@sourcehut/user/fossdd)
13:24:30 choucavalier_ joins (~choucaval@peanutbuttervibes.com)
13:24:43 LambdaDuck joins (~anka@ksit.fixme.fi)
13:24:52 guibou- joins (~guibou@163.172.83.213)
13:25:00 damien3 joins (~damien@248.ip-149-56-13.net)
13:25:23 echoreply1 joins (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
13:25:27 orzo_ joins (joe@lasker.childrenofmay.org)
13:25:33 qontinuum_ joins (qontinuum@user/qontinuum)
13:25:43 jassob1 joins (~jassob@korrob.vth.sgsnet.se)
13:25:43 hexeme_ joins (~hexeme@user/hexeme)
13:26:20 weechat-headless joins (~weechat-h@li219-154.members.linode.com)
13:26:50 exarkun_ joins (~exarkun@user/exarkun)
13:26:51 mjrosenb_ joins (~mrosenbe@104.225.243.2)
13:26:57 anderson_ joins (~ande@134.209.221.71)
13:27:12 eco_ joins (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
13:27:30 glider_ joins (~glider@user/glider)
13:27:46 carbolymer_ joins (~carbolyme@dropacid.net)
13:30:37 × qontinuum_ quits (qontinuum@user/qontinuum) (Quit: See ya)
13:30:55 qontinuum_ joins (qontinuum@user/qontinuum)
13:31:57 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:f0d1:c4fb:1626:e1c7) (Quit: WeeChat 2.8)
13:32:52 megaTherion_ joins (~therion@unix.io)
13:33:53 deshalb joins (~deshalb@user/deshalb)
13:33:57 fendor_ is now known as fendor
13:34:08 × qontinuum quits (qontinuum@user/qontinuum) (*.net *.split)
13:34:08 × glider quits (~glider@user/glider) (*.net *.split)
13:34:08 × anderson quits (~ande@134.209.221.71) (*.net *.split)
13:34:08 × echoreply quits (~echoreply@45.32.163.16) (*.net *.split)
13:34:08 × hexeme quits (~hexeme@user/hexeme) (*.net *.split)
13:34:08 × orzo quits (joe@lasker.childrenofmay.org) (*.net *.split)
13:34:08 × exarkun quits (~exarkun@user/exarkun) (*.net *.split)
13:34:08 × tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split)
13:34:08 × jassob quits (~jassob@korrob.vth.sgsnet.se) (*.net *.split)
13:34:08 × carbolymer quits (~carbolyme@dropacid.net) (*.net *.split)
13:34:08 × choucavalier quits (~choucaval@peanutbuttervibes.com) (*.net *.split)
13:34:08 × LambdaDu1k quits (~anka@ksit.fixme.fi) (*.net *.split)
13:34:08 × guibou quits (~guibou@163.172.83.213) (*.net *.split)
13:34:08 × megaTherion quits (~therion@coruscant.unix.io) (*.net *.split)
13:34:08 × nisstyre quits (~wes@user/nisstyre) (*.net *.split)
13:34:09 × mjrosenb quits (~mrosenbe@nyc.schrodinger.com) (*.net *.split)
13:34:09 × eco quits (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split)
13:34:09 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split)
13:34:09 × damien2 quits (~damien@248.ip-149-56-13.net) (*.net *.split)
13:34:09 anderson_ is now known as anderson
13:34:09 qontinuum_ is now known as qontinuum
13:34:14 lambdabot joins (~lambdabot@silicon.int-e.eu)
13:34:14 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
13:34:14 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
13:35:04 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
13:36:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:39:05 nisstyre joins (~wes@user/nisstyre)
13:47:23 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
13:47:52 hendursaga joins (~weechat@user/hendursaga)
13:50:04 × xff0x quits (~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e) (Ping timeout: 268 seconds)
13:50:40 xff0x joins (~xff0x@2001:1a81:532e:4200:4c53:a999:c700:5bd)
13:51:20 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
13:51:27 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:52:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
13:53:11 fossdd joins (~fossdd@sourcehut/user/fossdd)
13:53:58 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
13:54:49 OscarH joins (~OscarH@97e48a81.skybroadband.com)
13:54:52 <Taneb> Does anyone actually use Data.List.NonEmpty.xor
13:58:02 zebrag joins (~chris@user/zebrag)
13:59:22 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds)
13:59:23 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
14:00:03 <deejaytee> wow, that's weirdly specific...
14:00:10 <Taneb> Yeah...
14:00:44 <Taneb> Something that got added back in 2012 when it was part of one of edwardk's own libraries that he could do with what he wished, and it's just stuck
14:01:18 <Taneb> It can also be defined for lists! It has False as an identity
14:04:02 × oxide quits (~lambda@user/oxide) (Ping timeout: 252 seconds)
14:05:37 exarkun_ is now known as exarkun
14:09:46 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 240 seconds)
14:10:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
14:10:55 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
14:11:04 × azeem quits (~azeem@176.201.3.116) (Ping timeout: 250 seconds)
14:11:10 qbt joins (~edun@user/edun)
14:13:09 × qbt quits (~edun@user/edun) (Client Quit)
14:13:26 qbt joins (~edun@user/edun)
14:13:38 chris_ joins (~chris@81.96.113.213)
14:14:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
14:15:10 fluffyballoon joins (~fluffybal@131.93.208.196)
14:15:25 azeem joins (~azeem@176.201.3.116)
14:15:33 fossdd joins (~fossdd@sourcehut/user/fossdd)
14:18:35 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:23:12 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
14:23:45 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 258 seconds)
14:23:48 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
14:24:23 × azeem quits (~azeem@176.201.3.116) (Ping timeout: 252 seconds)
14:24:53 azeem joins (~azeem@176.201.3.116)
14:24:58 × qbt quits (~edun@user/edun) (Quit: Leaving)
14:25:16 qbt joins (~edun@user/edun)
14:26:24 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
14:29:24 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
14:29:24 allbery_b joins (~geekosaur@xmonad/geekosaur)
14:29:27 allbery_b is now known as geekosaur
14:29:38 int-e joins (~noone@int-e.eu)
14:31:36 fluffyballoon78 joins (~fluffybal@2620:72:0:6480::450)
14:33:13 oxide joins (~lambda@user/oxide)
14:33:13 Sgeo joins (~Sgeo@user/sgeo)
14:34:01 × fluffyballoon quits (~fluffybal@131.93.208.196) (Ping timeout: 246 seconds)
14:34:22 <tomsmeding> interesting also that it's in the category "Converting to and from a list"
14:34:41 cfricke joins (~cfricke@user/cfricke)
14:34:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
14:35:30 <[exa]> I wish hackage had "usage examples" from looking at reverse dependencies :]
14:35:51 fossdd joins (~fossdd@sourcehut/user/fossdd)
14:39:48 × azeem quits (~azeem@176.201.3.116) (Ping timeout: 272 seconds)
14:40:21 × fluffyballoon78 quits (~fluffybal@2620:72:0:6480::450) (Quit: Client closed)
14:40:50 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
14:41:59 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds)
14:42:02 azeem joins (~azeem@176.201.36.49)
14:42:41 Guest9 joins (~Guest9@43.241.144.27)
14:44:36 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
14:45:38 shriekingnoise joins (~shrieking@186.137.144.80)
14:46:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:49:29 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
14:51:04 × juhp quits (~juhp@bb116-14-48-29.singnet.com.sg) (Quit: juhp)
14:51:21 juhp joins (~juhp@bb116-14-48-29.singnet.com.sg)
14:52:11 Soft is now known as soft
14:52:44 <timCF> Hello! I'm trying to do some compile-time magic with TH (generate parsers) and I need to identify somehow from `Proxy a` information about fields of `a` contructors. Ideally I want to know is every particular field `Maybe a` or something else. Any ideas how to get this data on compile-time only from `a` constructor name?
14:53:07 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
14:59:26 × azeem quits (~azeem@176.201.36.49) (Ping timeout: 272 seconds)
15:00:02 lbseale joins (~lbseale@user/ep1ctetus)
15:02:34 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
15:03:08 fossdd joins (~fossdd@sourcehut/user/fossdd)
15:03:30 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
15:04:10 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 265 seconds)
15:06:14 azeem joins (~azeem@176.201.36.49)
15:07:40 cfricke joins (~cfricke@user/cfricke)
15:08:18 × Guest9 quits (~Guest9@43.241.144.27) (Ping timeout: 240 seconds)
15:09:05 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:10:21 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
15:10:34 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
15:10:46 fossdd joins (~fossdd@sourcehut/user/fossdd)
15:11:20 alx741 joins (~alx741@181.196.69.85)
15:16:58 Guest9 joins (~Guest9@43.241.144.27)
15:17:47 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
15:20:18 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
15:20:18 allbery_b joins (~geekosaur@xmonad/geekosaur)
15:20:21 allbery_b is now known as geekosaur
15:20:50 Null_A joins (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
15:20:58 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
15:25:07 × pschorf quits (~user@c-73-77-28-188.hsd1.tx.comcast.net) (Ping timeout: 245 seconds)
15:27:51 × azeem quits (~azeem@176.201.36.49) (Ping timeout: 265 seconds)
15:28:02 hydroxide joins (~hydroxide@ool-18bab6fd.dyn.optonline.net)
15:28:23 chris_ joins (~chris@81.96.113.213)
15:29:26 × Kammao quits (~Kammao@188.27.128.31) (Quit: Client closed)
15:31:06 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
15:31:16 × stevenxl quits (uid133530@id-133530.highgate.irccloud.com) (Quit: Connection closed for inactivity)
15:35:04 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
15:35:04 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
15:35:22 azeem joins (~azeem@176.201.36.49)
15:36:10 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
15:36:20 <Boarders> timCF: sounds like something you'd want to use Generic (or similar) for
15:36:35 cfricke joins (~cfricke@user/cfricke)
15:40:12 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
15:41:12 lavaman joins (~lavaman@98.38.249.169)
15:45:06 × pe200012 quits (~pe200012@113.105.10.33) (Ping timeout: 240 seconds)
15:45:53 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
15:45:58 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
15:47:20 × qontinuum quits (qontinuum@user/qontinuum) (Ping timeout: 252 seconds)
15:50:44 chris_ joins (~chris@81.96.113.213)
15:52:17 jakalx parts (~jakalx@base.jakalx.net) ()
15:54:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:55:08 × chris_ quits (~chris@81.96.113.213) (Ping timeout: 252 seconds)
15:55:32 × dajoer quits (~david@user/gvx) (Quit: leaving)
16:01:52 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
16:06:51 pbrisbin joins (~patrick@47-208-172-238.trckcmtc01.res.dyn.suddenlink.net)
16:09:24 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
16:10:25 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
16:11:12 Vajb joins (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
16:12:42 chris_ joins (~chris@81.96.113.213)
16:12:47 MorrowM joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
16:13:17 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
16:13:47 × azeem quits (~azeem@176.201.36.49) (Read error: Connection reset by peer)
16:13:47 × Vajb quits (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
16:14:03 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
16:14:03 mastarija joins (~mastarija@31.217.8.174)
16:14:04 mastarija_ joins (~mastarija@31.217.8.174)
16:14:06 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
16:16:04 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
16:16:53 × jmorris quits (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
16:17:11 chris_ joins (~chris@81.96.113.213)
16:18:51 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:20:06 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:21:07 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
16:22:11 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:22:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:22:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
16:23:55 chris_ joins (~chris@81.96.113.213)
16:24:53 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
16:25:02 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
16:25:21 × mastarija_ quits (~mastarija@31.217.8.174) (Quit: Leaving)
16:27:35 chris_ joins (~chris@81.96.113.213)
16:28:08 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds)
16:28:26 × deshalb quits (~deshalb@user/deshalb) (Quit: leaving)
16:30:18 mattil joins (~mattilinn@87-92-0-72.bb.dnainternet.fi)
16:30:20 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
16:31:13 × mattil quits (~mattilinn@87-92-0-72.bb.dnainternet.fi) (Remote host closed the connection)
16:31:36 mattil joins (~mattilinn@87-92-0-72.bb.dnainternet.fi)
16:32:39 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
16:33:30 shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net)
16:37:25 jakalx joins (~jakalx@base.jakalx.net)
16:40:08 drd joins (~drd@93-39-151-19.ip76.fastwebnet.it)
16:41:46 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds)
16:42:26 × mastarija quits (~mastarija@31.217.8.174) (Read error: Connection reset by peer)
16:42:44 mastarija joins (~mastarija@31.217.8.174)
16:45:48 pavonia joins (~user@user/siracusa)
16:45:56 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
16:46:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
16:47:39 fossdd joins (~fossdd@sourcehut/user/fossdd)
16:50:54 × azeem quits (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 272 seconds)
16:52:02 jakalx parts (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
16:52:03 jakalx joins (~jakalx@base.jakalx.net)
16:52:32 azeem joins (~azeem@176.201.36.49)
16:53:33 <dminuoso> Generic-based parsers sounds like a terrible idea.
16:53:38 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds)
16:53:50 econo joins (uid147250@user/econo)
16:53:50 <dminuoso> Especially if you care about performance.
16:54:14 <dminuoso> timCF: You can use reify
16:54:24 <dminuoso> https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH.html#v:reify
16:54:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:54:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
16:55:35 fossdd joins (~fossdd@sourcehut/user/fossdd)
16:56:52 <dminuoso> timCF: Ah in particular, reifyDatatype
16:57:02 <dminuoso> https://hackage.haskell.org/package/th-abstraction-0.4.2.0/docs/Language-Haskell-TH-Datatype.html#t:DatatypeInfo
16:57:18 <dminuoso> This could be more helpful than collecting the information yourself
16:59:05 × azeem quits (~azeem@176.201.36.49) (Read error: Connection reset by peer)
16:59:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:59:35 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
17:02:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
17:03:05 fossdd joins (~fossdd@sourcehut/user/fossdd)
17:04:16 × chris_ quits (~chris@81.96.113.213) (Remote host closed the connection)
17:07:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
17:10:58 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
17:11:08 fossdd joins (~fossdd@sourcehut/user/fossdd)
17:11:42 gustik joins (~gustik@2a01:c844:241f:c020:312a:c22f:e497:698f)
17:17:44 JohnnyBoy joins (~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi)
17:18:46 JohnnyBoy parts (~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi) ()
17:20:16 × hydroxide quits (~hydroxide@ool-18bab6fd.dyn.optonline.net) (Ping timeout: 246 seconds)
17:22:03 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
17:26:04 × jespada quits (~jespada@90.254.247.46) (Quit: Textual IRC Client: www.textualapp.com)
17:27:05 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
17:27:38 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
17:28:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
17:28:29 fossdd joins (~fossdd@sourcehut/user/fossdd)
17:28:48 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
17:29:01 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
17:29:17 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2)
17:30:28 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
17:30:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:30:50 lavaman joins (~lavaman@98.38.249.169)
17:38:12 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 250 seconds)
17:39:38 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
17:40:58 × pbrisbin quits (~patrick@47-208-172-238.trckcmtc01.res.dyn.suddenlink.net) (Ping timeout: 240 seconds)
17:44:18 <sm> Kammao: there have been a couple of haskell on heroku how-tos, searching should find them
17:45:07 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds)
17:47:47 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
17:47:57 vicfred joins (~vicfred@user/vicfred)
17:48:09 hyiltiz joins (~quassel@31.220.5.250)
17:55:30 × deejaytee quits (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) (Ping timeout: 240 seconds)
17:57:21 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
18:00:20 roboguy__ joins (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
18:00:38 mastarija_ joins (~mastarija@31.217.8.174)
18:01:22 × PinealGlandOptic quits (~PinealGla@37.115.210.35) (Ping timeout: 245 seconds)
18:02:01 Erutuon joins (~Erutuon@user/erutuon)
18:03:17 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 252 seconds)
18:03:46 × mastarija quits (~mastarija@31.217.8.174) (Ping timeout: 250 seconds)
18:04:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
18:04:49 × deejaytee quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Remote host closed the connection)
18:04:54 Guest4 joins (~Guest4@173-28-193-122.client.mchsi.com)
18:05:19 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
18:06:50 Atum_ joins (~IRC@user/atum/x-2392232)
18:06:51 × azeem quits (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
18:06:59 × roboguy__ quits (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) ()
18:07:24 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
18:08:38 pgib joins (~textual@173.38.117.68)
18:10:25 × shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Remote host closed the connection)
18:12:38 × deejaytee quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
18:16:22 thmprover joins (~user@047-042-215-236.res.spectrum.com)
18:19:35 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
18:21:11 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
18:21:13 liam30 joins (~liam@c-73-170-133-54.hsd1.ca.comcast.net)
18:21:42 × liam30 quits (~liam@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit)
18:21:57 l-monninger joins (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net)
18:24:19 × wwalker quits (~wwalker@platinum.solid-constructs.com) (Quit: leaving)
18:24:33 × l-monninger quits (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit)
18:25:12 zyklotomic parts (~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8)
18:25:12 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
18:25:14 burnside_ joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
18:26:10 × fossdd quits (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
18:27:11 fossdd joins (~fossdd@sourcehut/user/fossdd)
18:28:18 hegstal joins (~hegstal@2a02:c7f:7604:8a00:7f3a:926a:5be5:7f19)
18:32:12 × drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 276 seconds)
18:34:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
18:36:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:38:26 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 250 seconds)
18:40:12 justsomeguy joins (~justsomeg@user/justsomeguy)
18:41:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:43:01 × mattil quits (~mattilinn@87-92-0-72.bb.dnainternet.fi) (Quit: Leaving)
18:43:36 × nckx quits (~nckx@tobias.gr) (Ping timeout: 268 seconds)
18:46:01 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
18:51:08 × peterhil quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
18:51:20 aegon joins (~mike@174.127.249.180)
18:51:55 <aegon> i have so many modules loaded in stackghci that the prompt is a good 1/3 of my terminal space. Is there a way to tell ghci to be more terse about modules active in the current context?
18:52:21 × dextaa quits (~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 276 seconds)
18:52:37 mastarija__ joins (~mastarija@31.217.8.174)
18:53:14 <monochrom> I usually write one last file "play.hs" that imports the million modules. Then it's just ":load play.hs" for me.
18:53:29 <monochrom> And so the prompt is just "*Main>"
18:53:47 <monochrom> Actually s/usually/used to/
18:54:06 <monochrom> Because these days in reality I use emacs haskell-mode so the prompt is always λ>
18:54:57 × Guest9 quits (~Guest9@43.241.144.27) (Quit: Connection closed)
18:55:21 <aegon> kk, i'll try that approach. I've tried to get used to emacs but i always just want vim and the rest of the stuff is handled piecewise by unix apps in a tmux session
18:55:28 <aegon> i wish emacs had a good text editor :P
18:55:48 <sm> in GHC 9.0, the GHCI prompt has been fixed
18:56:07 <monochrom> The "play.hs" trick is still very useful. I'm sure you also have a few recurring test cases you don't want to re-enter over and over again.
18:56:10 × mastarija_ quits (~mastarija@31.217.8.174) (Ping timeout: 265 seconds)
18:56:20 dextaa joins (~DV@aftr-37-201-214-197.unity-media.net)
18:56:28 <sm> otherwise you can put `:set prompt "ghci> "` in ~/.ghci or ./ghci
18:56:36 <sm> ./.ghci
18:56:46 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
18:56:49 <DigitalKiwi> :set prompt "П> "
18:57:02 <DigitalKiwi> is in my ~/.ghc/ghci.conf
18:57:04 <monochrom> C:\>
18:57:25 <monochrom> You know what, for really really real retro:
18:57:27 <monochrom> A:\>
18:57:47 <monochrom> We old geezers did not always have money for hard disks!
18:58:04 <monochrom> It was like $1000 for merely 20MB.
18:58:24 <DigitalKiwi> https://gist.github.com/emilypi/cafa2a0dac8c879b2a2916dab71a3f3f :)
18:58:55 <aegon> DigitalKiwi: oooh, i din't know you could default enable extensions for it as well
18:59:37 <pavonia> DigitalKiwi: What does the Pi stand for?
19:00:13 stenvold joins (~stenvold@2001:a61:25b2:3801:3990:922e:4d56:f95f)
19:00:29 <DigitalKiwi> pillmore
19:00:33 <DigitalKiwi> maybe?
19:00:36 <aegon> monochrom: I had to look up what the A drive is :P thats pretty neat
19:00:48 <monochrom> Dependent typing has a Π quantifier which is an improved ∀
19:00:54 <DigitalKiwi> but also maybe twice of tau
19:01:38 <deejaytee> monochrom: nice choice :D
19:01:45 <monochrom> :)
19:01:52 <DigitalKiwi> or is it half of tau? fff
19:02:47 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
19:03:06 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
19:03:14 <monochrom> Clearly, π is half of τ, τ is half of Π, Π is half of T
19:03:17 chexum joins (~quassel@gateway/tor-sasl/chexum)
19:04:04 <DigitalKiwi> yes, clearly...
19:04:43 monochrom prefers Emily Rho. Err I mean Emily Riehl
19:04:46 <DigitalKiwi> look i'm here for haskell not this maths stuffs ;p
19:06:39 × mastarija__ quits (~mastarija@31.217.8.174) (Ping timeout: 276 seconds)
19:06:59 <int-e> monochrom: B:\> <--to show off your *second* floppy disk drive
19:07:27 <deejaytee> int-e: ooooh, ahhhh, special
19:08:59 PinealGlandOptic joins (~PinealGla@37.115.210.35)
19:13:50 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection)
19:14:42 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
19:17:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:18:14 <Guest4> Hi all, I'm writing a plugin for haskell language server, and I need some help at the knowledge of GHC API. Does it provide a method to collect all type errors in code?
19:19:13 Guest71 joins (~Guest71@50.47.115.102)
19:19:44 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Ping timeout: 272 seconds)
19:20:31 × Guest71 quits (~Guest71@50.47.115.102) (Client Quit)
19:23:41 weechat-headless is now known as tolt
19:24:08 <deejaytee> it's probably doable, but I don't think there's a function which will do it in one go
19:26:48 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
19:27:10 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection)
19:27:22 roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
19:27:42 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
19:27:49 <dolio> In some ways, Π is not improving ∀, depending on how you think parametricity should work.
19:28:47 <monochrom> Ah I had the logic ∀ in mind, not the type ∀.
19:29:46 <dolio> Oh, yeah. For that case ∀ is just Π for a particular universe, basically.
19:32:04 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
19:34:10 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
19:34:54 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
19:36:33 × burnside_ quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
19:37:04 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
19:37:13 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
19:37:21 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
19:41:15 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
19:41:41 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
19:41:56 Guest14 joins (~Guest14@50.47.115.102)
19:43:13 nuncanada joins (~dude@179.235.162.215)
19:43:16 <Guest14> Could f-strings (similar to those in Python) be implemented using TemplateHaskell?
19:43:46 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
19:44:17 × nuncanada quits (~dude@179.235.162.215) (Client Quit)
19:44:29 <geekosaur> probably via a quasiquoter
19:44:47 <geekosaur> there already exist some string quasiquoters you could start from
19:45:36 <Hecate> geekosaur: https://hackage.haskell.org/package/PyF
19:45:43 <Hecate> special mention to guibou-
19:46:02 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
19:48:00 peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
19:51:07 × Guest14 quits (~Guest14@50.47.115.102) (Ping timeout: 246 seconds)
19:55:40 × stenvold quits (~stenvold@2001:a61:25b2:3801:3990:922e:4d56:f95f) (Quit: Client closed)
19:55:59 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
19:56:36 ukari joins (~ukari@user/ukari)
20:03:21 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
20:04:35 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
20:07:09 falsifian joins (~falsifian@exoco.falsifian.org)
20:07:18 × fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
20:08:17 <falsifian> Anyone using ghcjs with nixpkgs? Running ghcjs --make Main on a simple program that imports Data.JSString is giving "Could not find module Data.JSString".
20:10:31 <falsifian> I'm not sure if there's some package that's supposed to provide that.
20:12:07 gehmehgeh joins (~user@user/gehmehgeh)
20:12:55 Null_A joins (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
20:13:47 × epolanski quits (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
20:15:13 MQ-17J joins (~MQ-17J@69.14.129.206)
20:16:05 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
20:19:30 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds)
20:21:30 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
20:22:41 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
20:23:15 Null_A joins (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
20:23:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
20:24:01 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
20:25:01 × chele quits (~chele@user/chele) (Remote host closed the connection)
20:25:19 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:26:48 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
20:32:49 × thmprover quits (~user@047-042-215-236.res.spectrum.com) (Quit: [Exit, pursued by bear])
20:36:44 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
20:37:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:38:23 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer)
20:38:41 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
20:40:16 <falsifian> Hm. I got it working by building with cabal and depending on ghcjs-base. But now it doesn't like the "foreign import ..." syntax...
20:43:33 × Guest4 quits (~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed)
20:43:40 delYsid joins (~user@84-115-55-45.cable.dynamic.surfer.at)
20:43:47 wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
20:44:40 <falsifian> Okay, figured that out. I need the ForeignFunctionInterface language option; JavaScriptFFI isn't enough.
20:46:48 <geekosaur> huh. I'd report that as a bug, since JavascriptFFI makes no sense without ForeignFunctionInterface it should probably turn it on (we already have a number of cases where required extensions get turned on automatically by the extensions that require them)
20:47:02 ubert joins (~Thunderbi@91.141.35.41.wireless.dyn.drei.com)
20:47:28 <falsifian> Heh. It looks like ForeignFunctionInterface on its own is sufficient. Not sure what's going on.
20:48:44 <falsifian> Main.hs: https://clbin.com/sRPL1; jt.cabal: https://clbin.com/DXV6R
20:49:24 <falsifian> Hm, looks like it's already reported at https://github.com/ghcjs/ghcjs/issues/541
20:50:46 <falsifian> For all I know, ForeignFunctionInterface is the one I'm supposed to use anyway. I can't really find official-looking documentation that includes the necessary language option.
20:50:49 burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk)
20:52:21 <delYsid> In GHC 8 TH, I could just fail in the Q monad. Apparently, with GHC 9 TH, `Code Q a` has no MonadFail instance anymore. How am I supposed to fail the compile now?
20:54:08 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
20:55:26 × burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 272 seconds)
20:55:35 × hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer)
20:55:42 <falsifian> geekosaur: Filed https://github.com/ghcjs/ghcjs/issues/808
20:56:11 hiruji joins (~hiruji@user/hiruji)
20:57:03 × deejaytee quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Quit: Leaving)
20:57:51 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
20:59:58 × azeem quits (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
21:01:04 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
21:03:35 <hpc> delYsid: Q itself still has its MonadFail instance
21:08:43 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
21:08:43 zfnmxt joins (~zfnmxtzfn@user/zfnmxt)
21:11:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
21:12:14 agua joins (~agua@2804:18:70:7597:1:0:6e99:2d6f)
21:14:41 × pesada quits (~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7) (Ping timeout: 268 seconds)
21:15:30 × mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 240 seconds)
21:15:55 × neceve quits (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 268 seconds)
21:19:26 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds)
21:20:21 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
21:25:01 ablutor joins (~quassel@wasscher.com)
21:29:09 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
21:30:25 × fendor quits (~fendor@91.141.37.142.wireless.dyn.drei.com) (Remote host closed the connection)
21:30:27 <delYsid> hpc: I was apparently looking for bindCode and joinCode...
21:31:55 nckx joins (~nckx@tobias.gr)
21:33:43 pesada joins (~agua@191.177.175.57)
21:37:01 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:37:18 × agua quits (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 256 seconds)
21:39:37 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
21:40:03 <janus> @hoogle Data.Scientific.Scientific -> Data.Fixed.Fixed Data.Fixed.E3
21:40:04 <lambdabot> No results found
21:40:37 <janus> how can it be that nobody has written this? hmmm
21:44:22 <janus> surely it should be possible to write f x = MkFixed . toInteger . (*) (resolution x) $ x :: HasResolution res => Scientific -> Fixed res
21:44:42 × theproffesor quits (~theproffe@user/theproffesor) (Read error: Connection reset by peer)
21:44:55 theproffesor joins (~theproffe@2601:282:847f:8010::3a29)
21:46:42 notzmv joins (~zmv@user/notzmv)
21:49:09 jmorris joins (uid433911@id-433911.stonehaven.irccloud.com)
21:49:12 × wroathe quits (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 265 seconds)
21:50:03 Guest4 joins (~Guest4@173-28-193-122.client.mchsi.com)
21:50:50 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
21:51:53 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
21:53:27 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:53:47 <janus> aaah i would need to conjure up a value "Fixed res", and i guess i can't use mempty...
21:54:08 <janus> are there canonical Mult/Add newtype wrappers for common numeric types?
21:54:34 × pesada quits (~agua@191.177.175.57) (Ping timeout: 240 seconds)
21:54:51 <monochrom> Sum and Product.
21:54:55 × Guest4 quits (~Guest4@173-28-193-122.client.mchsi.com) (Client Quit)
21:55:33 <monochrom> I would think realToFrac can do Scientific -> Fixed foo
21:56:32 <janus> ooh , i can! thank you! what a bummer that i can't hoogle it...
21:56:56 <monochrom> This is why I read library docs from cover to cover instead of using hoogle.
21:59:25 × kuribas quits (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
22:00:02 safinaskar joins (~user@109.252.55.35)
22:00:20 <safinaskar> webchat.freenode.net doesn't work
22:00:23 <safinaskar> do you know why?
22:00:49 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Quit: ERC (IRC client for Emacs 28.0.50))
22:01:41 l-monninger joins (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net)
22:02:24 × l-monninger quits (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit)
22:02:25 <meejah> safinaskar: "freenode is dead", approximately?
22:02:35 jneira_ joins (~jneira_@28.red-80-28-169.staticip.rima-tde.net)
22:02:39 × ubert quits (~Thunderbi@91.141.35.41.wireless.dyn.drei.com) (Quit: ubert)
22:02:50 <geekosaur> what pointed you at webchat.freenode.net?
22:02:57 ubert joins (~Thunderbi@91.141.35.41.wireless.dyn.drei.com)
22:03:06 <yushyin> https://web.libera.chat/ use this
22:03:11 <geekosaur> it should prb\obably point to web.libera.chat these days
22:03:36 <safinaskar> well, i found on augeas site that they are using freenode
22:03:39 <safinaskar> so i am asking
22:04:38 <geekosaur> indeed they appear not to have moved here
22:05:31 <yushyin> maybe ask the freenode support what's wrong with it
22:07:05 <DigitalKiwi> lol good luck
22:07:11 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
22:07:20 × ubert quits (~Thunderbi@91.141.35.41.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
22:08:21 <qrpnxz> it's called freenode, not freesupport /s
22:08:57 agua joins (~agua@2804:18:70:7597:1:0:6e99:2d6f)
22:14:10 Guest4 joins (~Guest4@173-28-193-122.client.mchsi.com)
22:15:33 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:16:34 <pavonia> freenode seems to enforce SASL connections now, might be related to this
22:18:46 lavaman joins (~lavaman@98.38.249.169)
22:18:48 Null_A joins (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
22:18:52 <safinaskar> pavonia: yes, but even webchat.freenode.net doesn't work!
22:19:12 gabiruh_ is now known as gabiruh
22:19:18 <safinaskar> i. e. freenode's own official web client fails to properly connect to freenode servers!
22:20:02 <pavonia> Are you trying to connect via your account?
22:20:57 <monochrom> That reminds me. "doesn't work" has not been defined. This has degenerated to a telepathic speculation game.
22:21:26 <monochrom> I mean, even if we ignore the fact that this is not a freenode tech support service.
22:22:31 × sagax quits (~sagax@213.138.71.146) (Ping timeout: 268 seconds)
22:23:18 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
22:23:32 <DigitalKiwi> this is particularly amusing considering what freenode did to this channel and especially edwardk lol
22:25:27 <pavonia> What did they do to edwardk?
22:29:51 <DigitalKiwi> https://twitter.com/kmett/status/1403428202173796353
22:30:58 <monochrom> Thanks. Yikes.
22:33:27 <sm> safinaskar: freenode is dead, you should forget it
22:33:59 <geekosaur> augeas appears to still be there
22:34:13 <geekosaur> which is what safinaskar was looking for
22:35:00 lavaman joins (~lavaman@98.38.249.169)
22:35:11 <geekosaur> (of course it may be living up to its name…)
22:36:10 <geekosaur> or down to, as the case may be
22:36:33 <sm> I found only https://hackage.haskell.org/package/augeas from 2012
22:37:45 <sm> ah, this page: https://augeas.net/developers.html
22:39:29 × FragByte quits (~christian@user/fragbyte) (Quit: Quit)
22:40:04 <sm> and they don't seem to be on libera at all so maybe they really are a hold out, wow
22:40:32 chomwitt joins (~chomwitt@2a02:587:dc0c:a300:12c3:7bff:fe6d:d374)
22:40:47 × theproffesor quits (~theproffe@2601:282:847f:8010::3a29) (Changing host)
22:40:47 theproffesor joins (~theproffe@user/theproffesor)
22:40:56 <sm> no I think they're just not too active
22:41:14 FragByte joins (~christian@user/fragbyte)
22:41:26 roboguy__ joins (~roboguy_@2605:a601:afe7:9f00:21b8:dc17:ae59:fdd6)
22:41:38 <sm> send em a bug report safinaskar
22:42:49 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:43:02 × xff0x quits (~xff0x@2001:1a81:532e:4200:4c53:a999:c700:5bd) (Ping timeout: 256 seconds)
22:43:10 × smtnet3 quits (~asdfasdfa@202.36.244.28) (Remote host closed the connection)
22:43:23 <int-e> https://nitter.eu/kurtseifried/status/1398712468394811395#m is two months old, still relevant
22:43:51 xff0x joins (~xff0x@2001:1a81:532e:4200:ef34:239:52ff:ac71)
22:44:08 acidjnk joins (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de)
22:45:06 × roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Ping timeout: 240 seconds)
22:45:15 newhaskeller joins (~newhaskel@2804:14c:c0:8dbb:94e0:d2eb:43f:5833)
22:45:41 <pavonia> int-e++ (for posting nitter instead of twitter links)
22:47:00 tpefreedom joins (~tsomers@98-125-225-122.dyn.centurytel.net)
22:47:18 <tpefreedom> Are there any GUI libraries that are not based on OO?
22:47:28 × haskl quits (~haskl@98.37.78.63) (Ping timeout: 272 seconds)
22:48:19 <pavonia> FRP libraries aren't, I guess
22:48:24 haskl joins (~haskl@98.37.78.63)
22:48:26 <geekosaur> there's some FRP libraries
22:48:38 <tpefreedom> FRP libraries?
22:48:59 <geekosaur> some of which wrap originally OO or OO-like libs, but I think some are direct
22:49:06 <geekosaur> functional reactive programming
22:50:38 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds)
22:50:49 <delYsid> wait, does "cabal build" of a lib implicitly install it somehow?
22:51:12 <monochrom> No.
22:51:35 <monochrom> Even "cabal install" doesn't install a lib unless you add "--lib".
22:51:36 pesada joins (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe)
22:52:24 <monochrom> At least not in the "made available for bare-hand ghci" sense.
22:53:03 <monochrom> But "cabal build" is extremely local to your source tree or build tree.
22:53:23 <delYsid> I distinctly remember o-clock failed to build with ghc 9 yesterday. So I PR'ed it, and there hasnt been an upload to hackage yet. But today, the package I work on which depends on o-clock builds fine with ghc 9...
22:53:54 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
22:53:57 <monochrom> Yes sometimes problems resolves themselves.
22:54:02 drd joins (~drd@93-39-151-19.ip76.fastwebnet.it)
22:54:22 <myShoggoth> Haskell Foundation July Update: https://discourse.haskell.org/t/haskell-foundation-july-update/2812
22:54:28 <monochrom> Sometimes students email me questions when I'm asleep and email me again "I have figured it out" when I wake and check email. :)
22:55:08 <delYsid> monochrom: yeah, but this is something different...
22:55:08 × agua quits (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds)
22:55:21 × oxide quits (~lambda@user/oxide) (Quit: oxide)
22:55:38 <delYsid> anyway, CI will tell.
22:58:42 <tpefreedom> So far, with what little GUI stuff I've done, I've mostly just treated the widget toolkits like other imported libraries with their own built in operations.
23:00:05 agua joins (~agua@2804:18:70:7597:1:0:6e99:2d6f)
23:01:06 × Null_A quits (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
23:03:06 × pesada quits (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 240 seconds)
23:04:17 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 245 seconds)
23:04:56 pesada joins (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe)
23:06:23 qontinuum joins (qontinuum@user/qontinuum)
23:07:10 × agua quits (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds)
23:08:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:08:19 agua joins (~agua@2804:18:70:7597:1:0:6e99:2d6f)
23:09:42 safinaskar parts (~user@109.252.55.35) ()
23:12:10 × pesada quits (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 272 seconds)
23:12:53 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
23:15:43 × drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 265 seconds)
23:16:06 qontinuum_ joins (qontinuum@user/qontinuum)
23:16:12 × qontinuum quits (qontinuum@user/qontinuum) (Ping timeout: 265 seconds)
23:16:15 qontinuum_ is now known as qontinuum
23:23:25 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
23:23:27 × qontinuum quits (qontinuum@user/qontinuum) (Ping timeout: 265 seconds)
23:24:10 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
23:28:23 qontinuum joins (qontinuum@user/qontinuum)
23:31:02 × gustik quits (~gustik@2a01:c844:241f:c020:312a:c22f:e497:698f) (Quit: Leaving)
23:32:34 qontinuum_ joins (qontinuum@user/qontinuum)
23:33:00 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
23:33:07 × qontinuum quits (qontinuum@user/qontinuum) (Ping timeout: 265 seconds)
23:33:07 qontinuum_ is now known as qontinuum
23:40:00 × newhaskeller quits (~newhaskel@2804:14c:c0:8dbb:94e0:d2eb:43f:5833) (Quit: Client closed)
23:42:00 × acidjnk quits (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
23:42:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
23:43:30 lavaman joins (~lavaman@98.38.249.169)
23:46:06 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
23:46:18 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
23:48:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
23:50:31 pesada joins (~agua@191.177.175.57)
23:52:43 Core7498 joins (~agua@2804:18:70:7597:1:0:6e99:2d6f)
23:52:59 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
23:53:03 × agua quits (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Read error: Connection reset by peer)
23:54:00 × pesada quits (~agua@191.177.175.57) (Read error: Connection reset by peer)
23:58:54 Core9323 joins (~Core9323@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b)

All times are in UTC on 2021-07-30.