2021/07/30

2021-07-30 00:00:01 +0200 <Drew[m]> As a language with a smaller user base one of the effects of that we have to live with is just generally less people around to make a library for every single concievable problem, and less businesses depending on code written in Haskell so less money sloshing about to pay for developer time.
2021-07-30 00:00:03 +0200 <motle> its more of an experiment in futility
2021-07-30 00:00:20 +0200 <motle> seriously, these code fragments...
2021-07-30 00:00:26 +0200sheepduck(~sheepduck@user/sheepduck) (Remote host closed the connection)
2021-07-30 00:00:29 +0200 <sm> dsal, quickcheck isn't a core tool
2021-07-30 00:00:35 +0200fendor(~fendor@178.165.162.84.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-07-30 00:00:58 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
2021-07-30 00:01:02 +0200 <motle> no ppls to make the libraries theory is lies
2021-07-30 00:01:08 +0200 <motle> its because aliens i tels ya
2021-07-30 00:01:16 +0200 <dsal> sm: it's a core test library that ships with base, but is bad and they will definitely never improve it
2021-07-30 00:01:25 +0200 <motle> semi-literate aliens!!
2021-07-30 00:02:01 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
2021-07-30 00:02:03 +0200 <sm> dsal but you get my point I hope. install/build tools matter more. go/rust are more unified at this than haskell. Nothing controversial here
2021-07-30 00:02:31 +0200 <motle> you have to reasemble the spacecraft with mechano - and anyone trying to subvert fissile materials will be hastily reoriented
2021-07-30 00:02:56 +0200 <dsal> sm: Maybe? But `go build` isn't used inside of google, and the maybe that's not the right way to do stuff in general.
2021-07-30 00:03:00 +0200 <dsal> I don't know rust, though.
2021-07-30 00:03:00 +0200 <motle> talk about junk bonds, sheesh
2021-07-30 00:03:04 +0200 <sm> arkanoid, it'll probably change eventually, since haskell is too good to die. But it might take another decade
2021-07-30 00:03:49 +0200 <motle> you cant fly that its still linear!
2021-07-30 00:03:58 +0200 <Drew[m]> We stubbornly avoiding success and failure
2021-07-30 00:04:00 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Read error: Connection reset by peer)
2021-07-30 00:04:33 +0200 <motle> "your lucky its even linear yet mate"
2021-07-30 00:05:06 +0200 <motle> whacky races!
2021-07-30 00:05:53 +0200 <motle> drat!
2021-07-30 00:06:07 +0200 <arkanoid> writing haskell feels great and refactoring feels like putting the last piece of a puzzle every time. Now all my OO code seems fragile and my procedural code really want pure functions and algebraic data types, but on the other end I don't feel that the plus are over the cons when I think about writing a real service. Maybe for doing science, but I've also tried that and while being very nicely
2021-07-30 00:06:09 +0200 <arkanoid> expressed my "transpiled to C" code from other languages I like is much faster at runtime
2021-07-30 00:06:19 +0200 <sm> arkanoid: but you totally can get real production work done in haskell, don't get me wrong. Many companies have been doing it for a while now. We just have two pretty good tools instead of one.
2021-07-30 00:06:54 +0200 <sm> like everything, it's not perfect and there are tradeoffs.
2021-07-30 00:07:01 +0200 <motle> putting the algebraic in the algebraic datatypes
2021-07-30 00:07:31 +0200 <deejaytee> Every time I try to explain ADTs to people I come up against blub
2021-07-30 00:07:43 +0200 <motle> sm: like vinyl!? in terms of tradeoffs...
2021-07-30 00:08:00 +0200 <deejaytee> Absolutely infuriating
2021-07-30 00:08:17 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-07-30 00:08:27 +0200 <motle> yeah but prabablys your just using records
2021-07-30 00:08:56 +0200 <justsomeguy> deejaytee: Lately I've been toying with the idea that explaining things, rather than first exposing them to a direct experience, is an inherently flawed approach. It can definitely be frustrating.
2021-07-30 00:08:57 +0200 <arkanoid> now I can count how many unique input combinations my functions have! Never though about these topic while dealing whith other programming paradigms
2021-07-30 00:09:51 +0200 <deejaytee> justsomeguy: I exaggerate a bit - I've had some success recently, esp. when explaining how ADTs are useful for modelling state machines & valid bits in Clash circuits
2021-07-30 00:10:03 +0200 <motle> impure languages.....
2021-07-30 00:10:24 +0200 <sm> arkanoid: also, the strengths of haskell are most apparent with larger and long-lived software
2021-07-30 00:10:37 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-30 00:10:52 +0200 <arkanoid> also I've learn that haskell is not really pure and I can do pure stuff everywhere else too, it's just a matter if the compiler can do something for me in this direction
2021-07-30 00:11:06 +0200pesada(~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2)
2021-07-30 00:11:13 +0200fluffyballoon(~fluffybal@pat-verona-h.epic.com) (Ping timeout: 246 seconds)
2021-07-30 00:11:14 +0200 <motle> IO we cant help you
2021-07-30 00:11:55 +0200 <motle> anyone else get crank called by their fricking recruiter as they pushed the price?
2021-07-30 00:12:11 +0200 <sm> arkanoid, well that compiler support is quite important. In practice if you can't enforce purity, you can't really achieve it
2021-07-30 00:12:12 +0200 <motle> haha "job" ... "security" ... fun times!
2021-07-30 00:12:17 +0200 <sm> enforce it and express it clearly
2021-07-30 00:13:06 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 240 seconds)
2021-07-30 00:13:09 +0200 <deejaytee> justsomeguy: in a way, it reminds me of the "when will I ever use mathematics" question in high school - the artificial need for "concrete examples" forces me to try to make (often untrue) assumptions about how someone programs
2021-07-30 00:13:17 +0200 <motle> i was like, yeah, im still the only person and its still the only language, and im guessing that means your still not going to pay me
2021-07-30 00:13:33 +0200 <motle> and he was like saluting as he hung up
2021-07-30 00:13:33 +0200 <arkanoid> I've just reimplemented kinda typeclasses and monads by metaprogramming in my favorite procedural language, that also supports enforcing no side effects and zero exceptions (and other custom effects)
2021-07-30 00:14:17 +0200 <Drew[m]> arkanoid: Well it's at least pure in the sense that if you break referential transparency then the programs the compiler produces end up doing very strange things
2021-07-30 00:14:23 +0200 <arkanoid> sure no math rooted concepts like in haskell, but yeah It resembles same pattern
2021-07-30 00:14:45 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119)
2021-07-30 00:15:35 +0200 <motle> and they were like, in some convoluted way shouting "but you can read this ones wallet code right?"
2021-07-30 00:15:59 +0200 <arkanoid> Drew[m]: you can wrap an unsafe function into a pure one and referential transparency is gone, just like in any other programming language. It is rare I think
2021-07-30 00:16:04 +0200 <motle> me complaining about its heavy use of lenses
2021-07-30 00:16:31 +0200 <Drew[m]> Sure there are backdoors to purity but if you actually use them to break referential transparency rather than just things like breaking calls to pure C code out of IO then the chances are it just doesn't do what you wanted it to do
2021-07-30 00:16:57 +0200 <motle> "i can bore all your staff into writing graphs until they do and then humnity will buy your fricking coins"
2021-07-30 00:17:11 +0200 <Drew[m]> Which is why in practice there isn't a great rush to use the backdoors to violate RT even if it's technically possible, I think
2021-07-30 00:17:12 +0200 <motle> he didnt get back to me
2021-07-30 00:17:30 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-07-30 00:17:38 +0200 <monochrom> https://www.rea-group.com/blog/the-abject-failure-of-weak-typing/ has a motivation for ADT. (The "Primitives" section.)
2021-07-30 00:17:44 +0200pesada(~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2) (Ping timeout: 250 seconds)
2021-07-30 00:18:32 +0200 <motle> jokes on them though right if the values derived from, wait, what was it?
2021-07-30 00:18:44 +0200 <motle> im sure theres some over here...
2021-07-30 00:18:56 +0200 <monochrom> TLDR you want "compare :: X -> X -> Ordering" where "data Ordering = LT | EQ | GT". You don't want "compare :: X -> X -> Int".
2021-07-30 00:19:32 +0200 <monochrom> The whole article is worth reading anyway.
2021-07-30 00:19:50 +0200 <monochrom> Especially since this is a group of Scala people who are saying that Haskell does it right.
2021-07-30 00:19:57 +0200 <motle> im sick of this "do your homework fully - conquer money" which is impossible, and the "lol, look he was actually trying"
2021-07-30 00:20:16 +0200 <motle> like literally
2021-07-30 00:20:34 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-30 00:20:46 +0200 <motle> god job i trashed it i reckon
2021-07-30 00:20:53 +0200 <monochrom> motle, are you done?
2021-07-30 00:21:00 +0200zeenk(~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) (Quit: Konversation terminated!)
2021-07-30 00:21:21 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-30 00:21:26 +0200 <motle> what can i say?
2021-07-30 00:21:47 +0200 <monochrom> You can stop.
2021-07-30 00:21:47 +0200 <arkanoid> btw if you want to try a procedural language that can enforce kinda purity (does effect tracking), has kinda sum types (object variants), give lots of power (ast based metaprogramming) and is very speed at runtime (compiles to C), I suggesto you to try nim. Warning, quite small community, but it's enjoyable
2021-07-30 00:22:15 +0200 <motle> thats what i was trying to say i was trying to do... thanks
2021-07-30 00:23:01 +0200 <motle> unsure...
2021-07-30 00:23:57 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-30 00:23:58 +0200 <motle> depends if it was ever possible i guess
2021-07-30 00:24:10 +0200ChanServ+o monochrom
2021-07-30 00:24:13 +0200monochrom+b *!*@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net
2021-07-30 00:24:13 +0200motlemonochrommotle
2021-07-30 00:24:18 +0200monochrom-o monochrom
2021-07-30 00:24:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 00:24:34 +0200acidjnk_new(~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-07-30 00:25:23 +0200pesada(~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2)
2021-07-30 00:25:33 +0200 <justsomeguy> arkanoid: It's interesting that Ada, which influenced Nim, has seperate constructs for pure expressions and effectul things (like procedures vs functions).
2021-07-30 00:25:34 +0200chomwitt(~chomwitt@ppp-94-67-203-142.home.otenet.gr) (Remote host closed the connection)
2021-07-30 00:26:23 +0200 <arkanoid> justsomeguy: also nim have proc (that have side effect) and func (that has not, it's implicitly a proc with pragma {.noSideEffect.})
2021-07-30 00:26:59 +0200 <Drew[m]> Alas, I set motle to ignore so I didn't see what finally got them the boot...
2021-07-30 00:27:02 +0200 <arkanoid> also there's let for immutable data, and var for mutable
2021-07-30 00:28:34 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 250 seconds)
2021-07-30 00:29:35 +0200 <arkanoid> I've a question for you experienced haskell programmers. When you write functions, you first write the body and then the declaration/signature, or the other way around?
2021-07-30 00:30:05 +0200 <monochrom> I do both. And more.
2021-07-30 00:30:21 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 276 seconds)
2021-07-30 00:30:52 +0200 <sm> most often the name and type signature first for me, but it can be done either way
2021-07-30 00:30:54 +0200 <arkanoid> I started writing the declaration first and body later, but then I realised that if I don't write the declaration vs code suggests me much more generic declaration that I didn't even realize it was possible
2021-07-30 00:31:34 +0200 <sm> nailing down the types early clarifies your thinking cheaply and ensures the best error messages
2021-07-30 00:31:55 +0200 <Drew[m]> You can always write the type annotation, write the code, then delete the type annotation and have the compiler hand you the most general one it can infer
2021-07-30 00:31:55 +0200 <sm> but sometimes the types are too hard and it's easier to implement and then ask ghc what they are
2021-07-30 00:32:12 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
2021-07-30 00:32:20 +0200 <monochrom> Let's reduce this to the general question of top-down-waterfall vs bottom-up-evolve.
2021-07-30 00:32:35 +0200dajoer(~david@user/gvx)
2021-07-30 00:32:43 +0200 <monochrom> For which we know of a very clear answer.
2021-07-30 00:32:49 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 00:33:12 +0200 <monochrom> If you're still exploring your options of course it's bottom-up-evolve don't-be-afraid-to-break-things-and-change-your-mind.
2021-07-30 00:33:20 +0200 <sm> top down and bottom up are both perfectly valid tactics, i wouldn't tie them to waterfall or evolve
2021-07-30 00:33:54 +0200 <monochrom> If you have already received a clear unchangable non-negotiatble specification, clearly it's top-down-waterfall.
2021-07-30 00:34:11 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
2021-07-30 00:34:23 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 00:35:18 +0200 <arkanoid> sure but there's a big difference in thinking with types and thining with typeclasses. If I let ghc infer the types, I do realize more the properties required to the used types
2021-07-30 00:35:26 +0200 <hpc> and if you have an unclear everchanging non-negotiable set of empty jira tickets, that's agile
2021-07-30 00:35:38 +0200 <monochrom> :)
2021-07-30 00:35:38 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-07-30 00:36:19 +0200 <sm> arkanoid: it's a back and forth conversation with the compiler as your assistant, sometimes
2021-07-30 00:36:38 +0200paravida(~myChateau@user/paravida)
2021-07-30 00:37:12 +0200 <bryan[m]> I also use both ways
2021-07-30 00:38:02 +0200 <Drew[m]> arkanoid: That's why I'd say write the type annotations then delete and have the compiler generalize. If you know the shape of the function you are looking for then writing out the type allows the compiler to help you write it with typed holes. Once a function is written the compiler is probably the best thing for figuring out what the most general type the implementation can have is.
2021-07-30 00:38:06 +0200 <bryan[m]> I tend to start with thinking about the types first, since they're also really good to look at first when working with existing code
2021-07-30 00:38:22 +0200 <arkanoid> got it. Actually it's the first time I meet such a gentle, clear and intelligent compiler. It's always surprising to see how the typeclasses gets inferred. It's feels more like an old professor than a cold robot
2021-07-30 00:39:09 +0200 <monochrom> But I aspire to be a cold old professor robot.
2021-07-30 00:39:23 +0200 <justsomeguy> I get bitten by "cannot construct the infinite type ..." a lot, lately.
2021-07-30 00:40:09 +0200 <Drew[m]> I always say, all those errors aren't you having a fight with the compiler, its having a gentle conversation with your friend the compiler who is asking you to clarify exactly what you meant
2021-07-30 00:40:20 +0200 <monochrom> onoes ghcup new version
2021-07-30 00:40:30 +0200 <Drew[m]> Ok sometimes it's a fight with the compiler
2021-07-30 00:40:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-30 00:41:44 +0200 <monochrom> Haha new addition "ghcup nuke"
2021-07-30 00:42:08 +0200 <arkanoid> thanks for the conversation, I need some sleep now. I hope to be able to pick up haskell again in the future to actually write something more than a week-long experiment
2021-07-30 00:42:27 +0200 <monochrom> You know, "nuke" is the wrong metaphor because nuclear winter and fallouts and...
2021-07-30 00:42:28 +0200 <davean> monochrom: That fuck with your drive's OPAL settings?
2021-07-30 00:42:38 +0200 <monochrom> I don't know! I haven't tried.
2021-07-30 00:42:46 +0200 <davean> Theres definately fallout if it does
2021-07-30 00:43:29 +0200 <monochrom> But what are OPAL settings?
2021-07-30 00:43:45 +0200 <sm> arkanoid: good luck. give it time, it takes more than other languages
2021-07-30 00:44:09 +0200 <monochrom> https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/135 may state the exact feature.
2021-07-30 00:44:57 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
2021-07-30 00:45:19 +0200 <arkanoid> sm: I have strong feeling that I will search haskell features from now on with every other language
2021-07-30 00:45:29 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 00:45:41 +0200 <sm> yup!
2021-07-30 00:45:46 +0200 <Drew[m]> monochrom well global thermonuclear war is dirty in terms of radioactive fallout, but very cleansing in terms of life
2021-07-30 00:45:54 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-07-30 00:46:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Read error: Connection reset by peer)
2021-07-30 00:46:13 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119)
2021-07-30 00:46:23 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 00:46:25 +0200 <sm> Drew: lol way to see the silver lining
2021-07-30 00:46:33 +0200 <monochrom> :)
2021-07-30 00:46:41 +0200 <monochrom> Eveery silver lining has tarnish.
2021-07-30 00:48:01 +0200dfg(dfg@user/dfg) (Quit: I hate quit messages.)
2021-07-30 00:48:42 +0200pesada(~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2) (Ping timeout: 240 seconds)
2021-07-30 00:51:00 +0200Guest5719(~Guest57@125-63-24-117.ip4.superloop.com)
2021-07-30 00:51:15 +0200 <Guest5719> @undo [ (x, ys) | x <- as, ys <- solutions (f (Con x))]
2021-07-30 00:51:16 +0200 <lambdabot> concatMap (\ x -> concatMap (\ ys -> [(x, ys)]) (solutions (f (Con x)))) as
2021-07-30 00:51:18 +0200dfg(dfg@2600:3c00::f03c:92ff:feb4:be75)
2021-07-30 00:51:18 +0200dfg(dfg@2600:3c00::f03c:92ff:feb4:be75) (Changing host)
2021-07-30 00:51:18 +0200dfg(dfg@user/dfg)
2021-07-30 00:51:29 +0200bruceleewees(~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 258 seconds)
2021-07-30 00:51:29 +0200stevenxl(uid133530@id-133530.highgate.irccloud.com)
2021-07-30 00:51:41 +0200stevenxlDoes this function exist? (a -> c) -> Either a b -> (b -> c) -> c
2021-07-30 00:52:11 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-07-30 00:52:16 +0200 <deejaytee> > :t either
2021-07-30 00:52:18 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
2021-07-30 00:52:27 +0200 <geekosaur> :t either
2021-07-30 00:52:29 +0200 <lambdabot> (a -> c) -> (b -> c) -> Either a b -> c
2021-07-30 00:52:32 +0200 <deejaytee> I still don't know how to use lambdabot xD
2021-07-30 00:52:59 +0200 <deejaytee> :t fmap flip either
2021-07-30 00:53:00 +0200 <lambdabot> (a -> c) -> Either a b -> (b -> c) -> c
2021-07-30 00:53:06 +0200bruceleewees(~bruceleew@83.24.236.64.ipv4.supernova.orange.pl)
2021-07-30 00:53:17 +0200cjb(~cjb@user/cjb)
2021-07-30 00:53:19 +0200 <Drew[m]> :t flip . either
2021-07-30 00:53:21 +0200 <lambdabot> (a -> c) -> Either a b -> (b -> c) -> c
2021-07-30 00:53:22 +0200 <fresheyeball> I want to briefly announce a new Haskell consultancy, my company https://platonic.systems/
2021-07-30 00:53:30 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-07-30 00:53:38 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-07-30 00:53:42 +0200Guest5719(~Guest57@125-63-24-117.ip4.superloop.com) (Client Quit)
2021-07-30 00:53:45 +0200 <fresheyeball> If you ever need Haskell help, we are here for you
2021-07-30 00:54:08 +0200 <stevenxl> :t fmap flip either
2021-07-30 00:54:10 +0200 <lambdabot> (a -> c) -> Either a b -> (b -> c) -> c
2021-07-30 00:55:01 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-30 00:55:24 +0200Guest84(~Guest84@125-63-24-117.ip4.superloop.com)
2021-07-30 00:55:33 +0200 <Guest84> @undo [() | eval a]
2021-07-30 00:55:33 +0200 <lambdabot> if eval a then [()] else []
2021-07-30 00:55:38 +0200Atum_(~IRC@user/atum/x-2392232)
2021-07-30 00:56:26 +0200 <deejaytee> fresheyeball: nice logo :)
2021-07-30 00:58:26 +0200 <fresheyeball> deejaytee: thanks!
2021-07-30 01:00:11 +0200 <monochrom> What motivated you to name it Platonic?
2021-07-30 01:01:16 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-07-30 01:01:56 +0200 <fresheyeball> monochrom: it sort of expresses what I am going for
2021-07-30 01:02:12 +0200 <fresheyeball> I want to find a way to plug mathmatical objects into buisness
2021-07-30 01:02:55 +0200Guest84(~Guest84@125-63-24-117.ip4.superloop.com) (Quit: Client closed)
2021-07-30 01:03:21 +0200son0p(~ff@181.136.122.143)
2021-07-30 01:04:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-30 01:04:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 01:15:45 +0200euandreh(~euandreh@2804:14c:33:9fe5:9526:d20a:c7ef:dc9b)
2021-07-30 01:18:27 +0200delYsid(~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50))
2021-07-30 01:20:26 +0200 <dsal> I missed some of arkanoid's conversation of lack of purity. Is it just because you can do `unsafePerformIO`?
2021-07-30 01:21:26 +0200 <dsal> But obviously we only write type signatures now that we have https://haskellwingman.dev
2021-07-30 01:24:31 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 01:24:33 +0200 <qrpnxz> xD
2021-07-30 01:25:39 +0200 <qrpnxz> hm, found a typo on that page
2021-07-30 01:25:45 +0200 <qrpnxz> anybody got a contact for em
2021-07-30 01:25:59 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 258 seconds)
2021-07-30 01:26:50 +0200 <sm> congrats fresheyeball
2021-07-30 01:27:42 +0200 <sm> trivia: what did you use to build the site ?
2021-07-30 01:28:06 +0200 <fresheyeball> sm: it's written in Nix
2021-07-30 01:28:12 +0200 <qrpnxz> wot
2021-07-30 01:28:25 +0200 <fresheyeball> the html and css are written in nix
2021-07-30 01:28:27 +0200 <sm> did not expect that answer :)
2021-07-30 01:28:44 +0200 <fresheyeball> https://github.com/ursi/nix-css
2021-07-30 01:28:46 +0200 <qrpnxz> that's completely wack, why did you do that
2021-07-30 01:28:46 +0200 <fresheyeball> here is a taste
2021-07-30 01:29:05 +0200 <fresheyeball> because Nix is a great language for code generation, and that's what a static site is, generated code
2021-07-30 01:29:30 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 276 seconds)
2021-07-30 01:29:40 +0200 <qrpnxz> hm, fairenough
2021-07-30 01:30:02 +0200 <qrpnxz> guess it's probably like an xml stylesheet
2021-07-30 01:30:47 +0200 <qrpnxz> how many people you got in your company btw
2021-07-30 01:31:32 +0200 <qrpnxz> 5-10 it looks like
2021-07-30 01:32:04 +0200 <qrpnxz> colorado, interesting
2021-07-30 01:32:15 +0200 <fresheyeball> according to gitlab it's 97% Nix, 1.5% TypeScript, and 1.5% CSS
2021-07-30 01:32:33 +0200 <fresheyeball> qrpnxz: we are small, like 8 people
2021-07-30 01:32:55 +0200 <qrpnxz> It looks interesting. Reminds me of Jane Street
2021-07-30 01:34:43 +0200 <dsal> Hey, I know some of those languages you have listed.
2021-07-30 01:34:55 +0200 <fresheyeball> lol
2021-07-30 01:35:28 +0200 <qrpnxz> i hope you make money
2021-07-30 01:35:30 +0200 <dsal> I'm so close to liking elm. It's missing some major features as a language, but it's so much better than javascript that I forgive it.
2021-07-30 01:35:53 +0200 <fresheyeball> dsal: Elm is great for the use-cases where it's great
2021-07-30 01:36:05 +0200 <dsal> Ha, yeah. I've used it for a couple of those.
2021-07-30 01:36:10 +0200 <qrpnxz> >dyalog apl
2021-07-30 01:36:13 +0200 <qrpnxz> so spicy
2021-07-30 01:36:36 +0200 <dsal> I tried to use it to explain a concept to my interns that they're implementing in typescript. I think they got my concept, but then looked back at typescript and got lost.
2021-07-30 01:37:38 +0200 <qrpnxz> rip
2021-07-30 01:38:46 +0200 <qrpnxz> i'm hearing pythong finally got types
2021-07-30 01:38:51 +0200 <qrpnxz> i bet it's still slow tho
2021-07-30 01:39:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-07-30 01:39:51 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-07-30 01:41:53 +0200 <dsal> adding types to python is like adding types to javascript. It seems to just make it generally worse.
2021-07-30 01:50:11 +0200vysn(~vysn@user/vysn)
2021-07-30 01:53:45 +0200viluon(uid453725@id-453725.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 01:56:42 +0200vicfred_(~vicfred@user/vicfred)
2021-07-30 01:59:08 +0200vicfred(~vicfred@user/vicfred) (Ping timeout: 250 seconds)
2021-07-30 02:02:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
2021-07-30 02:06:31 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-07-30 02:07:02 +0200 <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
2021-07-30 02:12:58 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-07-30 02:19:27 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-07-30 02:20:06 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-07-30 02:25:07 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 02:26:04 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 02:27:39 +0200vicfred_(~vicfred@user/vicfred) (Quit: Leaving)
2021-07-30 02:31:15 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 276 seconds)
2021-07-30 02:31:46 +0200Atum_(~IRC@user/atum/x-2392232) (Quit: Atum_)
2021-07-30 02:37:14 +0200euouae(~euouae@user/euouae)
2021-07-30 02:44:38 +0200averell(~averell@user/averell)
2021-07-30 02:45:40 +0200haritz(~hrtz@user/haritz) (Ping timeout: 268 seconds)
2021-07-30 02:50:36 +0200alx741(~alx741@181.196.69.85) (Quit: alx741)
2021-07-30 02:51:15 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
2021-07-30 02:51:49 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 02:56:20 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 250 seconds)
2021-07-30 02:56:25 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-07-30 02:57:14 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-30 02:58:03 +0200ukari(~ukari@user/ukari)
2021-07-30 02:58:24 +0200haritz(~hrtz@62.3.70.206)
2021-07-30 02:58:25 +0200haritz(~hrtz@62.3.70.206) (Changing host)
2021-07-30 02:58:25 +0200haritz(~hrtz@user/haritz)
2021-07-30 03:01:04 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 03:01:05 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection)
2021-07-30 03:01:38 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4)
2021-07-30 03:01:40 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net)
2021-07-30 03:03:10 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds)
2021-07-30 03:03:27 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
2021-07-30 03:05:18 +0200 <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
2021-07-30 03:05:42 +0200retroid_(~retro@5ec19a54.skybroadband.com)
2021-07-30 03:07:11 +0200 <Axman6> lechner: I'm not sure what you mean
2021-07-30 03:08:47 +0200 <lechner> i think i have an import problem: ‘toJSON’ is not a (visible) method of class ‘ToJSON’
2021-07-30 03:09:36 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 276 seconds)
2021-07-30 03:09:56 +0200 <Axman6> did you import Data.Aeson (ToJSON(..))?
2021-07-30 03:11:10 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-07-30 03:11:40 +0200xff0x(~xff0x@2001:1a81:52ef:f900:6be3:99e6:cbd0:482d) (Ping timeout: 272 seconds)
2021-07-30 03:12:48 +0200xff0x(~xff0x@2001:1a81:532e:4200:3fe0:364:9ae2:d4b0)
2021-07-30 03:14:26 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 256 seconds)
2021-07-30 03:16:52 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 03:17:42 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
2021-07-30 03:18:48 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
2021-07-30 03:20:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 256 seconds)
2021-07-30 03:22:20 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-07-30 03:28:39 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) ()
2021-07-30 03:29:03 +0200neurocyte3(~neurocyte@45.93.108.22)
2021-07-30 03:29:03 +0200neurocyte3(~neurocyte@45.93.108.22) (Changing host)
2021-07-30 03:29:03 +0200neurocyte3(~neurocyte@user/neurocyte)
2021-07-30 03:32:06 +0200 <lechner> Axman6: thanks! I forgot the brackets
2021-07-30 03:32:38 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-07-30 03:32:38 +0200neurocyte3neurocyte
2021-07-30 03:32:43 +0200 <lechner> also, is it possible to generate pretty, canonical JSON?
2021-07-30 03:35:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 03:36:51 +0200bruceleewees(~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 268 seconds)
2021-07-30 03:37:44 +0200bruceleewees(~bruceleew@83.24.236.64.ipv4.supernova.orange.pl)
2021-07-30 03:39:08 +0200 <c_wraith> um. what does "canonical" mean in this context?
2021-07-30 03:39:23 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
2021-07-30 03:39:23 +0200 <lechner> sorted by field name
2021-07-30 03:39:34 +0200 <c_wraith> I've never seen a spec say that's canonical
2021-07-30 03:40:09 +0200 <lechner> c_wraith: https://metacpan.org/pod/JSON#canonical
2021-07-30 03:40:41 +0200 <c_wraith> CPAN isn't a JSON spec
2021-07-30 03:41:05 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 03:41:26 +0200Erutuon(~Erutuon@user/erutuon)
2021-07-30 03:41:31 +0200 <lechner> is there another way? we commit some JSON to Git. maybe there is an external program
2021-07-30 03:42:14 +0200 <euouae> it's the same data, why does it matter?
2021-07-30 03:42:22 +0200 <euouae> If you want it sorted, then you can sort it
2021-07-30 03:42:35 +0200 <lechner> how?
2021-07-30 03:43:12 +0200 <euouae> https://hackage.haskell.org/package/aeson-1.5.6.0/docs/Data-Aeson.html#g:3
2021-07-30 03:43:24 +0200 <euouae> Apply a tree transformation
2021-07-30 03:44:08 +0200 <lechner> actually, there is https://hackage.haskell.org/package/canonical-json
2021-07-30 03:45:28 +0200 <lechner> although Decoding/encoding Unicode code-points beyond U+00ff is currently broken
2021-07-30 03:46:07 +0200phma(phma@2001:5b0:210d:748:6bd3:69b4:5bd0:5d7a)
2021-07-30 03:46:13 +0200 <euouae> https://hackage.haskell.org/package/canonical-json-0.6.0.0/docs/src/Text.JSON.Canonical.Parse.html…
2021-07-30 03:46:22 +0200 <euouae> You can see they're just using a tree transformation that sorts it
2021-07-30 03:47:37 +0200 <euouae> Looks like the canonical-json package should be avoided
2021-07-30 03:47:52 +0200 <lechner> yeah
2021-07-30 03:48:13 +0200 <euouae> just sort the tree yourself and rely on aeson for printing
2021-07-30 03:49:03 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-07-30 03:49:11 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 03:52:32 +0200 <euouae> What does forall s. mean? In a signature
2021-07-30 03:52:56 +0200 <euouae> For example, https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Monad-ST-Safe.html#v:runST
2021-07-30 03:53:32 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-07-30 03:53:47 +0200 <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
2021-07-30 03:54:04 +0200 <c_wraith> It's a polymorphic value, not a function. :P
2021-07-30 03:54:14 +0200 <EvanR> shoot i was going by memory xD
2021-07-30 03:54:14 +0200 <lechner> euouae: how about pretty?
2021-07-30 03:54:46 +0200 <euouae> I'm not following
2021-07-30 03:54:52 +0200 <EvanR> yeah I'm lost now.
2021-07-30 03:55:00 +0200 <euouae> lechner: What about pretty?
2021-07-30 03:55:02 +0200 <c_wraith> euouae: it literally means "for all s". It's the consequences of that which get interesting.
2021-07-30 03:55:16 +0200 <lechner> euouae: sorry, pretty JSON
2021-07-30 03:55:21 +0200 <euouae> c_wraith: but 'a' means for any. So... ?
2021-07-30 03:55:33 +0200 <euouae> lechner: I don't know what that means, explain please?
2021-07-30 03:55:36 +0200 <c_wraith> euouae: the interesting thing there is that it's inside the parenthesis
2021-07-30 03:56:06 +0200 <euouae> c_wraith: so it's (for all s. ST s) a ?
2021-07-30 03:56:07 +0200 <EvanR> the letter itself doesn't matter, it's just a name
2021-07-30 03:56:09 +0200 <c_wraith> euouae: more explicitly, the type of runST is forall a. (forall s. ST s a) -> a
2021-07-30 03:56:55 +0200 <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
2021-07-30 03:56:55 +0200 <lechner> euouae: formatted for human consumption, for example https://metacpan.org/pod/JSON#pretty
2021-07-30 03:57:31 +0200 <euouae> c_wraith: Ok, thus it is 'private'. Kinda like being unable to have a general arrow a->b
2021-07-30 03:58:17 +0200 <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
2021-07-30 04:00:21 +0200 <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
2021-07-30 04:00:23 +0200 <lambdabot> (2,4.2)
2021-07-30 04:00:29 +0200alx741(~alx741@181.196.69.85)
2021-07-30 04:01:15 +0200 <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
2021-07-30 04:01:40 +0200sh9(~sh9@softbank060116136158.bbtec.net)
2021-07-30 04:01:46 +0200 <euouae> nice
2021-07-30 04:01:50 +0200 <euouae> wait, is that valid Haskell?
2021-07-30 04:02:01 +0200 <c_wraith> it is if you add the RankNTypes extension
2021-07-30 04:02:48 +0200 <euouae> why is it called rank N types?
2021-07-30 04:03:14 +0200 <c_wraith> The rank of a type is (in rough terms) how nested the foralls in it are
2021-07-30 04:03:30 +0200paravida(~myChateau@user/paravida) (Ping timeout: 240 seconds)
2021-07-30 04:03:31 +0200 <c_wraith> Without that extension, all foralls are implicit and at the top level - rank 1
2021-07-30 04:03:45 +0200 <c_wraith> That extension allows you to nest them arbitrarily deep
2021-07-30 04:04:10 +0200 <euouae> using the forall word?
2021-07-30 04:04:18 +0200 <c_wraith> yeah
2021-07-30 04:04:38 +0200 <euouae> seems like there's different kinds of 'type N' types
2021-07-30 04:04:42 +0200 <euouae> sorry, rank N
2021-07-30 04:05:12 +0200alx741(~alx741@181.196.69.85) (Client Quit)
2021-07-30 04:05:47 +0200 <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?
2021-07-30 04:06:23 +0200laman(laman@2600:3c02::f03c:92ff:fe3e:c08d)
2021-07-30 04:06:46 +0200 <euouae> forall a -> (forall b -> (forall c -> d)) and a -> (forall b -> (forall c -> forall d)) ?
2021-07-30 04:06:52 +0200 <euouae> Are not these both rank 2?
2021-07-30 04:07:07 +0200 <euouae> Ugh, are these not both rank 2? I'm way too tired
2021-07-30 04:08:50 +0200 <c_wraith> you mean forall a. a -> (forall b. b -> (forall c. c -> d)), and such with the other?
2021-07-30 04:09:01 +0200 <euouae> yeah
2021-07-30 04:09:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-30 04:09:48 +0200 <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
2021-07-30 04:09:51 +0200 <c_wraith> Those are higher-rank, but not meaningfully so. They can be rewritten to not nest the foralls, with no loss of generality
2021-07-30 04:10:13 +0200 <c_wraith> It's on the argument side that it gets more interesting
2021-07-30 04:10:32 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-07-30 04:11:20 +0200 <euouae> lechner: There's https://hackage.haskell.org/package/aeson-pretty-0.8.8/docs/Data-Aeson-Encode-Pretty.html
2021-07-30 04:11:38 +0200 <euouae> There's also https://hackage.haskell.org/package/aeson-pretty
2021-07-30 04:12:43 +0200 <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
2021-07-30 04:13:08 +0200 <c_wraith> Probably means I don't want things that are hard enough in that direction :)
2021-07-30 04:13:10 +0200 <euouae> Hey I'm having trouble with the State stuff as it is :)
2021-07-30 04:13:51 +0200 <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
2021-07-30 04:14:06 +0200 <euouae> why is that important?
2021-07-30 04:14:15 +0200 <c_wraith> When that leaking is prevented, it's possible to prove that the results of runST are deterministic
2021-07-30 04:14:35 +0200 <euouae> ah okay, nice
2021-07-30 04:14:45 +0200 <euouae> That is a good trick
2021-07-30 04:14:51 +0200 <c_wraith> Therefore no matter how much mutability you use inside, runST doesn't impose an IO restriction or anything
2021-07-30 04:15:02 +0200 <euouae> I would never come up with it
2021-07-30 04:15:32 +0200 <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!
2021-07-30 04:16:03 +0200 <euouae> So for example a type with private info that you don't want leaked
2021-07-30 04:16:22 +0200 <euouae> such as when you're logging your apps actions and you don't want to log user credentials
2021-07-30 04:16:59 +0200 <euouae> is that anywhere close to what it is? I'm trying to get a feel fo rit
2021-07-30 04:17:11 +0200 <c_wraith> You can do stuff like that, though you need to watch out for it making types more complex than pay for themselves
2021-07-30 04:17:53 +0200 <euouae> Ok in this context it would be some form of type correctness for security, it might be a worthwhile tradeoff
2021-07-30 04:18:44 +0200 <lechner> euouae: thanks!
2021-07-30 04:19:14 +0200 <euouae> You're welcome :)
2021-07-30 04:24:20 +0200pfurla_(~pfurla@52.15.195.173.client.static.strong-in52.as13926.net)
2021-07-30 04:24:37 +0200 <euouae> c_wraith: Thank you :)
2021-07-30 04:24:51 +0200 <c_wraith> you're welcome
2021-07-30 04:25:10 +0200 <euouae> I feel like my place in the Haskell world would be to write some FFI for C
2021-07-30 04:25:14 +0200 <euouae> or C++
2021-07-30 04:25:38 +0200 <euouae> It would be fun to translate and redesign some APIs
2021-07-30 04:26:25 +0200 <euouae> but maybe another day... too many things left hanging :)
2021-07-30 04:26:58 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds)
2021-07-30 04:28:00 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 04:28:01 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services)))
2021-07-30 04:28:01 +0200finn_elijaFinnElija
2021-07-30 04:28:03 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 04:29:46 +0200ext0l(~vector@157-131-102-171.fiber.dynamic.sonic.net)
2021-07-30 04:31:13 +0200 <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.
2021-07-30 04:31:50 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-07-30 04:32:26 +0200neightchan(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 04:33:20 +0200pfurla__(~pfurla@216.151.180.237)
2021-07-30 04:34:06 +0200 <ext0l> or just ignore all that and use the new-foo commands, i guess?
2021-07-30 04:34:49 +0200pfurla_(~pfurla@52.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 268 seconds)
2021-07-30 04:36:40 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-07-30 04:38:00 +0200 <dsal> "the current best practice" is fighting words. :)
2021-07-30 04:38:11 +0200 <dsal> I still use stack for most development + haskell.nix
2021-07-30 04:40:08 +0200 <ext0l> haha
2021-07-30 04:40:31 +0200matthias1(~igloo@4.15.245.90)
2021-07-30 04:40:36 +0200 <drakonis> itc: nix users
2021-07-30 04:41:04 +0200 <ext0l> haskell.nix seems nice; is it in common use? it seems to come up less than the other options i saw
2021-07-30 04:43:33 +0200 <dsal> I don't know how to judge common. I have several projects using it, so it's common among my projects.
2021-07-30 04:43:41 +0200hrnz(~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
2021-07-30 04:43:59 +0200 <ext0l> fair enough
2021-07-30 04:44:04 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds)
2021-07-30 04:44:10 +0200hrnz(~ulli@irc.plumbing)
2021-07-30 04:44:20 +0200 <dsal> It gets updated once per day with all the latest things, so it's at least maintainedish.
2021-07-30 04:45:19 +0200 <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.
2021-07-30 04:45:53 +0200 <ext0l> yeah, that does seem really nice
2021-07-30 04:47:18 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-07-30 04:47:20 +0200 <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.
2021-07-30 04:47:22 +0200matthias1(~igloo@4.15.245.90) (Ping timeout: 256 seconds)
2021-07-30 04:49:26 +0200euouae(~euouae@user/euouae) (Quit: Client closed)
2021-07-30 04:50:30 +0200mrkajetanp(~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-07-30 04:50:49 +0200mrkajetanp(~mrkajetan@88.98.245.28)
2021-07-30 04:50:57 +0200 <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
2021-07-30 04:55:29 +0200 <ext0l> i'm going to try stack --nix, and if that doesn't work well for me i'll go from there
2021-07-30 04:58:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 250 seconds)
2021-07-30 04:58:08 +0200td_(~td@94.134.91.37) (Ping timeout: 256 seconds)
2021-07-30 04:58:10 +0200 <dsal> I just have `nix:\n enable: true` in ~/.stack/config.yaml
2021-07-30 04:58:32 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-07-30 04:59:17 +0200funsafe(~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) (Ping timeout: 245 seconds)
2021-07-30 05:00:01 +0200td_(~td@94.134.91.212)
2021-07-30 05:00:18 +0200funsafe(~funsafe@c-71-59-221-7.hsd1.wa.comcast.net)
2021-07-30 05:01:05 +0200 <ext0l> yeah that
2021-07-30 05:03:45 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 05:03:56 +0200 <dsal> The one annoying thing is every stack.yaml needs `nix:\n packages: [ zlib ]`
2021-07-30 05:04:07 +0200 <ext0l> oh really? weird
2021-07-30 05:04:17 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:04:31 +0200 <dsal> It's hard to build anything that doesn't eventually use zlib, and it's not in the build shell.
2021-07-30 05:04:50 +0200 <ext0l> aaah
2021-07-30 05:05:00 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 05:05:12 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:06:30 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 05:07:03 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:11:15 +0200 <lechner> Hi, what's this, please? file descriptor 1024 out of range for select (0--1024). Recompile with -threaded to work around this. haskell
2021-07-30 05:11:51 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 05:12:03 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:13:23 +0200 <c_wraith> you opened a lot of files
2021-07-30 05:13:41 +0200 <c_wraith> honestly, that error message seems to say everything relevant
2021-07-30 05:13:51 +0200 <c_wraith> what part of it is unfamiliar?
2021-07-30 05:14:56 +0200acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-07-30 05:15:13 +0200ext0l(~vector@157-131-102-171.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2021-07-30 05:17:42 +0200 <lechner> it's a socket-based worker that does not open or write any files https://dpaste.org/Rte0
2021-07-30 05:17:50 +0200acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
2021-07-30 05:17:52 +0200 <c_wraith> sockets still use file descriptors
2021-07-30 05:19:35 +0200 <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
2021-07-30 05:20:10 +0200 <c_wraith> if you compile with the -threaded option, ghc will link against a different runtime that doesn't use the select system call
2021-07-30 05:21:19 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 05:21:37 +0200 <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!
2021-07-30 05:22:34 +0200 <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`
2021-07-30 05:23:37 +0200 <dsal> Oh. I don't think you are, you just name something error. That was confusing. :)
2021-07-30 05:23:47 +0200 <lechner> yeah
2021-07-30 05:23:57 +0200 <lechner> i was looking for the word
2021-07-30 05:24:07 +0200 <lechner> it's not a variable, is it?
2021-07-30 05:24:50 +0200 <dsal> :t error
2021-07-30 05:24:50 +0200 <lechner> it used to be 'e' but i write out most words
2021-07-30 05:24:51 +0200 <lambdabot> [Char] -> a
2021-07-30 05:24:57 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-30 05:25:10 +0200 <lechner> no i meant my use
2021-07-30 05:25:12 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 05:25:20 +0200berberman(~berberman@user/berberman) (Ping timeout: 256 seconds)
2021-07-30 05:25:23 +0200 <lechner> an 'immutable'?
2021-07-30 05:25:30 +0200 <dsal> Sure. You're just shadowing it.
2021-07-30 05:25:34 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-07-30 05:25:45 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:25:46 +0200 <lechner> because it's in Prelude?
2021-07-30 05:25:50 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
2021-07-30 05:25:54 +0200berberman(~berberman@user/berberman)
2021-07-30 05:26:27 +0200 <dsal> Yeah.
2021-07-30 05:27:22 +0200 <lechner> i'll try to avoid that. thanks for the hint. do not know so much yet
2021-07-30 05:27:26 +0200 <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
2021-07-30 05:27:54 +0200 <dsal> I don't see people putting long names on variables that much. `e` is fine. Not naming it is even better.
2021-07-30 05:28:17 +0200 <lechner> how?
2021-07-30 05:29:30 +0200 <lechner> the formatting is from brittany, which did something about the long lines
2021-07-30 05:30:07 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-07-30 05:30:07 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 245 seconds)
2021-07-30 05:30:25 +0200 <dsal> Something like this: https://www.irccloud.com/pastebin/HvYTa6jj/thing.hs
2021-07-30 05:30:42 +0200 <lechner> i think the underscores are weird. they come from the JSON
2021-07-30 05:30:52 +0200 <dsal> I've never seen anything formatted with that. It likes really tall code for some reason.
2021-07-30 05:31:22 +0200 <dsal> I missed some parens there, but something like that
2021-07-30 05:31:23 +0200 <dsal> :t either
2021-07-30 05:31:24 +0200 <lambdabot> (a -> c) -> (b -> c) -> Either a b -> c
2021-07-30 05:31:32 +0200 <lechner> i didn't think it was as bad as ormulo
2021-07-30 05:31:36 +0200ext0l(~vector@157-131-102-171.fiber.dynamic.sonic.net)
2021-07-30 05:32:15 +0200 <dsal> (also, you don't need `do` there -- I just left out the `ExitSuccess -> ` bit part.
2021-07-30 05:32:18 +0200 <dsal> )
2021-07-30 05:32:42 +0200 <lechner> yeah. well my code stinks a little. i have to brush someone's teeth. brb
2021-07-30 05:33:09 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 05:33:43 +0200 <dsal> It looks like you're establishing a connection in each iteration of the loop and then just like, keeping it open.
2021-07-30 05:34:38 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-30 05:35:32 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-07-30 05:35:38 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
2021-07-30 05:35:49 +0200 <dsal> :t bracket -- lechner
2021-07-30 05:35:50 +0200 <lambdabot> IO a -> (a -> IO b) -> (a -> IO c) -> IO c
2021-07-30 05:36:03 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 05:37:53 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 05:38:19 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-07-30 05:38:24 +0200pfurla__(~pfurla@216.151.180.237) (Ping timeout: 250 seconds)
2021-07-30 05:40:04 +0200 <dsal> Actually, this API is super weird. You'd need to make your own `withConnection` thing possibly with `bracket` but their API is weird.
2021-07-30 05:40:22 +0200 <dsal> Normally you'd do something like `bracket (open something) close $ \conn -> do stuff with conn`
2021-07-30 05:40:38 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-07-30 05:41:51 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-07-30 05:45:56 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 05:49:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 05:50:38 +0200xff0x(~xff0x@2001:1a81:532e:4200:3fe0:364:9ae2:d4b0) (Ping timeout: 272 seconds)
2021-07-30 05:51:00 +0200 <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.
2021-07-30 05:51:01 +0200xff0x(~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506)
2021-07-30 05:51:51 +0200 <lechner> the ZeroMQ stuff is from here: https://zguide.zeromq.org/docs/chapter1/
2021-07-30 05:52:06 +0200 <lechner> hw client in haskell
2021-07-30 05:52:41 +0200 <lechner> although in all fairness i moved the 'connect' inside the loop
2021-07-30 05:53:34 +0200 <dsal> It claims to have a finalizer on the socket but like, that's not the right way to do that kind of thing.
2021-07-30 05:54:33 +0200 <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/
2021-07-30 05:55:25 +0200 <lechner> there are several zmq libraries but i think the FFI bindings are pretty much preferred everywhere now
2021-07-30 05:56:08 +0200 <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.
2021-07-30 05:56:40 +0200 <lechner> yeah that's why i thought it was okay
2021-07-30 05:57:59 +0200 <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.
2021-07-30 05:58:26 +0200 <lechner> it's actually a great socket system, beating out AMQP in many places (like CERN), but the inventor died
2021-07-30 05:59:16 +0200 <lechner> i know even less about finalizers
2021-07-30 05:59:34 +0200 <dsal> I've never tried it. Most of the things I do that are anything like this are using MQTT.
2021-07-30 06:00:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-07-30 06:05:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 06:07:06 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-07-30 06:08:50 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-07-30 06:08:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-07-30 06:09:49 +0200 <dsal> This doc is pretty nice, though.
2021-07-30 06:11:15 +0200 <lechner> try it. sometimes you just need a better socket.
2021-07-30 06:12:27 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 06:13:14 +0200 <monochrom> Finalizers are run at GC time only.
2021-07-30 06:13:46 +0200 <monochrom> Unfortunately the threaded RTS is so nice to, when it detects idleness, run GC.
2021-07-30 06:14:17 +0200 <monochrom> This has encouraged very reckless habits of ignoring to close anything and then complaining that the unthreaded RTS leaks.
2021-07-30 06:14:29 +0200 <monochrom> s/ignoring/neglecting/
2021-07-30 06:15:34 +0200 <lechner> i think i saw some of those bug reports
2021-07-30 06:15:44 +0200 <monochrom> Humans take the path of least resistance. Programmers take it to the next level, path of least understanding.
2021-07-30 06:16:11 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-30 06:17:17 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 06:17:27 +0200 <lechner> dsal: ZeroMQ won this evaluation at CERN ten years ago http://ais-grid-2011.jinr.ru/docs/MW-in-Controls-DUBNA-Oct2011.pptx
2021-07-30 06:17:49 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 06:18:05 +0200 <dsal> monochrom: I assume it's bad practice to try to lean on the GC to clean up file descriptors.
2021-07-30 06:19:25 +0200 <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.
2021-07-30 06:19:46 +0200 <lechner> dsal: http://zeromq.wdfiles.com/local--files/intro%3Aread-the-manual/Middleware%20Trends%20and%20Market%…
2021-07-30 06:21:26 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-07-30 06:23:04 +0200 <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?
2021-07-30 06:23:41 +0200 <lechner> protobuf will go over it. that's a different layer isn't it?
2021-07-30 06:24:57 +0200 <lechner> i use it to produce the data for lintian.debian.org. some other parts of debian use rabbitmq but they will come around
2021-07-30 06:25:49 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 268 seconds)
2021-07-30 06:26:26 +0200 <lechner> do use protbuf with haskell?
2021-07-30 06:26:30 +0200 <lechner> you
2021-07-30 06:27:01 +0200 <Axman6> Facebook have released a tool for doing protobuf stuff with Haskell I believe, they uise it internally in Sigma
2021-07-30 06:27:15 +0200 <Axman6> hmm, maybe it wasn't protobuff..
2021-07-30 06:27:30 +0200 <Axman6> it was thrift
2021-07-30 06:29:24 +0200 <lechner> marlow works there?
2021-07-30 06:30:35 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Good Bye)
2021-07-30 06:30:41 +0200 <Axman6> yeah
2021-07-30 06:31:20 +0200 <Axman6> Facebook are probably the world's biggest user of GHC.s concurrency stuff, and he implemented most of it
2021-07-30 06:31:59 +0200 <lechner> i only saw a talk by a lady about some spam filtering some time ago
2021-07-30 06:34:19 +0200 <Axman6> If by "some spam filtering" you mean, all spam filtering at over 2m requests per second, then yes, that's Sigma
2021-07-30 06:35:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-07-30 06:35:56 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 06:36:32 +0200 <ext0l> what's the easiest way to play back some music files and allow seeking, play/pause, etc? a la a music player
2021-07-30 06:36:38 +0200 <ext0l> other than using mpd
2021-07-30 06:36:52 +0200jmorris(uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 06:37:08 +0200 <Axman6> probably using some native gui widget, but then you need a gui
2021-07-30 06:37:22 +0200 <lechner> Axman6: i may have seen an early talk...
2021-07-30 06:37:29 +0200 <ext0l> i mean, to actually do the "shove audio to output" bits
2021-07-30 06:37:56 +0200 <sm> Axman6: wow. Could we have one of those for #haskell ?
2021-07-30 06:38:11 +0200 <Axman6> writeFile "/dev/audio" musicWav
2021-07-30 06:38:23 +0200 <Axman6> one of what?
2021-07-30 06:38:32 +0200 <lechner> spam filters
2021-07-30 06:38:35 +0200 <Axman6> (probably musicPCM)
2021-07-30 06:38:48 +0200 <Axman6> we could... but we don't actually get much spam here.
2021-07-30 06:40:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-30 06:42:07 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 06:43:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 06:45:57 +0200jmorris(uid433911@id-433911.stonehaven.irccloud.com)
2021-07-30 06:47:45 +0200 <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
2021-07-30 06:48:01 +0200pgib(~textual@173.38.117.81) (Ping timeout: 268 seconds)
2021-07-30 06:49:17 +0200 <sm> still. No harm being overpowered
2021-07-30 06:50:58 +0200 <sm> spammers beware! We will ban your ass 2m times/s!
2021-07-30 06:51:36 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com)
2021-07-30 06:51:39 +0200 <lechner> dsal: this 'either' does not work here, even with some extra brackets https://www.irccloud.com/pastebin/HvYTa6jj/thing.hs
2021-07-30 06:52:25 +0200 <lechner> shouldn't the branches be partially applied functions?
2021-07-30 06:53:02 +0200 <dsal> Yeah, a function that receives left and then one that receives right.
2021-07-30 06:53:17 +0200 <dsal> That was a rough sketch. I didn't try actually building anything.
2021-07-30 06:54:05 +0200 <lechner> i like the idea. should i try 'reverse' to change tha argument order?
2021-07-30 06:55:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 06:55:07 +0200 <dsal> You mean flip?
2021-07-30 06:55:37 +0200 <sm> lechner: you can't use $ in a partially applied function, liftIO . printf .... would be better
2021-07-30 06:55:38 +0200 <dsal> You can always start with a lambda then decide whether something could be simplified if you don't e it.
2021-07-30 06:56:06 +0200pe200012_(~pe200012@183.236.83.77)
2021-07-30 06:56:10 +0200 <sm> also, I don't think you can partially apply printf at all, it's speical
2021-07-30 06:57:31 +0200 <sm> (I have often wanted to, but the types defeat me)
2021-07-30 07:00:59 +0200 <lechner> dsal: yes the lambda! i am getting it, slowly
2021-07-30 07:01:22 +0200 <dsal> I'm trying to remember how to TH. heh.
2021-07-30 07:01:25 +0200cjb(~cjb@user/cjb) (Read error: Connection reset by peer)
2021-07-30 07:02:10 +0200 <lechner> sm: thanks! folks here are helping me get off of printf. it's hard to say bye to an old friend
2021-07-30 07:03:56 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 256 seconds)
2021-07-30 07:04:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 07:06:20 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
2021-07-30 07:06:47 +0200 <dsal> I've never used printf in haskell.
2021-07-30 07:09:31 +0200 <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
2021-07-30 07:10:55 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-30 07:12:02 +0200ukari(~ukari@user/ukari)
2021-07-30 07:15:15 +0200 <ext0l> i haven't written haskell in ages. are lenses the recommended approach to avoid record field name collisions?
2021-07-30 07:15:25 +0200matthias1(~igloo@4.15.245.90)
2021-07-30 07:15:53 +0200 <Axman6> We have an extension which allows overlapping field names, but lenses are also pretty useful
2021-07-30 07:16:42 +0200matthias1(~igloo@4.15.245.90) (Remote host closed the connection)
2021-07-30 07:16:51 +0200 <ext0l> aha
2021-07-30 07:17:06 +0200 <ext0l> yeah i remember lenses also being useful for updates and the like
2021-07-30 07:18:34 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
2021-07-30 07:18:41 +0200 <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
2021-07-30 07:19:14 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-07-30 07:19:28 +0200jneira(~jneira@212.8.115.226)
2021-07-30 07:25:56 +0200 <ext0l> nod nod
2021-07-30 07:26:09 +0200 <ext0l> i'm glad this language/the community is still around
2021-07-30 07:27:12 +0200MQ-17J(~MQ-17J@8.6.144.192)
2021-07-30 07:27:21 +0200 <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
2021-07-30 07:27:33 +0200 <Axman6> what's coming in 9.2?
2021-07-30 07:27:40 +0200 <c_wraith> -XNoFieldSelectors
2021-07-30 07:27:55 +0200 <Axman6> Haven't heard of that one
2021-07-30 07:28:12 +0200 <c_wraith> It means records don't create top-level accessor functions
2021-07-30 07:28:20 +0200 <ext0l> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0282-record-dot-syntax.rst
2021-07-30 07:28:21 +0200 <c_wraith> so there's no global namespace pollution
2021-07-30 07:28:23 +0200 <ext0l> also this
2021-07-30 07:28:36 +0200 <Axman6> ah nice, so you can set fieldzs by name, but you don't get the accessor functions?
2021-07-30 07:28:42 +0200 <c_wraith> yes
2021-07-30 07:28:51 +0200 <Axman6> Yeah we use record dot syntax all the time in DAML, it's pretty nice
2021-07-30 07:28:54 +0200 <c_wraith> record dot syntax is solving the problem of "making things comfortable for OO programmers", not the problem of "making records good"
2021-07-30 07:30:46 +0200 <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
2021-07-30 07:30:52 +0200 <justsomeguy> Here is a link I found to a pretty exhaustive list of different approaches... https://gitlab.haskell.org/ghc/ghc/-/wikis/records
2021-07-30 07:31:54 +0200justsomeguyis 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).
2021-07-30 07:33:03 +0200qbt(~edun@user/edun)
2021-07-30 07:37:27 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 07:40:23 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Remote host closed the connection)
2021-07-30 07:40:45 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 07:42:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 272 seconds)
2021-07-30 07:42:35 +0200trent(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-07-30 07:43:24 +0200 <dsal> How do you write useful code without records or tuples?
2021-07-30 07:43:51 +0200 <siraben> Map String a /s
2021-07-30 07:44:13 +0200 <siraben> hm not polymorphic enough
2021-07-30 07:45:17 +0200 <dsal> Can I generate lenses with NoFieldSelectors? That sounds kind of nice.
2021-07-30 07:45:28 +0200 <Axman6> everything is just tuples and Either anyway
2021-07-30 07:45:52 +0200 <siraben> polynomial functors
2021-07-30 07:45:54 +0200 <Axman6> dsal: I would be surprised if you couldn't, since they work of the Generic representation
2021-07-30 07:46:31 +0200anandprabhu(~anandprab@45.83.220.206)
2021-07-30 07:47:12 +0200michalz(~michalz@185.246.204.61)
2021-07-30 07:47:35 +0200 <dsal> That's pretty cool. Now I just need the feature to automatically export all my lenses
2021-07-30 07:47:40 +0200 <sm> lechner, I use it all the time, for the readability. Just can't partially apply it
2021-07-30 07:50:24 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 07:51:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-07-30 07:51:30 +0200chris_(~chris@81.96.113.213)
2021-07-30 07:51:50 +0200anandprabhu(~anandprab@45.83.220.206) (Quit: Leaving)
2021-07-30 07:54:20 +0200 <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?
2021-07-30 07:57:01 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-07-30 07:58:38 +0200 <Axman6> "gc ... guarantee" no
2021-07-30 07:59:16 +0200 <ext0l> haha
2021-07-30 08:02:25 +0200 <davean> sm: To aprtially apply printf you need to give a type signature a lot of the time.
2021-07-30 08:02:42 +0200 <davean> At least of the partially applied result
2021-07-30 08:20:47 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-07-30 08:21:08 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2021-07-30 08:21:59 +0200Lord_of_Life_Lord_of_Life
2021-07-30 08:24:32 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
2021-07-30 08:25:55 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 08:32:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 08:36:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 08:39:43 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-30 08:42:35 +0200sergio812(~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr)
2021-07-30 08:48:40 +0200wei2912(~wei2912@112.199.250.21)
2021-07-30 08:49:13 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f0d1:c4fb:1626:e1c7)
2021-07-30 08:49:33 +0200 <sm> davean, for sure - I couldn't find the right one in the past, but sounds like you did - good to know
2021-07-30 08:50:45 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 08:51:01 +0200 <sergio812> Hi,While using
2021-07-30 08:51:06 +0200 <sergio812> Hi,
2021-07-30 08:51:22 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 08:52:14 +0200 <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?
2021-07-30 08:52:30 +0200ext0l(~vector@157-131-102-171.fiber.dynamic.sonic.net) (Quit: WeeChat 3.1)
2021-07-30 08:53:36 +0200 <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]"
2021-07-30 08:54:21 +0200 <sergio812> whereas "quickCheck $ forAll genListOfPos $ prop_gt_3" can give me a (relatively) big couterexample, like "[2,2]"
2021-07-30 08:55:34 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 256 seconds)
2021-07-30 08:55:34 +0200 <sergio812> For the record, generator definitions are "genListOfPos = listOf genPos" and "genPos = (arbitrary :: Gen Int) `suchThat` (> 0)" (see the stackoverflow page for type signatures)
2021-07-30 08:57:08 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds)
2021-07-30 08:58:26 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 08:59:45 +0200trent(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Quit: WeeChat 3.1)
2021-07-30 09:00:31 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 09:00:39 +0200 <sergio812> [BTW, on the stackoverflow, "genPos" is a spurious "abs `fmap`" at the start of its definition.]
2021-07-30 09:02:43 +0200 <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
2021-07-30 09:02:47 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-07-30 09:03:01 +0200 <tomsmeding> (or NonNegative)
2021-07-30 09:03:52 +0200chele(~chele@user/chele)
2021-07-30 09:04:15 +0200 <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
2021-07-30 09:04:44 +0200 <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)
2021-07-30 09:05:27 +0200mattil(~mattilinn@87-92-232-85.rev.dnainternet.fi)
2021-07-30 09:05:43 +0200mattil(~mattilinn@87-92-232-85.rev.dnainternet.fi) (Remote host closed the connection)
2021-07-30 09:06:05 +0200mattil(~mattilinn@87-92-232-85.rev.dnainternet.fi)
2021-07-30 09:06:30 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-30 09:07:09 +0200 <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.
2021-07-30 09:07:40 +0200hueso(~root@user/hueso) (Quit: No Ping reply in 210 seconds.)
2021-07-30 09:07:41 +0200 <tomsmeding> you mean that you actually want a condition more complicated than just '> 0' ?
2021-07-30 09:07:54 +0200 <sergio812> in the generator, yes
2021-07-30 09:08:16 +0200 <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
2021-07-30 09:08:35 +0200 <tomsmeding> they specially implement 'shrink' using shrink on the original value pre-filtering, then mapping abs afterwards
2021-07-30 09:08:50 +0200 <tomsmeding> s/mapping abs/filtering on >0/
2021-07-30 09:09:04 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 09:09:37 +0200 <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
2021-07-30 09:09:58 +0200hueso(~root@user/hueso)
2021-07-30 09:09:58 +0200 <sergio812> Ah, many thanks!
2021-07-30 09:11:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-30 09:11:23 +0200 <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
2021-07-30 09:12:16 +0200 <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'?
2021-07-30 09:14:57 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-07-30 09:15:01 +0200 <tomsmeding> sergio812: no type would _need_ abs, but it might provide a performance improvement
2021-07-30 09:15:21 +0200 <tomsmeding> just filtering on '> 0' will reject half of the samples, on average, while first applying 'abs' will accept roughly all samples
2021-07-30 09:15:39 +0200 <tomsmeding> and just applying 'abs' is not enough, since you might generate 0 :0
2021-07-30 09:15:41 +0200 <tomsmeding> * :)
2021-07-30 09:16:06 +0200 <tomsmeding> my remark earlier was wrong
2021-07-30 09:16:08 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 09:16:36 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-07-30 09:16:50 +0200 <tomsmeding> (this applies for Int as well)
2021-07-30 09:17:56 +0200 <sergio812> Got it, thanks!
2021-07-30 09:19:35 +0200 <sergio812> I got the execution order wrong...
2021-07-30 09:21:21 +0200acidjnk_new(~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de)
2021-07-30 09:22:30 +0200 <tomsmeding> sergio812: yeah those inline function applications are confusing without parentheses
2021-07-30 09:22:41 +0200 <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…
2021-07-30 09:23:21 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-30 09:26:48 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-07-30 09:28:13 +0200cfricke(~cfricke@user/cfricke)
2021-07-30 09:28:22 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-07-30 09:29:52 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be)
2021-07-30 09:30:24 +0200EvanR(~evan@user/evanr) (Ping timeout: 252 seconds)
2021-07-30 09:32:52 +0200jamestmartin(~james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2021-07-30 09:32:53 +0200arkeet(~arkeet@moriya.ca) (Remote host closed the connection)
2021-07-30 09:33:01 +0200jamestmartin(james@jtmar.me)
2021-07-30 09:33:07 +0200arkeet(arkeet@moriya.ca)
2021-07-30 09:34:01 +0200 <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
2021-07-30 09:34:44 +0200radw(~radw@user/radw) (Ping timeout: 258 seconds)
2021-07-30 09:35:44 +0200 <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
2021-07-30 09:36:21 +0200 <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
2021-07-30 09:36:37 +0200 <tomsmeding> from the default left-associative binding
2021-07-30 09:36:57 +0200radw(~radw@user/radw)
2021-07-30 09:37:43 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 09:42:24 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-07-30 09:43:18 +0200fendor(~fendor@178.165.162.84.wireless.dyn.drei.com)
2021-07-30 09:45:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 09:45:57 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 09:46:25 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 09:49:39 +0200vysn(~vysn@user/vysn)
2021-07-30 09:51:06 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-07-30 09:51:21 +0200zeenk(~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38)
2021-07-30 09:54:34 +0200neurocyte(~neurocyte@user/neurocyte) (The Lounge - https://thelounge.chat)
2021-07-30 09:56:23 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 09:57:41 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-07-30 09:58:33 +0200anandprabhu(~anandprab@185.65.135.253)
2021-07-30 09:59:34 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 09:59:58 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
2021-07-30 10:00:15 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-30 10:00:16 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-07-30 10:04:09 +0200bens(~bens@www.typius.com) (Ping timeout: 265 seconds)
2021-07-30 10:06:00 +0200hendursa1(~weechat@user/hendursaga)
2021-07-30 10:09:06 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-07-30 10:10:15 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-07-30 10:14:16 +0200sergio81242(~sergio812@141.143.193.76)
2021-07-30 10:14:19 +0200sergio81242(~sergio812@141.143.193.76) (Client Quit)
2021-07-30 10:14:38 +0200kuribas(~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be)
2021-07-30 10:15:28 +0200xff0x(~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 256 seconds)
2021-07-30 10:15:43 +0200deejayteeGuest578
2021-07-30 10:15:43 +0200Guest578(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Killed (silver.libera.chat (Nickname regained by services)))
2021-07-30 10:15:47 +0200deejaytee(~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk)
2021-07-30 10:16:52 +0200rain3(~rain3___@79.115.250.43)
2021-07-30 10:17:13 +0200rain3(~rain3___@79.115.250.43) (Leaving)
2021-07-30 10:17:46 +0200sergio812(~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2021-07-30 10:17:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-30 10:17:48 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-30 10:17:51 +0200allbery_bgeekosaur
2021-07-30 10:17:51 +0200pesada(~agua@191.177.175.57)
2021-07-30 10:18:32 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds)
2021-07-30 10:22:00 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 268 seconds)
2021-07-30 10:22:05 +0200koz(~koz@121.99.240.58) (Remote host closed the connection)
2021-07-30 10:22:45 +0200aegon(~mike@174.127.249.180) (Quit: leaving)
2021-07-30 10:23:44 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-07-30 10:24:42 +0200_xor(~xor@74.215.232.67) (Ping timeout: 240 seconds)
2021-07-30 10:25:40 +0200_xor(~xor@74.215.232.67)
2021-07-30 10:26:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-07-30 10:27:42 +0200anandprabhu(~anandprab@185.65.135.253) (Quit: Leaving)
2021-07-30 10:28:22 +0200koz(~koz@121.99.240.58)
2021-07-30 10:32:06 +0200kuribas(~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-07-30 10:32:58 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 10:33:44 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
2021-07-30 10:33:57 +0200kuribas(~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be)
2021-07-30 10:37:51 +0200silverwhitefish(~hidden@47.202.102.10) (Remote host closed the connection)
2021-07-30 10:38:02 +0200[exa](exa@user/exa/x-3587197) (Ping timeout: 245 seconds)
2021-07-30 10:38:21 +0200silverwhitefish(~hidden@47.202.102.10)
2021-07-30 10:38:36 +0200caubert(~caubert@136.244.111.235) (Ping timeout: 252 seconds)
2021-07-30 10:38:49 +0200[exa](exa@srv3.blesmrt.net)
2021-07-30 10:39:36 +0200caubert(~caubert@136.244.111.235)
2021-07-30 10:42:17 +0200oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-07-30 10:42:18 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-30 10:42:31 +0200jumper149(~jumper149@80.240.31.34)
2021-07-30 10:42:36 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119)
2021-07-30 10:42:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-07-30 10:42:59 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-07-30 10:44:14 +0200oxide(~lambda@user/oxide)
2021-07-30 10:44:49 +0200pesada(~agua@191.177.175.57) (Ping timeout: 268 seconds)
2021-07-30 10:47:11 +0200MQ-17J(~MQ-17J@8.6.144.192) (Ping timeout: 258 seconds)
2021-07-30 10:47:16 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 10:50:46 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-07-30 10:53:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-30 10:56:14 +0200xff0x(~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506)
2021-07-30 10:56:22 +0200gensyst(gensyst@user/gensyst)
2021-07-30 11:04:50 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 252 seconds)
2021-07-30 11:10:12 +0200__monty__(~toonn@user/toonn)
2021-07-30 11:12:59 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-07-30 11:15:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-07-30 11:16:15 +0200michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-07-30 11:16:36 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net)
2021-07-30 11:18:42 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-07-30 11:20:41 +0200xff0x(~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 252 seconds)
2021-07-30 11:21:25 +0200xff0x(~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e)
2021-07-30 11:22:01 +0200pesada(~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7)
2021-07-30 11:26:12 +0200agua(~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 276 seconds)
2021-07-30 11:32:49 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-30 11:33:32 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 268 seconds)
2021-07-30 11:34:10 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2021-07-30 11:34:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 11:38:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-07-30 11:39:55 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 11:42:05 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: No route to host)
2021-07-30 11:43:33 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 11:44:41 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-07-30 11:45:36 +0200michalz(~michalz@185.246.204.40)
2021-07-30 11:46:10 +0200 <dexterfoo> Data.Vector has 'Foldable' instance. But Data.Vector.Unboxed does not. why?
2021-07-30 11:47:07 +0200 <dminuoso> % :t fold
2021-07-30 11:47:07 +0200 <yahb> dminuoso: (Foldable t, Monoid m) => t m -> m
2021-07-30 11:47:12 +0200 <dminuoso> % :t foldr
2021-07-30 11:47:12 +0200 <yahb> dminuoso: Foldable t => (a -> b -> b) -> b -> t a -> b
2021-07-30 11:47:19 +0200 <dminuoso> dexterfoo: This is too liberabl on a.
2021-07-30 11:48:03 +0200 <dminuoso> It's the same reason why we cant have Functor on Set
2021-07-30 11:48:04 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-07-30 11:48:43 +0200 <tomsmeding> how exactly would foldr on vector be different (semantically) from \f x v -> foldr f x (toList v)
2021-07-30 11:49:17 +0200 <tomsmeding> Unboxed.Vector can't be Functor for the reason you mention, but it could be Foldable, right?
2021-07-30 11:49:18 +0200 <dminuoso> You can have MonoFoldable for it though.
2021-07-30 11:50:09 +0200 <dminuoso> tomsmeding: No.
2021-07-30 11:50:15 +0200 <dminuoso> foldr has to work for *all* a.
2021-07-30 11:50:23 +0200MoC(~moc@user/moc)
2021-07-30 11:50:26 +0200 <tomsmeding> given that you have a 't a', yes
2021-07-30 11:50:48 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-30 11:50:49 +0200 <tomsmeding> oh right, the point is that an unboxed vector doesn't carry its Unbox dict with it?
2021-07-30 11:51:03 +0200 <dminuoso> Not even that, it's that foldr is too general
2021-07-30 11:51:47 +0200 <tomsmeding> well if I would define: data V a where V :: Unbox a => Unboxed.Vector a -> V a
2021-07-30 11:51:50 +0200 <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.
2021-07-30 11:51:57 +0200 <dminuoso> Oh well
2021-07-30 11:51:59 +0200 <dminuoso> Yes you are right
2021-07-30 11:52:11 +0200 <tomsmeding> I see
2021-07-30 11:52:16 +0200 <dminuoso> If the dictionary was embedded and accessible, it seems possible
2021-07-30 11:53:06 +0200 <tomsmeding> not saying that an unboxed vector should carry its Unbox dict with it -- not at all, just trying to understand :)
2021-07-30 11:53:14 +0200 <tomsmeding> dexterfoo: ^
2021-07-30 11:53:24 +0200 <dminuoso> Sure.
2021-07-30 11:54:16 +0200 <dminuoso> Though I think its hard to say what seems possible and what that would even mean, without an exact specification.
2021-07-30 11:54:32 +0200 <dminuoso> So Ill stick to: Not possible
2021-07-30 11:54:42 +0200 <dminuoso> MonoFoldable however can possibly get half the way
2021-07-30 11:55:07 +0200 <dminuoso> Depending on your needs that is
2021-07-30 11:55:43 +0200dhil(~dhil@195.213.192.47)
2021-07-30 11:57:41 +0200 <tomsmeding> This compiles:
2021-07-30 11:57:42 +0200 <tomsmeding> import qualified Data.Vector.Unboxed as U
2021-07-30 11:57:42 +0200 <tomsmeding> data FatUVector a where FatUVector :: U.Unbox a => U.Vector a -> FatUVector a
2021-07-30 11:57:42 +0200 <tomsmeding> instance Foldable FatUVector where foldr f x (FatUVector v) = U.foldr f x v
2021-07-30 11:58:05 +0200 <nshepperd> you can totally have Foldable on a wrapper that carries the Unbox dict
2021-07-30 11:59:03 +0200 <nshepperd> still can't have functor though ofc
2021-07-30 11:59:46 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 12:00:41 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 12:00:42 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
2021-07-30 12:03:24 +0200oxide(~lambda@user/oxide)
2021-07-30 12:06:26 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 12:09:06 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds)
2021-07-30 12:10:47 +0200OscarH(~OscarH@97e0e7ba.skybroadband.com) (Ping timeout: 265 seconds)
2021-07-30 12:11:00 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-30 12:12:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 12:13:20 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 12:15:46 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 240 seconds)
2021-07-30 12:15:52 +0200pe200012_(~pe200012@183.236.83.77) (Remote host closed the connection)
2021-07-30 12:16:19 +0200pe200012_(~pe200012@113.105.10.33)
2021-07-30 12:16:31 +0200pe200012_pe200012
2021-07-30 12:19:45 +0200azeem(~azeem@176.200.236.58)
2021-07-30 12:23:33 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2021-07-30 12:23:34 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-07-30 12:25:28 +0200euandreh(~euandreh@2804:14c:33:9fe5:9526:d20a:c7ef:dc9b) (Quit: WeeChat 3.2)
2021-07-30 12:26:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 12:28:42 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 12:35:03 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 12:35:40 +0200bens(~bens@www.typius.com)
2021-07-30 12:37:00 +0200jespada(~jespada@90.254.247.46) (Ping timeout: 250 seconds)
2021-07-30 12:39:24 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-07-30 12:39:31 +0200jespada(~jespada@90.254.247.46)
2021-07-30 12:41:34 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 12:44:50 +0200hueso(~root@user/hueso) (Ping timeout: 252 seconds)
2021-07-30 12:48:00 +0200acidjnk_new(~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-07-30 12:48:44 +0200hueso(~root@user/hueso)
2021-07-30 12:54:50 +0200michalz(~michalz@185.246.204.40) (Ping timeout: 252 seconds)
2021-07-30 12:55:54 +0200fef(~thedawn@user/thedawn)
2021-07-30 12:56:43 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
2021-07-30 12:57:05 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 12:58:21 +0200hexfive(~eric@50.35.83.177)
2021-07-30 13:00:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-30 13:00:28 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 13:04:19 +0200mattil(~mattilinn@87-92-232-85.rev.dnainternet.fi) (Quit: Leaving)
2021-07-30 13:05:57 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
2021-07-30 13:09:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 13:13:03 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-07-30 13:13:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-07-30 13:15:32 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be)
2021-07-30 13:16:31 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 265 seconds)
2021-07-30 13:19:28 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 13:21:30 +0200azeem(~azeem@176.200.236.58) (Ping timeout: 240 seconds)
2021-07-30 13:22:19 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-07-30 13:22:45 +0200azeem(~azeem@176.200.236.58)
2021-07-30 13:23:59 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-07-30 13:28:42 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
2021-07-30 13:29:19 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 13:29:28 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-30 13:29:59 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 13:31:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 13:33:12 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 13:34:10 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
2021-07-30 13:35:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 13:37:22 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 13:37:53 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 13:38:57 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 13:41:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-07-30 13:43:10 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-30 13:43:10 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-30 13:43:13 +0200allbery_bgeekosaur
2021-07-30 13:43:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 13:44:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-07-30 13:45:32 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 13:47:37 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 13:48:28 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-30 13:48:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-07-30 13:50:02 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-07-30 13:50:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 13:50:25 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-07-30 13:50:55 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 13:51:34 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-07-30 13:52:16 +0200gensyst(gensyst@user/gensyst) (Quit: Leaving)
2021-07-30 13:53:29 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds)
2021-07-30 13:58:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 13:58:23 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:00:12 +0200azeem(~azeem@176.200.236.58) (Ping timeout: 272 seconds)
2021-07-30 14:03:30 +0200azeem(~azeem@176.200.236.58)
2021-07-30 14:04:23 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 14:05:00 +0200qbt(~edun@user/edun) (Quit: WeeChat 3.2)
2021-07-30 14:08:18 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-07-30 14:08:41 +0200hexfive(~eric@50.35.83.177) (Quit: WeeChat 3.0)
2021-07-30 14:08:54 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-30 14:10:39 +0200azeem(~azeem@176.200.236.58) (Ping timeout: 265 seconds)
2021-07-30 14:12:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 14:13:24 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:13:33 +0200azeem(~azeem@176.201.3.116)
2021-07-30 14:16:11 +0200qbt(~edun@user/edun)
2021-07-30 14:17:14 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 14:17:34 +0200qbt(~edun@user/edun) (Client Quit)
2021-07-30 14:18:17 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-07-30 14:21:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
2021-07-30 14:22:02 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-07-30 14:22:23 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2021-07-30 14:23:07 +0200azeem(~azeem@176.201.3.116) (Ping timeout: 268 seconds)
2021-07-30 14:23:22 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 14:23:34 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:24:28 +0200int-e(~noone@int-e.eu) (Ping timeout: 252 seconds)
2021-07-30 14:24:32 +0200Kammao(~Kammao@188.27.128.31)
2021-07-30 14:24:32 +0200noctuks(oGswB5gyub@user/noctux) (Ping timeout: 258 seconds)
2021-07-30 14:24:52 +0200noctuks(mWTCqxoKka@user/noctux)
2021-07-30 14:25:25 +0200[exa](exa@srv3.blesmrt.net) (Changing host)
2021-07-30 14:25:25 +0200[exa](exa@user/exa/x-3587197)
2021-07-30 14:25:41 +0200 <Kammao> Hello! I want to deploy my webapp on heroku (I used the Yesod webframework) but i can'
2021-07-30 14:25:59 +0200 <Kammao> but it shuts down if i want to push it because it takes too long
2021-07-30 14:26:17 +0200azeem(~azeem@176.201.3.116)
2021-07-30 14:26:24 +0200 <Lycurgus> does herouku support haskell?
2021-07-30 14:27:06 +0200 <Kammao> I found multiple guides online (quite old tbh)..officially in the documenation I have not seen them mentioning Haskell tho
2021-07-30 14:27:37 +0200 <Lycurgus> seems like a culture clash to me. They do support python though.
2021-07-30 14:27:48 +0200 <Lycurgus> or rather django
2021-07-30 14:28:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 14:28:13 +0200 <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
2021-07-30 14:28:31 +0200 <Kammao> Any other alternatives ideas? Would be much appreciated
2021-07-30 14:28:34 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:28:49 +0200 <Lycurgus> maybe someone else will say there's a haskell herouku like thing, i don't know of any
2021-07-30 14:29:47 +0200 <Lycurgus> other than noone wants to there's no reason in principle for there not to be
2021-07-30 14:30:00 +0200 <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
2021-07-30 14:31:03 +0200 <Lycurgus> easy, quick and dirty, etc, are discordant with the hs culture
2021-07-30 14:31:26 +0200 <Kammao> Fair enough, fair enough
2021-07-30 14:32:58 +0200 <lechner> justsomeguy: thanks for sending that https://gitlab.haskell.org/ghc/ghc/-/wikis/records
2021-07-30 14:33:46 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 14:34:45 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:35:21 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds)
2021-07-30 14:37:13 +0200 <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?
2021-07-30 14:39:48 +0200qbt(~edun@user/edun)
2021-07-30 14:39:48 +0200qbt(~edun@user/edun) (Client Quit)
2021-07-30 14:40:22 +0200qbt(~edun@user/edun)
2021-07-30 14:40:22 +0200qbt(~edun@user/edun) (Client Quit)
2021-07-30 14:40:25 +0200lechner(~lechner@debian/lechner) (Quit: WeeChat 3.0)
2021-07-30 14:44:26 +0200lechner(~lechner@debian/lechner)
2021-07-30 14:44:59 +0200fendor_(~fendor@91.141.37.142.wireless.dyn.drei.com)
2021-07-30 14:45:28 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-07-30 14:45:54 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-30 14:47:42 +0200fendor(~fendor@178.165.162.84.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-07-30 14:50:18 +0200nate3(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
2021-07-30 14:52:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 14:53:34 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 14:54:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 14:55:14 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 14:56:22 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 245 seconds)
2021-07-30 15:03:26 +0200azeem(~azeem@176.201.3.116) (Ping timeout: 252 seconds)
2021-07-30 15:03:47 +0200azeem(~azeem@176.201.3.116)
2021-07-30 15:05:22 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 15:08:01 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-30 15:09:46 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 15:10:30 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 15:13:00 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-07-30 15:18:14 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-07-30 15:18:53 +0200m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-07-30 15:19:13 +0200m4lvin(~m4lvin@w4eg.de)
2021-07-30 15:22:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-07-30 15:22:34 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 15:23:02 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 15:24:30 +0200choucavalier_(~choucaval@peanutbuttervibes.com)
2021-07-30 15:24:43 +0200LambdaDuck(~anka@ksit.fixme.fi)
2021-07-30 15:24:52 +0200guibou-(~guibou@163.172.83.213)
2021-07-30 15:25:00 +0200damien3(~damien@248.ip-149-56-13.net)
2021-07-30 15:25:23 +0200echoreply1(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
2021-07-30 15:25:27 +0200orzo_(joe@lasker.childrenofmay.org)
2021-07-30 15:25:33 +0200qontinuum_(qontinuum@user/qontinuum)
2021-07-30 15:25:43 +0200jassob1(~jassob@korrob.vth.sgsnet.se)
2021-07-30 15:25:43 +0200hexeme_(~hexeme@user/hexeme)
2021-07-30 15:26:20 +0200weechat-headless(~weechat-h@li219-154.members.linode.com)
2021-07-30 15:26:50 +0200exarkun_(~exarkun@user/exarkun)
2021-07-30 15:26:51 +0200mjrosenb_(~mrosenbe@104.225.243.2)
2021-07-30 15:26:57 +0200anderson_(~ande@134.209.221.71)
2021-07-30 15:27:12 +0200eco_(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
2021-07-30 15:27:30 +0200glider_(~glider@user/glider)
2021-07-30 15:27:46 +0200carbolymer_(~carbolyme@dropacid.net)
2021-07-30 15:30:37 +0200qontinuum_(qontinuum@user/qontinuum) (Quit: See ya)
2021-07-30 15:30:55 +0200qontinuum_(qontinuum@user/qontinuum)
2021-07-30 15:31:57 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f0d1:c4fb:1626:e1c7) (Quit: WeeChat 2.8)
2021-07-30 15:32:52 +0200megaTherion_(~therion@unix.io)
2021-07-30 15:33:53 +0200deshalb(~deshalb@user/deshalb)
2021-07-30 15:33:57 +0200fendor_fendor
2021-07-30 15:34:08 +0200qontinuum(qontinuum@user/qontinuum) (*.net *.split)
2021-07-30 15:34:08 +0200glider(~glider@user/glider) (*.net *.split)
2021-07-30 15:34:08 +0200anderson(~ande@134.209.221.71) (*.net *.split)
2021-07-30 15:34:08 +0200echoreply(~echoreply@45.32.163.16) (*.net *.split)
2021-07-30 15:34:08 +0200hexeme(~hexeme@user/hexeme) (*.net *.split)
2021-07-30 15:34:08 +0200orzo(joe@lasker.childrenofmay.org) (*.net *.split)
2021-07-30 15:34:08 +0200exarkun(~exarkun@user/exarkun) (*.net *.split)
2021-07-30 15:34:08 +0200tolt(~weechat-h@li219-154.members.linode.com) (*.net *.split)
2021-07-30 15:34:08 +0200jassob(~jassob@korrob.vth.sgsnet.se) (*.net *.split)
2021-07-30 15:34:08 +0200carbolymer(~carbolyme@dropacid.net) (*.net *.split)
2021-07-30 15:34:08 +0200choucavalier(~choucaval@peanutbuttervibes.com) (*.net *.split)
2021-07-30 15:34:08 +0200LambdaDu1k(~anka@ksit.fixme.fi) (*.net *.split)
2021-07-30 15:34:08 +0200guibou(~guibou@163.172.83.213) (*.net *.split)
2021-07-30 15:34:08 +0200megaTherion(~therion@coruscant.unix.io) (*.net *.split)
2021-07-30 15:34:08 +0200nisstyre(~wes@user/nisstyre) (*.net *.split)
2021-07-30 15:34:09 +0200mjrosenb(~mrosenbe@nyc.schrodinger.com) (*.net *.split)
2021-07-30 15:34:09 +0200eco(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split)
2021-07-30 15:34:09 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (*.net *.split)
2021-07-30 15:34:09 +0200damien2(~damien@248.ip-149-56-13.net) (*.net *.split)
2021-07-30 15:34:09 +0200anderson_anderson
2021-07-30 15:34:09 +0200qontinuum_qontinuum
2021-07-30 15:34:14 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2021-07-30 15:34:14 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-07-30 15:34:14 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-07-30 15:35:04 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-30 15:36:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 15:39:05 +0200nisstyre(~wes@user/nisstyre)
2021-07-30 15:47:23 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-07-30 15:47:52 +0200hendursaga(~weechat@user/hendursaga)
2021-07-30 15:50:04 +0200xff0x(~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e) (Ping timeout: 268 seconds)
2021-07-30 15:50:40 +0200xff0x(~xff0x@2001:1a81:532e:4200:4c53:a999:c700:5bd)
2021-07-30 15:51:20 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 15:51:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-30 15:52:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 15:53:11 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 15:53:58 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 15:54:49 +0200OscarH(~OscarH@97e48a81.skybroadband.com)
2021-07-30 15:54:52 +0200 <Taneb> Does anyone actually use Data.List.NonEmpty.xor
2021-07-30 15:58:02 +0200zebrag(~chris@user/zebrag)
2021-07-30 15:59:22 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds)
2021-07-30 15:59:23 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
2021-07-30 16:00:03 +0200 <deejaytee> wow, that's weirdly specific...
2021-07-30 16:00:10 +0200 <Taneb> Yeah...
2021-07-30 16:00:44 +0200 <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
2021-07-30 16:01:18 +0200 <Taneb> It can also be defined for lists! It has False as an identity
2021-07-30 16:04:02 +0200oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-07-30 16:05:37 +0200exarkun_exarkun
2021-07-30 16:09:46 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 240 seconds)
2021-07-30 16:10:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-30 16:10:55 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-30 16:11:04 +0200azeem(~azeem@176.201.3.116) (Ping timeout: 250 seconds)
2021-07-30 16:11:10 +0200qbt(~edun@user/edun)
2021-07-30 16:13:09 +0200qbt(~edun@user/edun) (Client Quit)
2021-07-30 16:13:26 +0200qbt(~edun@user/edun)
2021-07-30 16:13:38 +0200chris_(~chris@81.96.113.213)
2021-07-30 16:14:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 16:15:10 +0200fluffyballoon(~fluffybal@131.93.208.196)
2021-07-30 16:15:25 +0200azeem(~azeem@176.201.3.116)
2021-07-30 16:15:33 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 16:18:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 16:23:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-07-30 16:23:45 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 258 seconds)
2021-07-30 16:23:48 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 16:24:23 +0200azeem(~azeem@176.201.3.116) (Ping timeout: 252 seconds)
2021-07-30 16:24:53 +0200azeem(~azeem@176.201.3.116)
2021-07-30 16:24:58 +0200qbt(~edun@user/edun) (Quit: Leaving)
2021-07-30 16:25:16 +0200qbt(~edun@user/edun)
2021-07-30 16:26:24 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
2021-07-30 16:29:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-30 16:29:24 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-30 16:29:27 +0200allbery_bgeekosaur
2021-07-30 16:29:38 +0200int-e(~noone@int-e.eu)
2021-07-30 16:31:36 +0200fluffyballoon78(~fluffybal@2620:72:0:6480::450)
2021-07-30 16:33:13 +0200oxide(~lambda@user/oxide)
2021-07-30 16:33:13 +0200Sgeo(~Sgeo@user/sgeo)
2021-07-30 16:34:01 +0200fluffyballoon(~fluffybal@131.93.208.196) (Ping timeout: 246 seconds)
2021-07-30 16:34:22 +0200 <tomsmeding> interesting also that it's in the category "Converting to and from a list"
2021-07-30 16:34:41 +0200cfricke(~cfricke@user/cfricke)
2021-07-30 16:34:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 16:35:30 +0200 <[exa]> I wish hackage had "usage examples" from looking at reverse dependencies :]
2021-07-30 16:35:51 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 16:39:48 +0200azeem(~azeem@176.201.3.116) (Ping timeout: 272 seconds)
2021-07-30 16:40:21 +0200fluffyballoon78(~fluffybal@2620:72:0:6480::450) (Quit: Client closed)
2021-07-30 16:40:50 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-07-30 16:41:59 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds)
2021-07-30 16:42:02 +0200azeem(~azeem@176.201.36.49)
2021-07-30 16:42:41 +0200Guest9(~Guest9@43.241.144.27)
2021-07-30 16:44:36 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-30 16:45:38 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-07-30 16:46:48 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-30 16:49:29 +0200timCF(~timCF@200-149-20-81.sta.estpak.ee)
2021-07-30 16:51:04 +0200juhp(~juhp@bb116-14-48-29.singnet.com.sg) (Quit: juhp)
2021-07-30 16:51:21 +0200juhp(~juhp@bb116-14-48-29.singnet.com.sg)
2021-07-30 16:52:11 +0200Softsoft
2021-07-30 16:52:44 +0200 <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?
2021-07-30 16:53:07 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 16:59:26 +0200azeem(~azeem@176.201.36.49) (Ping timeout: 272 seconds)
2021-07-30 17:00:02 +0200lbseale(~lbseale@user/ep1ctetus)
2021-07-30 17:02:34 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 17:03:08 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 17:03:30 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
2021-07-30 17:04:10 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 265 seconds)
2021-07-30 17:06:14 +0200azeem(~azeem@176.201.36.49)
2021-07-30 17:07:40 +0200cfricke(~cfricke@user/cfricke)
2021-07-30 17:08:18 +0200Guest9(~Guest9@43.241.144.27) (Ping timeout: 240 seconds)
2021-07-30 17:09:05 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-07-30 17:10:21 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 17:10:34 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 17:10:46 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 17:11:20 +0200alx741(~alx741@181.196.69.85)
2021-07-30 17:16:58 +0200Guest9(~Guest9@43.241.144.27)
2021-07-30 17:17:47 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-07-30 17:20:18 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-30 17:20:18 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-30 17:20:21 +0200allbery_bgeekosaur
2021-07-30 17:20:50 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
2021-07-30 17:20:58 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2021-07-30 17:25:07 +0200pschorf(~user@c-73-77-28-188.hsd1.tx.comcast.net) (Ping timeout: 245 seconds)
2021-07-30 17:27:51 +0200azeem(~azeem@176.201.36.49) (Ping timeout: 265 seconds)
2021-07-30 17:28:02 +0200hydroxide(~hydroxide@ool-18bab6fd.dyn.optonline.net)
2021-07-30 17:28:23 +0200chris_(~chris@81.96.113.213)
2021-07-30 17:29:26 +0200Kammao(~Kammao@188.27.128.31) (Quit: Client closed)
2021-07-30 17:31:06 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 17:31:16 +0200stevenxl(uid133530@id-133530.highgate.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 17:35:04 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-07-30 17:35:04 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-30 17:35:22 +0200azeem(~azeem@176.201.36.49)
2021-07-30 17:36:10 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
2021-07-30 17:36:20 +0200 <Boarders> timCF: sounds like something you'd want to use Generic (or similar) for
2021-07-30 17:36:35 +0200cfricke(~cfricke@user/cfricke)
2021-07-30 17:40:12 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 17:41:12 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 17:45:06 +0200pe200012(~pe200012@113.105.10.33) (Ping timeout: 240 seconds)
2021-07-30 17:45:53 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-07-30 17:45:58 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-07-30 17:47:20 +0200qontinuum(qontinuum@user/qontinuum) (Ping timeout: 252 seconds)
2021-07-30 17:50:44 +0200chris_(~chris@81.96.113.213)
2021-07-30 17:52:17 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-07-30 17:54:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 17:55:08 +0200chris_(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-07-30 17:55:32 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-07-30 18:01:52 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 18:06:51 +0200pbrisbin(~patrick@47-208-172-238.trckcmtc01.res.dyn.suddenlink.net)
2021-07-30 18:09:24 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-07-30 18:10:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 18:11:12 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01)
2021-07-30 18:12:42 +0200chris_(~chris@81.96.113.213)
2021-07-30 18:12:47 +0200MorrowM(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-07-30 18:13:17 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-07-30 18:13:47 +0200azeem(~azeem@176.201.36.49) (Read error: Connection reset by peer)
2021-07-30 18:13:47 +0200Vajb(~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
2021-07-30 18:14:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 18:14:03 +0200mastarija(~mastarija@31.217.8.174)
2021-07-30 18:14:04 +0200mastarija_(~mastarija@31.217.8.174)
2021-07-30 18:14:06 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-07-30 18:16:04 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 18:16:53 +0200jmorris(uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 18:17:11 +0200chris_(~chris@81.96.113.213)
2021-07-30 18:18:51 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-07-30 18:20:06 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 18:21:07 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 18:22:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-07-30 18:22:31 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-30 18:22:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-30 18:23:55 +0200chris_(~chris@81.96.113.213)
2021-07-30 18:24:53 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 18:25:02 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 18:25:21 +0200mastarija_(~mastarija@31.217.8.174) (Quit: Leaving)
2021-07-30 18:27:35 +0200chris_(~chris@81.96.113.213)
2021-07-30 18:28:08 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds)
2021-07-30 18:28:26 +0200deshalb(~deshalb@user/deshalb) (Quit: leaving)
2021-07-30 18:30:18 +0200mattil(~mattilinn@87-92-0-72.bb.dnainternet.fi)
2021-07-30 18:30:20 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-07-30 18:31:13 +0200mattil(~mattilinn@87-92-0-72.bb.dnainternet.fi) (Remote host closed the connection)
2021-07-30 18:31:36 +0200mattil(~mattilinn@87-92-0-72.bb.dnainternet.fi)
2021-07-30 18:32:39 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 18:33:30 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-07-30 18:37:25 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-30 18:40:08 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-30 18:41:46 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds)
2021-07-30 18:42:26 +0200mastarija(~mastarija@31.217.8.174) (Read error: Connection reset by peer)
2021-07-30 18:42:44 +0200mastarija(~mastarija@31.217.8.174)
2021-07-30 18:45:48 +0200pavonia(~user@user/siracusa)
2021-07-30 18:45:56 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 18:46:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 18:47:39 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 18:50:54 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 272 seconds)
2021-07-30 18:52:02 +0200jakalx(~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
2021-07-30 18:52:03 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-30 18:52:32 +0200azeem(~azeem@176.201.36.49)
2021-07-30 18:53:33 +0200 <dminuoso> Generic-based parsers sounds like a terrible idea.
2021-07-30 18:53:38 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds)
2021-07-30 18:53:50 +0200econo(uid147250@user/econo)
2021-07-30 18:53:50 +0200 <dminuoso> Especially if you care about performance.
2021-07-30 18:54:14 +0200 <dminuoso> timCF: You can use reify
2021-07-30 18:54:24 +0200 <dminuoso> https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH.html#v:reify
2021-07-30 18:54:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 18:54:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 18:55:35 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 18:56:52 +0200 <dminuoso> timCF: Ah in particular, reifyDatatype
2021-07-30 18:57:02 +0200 <dminuoso> https://hackage.haskell.org/package/th-abstraction-0.4.2.0/docs/Language-Haskell-TH-Datatype.html#…
2021-07-30 18:57:18 +0200 <dminuoso> This could be more helpful than collecting the information yourself
2021-07-30 18:59:05 +0200azeem(~azeem@176.201.36.49) (Read error: Connection reset by peer)
2021-07-30 18:59:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-30 18:59:35 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-07-30 19:02:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 19:03:05 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 19:04:16 +0200chris_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-30 19:07:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-07-30 19:10:58 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 19:11:08 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 19:11:42 +0200gustik(~gustik@2a01:c844:241f:c020:312a:c22f:e497:698f)
2021-07-30 19:17:44 +0200JohnnyBoy(~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi)
2021-07-30 19:18:46 +0200JohnnyBoy(~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi) ()
2021-07-30 19:20:16 +0200hydroxide(~hydroxide@ool-18bab6fd.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-07-30 19:22:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 19:26:04 +0200jespada(~jespada@90.254.247.46) (Quit: Textual IRC Client: www.textualapp.com)
2021-07-30 19:27:05 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 19:27:38 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 19:28:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 19:28:29 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 19:28:48 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection)
2021-07-30 19:29:01 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215)
2021-07-30 19:29:17 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-07-30 19:30:28 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 19:30:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 19:30:50 +0200lavaman(~lavaman@98.38.249.169)
2021-07-30 19:38:12 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 250 seconds)
2021-07-30 19:39:38 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 19:40:58 +0200pbrisbin(~patrick@47-208-172-238.trckcmtc01.res.dyn.suddenlink.net) (Ping timeout: 240 seconds)
2021-07-30 19:44:18 +0200 <sm> Kammao: there have been a couple of haskell on heroku how-tos, searching should find them
2021-07-30 19:45:07 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds)
2021-07-30 19:47:47 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-07-30 19:47:57 +0200vicfred(~vicfred@user/vicfred)
2021-07-30 19:48:09 +0200hyiltiz(~quassel@31.220.5.250)
2021-07-30 19:55:30 +0200deejaytee(~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) (Ping timeout: 240 seconds)
2021-07-30 19:57:21 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-07-30 20:00:20 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
2021-07-30 20:00:38 +0200mastarija_(~mastarija@31.217.8.174)
2021-07-30 20:01:22 +0200PinealGlandOptic(~PinealGla@37.115.210.35) (Ping timeout: 245 seconds)
2021-07-30 20:02:01 +0200Erutuon(~Erutuon@user/erutuon)
2021-07-30 20:03:17 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 252 seconds)
2021-07-30 20:03:46 +0200mastarija(~mastarija@31.217.8.174) (Ping timeout: 250 seconds)
2021-07-30 20:04:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-07-30 20:04:49 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Remote host closed the connection)
2021-07-30 20:04:54 +0200Guest4(~Guest4@173-28-193-122.client.mchsi.com)
2021-07-30 20:05:19 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-07-30 20:06:50 +0200Atum_(~IRC@user/atum/x-2392232)
2021-07-30 20:06:51 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-30 20:06:59 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) ()
2021-07-30 20:07:24 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-07-30 20:08:38 +0200pgib(~textual@173.38.117.68)
2021-07-30 20:10:25 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Remote host closed the connection)
2021-07-30 20:12:38 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
2021-07-30 20:16:22 +0200thmprover(~user@047-042-215-236.res.spectrum.com)
2021-07-30 20:19:35 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 20:21:11 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-07-30 20:21:13 +0200liam30(~liam@c-73-170-133-54.hsd1.ca.comcast.net)
2021-07-30 20:21:42 +0200liam30(~liam@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit)
2021-07-30 20:21:57 +0200l-monninger(~l-monning@c-73-170-133-54.hsd1.ca.comcast.net)
2021-07-30 20:24:19 +0200wwalker(~wwalker@platinum.solid-constructs.com) (Quit: leaving)
2021-07-30 20:24:33 +0200l-monninger(~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit)
2021-07-30 20:25:12 +0200zyklotomic(~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8)
2021-07-30 20:25:12 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
2021-07-30 20:25:14 +0200burnside_(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 20:26:10 +0200fossdd(~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds)
2021-07-30 20:27:11 +0200fossdd(~fossdd@sourcehut/user/fossdd)
2021-07-30 20:28:18 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:7f3a:926a:5be5:7f19)
2021-07-30 20:32:12 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 276 seconds)
2021-07-30 20:34:25 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-07-30 20:36:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 20:38:26 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 250 seconds)
2021-07-30 20:40:12 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-07-30 20:41:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-30 20:43:01 +0200mattil(~mattilinn@87-92-0-72.bb.dnainternet.fi) (Quit: Leaving)
2021-07-30 20:43:36 +0200nckx(~nckx@tobias.gr) (Ping timeout: 268 seconds)
2021-07-30 20:46:01 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-07-30 20:51:08 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-07-30 20:51:20 +0200aegon(~mike@174.127.249.180)
2021-07-30 20:51:55 +0200 <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?
2021-07-30 20:52:21 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 276 seconds)
2021-07-30 20:52:37 +0200mastarija__(~mastarija@31.217.8.174)
2021-07-30 20:53:14 +0200 <monochrom> I usually write one last file "play.hs" that imports the million modules. Then it's just ":load play.hs" for me.
2021-07-30 20:53:29 +0200 <monochrom> And so the prompt is just "*Main>"
2021-07-30 20:53:47 +0200 <monochrom> Actually s/usually/used to/
2021-07-30 20:54:06 +0200 <monochrom> Because these days in reality I use emacs haskell-mode so the prompt is always λ>
2021-07-30 20:54:57 +0200Guest9(~Guest9@43.241.144.27) (Quit: Connection closed)
2021-07-30 20:55:21 +0200 <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
2021-07-30 20:55:28 +0200 <aegon> i wish emacs had a good text editor :P
2021-07-30 20:55:48 +0200 <sm> in GHC 9.0, the GHCI prompt has been fixed
2021-07-30 20:56:07 +0200 <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.
2021-07-30 20:56:10 +0200mastarija_(~mastarija@31.217.8.174) (Ping timeout: 265 seconds)
2021-07-30 20:56:20 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net)
2021-07-30 20:56:28 +0200 <sm> otherwise you can put `:set prompt "ghci> "` in ~/.ghci or ./ghci
2021-07-30 20:56:36 +0200 <sm> ./.ghci
2021-07-30 20:56:46 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-07-30 20:56:49 +0200 <DigitalKiwi> :set prompt "П> "
2021-07-30 20:57:02 +0200 <DigitalKiwi> is in my ~/.ghc/ghci.conf
2021-07-30 20:57:04 +0200 <monochrom> C:\>
2021-07-30 20:57:25 +0200 <monochrom> You know what, for really really real retro:
2021-07-30 20:57:27 +0200 <monochrom> A:\>
2021-07-30 20:57:47 +0200 <monochrom> We old geezers did not always have money for hard disks!
2021-07-30 20:58:04 +0200 <monochrom> It was like $1000 for merely 20MB.
2021-07-30 20:58:24 +0200 <DigitalKiwi> https://gist.github.com/emilypi/cafa2a0dac8c879b2a2916dab71a3f3f :)
2021-07-30 20:58:55 +0200 <aegon> DigitalKiwi: oooh, i din't know you could default enable extensions for it as well
2021-07-30 20:59:37 +0200 <pavonia> DigitalKiwi: What does the Pi stand for?
2021-07-30 21:00:13 +0200stenvold(~stenvold@2001:a61:25b2:3801:3990:922e:4d56:f95f)
2021-07-30 21:00:29 +0200 <DigitalKiwi> pillmore
2021-07-30 21:00:33 +0200 <DigitalKiwi> maybe?
2021-07-30 21:00:36 +0200 <aegon> monochrom: I had to look up what the A drive is :P thats pretty neat
2021-07-30 21:00:48 +0200 <monochrom> Dependent typing has a Π quantifier which is an improved ∀
2021-07-30 21:00:54 +0200 <DigitalKiwi> but also maybe twice of tau
2021-07-30 21:01:38 +0200 <deejaytee> monochrom: nice choice :D
2021-07-30 21:01:45 +0200 <monochrom> :)
2021-07-30 21:01:52 +0200 <DigitalKiwi> or is it half of tau? fff
2021-07-30 21:02:47 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
2021-07-30 21:03:06 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-07-30 21:03:14 +0200 <monochrom> Clearly, π is half of τ, τ is half of Π, Π is half of T
2021-07-30 21:03:17 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2021-07-30 21:04:04 +0200 <DigitalKiwi> yes, clearly...
2021-07-30 21:04:43 +0200monochromprefers Emily Rho. Err I mean Emily Riehl
2021-07-30 21:04:46 +0200 <DigitalKiwi> look i'm here for haskell not this maths stuffs ;p
2021-07-30 21:06:39 +0200mastarija__(~mastarija@31.217.8.174) (Ping timeout: 276 seconds)
2021-07-30 21:06:59 +0200 <int-e> monochrom: B:\> <--to show off your *second* floppy disk drive
2021-07-30 21:07:27 +0200 <deejaytee> int-e: ooooh, ahhhh, special
2021-07-30 21:08:59 +0200PinealGlandOptic(~PinealGla@37.115.210.35)
2021-07-30 21:13:50 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection)
2021-07-30 21:14:42 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
2021-07-30 21:17:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-30 21:18:14 +0200 <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?
2021-07-30 21:19:13 +0200Guest71(~Guest71@50.47.115.102)
2021-07-30 21:19:44 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Ping timeout: 272 seconds)
2021-07-30 21:20:31 +0200Guest71(~Guest71@50.47.115.102) (Client Quit)
2021-07-30 21:23:41 +0200weechat-headlesstolt
2021-07-30 21:24:08 +0200 <deejaytee> it's probably doable, but I don't think there's a function which will do it in one go
2021-07-30 21:26:48 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
2021-07-30 21:27:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection)
2021-07-30 21:27:22 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f)
2021-07-30 21:27:42 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 21:27:49 +0200 <dolio> In some ways, Π is not improving ∀, depending on how you think parametricity should work.
2021-07-30 21:28:47 +0200 <monochrom> Ah I had the logic ∀ in mind, not the type ∀.
2021-07-30 21:29:46 +0200 <dolio> Oh, yeah. For that case ∀ is just Π for a particular universe, basically.
2021-07-30 21:32:04 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 256 seconds)
2021-07-30 21:34:10 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
2021-07-30 21:34:54 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-07-30 21:36:33 +0200burnside_(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 21:37:04 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 21:37:13 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer)
2021-07-30 21:37:21 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 21:41:15 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-07-30 21:41:41 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 21:41:56 +0200Guest14(~Guest14@50.47.115.102)
2021-07-30 21:43:13 +0200nuncanada(~dude@179.235.162.215)
2021-07-30 21:43:16 +0200 <Guest14> Could f-strings (similar to those in Python) be implemented using TemplateHaskell?
2021-07-30 21:43:46 +0200Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2021-07-30 21:44:17 +0200nuncanada(~dude@179.235.162.215) (Client Quit)
2021-07-30 21:44:29 +0200 <geekosaur> probably via a quasiquoter
2021-07-30 21:44:47 +0200 <geekosaur> there already exist some string quasiquoters you could start from
2021-07-30 21:45:36 +0200 <Hecate> geekosaur: https://hackage.haskell.org/package/PyF
2021-07-30 21:45:43 +0200 <Hecate> special mention to guibou-
2021-07-30 21:46:02 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2021-07-30 21:48:00 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-07-30 21:51:07 +0200Guest14(~Guest14@50.47.115.102) (Ping timeout: 246 seconds)
2021-07-30 21:55:40 +0200stenvold(~stenvold@2001:a61:25b2:3801:3990:922e:4d56:f95f) (Quit: Client closed)
2021-07-30 21:55:59 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-30 21:56:36 +0200ukari(~ukari@user/ukari)
2021-07-30 22:03:21 +0200Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-07-30 22:04:35 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-07-30 22:07:09 +0200falsifian(~falsifian@exoco.falsifian.org)
2021-07-30 22:07:18 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-07-30 22:08:17 +0200 <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".
2021-07-30 22:10:31 +0200 <falsifian> I'm not sure if there's some package that's supposed to provide that.
2021-07-30 22:12:07 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-30 22:12:55 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
2021-07-30 22:13:47 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-30 22:15:13 +0200MQ-17J(~MQ-17J@69.14.129.206)
2021-07-30 22:16:05 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-07-30 22:19:30 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds)
2021-07-30 22:21:30 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-07-30 22:22:41 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection)
2021-07-30 22:23:15 +0200Null_A(~null_a@2601:645:8700:2290:44f7:81a6:341:7abe)
2021-07-30 22:23:19 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2021-07-30 22:24:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-30 22:25:01 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-07-30 22:25:19 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-30 22:26:48 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 22:32:49 +0200thmprover(~user@047-042-215-236.res.spectrum.com) (Quit: [Exit, pursued by bear])
2021-07-30 22:36:44 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-07-30 22:37:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-30 22:38:23 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-30 22:38:41 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-07-30 22:40:16 +0200 <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...
2021-07-30 22:43:33 +0200Guest4(~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed)
2021-07-30 22:43:40 +0200delYsid(~user@84-115-55-45.cable.dynamic.surfer.at)
2021-07-30 22:43:47 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-07-30 22:44:40 +0200 <falsifian> Okay, figured that out. I need the ForeignFunctionInterface language option; JavaScriptFFI isn't enough.
2021-07-30 22:46:48 +0200 <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)
2021-07-30 22:47:02 +0200ubert(~Thunderbi@91.141.35.41.wireless.dyn.drei.com)
2021-07-30 22:47:28 +0200 <falsifian> Heh. It looks like ForeignFunctionInterface on its own is sufficient. Not sure what's going on.
2021-07-30 22:48:44 +0200 <falsifian> Main.hs: https://clbin.com/sRPL1; jt.cabal: https://clbin.com/DXV6R
2021-07-30 22:49:24 +0200 <falsifian> Hm, looks like it's already reported at https://github.com/ghcjs/ghcjs/issues/541
2021-07-30 22:50:46 +0200 <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.
2021-07-30 22:50:49 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-07-30 22:52:21 +0200 <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?
2021-07-30 22:54:08 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-30 22:55:26 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 272 seconds)
2021-07-30 22:55:35 +0200hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-07-30 22:55:42 +0200 <falsifian> geekosaur: Filed https://github.com/ghcjs/ghcjs/issues/808
2021-07-30 22:56:11 +0200hiruji(~hiruji@user/hiruji)
2021-07-30 22:57:03 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Quit: Leaving)
2021-07-30 22:57:51 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 22:59:58 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-30 23:01:04 +0200azeem(~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-07-30 23:03:35 +0200 <hpc> delYsid: Q itself still has its MonadFail instance
2021-07-30 23:08:43 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
2021-07-30 23:08:43 +0200zfnmxt(~zfnmxtzfn@user/zfnmxt)
2021-07-30 23:11:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-30 23:12:14 +0200agua(~agua@2804:18:70:7597:1:0:6e99:2d6f)
2021-07-30 23:14:41 +0200pesada(~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7) (Ping timeout: 268 seconds)
2021-07-30 23:15:30 +0200mikoto-chan(~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 240 seconds)
2021-07-30 23:15:55 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 268 seconds)
2021-07-30 23:19:26 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds)
2021-07-30 23:20:21 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-07-30 23:25:01 +0200ablutor(~quassel@wasscher.com)
2021-07-30 23:29:09 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-07-30 23:30:25 +0200fendor(~fendor@91.141.37.142.wireless.dyn.drei.com) (Remote host closed the connection)
2021-07-30 23:30:27 +0200 <delYsid> hpc: I was apparently looking for bindCode and joinCode...
2021-07-30 23:31:55 +0200nckx(~nckx@tobias.gr)
2021-07-30 23:33:43 +0200pesada(~agua@191.177.175.57)
2021-07-30 23:37:01 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-07-30 23:37:18 +0200agua(~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 256 seconds)
2021-07-30 23:39:37 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-30 23:40:03 +0200 <janus> @hoogle Data.Scientific.Scientific -> Data.Fixed.Fixed Data.Fixed.E3
2021-07-30 23:40:04 +0200 <lambdabot> No results found
2021-07-30 23:40:37 +0200 <janus> how can it be that nobody has written this? hmmm
2021-07-30 23:44:22 +0200 <janus> surely it should be possible to write f x = MkFixed . toInteger . (*) (resolution x) $ x :: HasResolution res => Scientific -> Fixed res
2021-07-30 23:44:42 +0200theproffesor(~theproffe@user/theproffesor) (Read error: Connection reset by peer)
2021-07-30 23:44:55 +0200theproffesor(~theproffe@2601:282:847f:8010::3a29)
2021-07-30 23:46:42 +0200notzmv(~zmv@user/notzmv)
2021-07-30 23:49:09 +0200jmorris(uid433911@id-433911.stonehaven.irccloud.com)
2021-07-30 23:49:12 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 265 seconds)
2021-07-30 23:50:03 +0200Guest4(~Guest4@173-28-193-122.client.mchsi.com)
2021-07-30 23:50:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-30 23:51:53 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-30 23:53:27 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-30 23:53:47 +0200 <janus> aaah i would need to conjure up a value "Fixed res", and i guess i can't use mempty...
2021-07-30 23:54:08 +0200 <janus> are there canonical Mult/Add newtype wrappers for common numeric types?
2021-07-30 23:54:34 +0200pesada(~agua@191.177.175.57) (Ping timeout: 240 seconds)
2021-07-30 23:54:51 +0200 <monochrom> Sum and Product.
2021-07-30 23:54:55 +0200Guest4(~Guest4@173-28-193-122.client.mchsi.com) (Client Quit)
2021-07-30 23:55:33 +0200 <monochrom> I would think realToFrac can do Scientific -> Fixed foo
2021-07-30 23:56:32 +0200 <janus> ooh , i can! thank you! what a bummer that i can't hoogle it...
2021-07-30 23:56:56 +0200 <monochrom> This is why I read library docs from cover to cover instead of using hoogle.
2021-07-30 23:59:25 +0200kuribas(~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Remote host closed the connection)