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 +0200 | sheepduck | (~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 +0200 | fendor | (~fendor@178.165.162.84.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-07-30 00:00:58 +0200 | Null_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 +0200 | Null_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 +0200 | charukiewicz | (~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 +0200 | charukiewicz | (~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 +0200 | gehmehgeh | (~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 +0200 | pesada | (~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2) |
2021-07-30 00:11:13 +0200 | fluffyballoon | (~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 +0200 | agua | (~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 +0200 | agua | (~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 +0200 | doyougnu | (~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 +0200 | pesada | (~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 +0200 | Vajb | (~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 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) (Quit: Konversation terminated!) |
2021-07-30 00:21:21 +0200 | gehmehgeh | (~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 +0200 | lavaman | (~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 +0200 | ChanServ | +o monochrom |
2021-07-30 00:24:13 +0200 | monochrom | +b *!*@cpc103048-sgyl39-2-0-cust506.18-2.cable.virginm.net |
2021-07-30 00:24:13 +0200 | motle | monochrommotle |
2021-07-30 00:24:18 +0200 | monochrom | -o monochrom |
2021-07-30 00:24:25 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 00:24:34 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-07-30 00:25:23 +0200 | pesada | (~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 +0200 | chomwitt | (~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 +0200 | agua | (~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 +0200 | amahl | (~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 +0200 | roboguy_ | (~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 +0200 | dajoer | (~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 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection) |
2021-07-30 00:34:23 +0200 | roboguy_ | (~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 +0200 | wroathe | (~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 +0200 | paravida | (~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 +0200 | wroathe | (~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 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~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 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-07-30 00:46:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Read error: Connection reset by peer) |
2021-07-30 00:46:13 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) |
2021-07-30 00:46:23 +0200 | roboguy_ | (~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 +0200 | dfg | (dfg@user/dfg) (Quit: I hate quit messages.) |
2021-07-30 00:48:42 +0200 | pesada | (~agua@2804:14c:8793:8e2f:98cd:a6bd:9d36:17f2) (Ping timeout: 240 seconds) |
2021-07-30 00:51:00 +0200 | Guest5719 | (~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 +0200 | dfg | (dfg@2600:3c00::f03c:92ff:feb4:be75) |
2021-07-30 00:51:18 +0200 | dfg | (dfg@2600:3c00::f03c:92ff:feb4:be75) (Changing host) |
2021-07-30 00:51:18 +0200 | dfg | (dfg@user/dfg) |
2021-07-30 00:51:29 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 258 seconds) |
2021-07-30 00:51:29 +0200 | stevenxl | (uid133530@id-133530.highgate.irccloud.com) |
2021-07-30 00:51:41 +0200 | stevenxl | Does this function exist? (a -> c) -> Either a b -> (b -> c) -> c |
2021-07-30 00:52:11 +0200 | fresheyeball | (~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 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) |
2021-07-30 00:53:17 +0200 | cjb | (~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 +0200 | Cajun | (~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 +0200 | Guest5719 | (~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 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-30 00:55:24 +0200 | Guest84 | (~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 +0200 | Atum_ | (~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 +0200 | shapr | (~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 +0200 | Guest84 | (~Guest84@125-63-24-117.ip4.superloop.com) (Quit: Client closed) |
2021-07-30 01:03:21 +0200 | son0p | (~ff@181.136.122.143) |
2021-07-30 01:04:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-30 01:04:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 01:15:45 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:9526:d20a:c7ef:dc9b) |
2021-07-30 01:18:27 +0200 | delYsid | (~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 +0200 | lavaman | (~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 +0200 | deejaytee | (~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 +0200 | lavaman | (~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 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-07-30 01:39:51 +0200 | vysn | (~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 +0200 | vysn | (~vysn@user/vysn) |
2021-07-30 01:53:45 +0200 | viluon | (uid453725@id-453725.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 01:56:42 +0200 | vicfred_ | (~vicfred@user/vicfred) |
2021-07-30 01:59:08 +0200 | vicfred | (~vicfred@user/vicfred) (Ping timeout: 250 seconds) |
2021-07-30 02:02:36 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
2021-07-30 02:06:31 +0200 | ec | (~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 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-07-30 02:19:27 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-07-30 02:20:06 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
2021-07-30 02:25:07 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 02:26:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 02:27:39 +0200 | vicfred_ | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-07-30 02:31:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 276 seconds) |
2021-07-30 02:31:46 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-07-30 02:37:14 +0200 | euouae | (~euouae@user/euouae) |
2021-07-30 02:44:38 +0200 | averell | (~averell@user/averell) |
2021-07-30 02:45:40 +0200 | haritz | (~hrtz@user/haritz) (Ping timeout: 268 seconds) |
2021-07-30 02:50:36 +0200 | alx741 | (~alx741@181.196.69.85) (Quit: alx741) |
2021-07-30 02:51:15 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection) |
2021-07-30 02:51:49 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) |
2021-07-30 02:56:20 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 250 seconds) |
2021-07-30 02:56:25 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-07-30 02:57:14 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-30 02:58:03 +0200 | ukari | (~ukari@user/ukari) |
2021-07-30 02:58:24 +0200 | haritz | (~hrtz@62.3.70.206) |
2021-07-30 02:58:25 +0200 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-07-30 02:58:25 +0200 | haritz | (~hrtz@user/haritz) |
2021-07-30 03:01:04 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) |
2021-07-30 03:01:05 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Remote host closed the connection) |
2021-07-30 03:01:38 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) |
2021-07-30 03:01:40 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-30 03:03:10 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-07-30 03:03:27 +0200 | Gurkenglas | (~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 +0200 | retroid_ | (~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 +0200 | waleee | (~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 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-07-30 03:11:40 +0200 | xff0x | (~xff0x@2001:1a81:52ef:f900:6be3:99e6:cbd0:482d) (Ping timeout: 272 seconds) |
2021-07-30 03:12:48 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:3fe0:364:9ae2:d4b0) |
2021-07-30 03:14:26 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 256 seconds) |
2021-07-30 03:16:52 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 03:17:42 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-30 03:18:48 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-30 03:20:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:1557:b33d:ca8c:dfa4) (Ping timeout: 256 seconds) |
2021-07-30 03:22:20 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-07-30 03:28:39 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) () |
2021-07-30 03:29:03 +0200 | neurocyte3 | (~neurocyte@45.93.108.22) |
2021-07-30 03:29:03 +0200 | neurocyte3 | (~neurocyte@45.93.108.22) (Changing host) |
2021-07-30 03:29:03 +0200 | neurocyte3 | (~neurocyte@user/neurocyte) |
2021-07-30 03:32:06 +0200 | <lechner> | Axman6: thanks! I forgot the brackets |
2021-07-30 03:32:38 +0200 | neurocyte | (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
2021-07-30 03:32:38 +0200 | neurocyte3 | neurocyte |
2021-07-30 03:32:43 +0200 | <lechner> | also, is it possible to generate pretty, canonical JSON? |
2021-07-30 03:35:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 03:36:51 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 268 seconds) |
2021-07-30 03:37:44 +0200 | bruceleewees | (~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 +0200 | Erutuon | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 03:41:26 +0200 | Erutuon | (~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 +0200 | phma | (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 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-30 03:49:11 +0200 | lavaman | (~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 +0200 | lavaman | (~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 +0200 | alx741 | (~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 +0200 | sh9 | (~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 +0200 | paravida | (~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 +0200 | alx741 | (~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 +0200 | laman | (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 +0200 | merijn | (~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 +0200 | raehik | (~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 +0200 | pfurla_ | (~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 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds) |
2021-07-30 04:28:00 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-30 04:28:01 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services))) |
2021-07-30 04:28:01 +0200 | finn_elija | FinnElija |
2021-07-30 04:28:03 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 04:29:46 +0200 | ext0l | (~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 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-07-30 04:32:26 +0200 | neightchan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 04:33:20 +0200 | pfurla__ | (~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 +0200 | pfurla_ | (~pfurla@52.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 268 seconds) |
2021-07-30 04:36:40 +0200 | pfurla | (~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 +0200 | matthias1 | (~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 +0200 | hrnz | (~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 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds) |
2021-07-30 04:44:10 +0200 | hrnz | (~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 +0200 | shapr | (~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 +0200 | matthias1 | (~igloo@4.15.245.90) (Ping timeout: 256 seconds) |
2021-07-30 04:49:26 +0200 | euouae | (~euouae@user/euouae) (Quit: Client closed) |
2021-07-30 04:50:30 +0200 | mrkajetanp | (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-07-30 04:50:49 +0200 | mrkajetanp | (~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 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 250 seconds) |
2021-07-30 04:58:08 +0200 | td_ | (~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 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-07-30 04:59:17 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) (Ping timeout: 245 seconds) |
2021-07-30 05:00:01 +0200 | td_ | (~td@94.134.91.212) |
2021-07-30 05:00:18 +0200 | funsafe | (~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 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 05:05:12 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 05:06:30 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 05:07:03 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 05:12:03 +0200 | roboguy_ | (~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 +0200 | acowley | (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
2021-07-30 05:15:13 +0200 | ext0l | (~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 +0200 | acowley | (~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 +0200 | nate3 | (~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 +0200 | geekosaur | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 05:25:20 +0200 | berberman | (~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 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-30 05:25:45 +0200 | roboguy_ | (~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 +0200 | Izem | (~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) |
2021-07-30 05:25:54 +0200 | berberman | (~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 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-30 05:30:07 +0200 | roboguy_ | (~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 +0200 | ext0l | (~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 +0200 | roboguy_ | (~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 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-30 05:35:32 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-07-30 05:35:38 +0200 | sh9 | (~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 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 05:37:53 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 05:38:19 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-07-30 05:38:24 +0200 | pfurla__ | (~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 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-07-30 05:41:51 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2021-07-30 05:45:56 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-30 05:49:07 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-30 05:50:38 +0200 | xff0x | (~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 +0200 | xff0x | (~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 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-07-30 06:05:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 06:07:06 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-30 06:08:50 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-30 06:08:51 +0200 | FinnElija | (~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 +0200 | FinnElija | (~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 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-30 06:17:17 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~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 +0200 | wroathe | (~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 +0200 | roboguy_ | (~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 +0200 | Izem | (~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 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
2021-07-30 06:35:56 +0200 | FinnElija | (~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 +0200 | jmorris | (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 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-30 06:42:07 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 06:43:36 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 06:45:57 +0200 | jmorris | (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 +0200 | pgib | (~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 +0200 | mthvedt | (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 +0200 | roboguy_ | (~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 +0200 | pe200012_ | (~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 +0200 | cjb | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 256 seconds) |
2021-07-30 07:04:56 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 07:06:20 +0200 | Vajb | (~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 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-30 07:12:02 +0200 | ukari | (~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 +0200 | matthias1 | (~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 +0200 | matthias1 | (~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 +0200 | Null_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 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-07-30 07:19:28 +0200 | jneira | (~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 +0200 | MQ-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 +0200 | justsomeguy | is only a noob, so he doesn't know which of these makes sense, and just generally tries to avoid records (and also tuples, because they are weird). |
2021-07-30 07:33:03 +0200 | qbt | (~edun@user/edun) |
2021-07-30 07:37:27 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 07:40:23 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Remote host closed the connection) |
2021-07-30 07:40:45 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-30 07:42:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 272 seconds) |
2021-07-30 07:42:35 +0200 | trent | (~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 +0200 | anandprabhu | (~anandprab@45.83.220.206) |
2021-07-30 07:47:12 +0200 | michalz | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 07:51:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
2021-07-30 07:51:30 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 07:51:50 +0200 | anandprabhu | (~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 +0200 | takuan | (~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 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-30 08:21:08 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-07-30 08:21:59 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-30 08:24:32 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-30 08:25:55 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 08:32:51 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-30 08:36:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 08:39:43 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-30 08:42:35 +0200 | sergio812 | (~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr) |
2021-07-30 08:48:40 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-30 08:49:13 +0200 | lortabac | (~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 +0200 | roboguy_ | (~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 +0200 | roboguy_ | (~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 +0200 | ext0l | (~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 +0200 | roboguy_ | (~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 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
2021-07-30 08:58:26 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 08:59:45 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Quit: WeeChat 3.1) |
2021-07-30 09:00:31 +0200 | curiousgay | (~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 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-07-30 09:03:01 +0200 | <tomsmeding> | (or NonNegative) |
2021-07-30 09:03:52 +0200 | chele | (~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 +0200 | mattil | (~mattilinn@87-92-232-85.rev.dnainternet.fi) |
2021-07-30 09:05:43 +0200 | mattil | (~mattilinn@87-92-232-85.rev.dnainternet.fi) (Remote host closed the connection) |
2021-07-30 09:06:05 +0200 | mattil | (~mattilinn@87-92-232-85.rev.dnainternet.fi) |
2021-07-30 09:06:30 +0200 | gehmehgeh | (~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 +0200 | hueso | (~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 +0200 | Obo | (~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 +0200 | hueso | (~root@user/hueso) |
2021-07-30 09:09:58 +0200 | <sergio812> | Ah, many thanks! |
2021-07-30 09:11:05 +0200 | merijn | (~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 +0200 | epolanski | (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 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 09:16:36 +0200 | jonathanx | (~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 +0200 | acidjnk_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 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-30 09:26:48 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-30 09:28:13 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-30 09:28:22 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-07-30 09:29:52 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-30 09:30:24 +0200 | EvanR | (~evan@user/evanr) (Ping timeout: 252 seconds) |
2021-07-30 09:32:52 +0200 | jamestmartin | (~james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2021-07-30 09:32:53 +0200 | arkeet | (~arkeet@moriya.ca) (Remote host closed the connection) |
2021-07-30 09:33:01 +0200 | jamestmartin | (james@jtmar.me) |
2021-07-30 09:33:07 +0200 | arkeet | (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 +0200 | radw | (~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 +0200 | radw | (~radw@user/radw) |
2021-07-30 09:37:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 09:42:24 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-07-30 09:43:18 +0200 | fendor | (~fendor@178.165.162.84.wireless.dyn.drei.com) |
2021-07-30 09:45:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 09:45:57 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 09:46:25 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 09:49:39 +0200 | vysn | (~vysn@user/vysn) |
2021-07-30 09:51:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-07-30 09:51:21 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) |
2021-07-30 09:54:34 +0200 | neurocyte | (~neurocyte@user/neurocyte) (The Lounge - https://thelounge.chat) |
2021-07-30 09:56:23 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 09:57:41 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-07-30 09:58:33 +0200 | anandprabhu | (~anandprab@185.65.135.253) |
2021-07-30 09:59:34 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 09:59:58 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-30 10:00:15 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-30 10:00:16 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-30 10:04:09 +0200 | bens | (~bens@www.typius.com) (Ping timeout: 265 seconds) |
2021-07-30 10:06:00 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-30 10:09:06 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-30 10:10:15 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-30 10:14:16 +0200 | sergio81242 | (~sergio812@141.143.193.76) |
2021-07-30 10:14:19 +0200 | sergio81242 | (~sergio812@141.143.193.76) (Client Quit) |
2021-07-30 10:14:38 +0200 | kuribas | (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) |
2021-07-30 10:15:28 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 256 seconds) |
2021-07-30 10:15:43 +0200 | deejaytee | Guest578 |
2021-07-30 10:15:43 +0200 | Guest578 | (~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 +0200 | deejaytee | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) |
2021-07-30 10:16:52 +0200 | rain3 | (~rain3___@79.115.250.43) |
2021-07-30 10:17:13 +0200 | rain3 | (~rain3___@79.115.250.43) (Leaving) |
2021-07-30 10:17:46 +0200 | sergio812 | (~sergio812@lfbn-ren-1-403-102.w2-10.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2021-07-30 10:17:48 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-30 10:17:48 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-30 10:17:51 +0200 | allbery_b | geekosaur |
2021-07-30 10:17:51 +0200 | pesada | (~agua@191.177.175.57) |
2021-07-30 10:18:32 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 252 seconds) |
2021-07-30 10:22:00 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 268 seconds) |
2021-07-30 10:22:05 +0200 | koz | (~koz@121.99.240.58) (Remote host closed the connection) |
2021-07-30 10:22:45 +0200 | aegon | (~mike@174.127.249.180) (Quit: leaving) |
2021-07-30 10:23:44 +0200 | Tuplanolla | (~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 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
2021-07-30 10:27:42 +0200 | anandprabhu | (~anandprab@185.65.135.253) (Quit: Leaving) |
2021-07-30 10:28:22 +0200 | koz | (~koz@121.99.240.58) |
2021-07-30 10:32:06 +0200 | kuribas | (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-07-30 10:32:58 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 10:33:44 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8) |
2021-07-30 10:33:57 +0200 | kuribas | (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) |
2021-07-30 10:37:51 +0200 | silverwhitefish | (~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 +0200 | silverwhitefish | (~hidden@47.202.102.10) |
2021-07-30 10:38:36 +0200 | caubert | (~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 +0200 | caubert | (~caubert@136.244.111.235) |
2021-07-30 10:42:17 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 252 seconds) |
2021-07-30 10:42:18 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-30 10:42:31 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-07-30 10:42:36 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) |
2021-07-30 10:42:53 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-30 10:42:59 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-30 10:44:14 +0200 | oxide | (~lambda@user/oxide) |
2021-07-30 10:44:49 +0200 | pesada | (~agua@191.177.175.57) (Ping timeout: 268 seconds) |
2021-07-30 10:47:11 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) (Ping timeout: 258 seconds) |
2021-07-30 10:47:16 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 10:50:46 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-07-30 10:53:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-30 10:56:14 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) |
2021-07-30 10:56:22 +0200 | gensyst | (gensyst@user/gensyst) |
2021-07-30 11:04:50 +0200 | jneira_ | (~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 +0200 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-07-30 11:15:03 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-30 11:16:15 +0200 | michalz | (~michalz@185.246.204.61) (Remote host closed the connection) |
2021-07-30 11:16:36 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-07-30 11:18:42 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 272 seconds) |
2021-07-30 11:20:41 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:e3f6:df0f:3d23:2506) (Ping timeout: 252 seconds) |
2021-07-30 11:21:25 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e) |
2021-07-30 11:22:01 +0200 | pesada | (~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7) |
2021-07-30 11:26:12 +0200 | agua | (~agua@2804:18:4f:b157:1:0:6976:119) (Ping timeout: 276 seconds) |
2021-07-30 11:32:49 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-30 11:33:32 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
2021-07-30 11:34:10 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 240 seconds) |
2021-07-30 11:34:19 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 11:38:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-30 11:39:55 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 11:42:05 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: No route to host) |
2021-07-30 11:43:33 +0200 | eggplant_ | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 11:44:41 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-30 11:45:36 +0200 | michalz | (~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 +0200 | eggplant_ | (~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 +0200 | MoC | (~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 +0200 | Gurkenglas | (~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 +0200 | dhil | (~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 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 12:00:41 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 12:00:42 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-07-30 12:03:24 +0200 | oxide | (~lambda@user/oxide) |
2021-07-30 12:06:26 +0200 | mthvedt | (uid501949@id-501949.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 12:09:06 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds) |
2021-07-30 12:10:47 +0200 | OscarH | (~OscarH@97e0e7ba.skybroadband.com) (Ping timeout: 265 seconds) |
2021-07-30 12:11:00 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-30 12:12:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 12:13:20 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 12:15:46 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-30 12:15:52 +0200 | pe200012_ | (~pe200012@183.236.83.77) (Remote host closed the connection) |
2021-07-30 12:16:19 +0200 | pe200012_ | (~pe200012@113.105.10.33) |
2021-07-30 12:16:31 +0200 | pe200012_ | pe200012 |
2021-07-30 12:19:45 +0200 | azeem | (~azeem@176.200.236.58) |
2021-07-30 12:23:33 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
2021-07-30 12:23:34 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-07-30 12:25:28 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:9526:d20a:c7ef:dc9b) (Quit: WeeChat 3.2) |
2021-07-30 12:26:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 12:28:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 12:35:03 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 12:35:40 +0200 | bens | (~bens@www.typius.com) |
2021-07-30 12:37:00 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 250 seconds) |
2021-07-30 12:39:24 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-30 12:39:31 +0200 | jespada | (~jespada@90.254.247.46) |
2021-07-30 12:41:34 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 12:44:50 +0200 | hueso | (~root@user/hueso) (Ping timeout: 252 seconds) |
2021-07-30 12:48:00 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9507354aa6404eb54f37.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2021-07-30 12:48:44 +0200 | hueso | (~root@user/hueso) |
2021-07-30 12:54:50 +0200 | michalz | (~michalz@185.246.204.40) (Ping timeout: 252 seconds) |
2021-07-30 12:55:54 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-30 12:56:43 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8) |
2021-07-30 12:57:05 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 12:58:21 +0200 | hexfive | (~eric@50.35.83.177) |
2021-07-30 13:00:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-30 13:00:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 13:04:19 +0200 | mattil | (~mattilinn@87-92-232-85.rev.dnainternet.fi) (Quit: Leaving) |
2021-07-30 13:05:57 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 245 seconds) |
2021-07-30 13:09:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 13:13:03 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-30 13:13:58 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-30 13:15:32 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-30 13:16:31 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 265 seconds) |
2021-07-30 13:19:28 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 13:21:30 +0200 | azeem | (~azeem@176.200.236.58) (Ping timeout: 240 seconds) |
2021-07-30 13:22:19 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-07-30 13:22:45 +0200 | azeem | (~azeem@176.200.236.58) |
2021-07-30 13:23:59 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-30 13:28:42 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-30 13:29:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 13:29:28 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-30 13:29:59 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 13:31:03 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 13:33:12 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 13:34:10 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
2021-07-30 13:35:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 13:37:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 13:37:53 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 13:38:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 13:41:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-07-30 13:43:10 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-30 13:43:10 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-30 13:43:13 +0200 | allbery_b | geekosaur |
2021-07-30 13:43:58 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 13:44:10 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-07-30 13:45:32 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 13:47:37 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 13:48:28 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-30 13:48:32 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-30 13:50:02 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-30 13:50:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 13:50:25 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-07-30 13:50:55 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 13:51:34 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-07-30 13:52:16 +0200 | gensyst | (gensyst@user/gensyst) (Quit: Leaving) |
2021-07-30 13:53:29 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds) |
2021-07-30 13:58:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 13:58:23 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 14:00:12 +0200 | azeem | (~azeem@176.200.236.58) (Ping timeout: 272 seconds) |
2021-07-30 14:03:30 +0200 | azeem | (~azeem@176.200.236.58) |
2021-07-30 14:04:23 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 14:05:00 +0200 | qbt | (~edun@user/edun) (Quit: WeeChat 3.2) |
2021-07-30 14:08:18 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-30 14:08:41 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-07-30 14:08:54 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-07-30 14:10:39 +0200 | azeem | (~azeem@176.200.236.58) (Ping timeout: 265 seconds) |
2021-07-30 14:12:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 14:13:24 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 14:13:33 +0200 | azeem | (~azeem@176.201.3.116) |
2021-07-30 14:16:11 +0200 | qbt | (~edun@user/edun) |
2021-07-30 14:17:14 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 14:17:34 +0200 | qbt | (~edun@user/edun) (Client Quit) |
2021-07-30 14:18:17 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-30 14:21:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-30 14:22:02 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-07-30 14:22:23 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-07-30 14:23:07 +0200 | azeem | (~azeem@176.201.3.116) (Ping timeout: 268 seconds) |
2021-07-30 14:23:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 14:23:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 14:24:28 +0200 | int-e | (~noone@int-e.eu) (Ping timeout: 252 seconds) |
2021-07-30 14:24:32 +0200 | Kammao | (~Kammao@188.27.128.31) |
2021-07-30 14:24:32 +0200 | noctuks | (oGswB5gyub@user/noctux) (Ping timeout: 258 seconds) |
2021-07-30 14:24:52 +0200 | noctuks | (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 +0200 | azeem | (~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 +0200 | fossdd | (~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 +0200 | fossdd | (~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 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 14:34:45 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 14:35:21 +0200 | Obo | (~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 +0200 | qbt | (~edun@user/edun) |
2021-07-30 14:39:48 +0200 | qbt | (~edun@user/edun) (Client Quit) |
2021-07-30 14:40:22 +0200 | qbt | (~edun@user/edun) |
2021-07-30 14:40:22 +0200 | qbt | (~edun@user/edun) (Client Quit) |
2021-07-30 14:40:25 +0200 | lechner | (~lechner@debian/lechner) (Quit: WeeChat 3.0) |
2021-07-30 14:44:26 +0200 | lechner | (~lechner@debian/lechner) |
2021-07-30 14:44:59 +0200 | fendor_ | (~fendor@91.141.37.142.wireless.dyn.drei.com) |
2021-07-30 14:45:28 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 14:45:54 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-07-30 14:47:42 +0200 | fendor | (~fendor@178.165.162.84.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2021-07-30 14:50:18 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
2021-07-30 14:52:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 14:53:34 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 14:54:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 14:55:14 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 14:56:22 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 245 seconds) |
2021-07-30 15:03:26 +0200 | azeem | (~azeem@176.201.3.116) (Ping timeout: 252 seconds) |
2021-07-30 15:03:47 +0200 | azeem | (~azeem@176.201.3.116) |
2021-07-30 15:05:22 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 15:08:01 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-30 15:09:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 15:10:30 +0200 | fossdd | (~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 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-30 15:18:53 +0200 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2021-07-30 15:19:13 +0200 | m4lvin | (~m4lvin@w4eg.de) |
2021-07-30 15:22:10 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-30 15:22:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 15:23:02 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 15:24:30 +0200 | choucavalier_ | (~choucaval@peanutbuttervibes.com) |
2021-07-30 15:24:43 +0200 | LambdaDuck | (~anka@ksit.fixme.fi) |
2021-07-30 15:24:52 +0200 | guibou- | (~guibou@163.172.83.213) |
2021-07-30 15:25:00 +0200 | damien3 | (~damien@248.ip-149-56-13.net) |
2021-07-30 15:25:23 +0200 | echoreply1 | (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) |
2021-07-30 15:25:27 +0200 | orzo_ | (joe@lasker.childrenofmay.org) |
2021-07-30 15:25:33 +0200 | qontinuum_ | (qontinuum@user/qontinuum) |
2021-07-30 15:25:43 +0200 | jassob1 | (~jassob@korrob.vth.sgsnet.se) |
2021-07-30 15:25:43 +0200 | hexeme_ | (~hexeme@user/hexeme) |
2021-07-30 15:26:20 +0200 | weechat-headless | (~weechat-h@li219-154.members.linode.com) |
2021-07-30 15:26:50 +0200 | exarkun_ | (~exarkun@user/exarkun) |
2021-07-30 15:26:51 +0200 | mjrosenb_ | (~mrosenbe@104.225.243.2) |
2021-07-30 15:26:57 +0200 | anderson_ | (~ande@134.209.221.71) |
2021-07-30 15:27:12 +0200 | eco_ | (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) |
2021-07-30 15:27:30 +0200 | glider_ | (~glider@user/glider) |
2021-07-30 15:27:46 +0200 | carbolymer_ | (~carbolyme@dropacid.net) |
2021-07-30 15:30:37 +0200 | qontinuum_ | (qontinuum@user/qontinuum) (Quit: See ya) |
2021-07-30 15:30:55 +0200 | qontinuum_ | (qontinuum@user/qontinuum) |
2021-07-30 15:31:57 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:f0d1:c4fb:1626:e1c7) (Quit: WeeChat 2.8) |
2021-07-30 15:32:52 +0200 | megaTherion_ | (~therion@unix.io) |
2021-07-30 15:33:53 +0200 | deshalb | (~deshalb@user/deshalb) |
2021-07-30 15:33:57 +0200 | fendor_ | fendor |
2021-07-30 15:34:08 +0200 | qontinuum | (qontinuum@user/qontinuum) (*.net *.split) |
2021-07-30 15:34:08 +0200 | glider | (~glider@user/glider) (*.net *.split) |
2021-07-30 15:34:08 +0200 | anderson | (~ande@134.209.221.71) (*.net *.split) |
2021-07-30 15:34:08 +0200 | echoreply | (~echoreply@45.32.163.16) (*.net *.split) |
2021-07-30 15:34:08 +0200 | hexeme | (~hexeme@user/hexeme) (*.net *.split) |
2021-07-30 15:34:08 +0200 | orzo | (joe@lasker.childrenofmay.org) (*.net *.split) |
2021-07-30 15:34:08 +0200 | exarkun | (~exarkun@user/exarkun) (*.net *.split) |
2021-07-30 15:34:08 +0200 | tolt | (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
2021-07-30 15:34:08 +0200 | jassob | (~jassob@korrob.vth.sgsnet.se) (*.net *.split) |
2021-07-30 15:34:08 +0200 | carbolymer | (~carbolyme@dropacid.net) (*.net *.split) |
2021-07-30 15:34:08 +0200 | choucavalier | (~choucaval@peanutbuttervibes.com) (*.net *.split) |
2021-07-30 15:34:08 +0200 | LambdaDu1k | (~anka@ksit.fixme.fi) (*.net *.split) |
2021-07-30 15:34:08 +0200 | guibou | (~guibou@163.172.83.213) (*.net *.split) |
2021-07-30 15:34:08 +0200 | megaTherion | (~therion@coruscant.unix.io) (*.net *.split) |
2021-07-30 15:34:08 +0200 | nisstyre | (~wes@user/nisstyre) (*.net *.split) |
2021-07-30 15:34:09 +0200 | mjrosenb | (~mrosenbe@nyc.schrodinger.com) (*.net *.split) |
2021-07-30 15:34:09 +0200 | eco | (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split) |
2021-07-30 15:34:09 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
2021-07-30 15:34:09 +0200 | damien2 | (~damien@248.ip-149-56-13.net) (*.net *.split) |
2021-07-30 15:34:09 +0200 | anderson_ | anderson |
2021-07-30 15:34:09 +0200 | qontinuum_ | qontinuum |
2021-07-30 15:34:14 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2021-07-30 15:34:14 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2021-07-30 15:34:14 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2021-07-30 15:35:04 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-30 15:36:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 15:39:05 +0200 | nisstyre | (~wes@user/nisstyre) |
2021-07-30 15:47:23 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-07-30 15:47:52 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-30 15:50:04 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:7940:4f25:14fa:5c3e) (Ping timeout: 268 seconds) |
2021-07-30 15:50:40 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:4c53:a999:c700:5bd) |
2021-07-30 15:51:20 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 15:51:27 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-30 15:52:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 15:53:11 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 15:53:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 15:54:49 +0200 | OscarH | (~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 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-30 15:59:22 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-07-30 15:59:23 +0200 | burnsidesLlama | (~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 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 252 seconds) |
2021-07-30 16:05:37 +0200 | exarkun_ | exarkun |
2021-07-30 16:09:46 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 240 seconds) |
2021-07-30 16:10:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-30 16:10:55 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-30 16:11:04 +0200 | azeem | (~azeem@176.201.3.116) (Ping timeout: 250 seconds) |
2021-07-30 16:11:10 +0200 | qbt | (~edun@user/edun) |
2021-07-30 16:13:09 +0200 | qbt | (~edun@user/edun) (Client Quit) |
2021-07-30 16:13:26 +0200 | qbt | (~edun@user/edun) |
2021-07-30 16:13:38 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 16:14:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 16:15:10 +0200 | fluffyballoon | (~fluffybal@131.93.208.196) |
2021-07-30 16:15:25 +0200 | azeem | (~azeem@176.201.3.116) |
2021-07-30 16:15:33 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 16:18:35 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 16:23:12 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-07-30 16:23:45 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 258 seconds) |
2021-07-30 16:23:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 16:24:23 +0200 | azeem | (~azeem@176.201.3.116) (Ping timeout: 252 seconds) |
2021-07-30 16:24:53 +0200 | azeem | (~azeem@176.201.3.116) |
2021-07-30 16:24:58 +0200 | qbt | (~edun@user/edun) (Quit: Leaving) |
2021-07-30 16:25:16 +0200 | qbt | (~edun@user/edun) |
2021-07-30 16:26:24 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-07-30 16:29:24 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-30 16:29:24 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-30 16:29:27 +0200 | allbery_b | geekosaur |
2021-07-30 16:29:38 +0200 | int-e | (~noone@int-e.eu) |
2021-07-30 16:31:36 +0200 | fluffyballoon78 | (~fluffybal@2620:72:0:6480::450) |
2021-07-30 16:33:13 +0200 | oxide | (~lambda@user/oxide) |
2021-07-30 16:33:13 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-30 16:34:01 +0200 | fluffyballoon | (~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 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-30 16:34:58 +0200 | fossdd | (~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 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 16:39:48 +0200 | azeem | (~azeem@176.201.3.116) (Ping timeout: 272 seconds) |
2021-07-30 16:40:21 +0200 | fluffyballoon78 | (~fluffybal@2620:72:0:6480::450) (Quit: Client closed) |
2021-07-30 16:40:50 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) |
2021-07-30 16:41:59 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds) |
2021-07-30 16:42:02 +0200 | azeem | (~azeem@176.201.36.49) |
2021-07-30 16:42:41 +0200 | Guest9 | (~Guest9@43.241.144.27) |
2021-07-30 16:44:36 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-07-30 16:45:38 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-07-30 16:46:48 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-30 16:49:29 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) |
2021-07-30 16:51:04 +0200 | juhp | (~juhp@bb116-14-48-29.singnet.com.sg) (Quit: juhp) |
2021-07-30 16:51:21 +0200 | juhp | (~juhp@bb116-14-48-29.singnet.com.sg) |
2021-07-30 16:52:11 +0200 | Soft | soft |
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 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 16:59:26 +0200 | azeem | (~azeem@176.201.36.49) (Ping timeout: 272 seconds) |
2021-07-30 17:00:02 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-30 17:02:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 17:03:08 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 17:03:30 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8) |
2021-07-30 17:04:10 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 265 seconds) |
2021-07-30 17:06:14 +0200 | azeem | (~azeem@176.201.36.49) |
2021-07-30 17:07:40 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-30 17:08:18 +0200 | Guest9 | (~Guest9@43.241.144.27) (Ping timeout: 240 seconds) |
2021-07-30 17:09:05 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-07-30 17:10:21 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 17:10:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 17:10:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 17:11:20 +0200 | alx741 | (~alx741@181.196.69.85) |
2021-07-30 17:16:58 +0200 | Guest9 | (~Guest9@43.241.144.27) |
2021-07-30 17:17:47 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-07-30 17:20:18 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-30 17:20:18 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-30 17:20:21 +0200 | allbery_b | geekosaur |
2021-07-30 17:20:50 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-30 17:20:58 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2021-07-30 17:25:07 +0200 | pschorf | (~user@c-73-77-28-188.hsd1.tx.comcast.net) (Ping timeout: 245 seconds) |
2021-07-30 17:27:51 +0200 | azeem | (~azeem@176.201.36.49) (Ping timeout: 265 seconds) |
2021-07-30 17:28:02 +0200 | hydroxide | (~hydroxide@ool-18bab6fd.dyn.optonline.net) |
2021-07-30 17:28:23 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 17:29:26 +0200 | Kammao | (~Kammao@188.27.128.31) (Quit: Client closed) |
2021-07-30 17:31:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 17:31:16 +0200 | stevenxl | (uid133530@id-133530.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 17:35:04 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-07-30 17:35:04 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-30 17:35:22 +0200 | azeem | (~azeem@176.201.36.49) |
2021-07-30 17:36:10 +0200 | burnsidesLlama | (~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 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-30 17:40:12 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 17:41:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 17:45:06 +0200 | pe200012 | (~pe200012@113.105.10.33) (Ping timeout: 240 seconds) |
2021-07-30 17:45:53 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-30 17:45:58 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-07-30 17:47:20 +0200 | qontinuum | (qontinuum@user/qontinuum) (Ping timeout: 252 seconds) |
2021-07-30 17:50:44 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 17:52:17 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-30 17:54:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 17:55:08 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-07-30 17:55:32 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-07-30 18:01:52 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-30 18:06:51 +0200 | pbrisbin | (~patrick@47-208-172-238.trckcmtc01.res.dyn.suddenlink.net) |
2021-07-30 18:09:24 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-07-30 18:10:25 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 18:11:12 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-30 18:12:42 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 18:12:47 +0200 | MorrowM | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-30 18:13:17 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds) |
2021-07-30 18:13:47 +0200 | azeem | (~azeem@176.201.36.49) (Read error: Connection reset by peer) |
2021-07-30 18:13:47 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-30 18:14:03 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 18:14:03 +0200 | mastarija | (~mastarija@31.217.8.174) |
2021-07-30 18:14:04 +0200 | mastarija_ | (~mastarija@31.217.8.174) |
2021-07-30 18:14:06 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-30 18:16:04 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 18:16:53 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 18:17:11 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 18:18:51 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-07-30 18:20:06 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 18:21:07 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 18:22:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-30 18:22:31 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-30 18:22:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-30 18:23:55 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 18:24:53 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 18:25:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 18:25:21 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Quit: Leaving) |
2021-07-30 18:27:35 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-30 18:28:08 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds) |
2021-07-30 18:28:26 +0200 | deshalb | (~deshalb@user/deshalb) (Quit: leaving) |
2021-07-30 18:30:18 +0200 | mattil | (~mattilinn@87-92-0-72.bb.dnainternet.fi) |
2021-07-30 18:30:20 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-07-30 18:31:13 +0200 | mattil | (~mattilinn@87-92-0-72.bb.dnainternet.fi) (Remote host closed the connection) |
2021-07-30 18:31:36 +0200 | mattil | (~mattilinn@87-92-0-72.bb.dnainternet.fi) |
2021-07-30 18:32:39 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 18:33:30 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-07-30 18:37:25 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-30 18:40:08 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-07-30 18:41:46 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds) |
2021-07-30 18:42:26 +0200 | mastarija | (~mastarija@31.217.8.174) (Read error: Connection reset by peer) |
2021-07-30 18:42:44 +0200 | mastarija | (~mastarija@31.217.8.174) |
2021-07-30 18:45:48 +0200 | pavonia | (~user@user/siracusa) |
2021-07-30 18:45:56 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-30 18:46:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 18:47:39 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 18:50:54 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 272 seconds) |
2021-07-30 18:52:02 +0200 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
2021-07-30 18:52:03 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-30 18:52:32 +0200 | azeem | (~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 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds) |
2021-07-30 18:53:50 +0200 | econo | (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 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 18:54:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 18:55:35 +0200 | fossdd | (~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 +0200 | azeem | (~azeem@176.201.36.49) (Read error: Connection reset by peer) |
2021-07-30 18:59:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-30 18:59:35 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-30 19:02:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 19:03:05 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 19:04:16 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-30 19:07:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-30 19:10:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 19:11:08 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 19:11:42 +0200 | gustik | (~gustik@2a01:c844:241f:c020:312a:c22f:e497:698f) |
2021-07-30 19:17:44 +0200 | JohnnyBoy | (~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi) |
2021-07-30 19:18:46 +0200 | JohnnyBoy | (~JohnnyBoy@91-158-200-68.elisa-laajakaista.fi) () |
2021-07-30 19:20:16 +0200 | hydroxide | (~hydroxide@ool-18bab6fd.dyn.optonline.net) (Ping timeout: 246 seconds) |
2021-07-30 19:22:03 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 19:26:04 +0200 | jespada | (~jespada@90.254.247.46) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-30 19:27:05 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 19:27:38 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 19:28:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 19:28:29 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 19:28:48 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Remote host closed the connection) |
2021-07-30 19:29:01 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) |
2021-07-30 19:29:17 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-07-30 19:30:28 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 19:30:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 19:30:50 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-30 19:38:12 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 250 seconds) |
2021-07-30 19:39:38 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 19:40:58 +0200 | pbrisbin | (~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 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-07-30 19:47:47 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
2021-07-30 19:47:57 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-07-30 19:48:09 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-07-30 19:55:30 +0200 | deejaytee | (~deejaytee@193.46-255-62.static.virginmediabusiness.co.uk) (Ping timeout: 240 seconds) |
2021-07-30 19:57:21 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-30 20:00:20 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) |
2021-07-30 20:00:38 +0200 | mastarija_ | (~mastarija@31.217.8.174) |
2021-07-30 20:01:22 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) (Ping timeout: 245 seconds) |
2021-07-30 20:02:01 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-30 20:03:17 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:b4cc:f31a:f38e:2215) (Ping timeout: 252 seconds) |
2021-07-30 20:03:46 +0200 | mastarija | (~mastarija@31.217.8.174) (Ping timeout: 250 seconds) |
2021-07-30 20:04:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-07-30 20:04:49 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Remote host closed the connection) |
2021-07-30 20:04:54 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) |
2021-07-30 20:05:19 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-30 20:06:50 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-30 20:06:51 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-30 20:06:59 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) () |
2021-07-30 20:07:24 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) |
2021-07-30 20:08:38 +0200 | pgib | (~textual@173.38.117.68) |
2021-07-30 20:10:25 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-07-30 20:12:38 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-07-30 20:16:22 +0200 | thmprover | (~user@047-042-215-236.res.spectrum.com) |
2021-07-30 20:19:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 20:21:11 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-30 20:21:13 +0200 | liam30 | (~liam@c-73-170-133-54.hsd1.ca.comcast.net) |
2021-07-30 20:21:42 +0200 | liam30 | (~liam@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit) |
2021-07-30 20:21:57 +0200 | l-monninger | (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) |
2021-07-30 20:24:19 +0200 | wwalker | (~wwalker@platinum.solid-constructs.com) (Quit: leaving) |
2021-07-30 20:24:33 +0200 | l-monninger | (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit) |
2021-07-30 20:25:12 +0200 | zyklotomic | (~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8) |
2021-07-30 20:25:12 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-30 20:25:14 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 20:26:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-30 20:27:11 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-30 20:28:18 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:7f3a:926a:5be5:7f19) |
2021-07-30 20:32:12 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 276 seconds) |
2021-07-30 20:34:25 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-07-30 20:36:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 20:38:26 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 250 seconds) |
2021-07-30 20:40:12 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-30 20:41:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-30 20:43:01 +0200 | mattil | (~mattilinn@87-92-0-72.bb.dnainternet.fi) (Quit: Leaving) |
2021-07-30 20:43:36 +0200 | nckx | (~nckx@tobias.gr) (Ping timeout: 268 seconds) |
2021-07-30 20:46:01 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
2021-07-30 20:51:08 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-07-30 20:51:20 +0200 | aegon | (~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 +0200 | dextaa | (~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 276 seconds) |
2021-07-30 20:52:37 +0200 | mastarija__ | (~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 +0200 | Guest9 | (~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 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Ping timeout: 265 seconds) |
2021-07-30 20:56:20 +0200 | dextaa | (~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 +0200 | fef | (~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 +0200 | stenvold | (~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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) |
2021-07-30 21:03:06 +0200 | chexum | (~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 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-07-30 21:04:04 +0200 | <DigitalKiwi> | yes, clearly... |
2021-07-30 21:04:43 +0200 | monochrom | prefers 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 +0200 | mastarija__ | (~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 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) |
2021-07-30 21:13:50 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection) |
2021-07-30 21:14:42 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) |
2021-07-30 21:17:25 +0200 | wroathe | (~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 +0200 | Guest71 | (~Guest71@50.47.115.102) |
2021-07-30 21:19:44 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Ping timeout: 272 seconds) |
2021-07-30 21:20:31 +0200 | Guest71 | (~Guest71@50.47.115.102) (Client Quit) |
2021-07-30 21:23:41 +0200 | weechat-headless | tolt |
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 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) |
2021-07-30 21:27:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Remote host closed the connection) |
2021-07-30 21:27:22 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) |
2021-07-30 21:27:42 +0200 | curiousgay | (~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 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
2021-07-30 21:34:10 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-30 21:34:54 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-07-30 21:36:33 +0200 | burnside_ | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 21:37:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 21:37:13 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-30 21:37:21 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 21:41:15 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-30 21:41:41 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 21:41:56 +0200 | Guest14 | (~Guest14@50.47.115.102) |
2021-07-30 21:43:13 +0200 | nuncanada | (~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 +0200 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2021-07-30 21:44:17 +0200 | nuncanada | (~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 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-07-30 21:48:00 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-07-30 21:51:07 +0200 | Guest14 | (~Guest14@50.47.115.102) (Ping timeout: 246 seconds) |
2021-07-30 21:55:40 +0200 | stenvold | (~stenvold@2001:a61:25b2:3801:3990:922e:4d56:f95f) (Quit: Client closed) |
2021-07-30 21:55:59 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-30 21:56:36 +0200 | ukari | (~ukari@user/ukari) |
2021-07-30 22:03:21 +0200 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-07-30 22:04:35 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-30 22:07:09 +0200 | falsifian | (~falsifian@exoco.falsifian.org) |
2021-07-30 22:07:18 +0200 | fresheyeball | (~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 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-30 22:12:55 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-30 22:13:47 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-30 22:15:13 +0200 | MQ-17J | (~MQ-17J@69.14.129.206) |
2021-07-30 22:16:05 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-30 22:19:30 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 240 seconds) |
2021-07-30 22:21:30 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-07-30 22:22:41 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-30 22:23:15 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-30 22:23:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-30 22:24:01 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-30 22:25:01 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-07-30 22:25:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-30 22:26:48 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 22:32:49 +0200 | thmprover | (~user@047-042-215-236.res.spectrum.com) (Quit: [Exit, pursued by bear]) |
2021-07-30 22:36:44 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-30 22:37:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-30 22:38:23 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-30 22:38:41 +0200 | amahl | (~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 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed) |
2021-07-30 22:43:40 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-07-30 22:43:47 +0200 | wroathe | (~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 +0200 | ubert | (~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 +0200 | burnsidesLlama | (~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 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-30 22:55:26 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 272 seconds) |
2021-07-30 22:55:35 +0200 | hiruji | (~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 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-07-30 22:57:03 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Quit: Leaving) |
2021-07-30 22:57:51 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 22:59:58 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-30 23:01:04 +0200 | azeem | (~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 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
2021-07-30 23:08:43 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) |
2021-07-30 23:11:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-30 23:12:14 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-30 23:14:41 +0200 | pesada | (~agua@2804:14c:8793:8e2f:4825:de59:6a63:adc7) (Ping timeout: 268 seconds) |
2021-07-30 23:15:30 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2021-07-30 23:15:55 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 268 seconds) |
2021-07-30 23:19:26 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds) |
2021-07-30 23:20:21 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-30 23:25:01 +0200 | ablutor | (~quassel@wasscher.com) |
2021-07-30 23:29:09 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-07-30 23:30:25 +0200 | fendor | (~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 +0200 | nckx | (~nckx@tobias.gr) |
2021-07-30 23:33:43 +0200 | pesada | (~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 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 256 seconds) |
2021-07-30 23:39:37 +0200 | Vajb | (~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 +0200 | theproffesor | (~theproffe@user/theproffesor) (Read error: Connection reset by peer) |
2021-07-30 23:44:55 +0200 | theproffesor | (~theproffe@2601:282:847f:8010::3a29) |
2021-07-30 23:46:42 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-30 23:49:09 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-30 23:49:12 +0200 | wroathe | (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 265 seconds) |
2021-07-30 23:50:03 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) |
2021-07-30 23:50:50 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-30 23:51:53 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-30 23:53:27 +0200 | gehmehgeh | (~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 +0200 | pesada | (~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 +0200 | Guest4 | (~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 +0200 | kuribas | (~user@ptr-25vy0i948b7pircazuk.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |