2021-11-20 00:00:05 +0100 | <hpc> | try querying the type of partially applied addition |
2021-11-20 00:00:09 +0100 | <hpc> | see what type it gives you |
2021-11-20 00:00:29 +0100 | <hpc> | and then just keep adding arguments |
2021-11-20 00:00:32 +0100 | yahb | (xsbot@user/mniip/bot/yahb) (Ping timeout: 268 seconds) |
2021-11-20 00:01:26 +0100 | <[itchyjunk]> | it tells me its add :: Num a => a -> a -> a |
2021-11-20 00:01:29 +0100 | max22- | (~maxime@2a01cb08833598007605f3bf70b72c1c.ipv6.abo.wanadoo.fr) |
2021-11-20 00:01:39 +0100 | <monochrom> | Yes. (+) has that type too. |
2021-11-20 00:01:54 +0100 | <monochrom> | But "2+2" is not parsed as "2 (+ 2)". |
2021-11-20 00:02:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-20 00:02:07 +0100 | <monochrom> | It is parsed as what I said. |
2021-11-20 00:02:46 +0100 | <pavonia> | :t 2 (+2) -- for extra confusion |
2021-11-20 00:02:47 +0100 | <lambdabot> | (Num a, Num ((a -> a) -> t)) => t |
2021-11-20 00:03:23 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-11-20 00:03:23 +0100 | <hpc> | :t 2 (+) 2 -- and certainly not this :D |
2021-11-20 00:03:24 +0100 | <lambdabot> | (Num a, Num t1, Num ((a -> a -> a) -> t1 -> t2)) => t2 |
2021-11-20 00:04:50 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2021-11-20 00:04:51 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 276 seconds) |
2021-11-20 00:04:54 +0100 | <[itchyjunk]> | ((+) 2) 2 so first i want to think about ((+) 2) part. here the type is (num -> num) and then for the ((+) 2)2 it then becomes (num->num)->num ? |
2021-11-20 00:05:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 00:06:08 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2021-11-20 00:06:13 +0100 | <pavonia> | No, just num |
2021-11-20 00:06:25 +0100 | yahb | (xsbot@user/mniip/bot/yahb) |
2021-11-20 00:06:31 +0100 | <pavonia> | The more arguments you apply, the less arrows |
2021-11-20 00:06:36 +0100 | BobFang1992 | (~textual@152.37.66.232) |
2021-11-20 00:07:22 +0100 | <hpc> | you can put all of these into ghci and test your own hypothesis, btw |
2021-11-20 00:07:26 +0100 | <[itchyjunk]> | oh right, the result of ((+) 2)2 is 4 which has a type num .. hmmm |
2021-11-20 00:07:31 +0100 | mimmy | (~mimmy@146.70.75.189) (Ping timeout: 256 seconds) |
2021-11-20 00:09:52 +0100 | <sm> | so then KILL is.... Keep It Lazy, Lummox ? |
2021-11-20 00:10:48 +0100 | <sm> | Keep It Lean, Loon ? |
2021-11-20 00:11:01 +0100 | <monochrom> | keep it lazy and lean. Hence, "OOM KILL" >:) |
2021-11-20 00:11:06 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-11-20 00:11:21 +0100 | wagle | (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-11-20 00:11:38 +0100 | <sm> | makes sense |
2021-11-20 00:11:48 +0100 | <monochrom> | the "lazy" part refers to overcommitment. As someone in #haskell-tw put it, "happy malloc" i.e. malloc always succeeds :) |
2021-11-20 00:11:53 +0100 | wagle | (~wagle@quassel.wagle.io) |
2021-11-20 00:12:52 +0100 | BobFang1992 | bobfang1992_ |
2021-11-20 00:13:02 +0100 | <hpc> | nah, malloc can return 0 sometimes |
2021-11-20 00:13:05 +0100 | <hpc> | just push to the stack instead |
2021-11-20 00:13:09 +0100 | <hpc> | /that/ never fails |
2021-11-20 00:14:04 +0100 | <monochrom> | "malloc can return 0 sometimes" is on the same calibre as "environment variables can be visible to other users sometimes". |
2021-11-20 00:14:05 +0100 | <awpr> | some allocators guarantee malloc success or abort |
2021-11-20 00:14:15 +0100 | favonia | (~favonia@user/favonia) |
2021-11-20 00:15:04 +0100 | <monochrom> | I mean, if you're on Solaris or something, and sufficiently old version or something, sure. |
2021-11-20 00:15:13 +0100 | <awpr> | the idea being that you probably can't do anything meaningful about a malloc failure anyway in 99% of software, so why include an extra opportunity for UB at every malloc call? |
2021-11-20 00:15:26 +0100 | <hpc> | i am basing this on malloc(3) |
2021-11-20 00:15:52 +0100 | <monochrom> | Oh, the envvar thing is also on some man page. |
2021-11-20 00:15:54 +0100 | <awpr> | yeah, the POSIX spec allows it to fail IIRC |
2021-11-20 00:16:38 +0100 | <monochrom> | There is still a difference between "the kernel can be configured to do this" and "statistically, how frequently?" |
2021-11-20 00:18:17 +0100 | <hpc> | if we're doing that, we can statistically remove almost every case of error handling |
2021-11-20 00:18:26 +0100 | <hpc> | because somewhere it's in a reliable tight loop |
2021-11-20 00:18:35 +0100 | <monochrom> | Besides, overcommitment and happy malloc is also mentioned on the same man page. |
2021-11-20 00:19:59 +0100 | <hpc> | overcommit is configurable at runtime |
2021-11-20 00:20:10 +0100 | <hpc> | this can probably go into -offtopic :P |
2021-11-20 00:20:29 +0100 | <awpr> | I must have misremembered something or transferred this property from the C++ allocator function to malloc, since I can't find a reference for malloc specifically being abort-or-succeed anywhere |
2021-11-20 00:21:13 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-20 00:23:06 +0100 | Cajun | (~Cajun@user/cajun) |
2021-11-20 00:23:44 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) |
2021-11-20 00:24:16 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) |
2021-11-20 00:24:54 +0100 | <[itchyjunk]> | wait, i think i got it. ((+) 2) 2. the (+) 2 part take 2 and returns a function num -> num so it looks like num -> (num -> num) and ((+)2)2 look like something that take two arguments and returns a num so num->num->num ? |
2021-11-20 00:25:06 +0100 | <monochrom> | Yes. |
2021-11-20 00:25:11 +0100 | <[itchyjunk]> | phew |
2021-11-20 00:25:29 +0100 | <monochrom> | A pretty mechanical rule. |
2021-11-20 00:27:12 +0100 | <unit73e> | newbies get all confused when ghc is saying "expected A but got C -> B" and that just means you're missing an argument lol |
2021-11-20 00:27:30 +0100 | <awpr> | there's a difference between the type of the "topmost function" being applied and the type of the whole expression. `2+2` is just `Int` (or any other numerical type), but within that expression, `(+)` is `Int -> Int -> Int` |
2021-11-20 00:27:44 +0100 | <[itchyjunk]> | unit73e, noted |
2021-11-20 00:28:15 +0100 | <Boarders_> | do any of you know the haddock syntax for linking to Data.List.foldl1'? |
2021-11-20 00:28:54 +0100 | <monochrom> | unit73e, sometimes the error message does include "perhaps wrong number of arguments" |
2021-11-20 00:29:14 +0100 | <awpr> | applying an additional argument means two things: one, the "topmost function" must accept one more argument, i.e. its type must have one more arrow; and two, the entire expression accepts one less argument than before, i.e. its type has one _less_ arrow |
2021-11-20 00:29:55 +0100 | <monochrom> | But there is a fundamental tension between error messages second-guessing beginner intentions and error messages second-guessing experienced intentions. |
2021-11-20 00:30:12 +0100 | <monochrom> | My unpopular stance is never second-guess. |
2021-11-20 00:30:39 +0100 | <awpr> | so if you have something like `(+) 2 :: Int -> Int` and apply that to one more argument, the whole expression's type has one less argument: `((+) 2) 2 :: Int` |
2021-11-20 00:30:41 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 00:30:46 +0100 | <monochrom> | Well, either that, or the compiler is so smart it should write the code and get rid of the erroneous human already. |
2021-11-20 00:31:23 +0100 | <hpc> | replace all human error with machine error |
2021-11-20 00:32:21 +0100 | <awpr> | but on the other hand, if you have `f 2`, then you know `f :: Int -> r` for some `r`; but if you apply one more argument `(f 2) 2`, then `f` must be `Int -> Int -> r2` for some other `r2`. (still ignoring that it could be other numeric types instead of `Int`) |
2021-11-20 00:33:23 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds) |
2021-11-20 00:33:31 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) |
2021-11-20 00:35:02 +0100 | acidjnk | (~acidjnk@2001:16b8:671e:6000:64a5:6a76:f3c4:2f23) (Ping timeout: 240 seconds) |
2021-11-20 00:35:20 +0100 | <monochrom> | I agree there is a confusion, but my attribution is the words "expected" and "inferred", encouraging beginners to second-guess how important it is to take those two words seriously. (Answer: Very unimportant.) |
2021-11-20 00:35:57 +0100 | <monochrom> | In this regard I agree with Hugs in just presenting two conflicting types without name-calling them. |
2021-11-20 00:36:49 +0100 | lbseale_ | (~ep1ctetus@user/ep1ctetus) |
2021-11-20 00:36:53 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-20 00:37:02 +0100 | connrs | (~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-20 00:37:19 +0100 | connrs | (~connrs@user/connrs) |
2021-11-20 00:37:21 +0100 | <hpc> | you have to think like the compiler with that sort of error message |
2021-11-20 00:37:54 +0100 | max22- | (~maxime@2a01cb08833598007605f3bf70b72c1c.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-11-20 00:38:20 +0100 | <monochrom> | I bet that experienced Haskellers don't care about "expected vs inferred" either. |
2021-11-20 00:38:47 +0100 | <hpc> | "expected" is "based on the information in the program so far, this is what type fits in this part of your code" |
2021-11-20 00:39:02 +0100 | <hpc> | and "inferred" is "this is what was found in this part of your code instead" |
2021-11-20 00:39:17 +0100 | <[itchyjunk]> | blah :: (a -> b) -> [a] -> [b]. blah takes 2 arguments, namely a function of type (a->b) and a list of type [a] and produces a list of type [b]. the function f :: a -> b takes an argument of type a and produces somethign of type b. so blah f :: [a] -> [b] , partial application of f on blah produces a new function blah f that takes an argument of type [a] (map will elements of type a) and returns something of type [b] (map with elements |
2021-11-20 00:39:17 +0100 | <[itchyjunk]> | of type b) ? |
2021-11-20 00:39:36 +0100 | <monochrom> | Yes. |
2021-11-20 00:39:56 +0100 | <[itchyjunk]> | okay i think i actually understand this then.. ;_; |
2021-11-20 00:40:11 +0100 | <awpr> | except with "list" instead of "map" in the last sentence |
2021-11-20 00:40:22 +0100 | <monochrom> | Ah I didn't read carefully heh |
2021-11-20 00:40:28 +0100 | <[itchyjunk]> | ah list! right list! |
2021-11-20 00:40:35 +0100 | <sm> | I see "expected" and "actual" here, did this change with ghc 9 ? |
2021-11-20 00:40:38 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 260 seconds) |
2021-11-20 00:40:51 +0100 | <awpr> | I remember it being "expected" and "actual" |
2021-11-20 00:41:06 +0100 | <geekosaur> | it's been "expected" and "actual" since ghc6.6 at least, I have no idea where "inferred" came from |
2021-11-20 00:41:07 +0100 | <monochrom> | Anyway, see how if you just follow the rules mechanically, if you forget that "intuition" and "understanding" is a thing, everything works. |
2021-11-20 00:41:10 +0100 | <hpc> | i remember it being "expected" and "the other thing" :P |
2021-11-20 00:41:27 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) (Remote host closed the connection) |
2021-11-20 00:41:36 +0100 | <monochrom> | Ah there was a time it said "inferred". |
2021-11-20 00:41:41 +0100 | <awpr> | I slightly thought "expected" meant "the type in negative position as part of a function type" and "actual" meant "the type in positive position in a function application" |
2021-11-20 00:42:12 +0100 | <geekosaur> | hm, maybe that means it did change in 9.x |
2021-11-20 00:42:12 +0100 | <geekosaur> | since I'm still on 8.10.7 |
2021-11-20 00:42:12 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-20 00:42:31 +0100 | <monochrom> | And I liked it that way because I just told myself "e for external, i for internal" as a simple and yet pretty effective model. |
2021-11-20 00:42:32 +0100 | <sm> | I look at expected and actual quite a bit, it seems to give better info than the Couldn't match type... line above |
2021-11-20 00:43:12 +0100 | <sm> | ie, Expected seems to show the specialised type, not a fully general one |
2021-11-20 00:43:29 +0100 | <monochrom> | I saw "actual" with GHC 8.10.7 just an hour ago. |
2021-11-20 00:43:47 +0100 | <sm> | eg: |
2021-11-20 00:43:47 +0100 | <sm> | • Couldn't match type ‘Screen’ with ‘GenericList Name V.Vector e0’ |
2021-11-20 00:43:47 +0100 | <sm> | Expected: List Name e0 |
2021-11-20 00:43:47 +0100 | <sm> | Actual: Screen |
2021-11-20 00:43:52 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-20 00:44:54 +0100 | <sm> | the Couldn't match type line also is harder to read because the order is not clear. I'm not sure why we shouldn't just remove it |
2021-11-20 00:45:41 +0100 | <hpc> | hmm, what about, say you wrote a type error in (f a b) |
2021-11-20 00:45:54 +0100 | <hpc> | expected: in (f _ b), _ :: A |
2021-11-20 00:45:59 +0100 | <hpc> | actual: a :: B |
2021-11-20 00:46:27 +0100 | <hpc> | plus or minus formatting |
2021-11-20 00:47:01 +0100 | Jing | (~hedgehog@2604:a840:3::1094) (Remote host closed the connection) |
2021-11-20 00:47:04 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-11-20 00:47:27 +0100 | <monochrom> | sm, having those 3 lines is only since 9.0 or 9.2, right? Because on 8.10 I get 2 lines: |
2021-11-20 00:47:30 +0100 | <monochrom> | > not "abc" |
2021-11-20 00:47:32 +0100 | <lambdabot> | error: |
2021-11-20 00:47:32 +0100 | <lambdabot> | • Couldn't match expected type ‘Bool’ with actual type ‘[Char]’ |
2021-11-20 00:47:32 +0100 | <lambdabot> | • In the first argument of ‘not’, namely ‘"abc"’ |
2021-11-20 00:47:40 +0100 | <monochrom> | err even one line |
2021-11-20 00:47:40 +0100 | Jing | (~hedgehog@2604:a840:3::1094) |
2021-11-20 00:47:48 +0100 | <sm> | I see, yes I expect it has been changing |
2021-11-20 00:48:09 +0100 | <sm> | maybe 9.4 will have elm/rust-level readability |
2021-11-20 00:48:29 +0100 | <awpr> | I've been doing most of my compiling on 8.10.7 still, and I thought expected/actual was familiar error message formatting for a long time |
2021-11-20 00:48:36 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2021-11-20 00:49:02 +0100 | <awpr> | could it be that it's omitted if the expected/actual types are no larger than the specific unification failure? |
2021-11-20 00:49:27 +0100 | <awpr> | > map not "abc" |
2021-11-20 00:49:28 +0100 | <lambdabot> | error: |
2021-11-20 00:49:29 +0100 | <lambdabot> | • Couldn't match type ‘Char’ with ‘Bool’ |
2021-11-20 00:49:29 +0100 | <lambdabot> | Expected type: [Bool] |
2021-11-20 00:49:57 +0100 | <awpr> | looks like it tried to print it there, at least |
2021-11-20 00:50:06 +0100 | lbseale_ | (~ep1ctetus@user/ep1ctetus) (Quit: Leaving) |
2021-11-20 00:50:56 +0100 | <monochrom> | Ah in that case 8.10.7 also gives 3 separate lines. |
2021-11-20 00:51:09 +0100 | <awpr> | oh, yeah, it looks like it merged them into one -- above, "Couldn't match _expected_ type ... with _actual_ type ..." |
2021-11-20 00:51:29 +0100 | <geekosaur> | my guess is it merges them when they'd say the same thing? |
2021-11-20 00:51:38 +0100 | <monochrom> | Yeah. |
2021-11-20 00:52:30 +0100 | <monochrom> | OK, not 'a' is a simple enough example that 9.2 also gives just one line, "Couldn't match expected type ‘Bool’ with actual type ‘Char’" |
2021-11-20 00:53:23 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2021-11-20 00:56:15 +0100 | Guest98 | (~Guest98@2601:547:902:5e80:3c6c:c3e3:11e0:2f8) |
2021-11-20 00:56:49 +0100 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2021-11-20 00:57:31 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) () |
2021-11-20 00:57:49 +0100 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) |
2021-11-20 00:57:53 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 00:58:47 +0100 | ouroboros_ | (~ouroboros@2804:14c:65e4:93f6::1001) |
2021-11-20 00:58:52 +0100 | tom_ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Remote host closed the connection) |
2021-11-20 00:59:34 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-11-20 00:59:35 +0100 | ouro_boros | (~ouroboros@2804:14c:65e4:93f6::1001) (Remote host closed the connection) |
2021-11-20 00:59:35 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: No Ping reply in 180 seconds.) |
2021-11-20 00:59:38 +0100 | averell | (~averell@user/averell) (Quit: .) |
2021-11-20 00:59:40 +0100 | m4lvin_ | (~m4lvin@w4eg.de) |
2021-11-20 00:59:54 +0100 | averell | (~averell@user/averell) |
2021-11-20 01:02:32 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-20 01:04:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-20 01:09:30 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 01:10:01 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-11-20 01:10:15 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-11-20 01:17:16 +0100 | evocatus | (~evocatus@213.193.2.105) (Quit: Leaving) |
2021-11-20 01:25:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 01:31:35 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
2021-11-20 01:32:18 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-11-20 01:37:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) |
2021-11-20 01:39:31 +0100 | bobfang1992_ | (~textual@152.37.66.232) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-11-20 01:40:22 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-11-20 01:52:58 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 01:52:59 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 01:54:51 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 01:55:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-20 01:55:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-20 01:55:35 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-20 01:57:27 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-20 01:58:37 +0100 | emf_ | (~emf@2620:10d:c090:400::5:5ceb) (Quit: emf_) |
2021-11-20 01:58:59 +0100 | emf | (~emf@2620:10d:c090:400::5:5ceb) |
2021-11-20 01:59:43 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 01:59:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-11-20 02:00:27 +0100 | Guest98 | (~Guest98@2601:547:902:5e80:3c6c:c3e3:11e0:2f8) (Quit: Client closed) |
2021-11-20 02:06:58 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-11-20 02:07:35 +0100 | emf | (~emf@2620:10d:c090:400::5:5ceb) (Ping timeout: 264 seconds) |
2021-11-20 02:10:48 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-11-20 02:13:44 +0100 | favonia | (~favonia@user/favonia) (Ping timeout: 268 seconds) |
2021-11-20 02:16:32 +0100 | Guest|35 | (~Guest|35@S010684948ccddec3.vf.shawcable.net) |
2021-11-20 02:18:02 +0100 | <Guest|35> | Can I install ghc on a macintosh with an m1 chip running monterey? |
2021-11-20 02:19:05 +0100 | <geekosaur> | 8.10.7 recommended and you'll need to point it at /opt/llvm |
2021-11-20 02:19:26 +0100 | <geekosaur> | 9.2.1 has a native codegen but some severe bugs were found post-release |
2021-11-20 02:20:02 +0100 | <geekosaur> | ghcup should work fine to install either |
2021-11-20 02:20:10 +0100 | <glguy> | Last time I tried I had some trouble where C libraries (openssl in my case) I wanted to use were using one architecture and GHC was compiling for the other |
2021-11-20 02:20:15 +0100 | favonia | (~favonia@user/favonia) |
2021-11-20 02:21:41 +0100 | <geekosaur> | I *think* most of that has been resolved, there were some aberrant uses of `arch` that inappropriately forced x86_64 builds |
2021-11-20 02:22:07 +0100 | <geekosaur> | also I think you need to find a native stack binary if you use that, or stack will try to build everything x86_64 |
2021-11-20 02:23:23 +0100 | <glguy> | OK,I'll have to give it a shot |
2021-11-20 02:23:26 +0100 | <glguy> | another* |
2021-11-20 02:23:49 +0100 | <Guest|35> | I don't mind whether it runs natively or not.. I have problems missing LLVM. I had further problems when i tried to install LLVM with home-brew. |
2021-11-20 02:23:53 +0100 | <geekosaur> | possibly get stack from https://gitlab.haskell.org/maerwald/stack/-/jobs/849239/artifacts/browse/.local/bin/ ? |
2021-11-20 02:24:36 +0100 | <geekosaur> | last I heard, a full working llvm is in /opt |
2021-11-20 02:24:50 +0100 | <geekosaur> | you just have to convince ghc to look there |
2021-11-20 02:27:01 +0100 | <glguy> | To get GHC to use my LLVM from homebrew I had to edit the lcc and opt keys in the ghc settings file |
2021-11-20 02:29:09 +0100 | favonia | (~favonia@user/favonia) (Ping timeout: 268 seconds) |
2021-11-20 02:29:13 +0100 | <sm> | interesting |
2021-11-20 02:29:58 +0100 | <dsal> | Guest|35: I'm running it fine out of nix |
2021-11-20 02:30:24 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) (Quit: gone to sleep. ZZZzzz…) |
2021-11-20 02:34:35 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 264 seconds) |
2021-11-20 02:36:29 +0100 | xyzaMan | (~TheMan@85.203.34.97) |
2021-11-20 02:38:30 +0100 | Guest|35 | (~Guest|35@S010684948ccddec3.vf.shawcable.net) (Quit: Ping timeout (120 seconds)) |
2021-11-20 02:51:23 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-11-20 02:53:18 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 02:53:54 +0100 | deadmarshal | (~deadmarsh@95.38.119.181) |
2021-11-20 02:55:21 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-20 02:58:39 +0100 | deadmarshal | (~deadmarsh@95.38.119.181) (Ping timeout: 256 seconds) |
2021-11-20 02:59:30 +0100 | xyzaMan | (~TheMan@85.203.34.97) (Quit: WeeChat 3.3) |
2021-11-20 03:02:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-20 03:02:29 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) |
2021-11-20 03:06:29 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-20 03:22:12 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-11-20 03:22:26 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-20 03:24:39 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-11-20 03:28:38 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-20 03:29:18 +0100 | econo | (uid147250@user/econo) |
2021-11-20 03:29:34 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 03:29:40 +0100 | Vajb | (~Vajb@85-76-10-195-nat.elisa-mobile.fi) |
2021-11-20 03:30:59 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-11-20 03:39:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-20 03:39:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-20 03:39:41 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-20 03:40:01 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2021-11-20 03:42:29 +0100 | alx741 | (~alx741@186.178.109.242) (Quit: alx741) |
2021-11-20 03:43:48 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-20 03:45:37 +0100 | xff0x | (~xff0x@2001:1a81:53ef:fb00:8923:f787:bbfb:445e) (Ping timeout: 268 seconds) |
2021-11-20 03:47:06 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:b29b:34ce:44e1:612b) |
2021-11-20 03:54:42 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 03:56:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 03:59:26 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-20 04:12:08 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 04:20:11 +0100 | slice | (~slice@user/slice) |
2021-11-20 04:22:38 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2021-11-20 04:29:48 +0100 | waleee | (~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-11-20 04:30:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-20 04:34:40 +0100 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
2021-11-20 04:35:36 +0100 | favonia | (~favonia@user/favonia) |
2021-11-20 04:36:48 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 04:39:24 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-11-20 04:41:08 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-20 04:50:42 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 04:52:50 +0100 | td_ | (~td@muedsl-82-207-238-169.citykom.de) (Ping timeout: 268 seconds) |
2021-11-20 04:54:31 +0100 | td_ | (~td@muedsl-82-207-238-028.citykom.de) |
2021-11-20 05:00:48 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 05:02:47 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-11-20 05:05:35 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-20 05:08:05 +0100 | takenobu | (uid459077@hampstead.irccloud.com) |
2021-11-20 05:09:49 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
2021-11-20 05:11:07 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-20 05:11:11 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 264 seconds) |
2021-11-20 05:23:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 05:25:06 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 05:26:27 +0100 | favonia | (~favonia@user/favonia) (Quit: Leaving) |
2021-11-20 05:29:57 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 05:30:49 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 05:35:37 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 05:38:01 +0100 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-11-20 05:47:33 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) |
2021-11-20 05:49:18 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-20 05:49:28 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 05:59:32 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 240 seconds) |
2021-11-20 06:08:51 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-11-20 06:18:36 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 06:20:01 +0100 | monochrom | (~trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-11-20 06:21:43 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-20 06:22:31 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2021-11-20 06:23:29 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-20 06:23:47 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 06:26:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 06:29:07 +0100 | bgamari | (~bgamari@64.223.235.131) (Remote host closed the connection) |
2021-11-20 06:29:26 +0100 | bgamari | (~bgamari@64.223.235.131) |
2021-11-20 06:32:11 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-11-20 06:32:20 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 06:36:28 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 06:36:45 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-11-20 06:41:21 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 06:42:40 +0100 | flukiluke | (~m-7humut@plum.alephc.xyz) (Remote host closed the connection) |
2021-11-20 06:44:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-11-20 06:45:20 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) (Quit: gone to sleep. ZZZzzz…) |
2021-11-20 06:52:56 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 06:55:24 +0100 | mbuf | (~Shakthi@171.61.241.64) |
2021-11-20 06:58:01 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 07:01:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-11-20 07:02:31 +0100 | BobFang1992 | (~textual@2a01:4b00:87fe:be00:5534:65fd:7:6614) |
2021-11-20 07:03:58 +0100 | CannabisIndica | (~herb@user/mesaboogie) |
2021-11-20 07:05:01 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-11-20 07:05:33 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-20 07:08:44 +0100 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) |
2021-11-20 07:10:49 +0100 | MidAutumnMoon6 | (~MidAutumn@user/midautumnmoon) (Ping timeout: 256 seconds) |
2021-11-20 07:10:55 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 07:15:26 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 07:16:50 +0100 | takenobu | (uid459077@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-20 07:27:23 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 07:27:59 +0100 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2021-11-20 07:28:01 +0100 | monochrom | (trebla@216.138.220.146) |
2021-11-20 07:31:47 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 07:32:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-11-20 07:33:56 +0100 | slice | (~slice@user/slice) (Quit: zzz) |
2021-11-20 07:33:59 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-20 07:34:03 +0100 | mvk | (~mvk@2607:fea8:5cc1:fa00::4702) (Quit: Going elsewhere) |
2021-11-20 07:34:44 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-20 07:40:54 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 07:44:53 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 07:49:21 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 07:52:59 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-11-20 07:53:53 +0100 | ishutin | (~ishutin@84-236-40-131.pool.digikabel.hu) (Ping timeout: 256 seconds) |
2021-11-20 07:55:17 +0100 | ishutin | (~ishutin@89-186-118-211.pool.digikabel.hu) |
2021-11-20 07:57:50 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 268 seconds) |
2021-11-20 08:00:00 +0100 | monochrom | (trebla@216.138.220.146) |
2021-11-20 08:06:11 +0100 | deadmarshal | (~deadmarsh@95.38.119.181) |
2021-11-20 08:09:51 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-11-20 08:09:51 +0100 | Vajb | (~Vajb@85-76-10-195-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-11-20 08:10:46 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-20 08:11:32 +0100 | mei | (~mei@user/mei) |
2021-11-20 08:17:15 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 08:18:23 +0100 | deadmarshal | (~deadmarsh@95.38.119.181) (Ping timeout: 264 seconds) |
2021-11-20 08:21:53 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 268 seconds) |
2021-11-20 08:22:10 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 08:25:46 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-11-20 08:26:55 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) |
2021-11-20 08:28:03 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-11-20 08:31:26 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-11-20 08:33:52 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-20 08:46:59 +0100 | Codaraxis__ | (~Codaraxis@user/codaraxis) |
2021-11-20 08:47:18 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 08:48:18 +0100 | vysn | (~vysn@user/vysn) |
2021-11-20 08:49:39 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 08:51:07 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2021-11-20 08:54:59 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 08:56:55 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 08:57:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 08:58:16 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 268 seconds) |
2021-11-20 09:03:31 +0100 | <jle`> | is there a ghc-pkg list that i can use within a cabal project? |
2021-11-20 09:04:36 +0100 | <jle`> | ah i guess i can cabal freeze |
2021-11-20 09:07:32 +0100 | BobFang1992 | (~textual@2a01:4b00:87fe:be00:5534:65fd:7:6614) (Quit: Textual IRC Client: www.textualapp.com) |
2021-11-20 09:08:24 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 09:08:58 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-20 09:10:23 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 09:15:22 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 260 seconds) |
2021-11-20 09:15:51 +0100 | jrm | (~jrm@156.34.187.65) (Quit: ciao) |
2021-11-20 09:16:09 +0100 | jrm | (~jrm@156.34.187.65) |
2021-11-20 09:20:35 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-20 09:23:50 +0100 | jmorris | (uid433911@hampstead.irccloud.com) |
2021-11-20 09:31:23 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 09:31:47 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-11-20 09:32:32 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 240 seconds) |
2021-11-20 09:33:38 +0100 | <Tisoxin> | Is there a project to implement anonymous sum types in Haskell (roc calls them „tags“: https://youtu.be/6qzWm_eoUXM?t=1008)? |
2021-11-20 09:34:23 +0100 | <Tisoxin> | I have already found compound-types, but that's not quite what i want |
2021-11-20 09:35:56 +0100 | <Tisoxin> | because I want to name constructors for better readibility |
2021-11-20 09:36:11 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-20 09:36:29 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) |
2021-11-20 09:41:58 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 09:48:20 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 09:51:35 +0100 | AndrejKarpathy | (~AndrejKar@182.64.9.106) |
2021-11-20 09:51:43 +0100 | <AndrejKarpathy> | Hi. |
2021-11-20 09:52:11 +0100 | <jle`> | AndrejKarpathy: hi :) |
2021-11-20 09:52:48 +0100 | <arahael> | I'm about to install haskell and cabal for a musl system (Alpine), any caveats I should be aware of? Shoudl I use the distro packages or ? |
2021-11-20 09:53:18 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 09:53:21 +0100 | <jle`> | AndrejKarpathy: your cars are very impressive, you must be very proud |
2021-11-20 09:53:46 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 268 seconds) |
2021-11-20 09:54:38 +0100 | <Lycurgus> | arahael, this musl https://en.wikipedia.org/wiki/Musl ? |
2021-11-20 09:54:59 +0100 | <arahael> | Lycurgus: Yes. |
2021-11-20 09:55:11 +0100 | <Lycurgus> | in general using distro pkgs with hs is a bad idea |
2021-11-20 09:55:15 +0100 | <AndrejKarpathy> | I had a question regarding the effects of Haskell code on the computational complexity of algorithms. Is there any significant change in it? I'm working on a small Haskell project that undertakes the handling of certain test cases on Codeforces. Thanks in advance. |
2021-11-20 09:55:22 +0100 | <arahael> | Lycurgus: Which is why I'm asking here. :) |
2021-11-20 09:55:28 +0100 | <Lycurgus> | probably manifestly so for alpine |
2021-11-20 09:55:34 +0100 | <AndrejKarpathy> | @Jle Thank you. I like the civic too |
2021-11-20 09:55:34 +0100 | <lambdabot> | Maybe you meant: pl let |
2021-11-20 09:55:58 +0100 | <arahael> | Lycurgus: Yeah? |
2021-11-20 09:56:38 +0100 | <Lycurgus> | yes by virtue of the principle of less use/exposure |
2021-11-20 09:56:55 +0100 | <Lycurgus> | -/eyes |
2021-11-20 09:56:56 +0100 | <jle`> | AndrejKarpathy: the "same" algorithms have the same complexities. but certain algorithsm can be easier or harder to write in haskell than in other languages, and superficial syntax similiaries can be misleading |
2021-11-20 09:57:38 +0100 | <arahael> | Lycurgus: I'll try ghcup. |
2021-11-20 09:58:05 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 09:58:34 +0100 | <Lycurgus> | AndrejKarpathy, yeah at the source level easier but as far as the actual thing more work than with a simple algol like lang |
2021-11-20 09:59:08 +0100 | <Lycurgus> | there are tools but with c you don't need em |
2021-11-20 09:59:21 +0100 | <AndrejKarpathy> | Alright. Perfect answers, thank you jle`and Lycurgus |
2021-11-20 09:59:48 +0100 | <arahael> | Lycurgus: Yeah, ghcup doesn't work. |
2021-11-20 10:00:16 +0100 | <arahael> | Lycurgus: sh: /root/.ghcup/bin/ghcup: not found |
2021-11-20 10:00:29 +0100 | <arahael> | Lycurgus: "_eghcup upgrade" failed! |
2021-11-20 10:01:50 +0100 | <Lycurgus> | arahael, ack |
2021-11-20 10:01:51 +0100 | <arahael> | Lycurgus: Looks like it's there but missing a whole bunch of libraries. |
2021-11-20 10:02:09 +0100 | <arahael> | Eg, libtinfo.so.6 is missing. |
2021-11-20 10:02:24 +0100 | chenjf | (~chenjf@104.208.72.114) |
2021-11-20 10:03:15 +0100 | chenjf | (~chenjf@104.208.72.114) (Client Quit) |
2021-11-20 10:03:17 +0100 | <AndrejKarpathy> | What is the Haskell community's collective outlook on Haskell being used as an official programming language in the competitive programming world? If possible, please mention the advantages and disadvantages of standardizing Haskell in accordance with competitive programming? |
2021-11-20 10:04:18 +0100 | dschrempf | (~dominik@62.240.134.78) |
2021-11-20 10:04:27 +0100 | arahael | hates competitive programming - it's basically ego-stroking. |
2021-11-20 10:05:37 +0100 | chenjf | (~chenjf@104.208.72.114) |
2021-11-20 10:07:15 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
2021-11-20 10:07:38 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-20 10:08:13 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) (Remote host closed the connection) |
2021-11-20 10:08:33 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) |
2021-11-20 10:10:20 +0100 | <arahael> | Though, I plan to do advent of code, I suppose that's competitive programming - but I tend to do that non-competitively. |
2021-11-20 10:14:17 +0100 | <Hecate> | AndrejKarpathy: there is no collective outlook because there is no single Haskell community |
2021-11-20 10:14:41 +0100 | <Hecate> | for example I'm certain the Russians will wholeheartedly agree that you should do Haskell for Competitive Programming |
2021-11-20 10:15:16 +0100 | <arahael> | Haskell's popular in Russia? |
2021-11-20 10:15:52 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 10:16:40 +0100 | chenjf | (~chenjf@104.208.72.114) (Remote host closed the connection) |
2021-11-20 10:16:57 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
2021-11-20 10:17:09 +0100 | <AndrejKarpathy> | All right. :] |
2021-11-20 10:17:32 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-20 10:18:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-20 10:19:03 +0100 | AndrejKarpathy | (~AndrejKar@182.64.9.106) (Quit: Client closed) |
2021-11-20 10:19:20 +0100 | <Hecate> | arahael: is Haskell even popular? ;) |
2021-11-20 10:19:20 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-11-20 10:19:38 +0100 | <Hecate> | but there is a Russian Haskellers community that exists and it's tightly-knit |
2021-11-20 10:19:46 +0100 | <arahael> | Hecate: If that's a matter of opinion, then I'd say it is. ;) |
2021-11-20 10:20:33 +0100 | <Hecate> | nah it's a matter of observing the real world |
2021-11-20 10:21:23 +0100 | <arahael> | Hecate: God gives us but one Real World Token. |
2021-11-20 10:21:47 +0100 | dschrempf | (~dominik@62.240.134.78) (Ping timeout: 256 seconds) |
2021-11-20 10:22:09 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) |
2021-11-20 10:30:12 +0100 | mbuf | (~Shakthi@171.61.241.64) (Quit: Leaving) |
2021-11-20 10:31:02 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 10:32:08 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-20 10:33:56 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) |
2021-11-20 10:34:44 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 10:37:05 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 256 seconds) |
2021-11-20 10:37:25 +0100 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 250 seconds) |
2021-11-20 10:38:07 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) |
2021-11-20 10:39:07 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-20 10:43:44 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds) |
2021-11-20 10:45:22 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 10:47:07 +0100 | dschrempf | (~dominik@62.240.134.78) |
2021-11-20 10:49:18 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 10:49:38 +0100 | slice | (~slice@user/slice) |
2021-11-20 10:51:54 +0100 | dschrempf | (~dominik@62.240.134.78) (Ping timeout: 260 seconds) |
2021-11-20 10:58:53 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-11-20 11:00:59 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 264 seconds) |
2021-11-20 11:05:27 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 11:10:07 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-11-20 11:10:14 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-20 11:13:56 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 11:15:17 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 11:15:35 +0100 | euouae- | (~euouae@user/euouae) |
2021-11-20 11:15:45 +0100 | <euouae-> | Hello what are some good benchmarking packages for speed and memory? |
2021-11-20 11:16:25 +0100 | <Hecate> | euouae-: https://hackage.haskell.org/package/tasty-bench |
2021-11-20 11:16:27 +0100 | <euouae-> | I'm reading https://chrisdone.com/posts/fast-haskell-c-parsing-xml/ which mentions the 'weigh' package for memory tracking |
2021-11-20 11:17:32 +0100 | <euouae-> | Hecate, thank you |
2021-11-20 11:20:06 +0100 | ubert | (~Thunderbi@p200300ecdf0ba279e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-11-20 11:20:51 +0100 | <euouae-> | Hecate, how can I use tasty-bench with stack instead of cabal? |
2021-11-20 11:21:44 +0100 | <euouae-> | Hecate nevermind me, I misread the instructions. It's like every other package. |
2021-11-20 11:22:18 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Ping timeout: 260 seconds) |
2021-11-20 11:23:27 +0100 | ubert | (~Thunderbi@p200300ecdf0ba279e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-11-20 11:24:45 +0100 | desantra | (~skykanin@user/skykanin) |
2021-11-20 11:25:55 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-11-20 11:27:59 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 264 seconds) |
2021-11-20 11:28:52 +0100 | <euouae-> | Actually, I don't understand how to write benchmarks with stack, `stack bench --help` doesn't have information on the package.yaml syntax and I can't find it in the docs either. |
2021-11-20 11:30:32 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-11-20 11:30:49 +0100 | <euouae-> | I guess I'll look up a popular package and see how they do it |
2021-11-20 11:32:41 +0100 | <Hecate> | euouae-: stack bench is just a shortcut to run the benchmarks stanza of your Cabal file, not write them |
2021-11-20 11:33:04 +0100 | <euouae-> | Hmmm so maybe I should `stack --help` and go from there |
2021-11-20 11:34:29 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-11-20 11:34:46 +0100 | <euouae-> | for example `hspec` seems to use stack but it doesn't have any benchmarks |
2021-11-20 11:34:56 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) |
2021-11-20 11:35:02 +0100 | <Hecate> | euouae-: `stack` is just a CLI tool to run builds, tests and benchmarks |
2021-11-20 11:35:21 +0100 | <Hecate> | learn how to make benchmarks, `stack` is just how you call them, and is interchangeable with `cabal` |
2021-11-20 11:35:56 +0100 | <euouae-> | But stack is using the files `package.yaml` and `stack.yaml` which cabal doesn't know about, and package.yaml is where you specify the unit tests |
2021-11-20 11:35:58 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-11-20 11:36:07 +0100 | <Hecate> | no |
2021-11-20 11:36:11 +0100 | <Hecate> | stack uses the cabal file |
2021-11-20 11:36:29 +0100 | <Hecate> | package.yaml is turned into *.cabal through the use of a tool called hpack, which stack uses |
2021-11-20 11:36:33 +0100 | <euouae-> | It generates a cabal file |
2021-11-20 11:36:49 +0100 | <Hecate> | stack.yaml is only here for dependency resolution, not calling tests and benchmarks |
2021-11-20 11:37:09 +0100 | <Hecate> | you should maybe read the Stack manual if you want to use it |
2021-11-20 11:37:16 +0100 | <euouae-> | OK so if I learn about cabal and how hpack works, I'll figure it out |
2021-11-20 11:37:27 +0100 | <euouae-> | right |
2021-11-20 11:37:31 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection) |
2021-11-20 11:40:05 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 11:45:05 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-20 11:47:14 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:b29b:34ce:44e1:612b) (Ping timeout: 268 seconds) |
2021-11-20 11:47:32 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) |
2021-11-20 11:48:29 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 11:50:49 +0100 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap) |
2021-11-20 11:51:10 +0100 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2021-11-20 11:51:56 +0100 | <maerwald> | arahael: ghcup should work on alpine |
2021-11-20 11:52:27 +0100 | <maerwald> | because ghcup binaries are built on alpine... |
2021-11-20 11:53:02 +0100 | <arahael> | maerwald: Ah, good to know, that probably means there's just a dependency or two it's missed. |
2021-11-20 11:53:39 +0100 | <maerwald> | well, I don't know the error |
2021-11-20 11:54:32 +0100 | <arahael> | maerwald: It's a minimal system, ghcup is literally the first thing that's added. |
2021-11-20 11:54:49 +0100 | <maerwald> | you need curl at least |
2021-11-20 11:56:12 +0100 | <arahael> | Yeah, I tried, found curl wasn't installed, instaleld that, and then now stuck, but I ahven't been trying hard as I'm a bit lazy today. |
2021-11-20 11:56:18 +0100 | <arahael> | It's missing the following libraries: |
2021-11-20 11:56:20 +0100 | <maerwald> | works here https://imgur.com/He0FQpE.png |
2021-11-20 11:56:32 +0100 | <arahael> | libtinfo.so.6, libnuma.so.1 |
2021-11-20 11:56:48 +0100 | slice | (~slice@user/slice) (Quit: zzz) |
2021-11-20 11:57:23 +0100 | <arahael> | I'm on alpine 3.14, though actually I should update just in case. |
2021-11-20 11:57:36 +0100 | <maerwald> | I still don't understand what exactly failed, you're only giving half the information |
2021-11-20 11:59:16 +0100 | <arahael> | There's two libraries that are missing on my system that's required by ghcup, and a bunch of symbols which, I assume, are provided by those libraries. |
2021-11-20 11:59:31 +0100 | <maerwald> | ghcup binary is static, it needs nothing |
2021-11-20 11:59:40 +0100 | <arahael> | Uh? That's weird, then. |
2021-11-20 12:00:03 +0100 | <arahael> | It's definintely dynamic here. |
2021-11-20 12:00:20 +0100 | <maerwald> | / # ldd ~/.ghcup/bin/ghcup |
2021-11-20 12:00:22 +0100 | <maerwald> | /lib/ld-musl-i386.so.1: /root/.ghcup/bin/ghcup: Not a valid dynamic program |
2021-11-20 12:00:34 +0100 | <arahael> | Yeah, that's what I'm running, and it's definitely dynamic. |
2021-11-20 12:00:47 +0100 | alx741 | (~alx741@186.178.109.242) |
2021-11-20 12:01:05 +0100 | <maerwald> | what's the checksum of the binary |
2021-11-20 12:01:09 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 12:01:29 +0100 | <arahael> | The sha256sum is... |
2021-11-20 12:02:13 +0100 | <arahael> | 5a3075337...2974c4a2. First and last 8 characters or so of the hash. |
2021-11-20 12:02:27 +0100 | <arahael> | More than that and the chance I make a typo becomes pretty high. :) |
2021-11-20 12:02:31 +0100 | <maerwald> | what's the architecture? |
2021-11-20 12:02:36 +0100 | <arahael> | aarm64 |
2021-11-20 12:02:47 +0100 | <arahael> | aarch64*. ARM 64, anyway. |
2021-11-20 12:02:48 +0100 | <maerwald> | well, yeah... there are no static binaries for that arch |
2021-11-20 12:03:03 +0100 | <arahael> | That explains the mystery! |
2021-11-20 12:03:19 +0100 | <maerwald> | because there's no GHC aarch64 musl bindist |
2021-11-20 12:04:04 +0100 | <maerwald> | and alpine repos don't have one either |
2021-11-20 12:04:10 +0100 | <maerwald> | no one ever bootstrapped one |
2021-11-20 12:04:37 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-11-20 12:04:38 +0100 | <euouae-> | Why is - -with-rtsopts="-A32m -T" giving me an error about -T" being an unknown option? |
2021-11-20 12:04:39 +0100 | <arahael> | Hmm. And I'm guessing that means I can't build static haskell applicatiosn on this either (unless I were to bootstrap one, and that's probably a bit over my head at the moment) |
2021-11-20 12:05:03 +0100 | <euouae-> | in package.yaml |
2021-11-20 12:05:57 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-11-20 12:06:03 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 12:06:37 +0100 | <arahael> | Looks like this is https://github.com/haskell/cabal/issues/6715 |
2021-11-20 12:06:55 +0100 | <arahael> | (Closed, but only because they want it solved by #6616) |
2021-11-20 12:07:01 +0100 | CiaoSen | (~Jura@p200300c95716ce002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-11-20 12:07:57 +0100 | <maerwald> | arahael: that's about normal linux arm |
2021-11-20 12:08:01 +0100 | <maerwald> | and that's already solved |
2021-11-20 12:08:35 +0100 | <arahael> | Ah, so it's the musl one that's peculiar, then. |
2021-11-20 12:08:44 +0100 | <maerwald> | musl is always peculiar |
2021-11-20 12:09:10 +0100 | <arahael> | Heh. |
2021-11-20 12:09:22 +0100 | <arahael> | Well, it sounds like I can make do with a dynamically linked one, at least. |
2021-11-20 12:09:27 +0100 | neurocyte0132889 | (~neurocyte@94.46.77.154) |
2021-11-20 12:09:27 +0100 | neurocyte0132889 | (~neurocyte@94.46.77.154) (Changing host) |
2021-11-20 12:09:27 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-11-20 12:09:32 +0100 | <arahael> | Just gotta find these libs - which isn't going to be today. (It's getting late) |
2021-11-20 12:09:49 +0100 | <arahael> | Would've been nice if it was static, but it's not a big deal. |
2021-11-20 12:11:03 +0100 | mimmy | (~mimmy@146.70.75.148) |
2021-11-20 12:13:13 +0100 | <arahael> | maerwald: I see your name pops up in a few of those tickets :) I'm happy to raise a bug report if you want, but not today - perhaps tomorrow? However, I'm really quite OK with finding these libs and bootstrapping it that way. I can probably just get all the required libs by installing the alpine ghc anyway. |
2021-11-20 12:14:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 12:14:51 +0100 | tv | (~tv@user/tv) (Read error: Connection reset by peer) |
2021-11-20 12:15:58 +0100 | mimmy | (~mimmy@146.70.75.148) (Ping timeout: 260 seconds) |
2021-11-20 12:16:24 +0100 | <maerwald> | there is no alpine ghc on aarch64 |
2021-11-20 12:18:08 +0100 | <arahael> | Ah, ha! |
2021-11-20 12:18:31 +0100 | <arahael> | Looks like that might be a bit tricky, then! Well, will check it out tomorrow. |
2021-11-20 12:18:32 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 12:18:36 +0100 | <arahael> | G'night. :) |
2021-11-20 12:19:38 +0100 | <arahael> | (And thanks) |
2021-11-20 12:22:32 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-20 12:27:06 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-11-20 12:29:13 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) |
2021-11-20 12:31:19 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-20 12:32:01 +0100 | euouae- | (~euouae@user/euouae) (Quit: ) |
2021-11-20 12:32:47 +0100 | tv | (~tv@user/tv) |
2021-11-20 12:35:12 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) |
2021-11-20 12:36:16 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-11-20 12:38:00 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-11-20 12:38:47 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-11-20 12:42:19 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-11-20 12:42:20 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-20 12:49:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-11-20 12:50:05 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-11-20 12:50:54 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 12:53:55 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-11-20 12:57:51 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 13:02:34 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-20 13:06:18 +0100 | sydddddd | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Quit: Lost terminal) |
2021-11-20 13:07:12 +0100 | Nrmncr | (~Neuromanc@user/neuromancer) |
2021-11-20 13:11:06 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 265 seconds) |
2021-11-20 13:12:58 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-20 13:13:35 +0100 | jmorris | (uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-20 13:18:12 +0100 | mimmy | (~mimmy@146.70.75.148) |
2021-11-20 13:21:20 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 13:22:33 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-11-20 13:24:03 +0100 | mimmy | (~mimmy@146.70.75.148) (Ping timeout: 268 seconds) |
2021-11-20 13:24:56 +0100 | Techcable | (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in) |
2021-11-20 13:26:13 +0100 | Techcable | (~Techcable@168.235.93.147) |
2021-11-20 13:27:55 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-20 13:27:59 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) (Ping timeout: 264 seconds) |
2021-11-20 13:31:27 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 268 seconds) |
2021-11-20 13:34:41 +0100 | monochrom | (~trebla@216.138.220.146) |
2021-11-20 13:38:44 +0100 | Everything | (~Everythin@37.115.210.35) |
2021-11-20 13:38:58 +0100 | CiaoSen | (~Jura@p200300c95716ce002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-11-20 13:40:08 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) |
2021-11-20 13:44:48 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2021-11-20 13:46:28 +0100 | amk | (~amk@109.255.169.126) (Remote host closed the connection) |
2021-11-20 13:46:38 +0100 | FragByte | (~christian@user/fragbyte) |
2021-11-20 13:46:39 +0100 | amk | (~amk@109.255.169.126) |
2021-11-20 13:48:10 +0100 | fabfianda | (~fabfianda@net-93-148-114-144.cust.dsl.teletu.it) |
2021-11-20 13:48:15 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-11-20 13:51:11 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds) |
2021-11-20 13:52:30 +0100 | fabfianda | (~fabfianda@net-93-148-114-144.cust.dsl.teletu.it) (Ping timeout: 260 seconds) |
2021-11-20 13:53:34 +0100 | fabfianda | (~fabfianda@mob-5-90-247-119.net.vodafone.it) |
2021-11-20 13:56:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 13:57:35 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 13:57:40 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
2021-11-20 14:07:44 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) |
2021-11-20 14:08:19 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 14:12:19 +0100 | sagax | (~sagax_nb@user/sagax) |
2021-11-20 14:18:55 +0100 | __monty__ | (~toonn@user/toonn) |
2021-11-20 14:19:00 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-20 14:19:36 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-11-20 14:23:22 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 260 seconds) |
2021-11-20 14:25:02 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) (Remote host closed the connection) |
2021-11-20 14:25:20 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:cc14:8453:5a9c:d44b) |
2021-11-20 14:25:33 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 14:27:02 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 240 seconds) |
2021-11-20 14:31:11 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…) |
2021-11-20 14:34:48 +0100 | fabfianda | (~fabfianda@mob-5-90-247-119.net.vodafone.it) (Read error: Connection reset by peer) |
2021-11-20 14:34:57 +0100 | fabfianda | (~fabfianda@net-93-148-114-144.cust.vodafonedsl.it) |
2021-11-20 14:42:48 +0100 | jkaye | (~jkaye@216.53.205.34) |
2021-11-20 14:43:01 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 14:45:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 14:46:37 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2021-11-20 14:48:22 +0100 | mei | (~mei@user/mei) (Quit: mei) |
2021-11-20 14:49:46 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds) |
2021-11-20 14:49:52 +0100 | mei | (~mei@user/mei) |
2021-11-20 14:54:20 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 14:56:04 +0100 | mimmy | (~mimmy@146.70.75.149) |
2021-11-20 14:57:23 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) |
2021-11-20 14:59:01 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 14:59:59 +0100 | euouae | (~euouae@user/euouae) |
2021-11-20 15:00:32 +0100 | <euouae> | Hello how can I memoize the function (a -> a) -> a -> [a] given by [x, f x, f $ f x, f $ f $ f x, ...] |
2021-11-20 15:00:37 +0100 | Xnuk | (~xnuk@vultr.xnu.kr) |
2021-11-20 15:00:43 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 15:00:59 +0100 | mimmy | (~mimmy@146.70.75.149) (Ping timeout: 264 seconds) |
2021-11-20 15:01:37 +0100 | dschrempf | (~dominik@62.240.134.78) |
2021-11-20 15:01:38 +0100 | <hololeap> | euouae: you could use the monad-memo package |
2021-11-20 15:02:07 +0100 | <euouae> | hm, that looks nicer than the memoize package, which has very little docs |
2021-11-20 15:02:25 +0100 | dschrempf | (~dominik@62.240.134.78) (Client Quit) |
2021-11-20 15:02:29 +0100 | <hololeap> | I've used it before. you can also roll your own pretty easily |
2021-11-20 15:04:00 +0100 | <hololeap> | but you will necessarily end up with something that looks like: (a -> m a) -> a -> m [a] |
2021-11-20 15:05:12 +0100 | gg | (~gg@2a01:e0a:819:1510:8568:3ca4:33bc:8c5b) (Ping timeout: 268 seconds) |
2021-11-20 15:08:32 +0100 | viole | (~viole@user/viole) (Ping timeout: 240 seconds) |
2021-11-20 15:09:29 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-11-20 15:09:58 +0100 | <euouae> | thanks |
2021-11-20 15:10:22 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 15:12:51 +0100 | <euouae> | If I have a vector of N elements and I'd like to iterate over all k-tuples with elements fron that vector, how can I do it without building a vector of N^k elements? |
2021-11-20 15:13:08 +0100 | <euouae> | One way is by using indices, maybe that's it? |
2021-11-20 15:14:03 +0100 | Xnuk | (~xnuk@vultr.xnu.kr) (Remote host closed the connection) |
2021-11-20 15:14:51 +0100 | <hpc> | you just make the list of tuples and loop over it |
2021-11-20 15:15:11 +0100 | <euouae> | I'm assuming N,k large |
2021-11-20 15:15:14 +0100 | <hpc> | the whole list won't be in memory at once unless you need all of it at the same time, or hold onto a reference to it |
2021-11-20 15:15:25 +0100 | <hpc> | a list is just a loop waiting to happen :D |
2021-11-20 15:15:44 +0100 | <euouae> | I don't understand, can it really be true? |
2021-11-20 15:15:59 +0100 | <hpc> | > [1..] -- unless you think lambdabot has infinite memory, it must be true :D |
2021-11-20 15:16:01 +0100 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
2021-11-20 15:16:13 +0100 | <hpc> | laziness in action |
2021-11-20 15:16:25 +0100 | <euouae> | You're saying I can have e.g. let xs = map f [1..n], and then you can loop over k-tuples and what is the space/time analysis |
2021-11-20 15:17:33 +0100 | kuribas | (~user@ptr-25vy0i85dt12hx5mopu.18120a2.ip6.access.telenet.be) |
2021-11-20 15:17:54 +0100 | <euouae> | I'm not convinced :P |
2021-11-20 15:17:58 +0100 | <hpc> | as long as you write it so there's no lingering references to parts of the list you have already looped over, it will be f*n |
2021-11-20 15:18:19 +0100 | <euouae> | but the list is looped over k elements |
2021-11-20 15:18:35 +0100 | <euouae> | e.g. [g a b c d ... z | a <- xs, b <- xs, ... z <- xs] |
2021-11-20 15:19:03 +0100 | <euouae> | so up until the very last few iterations, all elements are needed, right? |
2021-11-20 15:19:03 +0100 | <hpc> | oh, i was misreading what xs was there |
2021-11-20 15:19:22 +0100 | <hpc> | all elements of xs, sure |
2021-11-20 15:19:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-20 15:19:33 +0100 | notzmv | (~zmv@user/notzmv) |
2021-11-20 15:19:42 +0100 | <hpc> | but that fits in memory anyway, since that's a precondition to your question |
2021-11-20 15:20:16 +0100 | <euouae> | right. oh yeah. but [ g ...] is an N^k list. |
2021-11-20 15:20:20 +0100 | <hpc> | [g a b ...] will not all be in memory at once unless you hold onto a reference to it |
2021-11-20 15:20:31 +0100 | <euouae> | Oh, I see! |
2021-11-20 15:20:48 +0100 | <euouae> | Very nice, thanks |
2021-11-20 15:21:05 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-20 15:22:40 +0100 | <kuribas> | I wish more libraries would use abstractions such as monad, aplicative, (pro)functor, etc... |
2021-11-20 15:23:26 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-20 15:23:42 +0100 | <kuribas> | Looking at graphql libraries, the choice is either: a dynamically typed library following the javascript model, a fancy type level library (alla servant), and even more crazy, a library that uses your database schema as the API. |
2021-11-20 15:24:23 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-11-20 15:24:38 +0100 | <Lycurgus> | speaking of which, does impredication in 9 break much stuff or it can easily be turned off to be 8 like? |
2021-11-20 15:24:52 +0100 | <geekosaur> | it defaults off |
2021-11-20 15:24:59 +0100 | <Lycurgus> | ah |
2021-11-20 15:25:06 +0100 | <kuribas> | What does impredication allow? |
2021-11-20 15:25:13 +0100 | <geekosaur> | it's just a fixed ImpredicativeTypes, which was always a hack before that |
2021-11-20 15:26:04 +0100 | <kuribas> | Does it mean you can return polymorphic functions from a function? |
2021-11-20 15:27:16 +0100 | geekosaur | is actually not sure, this goes beyond his small understanding of type theory |
2021-11-20 15:27:40 +0100 | <geekosaur> | I think it allows inference of forall-ed types |
2021-11-20 15:27:41 +0100 | <Franciman> | kuribas: it allows |
2021-11-20 15:27:44 +0100 | <Franciman> | \x. x x |
2021-11-20 15:27:46 +0100 | <Franciman> | to be well typed |
2021-11-20 15:27:59 +0100 | <Franciman> | but you can never use it :P except for applying it to id |
2021-11-20 15:28:25 +0100 | <geekosaur> | to an extent at least, since ghc's type inference doesn't really support rank-2 polymorphism and rank >2 is undecidable |
2021-11-20 15:28:37 +0100 | <Franciman> | yes you can return \forall x. x -> y |
2021-11-20 15:29:04 +0100 | <kuribas> | I don't care about infering rank-2 or type extensions. |
2021-11-20 15:29:34 +0100 | acidjnk | (~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 260 seconds) |
2021-11-20 15:29:43 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-11-20 15:35:39 +0100 | <hololeap> | I care about your bear |
2021-11-20 15:35:59 +0100 | mimmy | (~mimmy@146.70.75.150) |
2021-11-20 15:36:02 +0100 | <kuribas> | hololeap: I don't have a bear... |
2021-11-20 15:36:05 +0100 | <kuribas> | I have cat though |
2021-11-20 15:36:17 +0100 | <hololeap> | close enough |
2021-11-20 15:36:38 +0100 | jkaye | (~jkaye@216.53.205.34) (Ping timeout: 260 seconds) |
2021-11-20 15:39:23 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-11-20 15:39:34 +0100 | kupi | (uid212005@hampstead.irccloud.com) |
2021-11-20 15:39:57 +0100 | <euouae> | Suppose I want the functionality `lookup x xs` to be fast, as well as `add x xs` and `remove x xs`. What data structure should I be using? Hash table? |
2021-11-20 15:40:19 +0100 | <euouae> | the adds won't be many, but there will be a lot of lookups |
2021-11-20 15:40:46 +0100 | <euouae> | and there will be a lot of "modify" so to speak, I basically store (x,y) values where x is used for lookup and y is updated |
2021-11-20 15:41:46 +0100 | <euouae> | IntMap would do, x is an int |
2021-11-20 15:41:47 +0100 | fabfianda | (~fabfianda@net-93-148-114-144.cust.vodafonedsl.it) (Ping timeout: 264 seconds) |
2021-11-20 15:41:53 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-11-20 15:42:03 +0100 | slice | (~slice@user/slice) |
2021-11-20 15:42:12 +0100 | <geekosaur> | if x is an Int you probably want IntMap, yeh |
2021-11-20 15:42:14 +0100 | fabfianda | (~fabfianda@mob-5-90-247-119.net.vodafone.it) |
2021-11-20 15:43:10 +0100 | dsrt^ | (~dsrt@68.101.63.101) (Ping timeout: 260 seconds) |
2021-11-20 15:43:31 +0100 | slice | (~slice@user/slice) (Client Quit) |
2021-11-20 15:43:39 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 15:43:51 +0100 | gustik | (~gustik@2a01:c844:240a:de20:3606:7339:bc88:b5f5) |
2021-11-20 15:45:53 +0100 | <hololeap> | vector might make sense too |
2021-11-20 15:46:29 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-11-20 15:46:31 +0100 | cheater | (~Username@user/cheater) |
2021-11-20 15:46:56 +0100 | <euouae> | I'm going to write something cool and share soon |
2021-11-20 15:48:11 +0100 | mimmy | (~mimmy@146.70.75.150) (Ping timeout: 256 seconds) |
2021-11-20 15:50:32 +0100 | pwug | (~pwug@user/pwug) (Remote host closed the connection) |
2021-11-20 15:51:27 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-11-20 15:52:24 +0100 | mimmy | (~mimmy@146.70.75.148) |
2021-11-20 15:52:38 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 15:54:10 +0100 | <zincy> | Does anyone want to look over my code and help me connect two Mealy machines? https://gist.github.com/therewillbecode/22ad270985e3970f4d08444afdad704f |
2021-11-20 15:54:24 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2021-11-20 15:55:51 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2021-11-20 15:56:05 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-11-20 15:56:58 +0100 | max22- | (~maxime@2a01cb08833598001ac225a432e05a7f.ipv6.abo.wanadoo.fr) |
2021-11-20 15:57:10 +0100 | mimmy | (~mimmy@146.70.75.148) (Ping timeout: 260 seconds) |
2021-11-20 15:57:23 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 15:58:07 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-11-20 15:59:32 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-11-20 15:59:54 +0100 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Ping timeout: 260 seconds) |
2021-11-20 16:00:40 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-11-20 16:05:16 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-11-20 16:05:47 +0100 | <euouae> | Here it is, https://paste.tomsmeding.com/rQEcSSn0 |
2021-11-20 16:07:02 +0100 | <euouae> | maybe I should call it minimalRepresentatives |
2021-11-20 16:08:50 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 16:12:06 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-11-20 16:16:23 +0100 | mimmy | (~mimmy@146.70.75.150) |
2021-11-20 16:17:36 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-20 16:17:49 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-11-20 16:19:09 +0100 | <int-e> | > M.assocs . M.fromListWith min . map ((`mod` 2) &&& id) $ [100,200,301,401] |
2021-11-20 16:19:11 +0100 | <lambdabot> | [(0,100),(1,301)] |
2021-11-20 16:20:48 +0100 | <int-e> | euouae: `fromListWith` + `map` can express your `aux` |
2021-11-20 16:21:48 +0100 | <euouae> | int-e nice! let me think about it |
2021-11-20 16:22:48 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-11-20 16:23:40 +0100 | gg | (~gg@88.160.100.84) |
2021-11-20 16:23:53 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-20 16:23:59 +0100 | serg | (~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-20 16:26:34 +0100 | <hololeap> | euouae: one simple change would be to replace your case block with: let y = f x in aux f xs $ IntMap.insertWith min y x m |
2021-11-20 16:27:26 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds) |
2021-11-20 16:28:17 +0100 | <serg> | Hi. I have data Expr a = ... I want a Show instance for a = Int. I write instance Show (Expr Int) where but I get a error: Int is not a type variable. True. Can I have a Show instance for Expr Int? |
2021-11-20 16:29:27 +0100 | <hololeap> | serg: wouldn't you want Show a => Show (Expr a) ? |
2021-11-20 16:29:41 +0100 | <hololeap> | why limit it to Int? |
2021-11-20 16:30:04 +0100 | <janus> | % data Expr a |
2021-11-20 16:30:04 +0100 | <yahb> | janus: type role Expr phantom; type Expr :: forall {k}. k -> *; data Expr a |
2021-11-20 16:30:20 +0100 | <janus> | % :set -XFlexibleInstances |
2021-11-20 16:30:20 +0100 | <yahb> | janus: |
2021-11-20 16:30:30 +0100 | <euouae> | How can I refer to the constructor of some field in case of ambiguous name? |
2021-11-20 16:30:36 +0100 | <janus> | % instance Show (Expr a) where |
2021-11-20 16:30:37 +0100 | <yahb> | janus: ; <interactive>:61:10: warning: [-Wmissing-methods]; * No explicit implementation for; either `showsPrec' or `show'; * In the instance declaration for `Show (Expr a)' |
2021-11-20 16:30:41 +0100 | <euouae> | e.g. I have both `area` as a constructor and as a function |
2021-11-20 16:31:00 +0100 | <euouae> | ah -- nevermind me |
2021-11-20 16:31:03 +0100 | <hololeap> | euouae: simply put, you can't |
2021-11-20 16:31:15 +0100 | <serg> | This means I have to write show for every a not only Int? |
2021-11-20 16:31:25 +0100 | <janus> | % instance Show (Expr Int) where |
2021-11-20 16:31:25 +0100 | <yahb> | janus: ; <interactive>:62:10: error:; * Overlapping instances for Show (Expr Int) arising from a use of `GHC.Show.$dmshowsPrec'; Matching instances:; instance Show (Expr Int) -- Defined at <interactive>:62:10; instance [safe] forall k (a :: k). Show (Expr a) -- Defined at <interactive>:61:10; * In the expression: GHC.Show.$dmshowsPrec @(Expr Int); In an equation for `showsPre |
2021-11-20 16:31:26 +0100 | <hololeap> | serg: no, just derive it |
2021-11-20 16:31:57 +0100 | <hololeap> | data Expr a = ... deriving (Show, ...) |
2021-11-20 16:32:00 +0100 | <int-e> | % :q |
2021-11-20 16:32:00 +0100 | <yahb> | int-e: |
2021-11-20 16:32:36 +0100 | <serg> | I know. I wanted to exercise. So meaning of Show a => is every a in Expr a has Show instance too? |
2021-11-20 16:32:49 +0100 | <hololeap> | right |
2021-11-20 16:32:58 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) (Quit: -) |
2021-11-20 16:33:08 +0100 | <serg> | And FlexibleInstances of janus? |
2021-11-20 16:33:12 +0100 | <geekosaur> | "if there is a Show instance for a, then the Show instance for (Expr a) is …" |
2021-11-20 16:33:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
2021-11-20 16:33:24 +0100 | <int-e> | % data FooBar a = Foo a | Bar |
2021-11-20 16:33:25 +0100 | <yahb> | int-e: |
2021-11-20 16:34:50 +0100 | <hololeap> | at some point when writing show or showsPrec for `Expr a`, you will inevitably be calling show or showsPrec for `a` |
2021-11-20 16:35:14 +0100 | <int-e> | % instance Show a => Show (FooBar a) where show (Foo a) = "a Foo holding a " ++ show a; show Bar = "a Bar holding nothing" |
2021-11-20 16:35:14 +0100 | <yahb> | int-e: |
2021-11-20 16:35:16 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-11-20 16:35:18 +0100 | <hololeap> | thus `a` needs to have a Show instance |
2021-11-20 16:35:21 +0100 | <int-e> | % Foo Nothing |
2021-11-20 16:35:22 +0100 | <yahb> | int-e: a Foo holding a Nothing |
2021-11-20 16:36:00 +0100 | <int-e> | % Foo (Foo Bar) |
2021-11-20 16:36:00 +0100 | <yahb> | int-e: a Foo holding a a Foo holding a a Bar holding nothing |
2021-11-20 16:36:15 +0100 | <int-e> | Hah. |
2021-11-20 16:36:32 +0100 | dsrt^ | (~dsrt@68.101.63.101) |
2021-11-20 16:36:35 +0100 | <janus> | what is the motivation for having data constructors here? |
2021-11-20 16:36:57 +0100 | acidjnk_new | (~acidjnk@2001:16b8:67ca:f700:55fd:e2e5:a98b:cf1a) |
2021-11-20 16:37:10 +0100 | <int-e> | me? just having some fun |
2021-11-20 16:37:57 +0100 | <janus> | right right, just wanted to make sure i wasn't missing anything. seemed to me like the question was not concerned with data |
2021-11-20 16:38:01 +0100 | <serg> | I think I understand. show inside show for Expr is a different show. |
2021-11-20 16:38:15 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 16:38:45 +0100 | <serg> | but original solution works with flexibleinstances |
2021-11-20 16:39:24 +0100 | <janus> | but i think the question is if that is really want you want. but since this is an exercise i guess the requirements cannot be pinned down |
2021-11-20 16:39:46 +0100 | <serg> | is flexibleinstances bad? |
2021-11-20 16:39:55 +0100 | chomwitt | (~chomwitt@ppp-94-67-202-36.home.otenet.gr) |
2021-11-20 16:40:40 +0100 | <geekosaur> | not in and of itself. but using it for this is something of a smell |
2021-11-20 16:40:44 +0100 | <int-e> | Nah, FlexibleInstances is benign. UndecidableInstances is benign if your code compiles. Anything overlapping is a road to hell, where incoherent instances live. |
2021-11-20 16:41:25 +0100 | <janus> | benign also according to diehl http://dev.stephendiehl.com/hask/#classes |
2021-11-20 16:41:39 +0100 | <int-e> | Yeah I wonder why FlexibleInstances would be required for something simple like this. |
2021-11-20 16:41:46 +0100 | rusty | (~rustyboy@82.77.237.221) |
2021-11-20 16:41:54 +0100 | <geekosaur> | just because haskell98/2010 doesn't spec it |
2021-11-20 16:42:14 +0100 | <serg> | Is meaning of flexibleinstances only Show instance for Expr a for some a? |
2021-11-20 16:42:21 +0100 | <geekosaur> | "must be of the form T a b c where a, b, c are type variables" |
2021-11-20 16:43:01 +0100 | <int-e> | if you have instance (Show a) => Show (Expr a) where ... then that doesn't require FlexibleInstances |
2021-11-20 16:43:09 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-20 16:43:12 +0100 | <int-e> | though enabling FlexibleInstances won't hurt of course |
2021-11-20 16:43:38 +0100 | <serg> | this works: instance Show a => Show (Expr a) where show (Lit a) = show a ... |
2021-11-20 16:44:12 +0100 | <serg> | I think I understand. Thank you. |
2021-11-20 16:44:41 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) |
2021-11-20 16:46:21 +0100 | serg | (~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1) |
2021-11-20 16:48:01 +0100 | <janus> | where can a read more about how templateHaskell causes more module invalidation than w/o TH? |
2021-11-20 16:48:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-20 16:50:47 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 264 seconds) |
2021-11-20 16:51:08 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 16:52:50 +0100 | <euouae> | A file contains this data, "Just [(0,Triangle {a = Point {x = 0, y = 0}, b = Point {x = 0, y = 0}, c = Point {x = 0, y = 0}})]\n" how can I read it back into a variable? |
2021-11-20 16:53:06 +0100 | <euouae> | I've tried `read <$> f :: IO (Maybe (Int, [Triangle]))` but it's not working out |
2021-11-20 16:53:17 +0100 | <euouae> | Also tried with `return`, but that didn't work out either |
2021-11-20 16:55:32 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 240 seconds) |
2021-11-20 16:56:16 +0100 | <janus> | % newtype A = A Int deriving (Show, Read) |
2021-11-20 16:56:16 +0100 | <yahb> | janus: |
2021-11-20 16:56:19 +0100 | <janus> | % read (show (A 1)) |
2021-11-20 16:56:19 +0100 | <yahb> | janus: *** Exception: Prelude.read: no parse |
2021-11-20 16:57:41 +0100 | <int-e> | % read (show (A 1)) :: A |
2021-11-20 16:57:41 +0100 | <yahb> | int-e: A 1 |
2021-11-20 16:58:07 +0100 | <janus> | ooh it is type defaulting :O omg |
2021-11-20 16:58:10 +0100 | <int-e> | (it's ghci with extended defaulting rules... defaults to ()) |
2021-11-20 16:58:34 +0100 | <int-e> | % read "A 1" :: () |
2021-11-20 16:58:34 +0100 | <yahb> | int-e: *** Exception: Prelude.read: no parse |
2021-11-20 16:58:35 +0100 | <euouae> | I recall doing something like `((,) <*> f <$> g) x y` to get (f x, g y)... |
2021-11-20 16:58:39 +0100 | <euouae> | But I can't get it to work, is that wrong? |
2021-11-20 16:59:10 +0100 | <int-e> | ((,) <*> f <$> g) x is (f x, g x) |
2021-11-20 16:59:18 +0100 | <janus> | euouae: are you using the same deriving strategy for Read and Show? |
2021-11-20 16:59:24 +0100 | <euouae> | janus yeah |
2021-11-20 16:59:28 +0100 | <zincy> | With the Machines library how do you express a bidirectional relationship between machines. For example machine A writes output which updates machine B but depending on the state of machine B, machine A might need to be updated. |
2021-11-20 16:59:40 +0100 | <int-e> | :t curry (?f *** ?g) |
2021-11-20 16:59:41 +0100 | <lambdabot> | (?f::a -> c, ?g::b -> c') => a -> b -> (c, c') |
2021-11-20 16:59:42 +0100 | <euouae> | int-e oh nice |
2021-11-20 17:00:05 +0100 | <euouae> | That's /actually/ what I need |
2021-11-20 17:00:23 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-20 17:00:26 +0100 | <int-e> | :t f &&& g |
2021-11-20 17:00:27 +0100 | <lambdabot> | (Arrow a, FromExpr (a b c), FromExpr (a b c')) => a b (c, c') |
2021-11-20 17:00:39 +0100 | <int-e> | :t id . (f &&& g) |
2021-11-20 17:00:40 +0100 | <lambdabot> | (Show a, FromExpr c, FromExpr c') => a -> (c, c') |
2021-11-20 17:00:56 +0100 | <int-e> | oh, duh |
2021-11-20 17:01:00 +0100 | <int-e> | :t id . (?f &&& ?g) |
2021-11-20 17:01:01 +0100 | <lambdabot> | (?f::a -> c, ?g::a -> c') => a -> (c, c') |
2021-11-20 17:02:15 +0100 | <euouae> | `fromListwith min $ map ((,) <*> f <$> id) xs` is what you propose int-e I believe |
2021-11-20 17:02:32 +0100 | mimmy | (~mimmy@146.70.75.150) (Ping timeout: 240 seconds) |
2021-11-20 17:02:40 +0100 | <int-e> | euouae: yeah I used &&& earlier |
2021-11-20 17:04:43 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:3961:f854:3883:a1b9) |
2021-11-20 17:05:47 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 264 seconds) |
2021-11-20 17:05:51 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 17:08:02 +0100 | <euouae> | I'm getting it wrong because things like `((,) <*> (1+) <$> Just) 1` fail |
2021-11-20 17:08:07 +0100 | <euouae> | I'm not sure why, ugh :D |
2021-11-20 17:08:17 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-11-20 17:08:47 +0100 | <int-e> | euouae: oh you've mixed up <$> and <*> |
2021-11-20 17:09:06 +0100 | <euouae> | I'm going with &&&, seems nice |
2021-11-20 17:09:06 +0100 | <int-e> | (and I copied it without noticing) |
2021-11-20 17:09:47 +0100 | <int-e> | > ((,) <$> (1+) <*> Just) 1 |
2021-11-20 17:09:49 +0100 | <lambdabot> | (2,Just 1) |
2021-11-20 17:10:03 +0100 | <int-e> | > ((1+) &&& Just) 1 |
2021-11-20 17:10:05 +0100 | <lambdabot> | (2,Just 1) |
2021-11-20 17:10:35 +0100 | <int-e> | and before you ask, &&& comes from Control.Arrow |
2021-11-20 17:10:45 +0100 | <euouae> | Indeed -- no worries, I hoogled that |
2021-11-20 17:11:01 +0100 | <janus> | applicative style is better just because it avoids control.arrow ;) |
2021-11-20 17:11:36 +0100 | acidjnk_new | (~acidjnk@2001:16b8:67ca:f700:55fd:e2e5:a98b:cf1a) (Ping timeout: 268 seconds) |
2021-11-20 17:11:46 +0100 | <janus> | and you have less churn when you need a third member. |
2021-11-20 17:12:33 +0100 | <janus> | even less churn if you decide to have a dedicated data type instead of tuples |
2021-11-20 17:12:38 +0100 | <int-e> | in that spirit you should minimize dependencies and write a lambda \x -> (f x, x) |
2021-11-20 17:12:49 +0100 | <Rembane_> | Applicative style isn't as cool though :D |
2021-11-20 17:13:35 +0100 | <janus> | int-e: unavoidable dependencies don't need to be avoided ;) |
2021-11-20 17:13:54 +0100 | <janus> | applicative is in prelude, no? |
2021-11-20 17:16:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 17:17:32 +0100 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-11-20 17:17:47 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:3961:f854:3883:a1b9) (Ping timeout: 268 seconds) |
2021-11-20 17:17:51 +0100 | <int-e> | Not in Haskell2010 :P |
2021-11-20 17:18:01 +0100 | <euouae> | I think that might be a good idea too, to write it that way |
2021-11-20 17:18:52 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) |
2021-11-20 17:19:13 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:80ec:4373:ceb7:3da9) |
2021-11-20 17:19:24 +0100 | <janus> | Rembane_: here's a cool applicative pattern in purescript: instance DecodeJson Person where decodeJson json = o <- decodeJson; Person <$> { name: _, age: _ } <$> (o .: "name") <*> (o .: "age") |
2021-11-20 17:19:45 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-11-20 17:20:30 +0100 | <janus> | (advantage is multiple errors if an element has a problem) (possible because the _ are arguments to an implicit anonymous function) |
2021-11-20 17:21:14 +0100 | <Rembane_> | janus: That's pretty. Should there be two <$> in that line? |
2021-11-20 17:22:02 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-11-20 17:22:47 +0100 | <janus> | Rembane_: yeah, depends whether you want to wrap your records with a newtype constructor or not. we do that here. but if you don't , just remove "Person <$>". purescript's records are not necessarily wrapped in a data constructor with a similar name to the type, as is common in haskell |
2021-11-20 17:22:49 +0100 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds) |
2021-11-20 17:23:02 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) (Ping timeout: 240 seconds) |
2021-11-20 17:23:26 +0100 | <Rembane_> | janus: Got it. Cool! |
2021-11-20 17:25:47 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 268 seconds) |
2021-11-20 17:25:49 +0100 | <hololeap> | zincy: those mealy machines seem confusing |
2021-11-20 17:25:59 +0100 | <zincy> | hololeap: How come? |
2021-11-20 17:26:23 +0100 | <hololeap> | I guess I just don't have an intuition for them |
2021-11-20 17:27:35 +0100 | <zincy> | Its just a turn based game that has a mealy for whether each player has acted and a mealy for game stages |
2021-11-20 17:28:01 +0100 | <zincy> | Players cannot act if they are in an inactive state etc ... |
2021-11-20 17:29:10 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 17:29:37 +0100 | <hololeap> | unfoldMealy :: (s -> a -> (b, s)) -> s -> Mealy a b |
2021-11-20 17:30:10 +0100 | <hololeap> | this is a much more understandable representation to me, which makes me wonder if the whole Mealy abstraction is worth it or if it's just extra mental overhead |
2021-11-20 17:30:57 +0100 | <hololeap> | but I guess that could be said about any abstraction I don't have an intuition for :p |
2021-11-20 17:31:09 +0100 | <hololeap> | then again, you seem to be having problems with it as well, zincy |
2021-11-20 17:31:49 +0100 | <zincy> | yes I am hehe |
2021-11-20 17:37:55 +0100 | oxide | (~lambda@user/oxide) |
2021-11-20 17:39:03 +0100 | ubert | (~Thunderbi@p200300ecdf0ba279387348ed975200f7.dip0.t-ipconnect.de) |
2021-11-20 17:40:22 +0100 | <hololeap> | A Profunctor p is a Cosieve on f if it is a subprofunctor of Costar f. |
2021-11-20 17:40:49 +0100 | <hololeap> | where does ekmett get these terms from? |
2021-11-20 17:42:44 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) |
2021-11-20 17:43:04 +0100 | <hololeap> | Sketches of an Elephant – A Topos Theory Compendium |
2021-11-20 17:43:09 +0100 | <hololeap> | is that the original source? |
2021-11-20 17:45:10 +0100 | <hololeap> | I'm tired of going into a drooling stupor when I read the docs for profunctors |
2021-11-20 17:48:59 +0100 | <zincy> | I am finding this library quite tricky to understand |
2021-11-20 17:50:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-20 17:51:08 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-20 17:59:05 +0100 | kupi | (uid212005@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-20 18:00:59 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 18:01:31 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 18:06:23 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 18:07:38 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-11-20 18:08:41 +0100 | serg | (~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-20 18:09:48 +0100 | tired | (~tired@user/tired) (Quit: /) |
2021-11-20 18:11:21 +0100 | tired | (~tired@user/tired) |
2021-11-20 18:11:24 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-11-20 18:11:51 +0100 | machinedgod | (~machinedg@24.105.81.50) (Quit: Lost terminal) |
2021-11-20 18:11:56 +0100 | <ProfSimm> | I have something odd to ask, but I wanna her your opinion. In Haskell, two identical types by different names are different, right. Nominal |
2021-11-20 18:11:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-20 18:12:14 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-20 18:12:18 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-131-158.cust.tzulo.com) |
2021-11-20 18:14:24 +0100 | timCF_ | (~timCF@m91-129-99-212.cust.tele2.ee) |
2021-11-20 18:14:32 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 240 seconds) |
2021-11-20 18:14:55 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 18:15:38 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-20 18:16:34 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-11-20 18:16:41 +0100 | ubert | (~Thunderbi@p200300ecdf0ba279387348ed975200f7.dip0.t-ipconnect.de) (Quit: ubert) |
2021-11-20 18:17:19 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-11-20 18:18:26 +0100 | <timCF_> | Hello! Let's say I do have a `newtype PosRat = PosRat (Ratio Natural)` with smart constructors and stuff to create new values of this type with potential failure for example in case where value is == 0. Is there the way to have literals of my new type which I can write in a code just as values (without applying smart constructors)? Basically I want to apply smart constructor in compile-time. But without |
2021-11-20 18:18:32 +0100 | <timCF_> | TH. Just similar the way Natural type literals are handled. |
2021-11-20 18:18:55 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:80ec:4373:ceb7:3da9) (Ping timeout: 250 seconds) |
2021-11-20 18:19:15 +0100 | <ProfSimm> | Haskell is nominal, right. Two identical types with different name would be different types |
2021-11-20 18:19:54 +0100 | <monochrom> | Yes. |
2021-11-20 18:21:39 +0100 | <ProfSimm> | Let's imagine a system where two differently named types are compared structurally, at depth, and Haskell speculatively branches by executing the code twice by substituting one of the other. And at some threshold, if they cause the same outcomes, they become one type. |
2021-11-20 18:22:09 +0100 | <ProfSimm> | Is there a name for this idea |
2021-11-20 18:22:30 +0100 | ThatLinuxGuy | (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad) |
2021-11-20 18:23:27 +0100 | ThatLinuxGuy | (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad) (Client Quit) |
2021-11-20 18:24:50 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2021-11-20 18:24:50 +0100 | <geekosaur> | timCF_, not without patching the compiler to recognize the new literals |
2021-11-20 18:24:59 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:cc14:8453:5a9c:d44b) (Ping timeout: 268 seconds) |
2021-11-20 18:25:16 +0100 | <timCF_> | geekosaur: so TH is the simplest way to go I guess? |
2021-11-20 18:25:17 +0100 | <geekosaur> | heck, it doesn't even recognize Ratio Integer literals, % is a smart constructor |
2021-11-20 18:25:31 +0100 | xff0x | (~xff0x@2001:1a81:5231:4c00:adf9:5009:dcd2:4bf0) |
2021-11-20 18:25:44 +0100 | <geekosaur> | or quasiquoters, which amount to the same thing |
2021-11-20 18:26:00 +0100 | benin | (~benin@183.82.178.244) |
2021-11-20 18:26:03 +0100 | <timCF_> | geekosaur: but it does recognize Natural, and will not compile negative literals |
2021-11-20 18:26:15 +0100 | <geekosaur> | right |
2021-11-20 18:28:56 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-11-20 18:29:11 +0100 | mimmy | (~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com) |
2021-11-20 18:29:18 +0100 | zero | (~z@user/zero) |
2021-11-20 18:29:20 +0100 | <dsal> | ProfSimm: We do have a concept of a type role which allows us to treat (or prevents us from treating) a structure of one type as a structure of another type with the same representation, but the deep comparison thing is orthogonal, I think. |
2021-11-20 18:29:33 +0100 | <dsal> | (super likely I don't understand what you're getting at, but this at least sounds similar) |
2021-11-20 18:30:14 +0100 | <ProfSimm> | dsal, the structural comparison would be some initial sanity check. But I think two types stand the test of being compatible if they actually produce the same outcomes |
2021-11-20 18:30:53 +0100 | <zero> | if we can have a total linear function that only uses total linear functionss, we could pattern match against them, couldn't we? |
2021-11-20 18:30:54 +0100 | <ProfSimm> | dsal well I'm using a type a bit differently here. Not as in "same contract, different result, different implementation" |
2021-11-20 18:31:08 +0100 | <ProfSimm> | But as in "same contract and result, different implementation" |
2021-11-20 18:31:32 +0100 | <ProfSimm> | zero, do you know how epicycles work (related concept fourier transform) |
2021-11-20 18:31:49 +0100 | <zero> | ProfSimm: i know nothing about it |
2021-11-20 18:31:49 +0100 | juhp | (~juhp@128.106.188.82) (Read error: Connection reset by peer) |
2021-11-20 18:32:09 +0100 | <zero> | not by name at least |
2021-11-20 18:32:22 +0100 | <ProfSimm> | zero, basically you can take a signal and decompose it to frequencies, each a sine wave with different amplitude |
2021-11-20 18:32:31 +0100 | <zero> | ah yes |
2021-11-20 18:32:35 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-11-20 18:32:46 +0100 | <dsal> | ProfSimm: Yeah, I don't think that concept exists directly. I'm thinking about coerce, which looks like this: https://hackage.haskell.org/package/base-4.16.0.0/docs/Data-Coerce.html -- type role allows us to say that given a `Map k v` the `v` can be coerced without changing meaning, but the `k` cannot. |
2021-11-20 18:32:52 +0100 | <ProfSimm> | zero, do the same in 2D you get circles. You can use this analysis to draw homer simply by connecting rotating circle of various size and speed |
2021-11-20 18:33:17 +0100 | <shapr> | o hi ProfSimm, how's code? |
2021-11-20 18:33:20 +0100 | <ProfSimm> | zero: https://www.youtube.com/watch?v=QVuU2YCwHjw |
2021-11-20 18:33:34 +0100 | <zero> | ProfSimm: yes, i get that. how does it relate to my questin? |
2021-11-20 18:33:41 +0100 | <ProfSimm> | shapr, I'm in a very odd place dude. I'm gonna need a quantum computer to implement some features :-) |
2021-11-20 18:34:10 +0100 | <ProfSimm> | zero, well the thing I wanna achieve is not match linear functions, but match result |
2021-11-20 18:34:32 +0100 | <ProfSimm> | And actually "close enough" is an allowance, for some specific amount of close enough |
2021-11-20 18:35:10 +0100 | <ProfSimm> | Wait, let me redefine this |
2021-11-20 18:35:35 +0100 | <ProfSimm> | Imagine if Haskell trained a neural network on a type, and when they get close enough, it replaces the type with the neural network |
2021-11-20 18:36:02 +0100 | <zero> | ProfSimm: ah, i was confused. i entered the channel just now to ask my question, have no idea of what you were talking about ;) |
2021-11-20 18:37:39 +0100 | <ProfSimm> | Oh OK |
2021-11-20 18:38:58 +0100 | <dsal> | ProfSimm: It's not clear to me what it means to change a type along the way. It sounds like you're describing a sum type at some point with some kind of ability to coerce that I don't think you're going to get for free. |
2021-11-20 18:40:25 +0100 | <geekosaur> | zero, I think you would need more than linearity to pattern match a function |
2021-11-20 18:41:03 +0100 | <geekosaur> | try figuring out what this would look like |
2021-11-20 18:43:44 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) |
2021-11-20 18:45:59 +0100 | ouroboros_ | (~ouroboros@2804:14c:65e4:93f6::1001) (Quit: Konversation terminated!) |
2021-11-20 18:51:02 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 240 seconds) |
2021-11-20 18:53:43 +0100 | econo | (uid147250@user/econo) |
2021-11-20 18:54:11 +0100 | <hololeap> | @hackage validated-literals -- timCF_ |
2021-11-20 18:54:11 +0100 | <lambdabot> | https://hackage.haskell.org/package/validated-literals -- timCF_ |
2021-11-20 18:54:22 +0100 | <hololeap> | this uses TH, but it might be useful for you |
2021-11-20 18:57:19 +0100 | <awpr> | oh I missed that question -- check out https://hackage.haskell.org/package/dependent-literals-plugin |
2021-11-20 18:59:26 +0100 | <awpr> | it's a bit heavyweight just to rule out zero without calling a smart constructor, but I guess it could be worth it if you have code with tons of PosRat literals that would be overwhelmed with noise otherwise |
2021-11-20 19:00:01 +0100 | <timCF_> | thanks! |
2021-11-20 19:01:25 +0100 | fabfianda | (~fabfianda@mob-5-90-247-119.net.vodafone.it) (Ping timeout: 256 seconds) |
2021-11-20 19:01:25 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection) |
2021-11-20 19:01:58 +0100 | fabfianda | (~fabfianda@net-2-32-17-50.cust.vodafonedsl.it) |
2021-11-20 19:06:53 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) |
2021-11-20 19:12:36 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-20 19:12:51 +0100 | tired | (~tired@user/tired) (Quit: /) |
2021-11-20 19:13:22 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-20 19:13:22 +0100 | fabfianda | (~fabfianda@net-2-32-17-50.cust.vodafonedsl.it) (Quit: Quit) |
2021-11-20 19:14:23 +0100 | tired | (~tired@user/tired) |
2021-11-20 19:15:35 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 19:17:24 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-11-20 19:22:44 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…) |
2021-11-20 19:24:08 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 19:25:51 +0100 | euouae | (~euouae@user/euouae) (Quit: ) |
2021-11-20 19:26:36 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) |
2021-11-20 19:27:51 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-11-20 19:29:45 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 19:35:51 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-11-20 19:36:05 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-11-20 19:36:26 +0100 | rusty | (~rustyboy@82.77.237.221) (Ping timeout: 260 seconds) |
2021-11-20 19:43:13 +0100 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2021-11-20 19:44:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-20 19:45:47 +0100 | mimmy | (~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds) |
2021-11-20 19:45:54 +0100 | aliosablack | (~chomwitt@2a02:587:dc2d:ec00:12c3:7bff:fe6d:d374) |
2021-11-20 19:46:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 19:47:22 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 19:48:51 +0100 | chomwitt | (~chomwitt@ppp-94-67-202-36.home.otenet.gr) (Ping timeout: 268 seconds) |
2021-11-20 19:49:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-11-20 19:51:51 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-20 19:53:42 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-11-20 19:55:02 +0100 | aliosablack | (~chomwitt@2a02:587:dc2d:ec00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds) |
2021-11-20 19:55:42 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-20 19:56:32 +0100 | myme | (~myme@40.51-175-185.customer.lyse.net) (Ping timeout: 240 seconds) |
2021-11-20 19:57:19 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-11-20 19:57:21 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-20 19:57:48 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 19:58:51 +0100 | myme | (~myme@40.51-175-185.customer.lyse.net) |
2021-11-20 20:01:12 +0100 | max22- | (~maxime@2a01cb08833598001ac225a432e05a7f.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2021-11-20 20:06:39 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…) |
2021-11-20 20:06:50 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-11-20 20:09:45 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) |
2021-11-20 20:10:35 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 20:12:07 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 20:12:19 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-20 20:12:40 +0100 | machinedgod | (~machinedg@24.105.81.50) (Remote host closed the connection) |
2021-11-20 20:14:32 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 240 seconds) |
2021-11-20 20:17:11 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds) |
2021-11-20 20:20:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-11-20 20:23:03 +0100 | <sm> | g'day all |
2021-11-20 20:24:11 +0100 | coolnickname | (~omg@user/coolnickname) |
2021-11-20 20:24:18 +0100 | <sm> | so.. for haskell code, 2-space indent, or 4 ? |
2021-11-20 20:24:58 +0100 | <geekosaur> | I use 2 fwiw |
2021-11-20 20:25:06 +0100 | <sm> | I use 2, but I'm getting the feeling 4 might be smoother with haskell syntax |
2021-11-20 20:25:15 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 20:25:42 +0100 | pwug | (~pwug@user/pwug) |
2021-11-20 20:25:47 +0100 | <sm> | let a=1 |
2021-11-20 20:25:48 +0100 | <sm> | b=2 |
2021-11-20 20:25:48 +0100 | <sm> | ... eg |
2021-11-20 20:25:53 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 250 seconds) |
2021-11-20 20:26:07 +0100 | <EvanR> | hah |
2021-11-20 20:26:48 +0100 | <awpr> | I've seen some people just put the first let-binding on a new line. but I tend to just make an exception and align let-bindings at 4 spaces, and use 2 for normal indentation |
2021-11-20 20:26:53 +0100 | <geekosaur> | I wouldn't use 2 there but that's because of block indentation; I'd use 2 if I hit enter after the let |
2021-11-20 20:28:27 +0100 | <EvanR> | if I need recursive definitions I try hard to use where not let |
2021-11-20 20:29:10 +0100 | <EvanR> | if I need a sequence of lets I do https://paste.tomsmeding.com/xHhQbPoZ |
2021-11-20 20:29:14 +0100 | <EvanR> | which is rare |
2021-11-20 20:30:17 +0100 | <EvanR> | basically, over 1 level of indentation and I feel like I did something wrong |
2021-11-20 20:30:37 +0100 | <EvanR> | (which sm's let has) |
2021-11-20 20:32:05 +0100 | sm | was trying out floskell, which uses 4 by default |
2021-11-20 20:32:41 +0100 | <monochrom> | I use a 2-4 combo. "f x = y" "<2 spaces>where" "<4 spaces>y = x+x" |
2021-11-20 20:33:21 +0100 | <Hecate> | hohai |
2021-11-20 20:33:27 +0100 | <Hecate> | I've done a thing: https://twitter.com/TechnoEmpress/status/1462135732680769539 |
2021-11-20 20:33:27 +0100 | <maerwald> | I use whatever I feel like at the moment |
2021-11-20 20:33:36 +0100 | <monochrom> | I learned it from tibbe's style guide. I think it's an ingenious design accomodating "where" which you don't find in other languages. |
2021-11-20 20:33:52 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Quit: Leaving.) |
2021-11-20 20:34:12 +0100 | <monochrom> | https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md |
2021-11-20 20:34:21 +0100 | <sm> | thanks |
2021-11-20 20:34:30 +0100 | <maerwald> | burn all style guides |
2021-11-20 20:34:33 +0100 | max22- | (~maxime@2a01cb0883359800a2387d5f4d01fe15.ipv6.abo.wanadoo.fr) |
2021-11-20 20:34:48 +0100 | <sm> | ah yes, half-indent for `where` |
2021-11-20 20:35:07 +0100 | <monochrom> | In other languages (e.g., C, shell script), I use 2 spaces. |
2021-11-20 20:35:16 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-20 20:35:18 +0100 | <sm> | that's another reason I think 4 might be smoother. Half of a 2-indent is not much |
2021-11-20 20:35:39 +0100 | <maerwald> | I've worked on a 4spaces indent codebase, I remember some corner cases there too |
2021-11-20 20:35:53 +0100 | <sm> | though, I tend to give `where` a full indent, and just indent the definitions more |
2021-11-20 20:36:06 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-11-20 20:36:11 +0100 | <maerwald> | ah yeah... there's a corner case with `do` and indenting |
2021-11-20 20:36:33 +0100 | <geekosaur> | yeh, my usual style means it's indented by 3 because of block indenting |
2021-11-20 20:36:43 +0100 | <geekosaur> | unless I start it with a newline, then it's 2 |
2021-11-20 20:36:47 +0100 | <sm> | (why should where bindings be indented less than let bindings, after all) |
2021-11-20 20:37:35 +0100 | <monochrom> | I'm very happy that in "let x=1", the "let " length is 4, so when on the next line I have "<4 spaces>y=2" it lines up. |
2021-11-20 20:38:30 +0100 | <maerwald> | here strict 4 indenting makes compilation fail: https://paste.tomsmeding.com/rLQWB31q |
2021-11-20 20:38:49 +0100 | <sm> | I guess I'll start by just adopting the 4-space indent for let.. that's pretty low impact |
2021-11-20 20:39:14 +0100 | <sm> | low benefit too I guess, code formatters will be confused |
2021-11-20 20:39:30 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
2021-11-20 20:40:15 +0100 | <EvanR> | I put the main where at the end of the line before the indented chunk, and people seem to hate it |
2021-11-20 20:40:23 +0100 | <EvanR> | dunno why |
2021-11-20 20:41:21 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-131-158.cust.tzulo.com) (Quit: Leaving) |
2021-11-20 20:41:23 +0100 | <maerwald> | in all the time I had to engage in styling discussions in industry... I could have written a Haskell compiler |
2021-11-20 20:42:53 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) |
2021-11-20 20:42:57 +0100 | <monochrom> | I don't hate it, but I don't do it because " where" is like 9% of your "70-column line" quota. |
2021-11-20 20:43:36 +0100 | <monochrom> | Although, I have long relaxed to 80 columns. |
2021-11-20 20:44:15 +0100 | <geekosaur> | I'm up to 96 |
2021-11-20 20:44:26 +0100 | <monochrom> | It's the 21st century. We use 16:9 screens, not 9:16 screens. Even 100 columns is reasonable. |
2021-11-20 20:44:38 +0100 | <maerwald> | savage... what if someone reads your code on a small ssh terminal in a bunker after doomsday? |
2021-11-20 20:44:41 +0100 | <geekosaur> | 70/72 died with card readers, 80 died with physical terminals :) |
2021-11-20 20:45:04 +0100 | <monochrom> | dragging column limits screaming kicking into the century of the 16:9 screen. |
2021-11-20 20:45:06 +0100 | <Rembane_> | OTOH, human eyes seem to have a max width that's reasonable to read |
2021-11-20 20:45:45 +0100 | <maerwald> | Rembane_: there's neuroscience research that moving your eyes laterally increases happiness (I'm not kidding) :p |
2021-11-20 20:45:58 +0100 | <sm> | for code, I think logical grouping by line is more important than line width |
2021-11-20 20:46:13 +0100 | <sm> | we are usually skimming code, not reading every word |
2021-11-20 20:46:36 +0100 | <sm> | it's fine if the last bit is cut off at times |
2021-11-20 20:46:51 +0100 | <Rembane_> | maerwald: Nice! Now we need some creative surgery so we can rotate the eyes inside the skull :D |
2021-11-20 20:46:53 +0100 | acidjnk_new | (~acidjnk@2001:16b8:67ca:f700:252c:a817:9d7d:a6ca) |
2021-11-20 20:46:59 +0100 | <Rembane_> | maerwald: Eyes go: "WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!" |
2021-11-20 20:47:11 +0100 | <monochrom> | Oh well, I guess 30 years later people read code on TikTok, they will be back at 40 columns again (remember those? >:) ) |
2021-11-20 20:47:22 +0100 | <EvanR> | if you aren't coding in style, what's the point |
2021-11-20 20:47:28 +0100 | <EvanR> | :sunglasses: |
2021-11-20 20:47:29 +0100 | <maerwald> | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6596227/ |
2021-11-20 20:47:51 +0100 | <sm> | but for text, speaking of short lines readability.. I really like the newspaper-style layout of https://scroll.pub |
2021-11-20 20:47:59 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 250 seconds) |
2021-11-20 20:48:02 +0100 | <geekosaur> | after the great emp pulse we won't be reading code at all :þ |
2021-11-20 20:48:25 +0100 | <sm> | geekosaur: :-/ |
2021-11-20 20:48:28 +0100 | <monochrom> | Actually I hate those double-column layouts. |
2021-11-20 20:48:56 +0100 | <monochrom> | Well OK, I'm fine with in on physical paper. But on a 16:9 screen?! |
2021-11-20 20:49:42 +0100 | <geekosaur> | I use a 2-column layout. two separate editor windows, usually on different files |
2021-11-20 20:49:43 +0100 | <maerwald> | Rembane_: people usually get really confused if you bring scientific research into the style discussion... I mean if you're nitpicking on irrelevant stuff, do it all the way! |
2021-11-20 20:50:12 +0100 | <Rembane_> | maerwald: Sure thing! Eventually we need to go to the sources. |
2021-11-20 20:50:27 +0100 | <monochrom> | OK, I'm fine with it on a 16:9 screen if each column fits within the verticle screen length. |
2021-11-20 20:50:36 +0100 | <monochrom> | Clearly, academic paper |
2021-11-20 20:51:00 +0100 | <monochrom> | Clearly, neither academic paper PDFs nor scroll.pub satisfies that. |
2021-11-20 20:51:29 +0100 | <sm> | monochrom: scroll.pub doesn't do that (it fits the width, and extends downward). But that (fitting the height, and extending sideways) would also be nice to try. |
2021-11-20 20:52:05 +0100 | <maerwald> | Rembane_: also, really good argument for spaces: https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/ |
2021-11-20 20:52:06 +0100 | <sm> | even as it is now, I found it pretty refreshing and efficient for reading a faq |
2021-11-20 20:52:20 +0100 | <Rembane_> | maerwald: I dig that! |
2021-11-20 20:52:51 +0100 | <maerwald> | and apparently, haskell is wrong with using camelCase: https://ieeexplore.ieee.org/document/5521745 |
2021-11-20 20:53:00 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 20:53:18 +0100 | <monochrom> | Therefore, when a sentence is split between 2 columns, it is also separated by like a metre. |
2021-11-20 20:53:39 +0100 | <monochrom> | a metre of scrolling |
2021-11-20 20:53:51 +0100 | <sm> | it gets worse the more content you put on one page, yes |
2021-11-20 20:53:53 +0100 | <monochrom> | How would any human consider it ergonomic, I don't know. |
2021-11-20 20:54:30 +0100 | <sm> | but newspapers work like that too, and we manage |
2021-11-20 20:54:58 +0100 | <monochrom> | scroll.pub itself shows an ample example of doing it wrong. |
2021-11-20 20:55:14 +0100 | <monochrom> | newspapers are on physical paper, as said. you just fly your eyes. |
2021-11-20 20:55:45 +0100 | <geekosaur> | newspapers also have "above/below the fold" |
2021-11-20 20:55:53 +0100 | <monochrom> | Where as on scroll.pub, consider the section "How do I check browser performance?" |
2021-11-20 20:56:05 +0100 | <monochrom> | You have an opening sentence. |
2021-11-20 20:56:21 +0100 | <monochrom> | And then, what, the sample code requires scrolling all the way back to the top. |
2021-11-20 20:56:36 +0100 | <monochrom> | Remember cathoy ray tubes? |
2021-11-20 20:57:14 +0100 | <monochrom> | Remember its electron beam goes horizontally normally, but it has to quickly fly back to the left for the next line. |
2021-11-20 20:57:34 +0100 | <monochrom> | I feel like 2-column layout fanatics want me to do the same manually vertically. |
2021-11-20 20:57:52 +0100 | <monochrom> | I feel like they are maschosists. |
2021-11-20 20:58:03 +0100 | <monochrom> | "Hahaha let's torture the readers thus!" |
2021-11-20 20:58:09 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-20 20:58:36 +0100 | <hololeap> | I indent using random fibonacci numbers |
2021-11-20 20:58:38 +0100 | <monochrom> | If you have 5 lines of code to post. |
2021-11-20 20:58:46 +0100 | <awpr> | once per page, though. if I see lines the full width of my monitor, I have no chance of moving my eyes correctly back to the start of the next line |
2021-11-20 20:59:03 +0100 | <awpr> | with a newspaper column width line, it's almost 100% reliably accurate |
2021-11-20 20:59:20 +0100 | <monochrom> | They're like "let's put 3 of those lines at the far bottom, let's put the other 2 lines at the far top, so that people cannot use copy-paste". |
2021-11-20 20:59:25 +0100 | <hololeap> | just for that e e cummings vibe |
2021-11-20 20:59:59 +0100 | <maerwald> | but the realy question is: do you align vertically?! |
2021-11-20 21:01:55 +0100 | <monochrom> | It breaks all kinds of proximity, locality principles. |
2021-11-20 21:02:20 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-20 21:02:24 +0100 | <EvanR> | quantum style |
2021-11-20 21:02:50 +0100 | <EvanR> | my C code is entangled |
2021-11-20 21:03:14 +0100 | <maerwald> | I have seen suggestions like this: https://paste.tomsmeding.com/TV7JCPRb |
2021-11-20 21:03:30 +0100 | <maerwald> | so you can see relations of identifiers |
2021-11-20 21:03:33 +0100 | <EvanR> | :horror: |
2021-11-20 21:04:20 +0100 | <maerwald> | I mean... in maths you sometimes do that |
2021-11-20 21:06:03 +0100 | <monochrom> | You know, it works when your function can be linearly typed. Clearly, in retrospect. |
2021-11-20 21:06:32 +0100 | <monochrom> | If your x needs to be mentioned at 100 places, good luck with that. |
2021-11-20 21:06:48 +0100 | juhp | (~juhp@128.106.188.82) |
2021-11-20 21:08:42 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-11-20 21:09:38 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-11-20 21:09:50 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-20 21:10:16 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-20 21:11:02 +0100 | finsternis | (~X@23.226.237.192) (Ping timeout: 240 seconds) |
2021-11-20 21:11:47 +0100 | finsternis | (~X@23.226.237.192) |
2021-11-20 21:19:57 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) |
2021-11-20 21:20:53 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 265 seconds) |
2021-11-20 21:24:45 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 265 seconds) |
2021-11-20 21:25:09 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-20 21:29:40 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-11-20 21:30:54 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-20 21:31:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-20 21:36:32 +0100 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2021-11-20 21:37:49 +0100 | forell | (~forell@user/forell) |
2021-11-20 21:39:18 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-11-20 21:42:59 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:11f0:11ab:7004:939b) |
2021-11-20 21:46:14 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-20 21:50:32 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-11-20 21:56:40 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) |
2021-11-20 21:56:54 +0100 | jinsun__ | (~quassel@user/jinsun) |
2021-11-20 21:58:20 +0100 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-11-20 21:58:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-11-20 21:59:02 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Ping timeout: 240 seconds) |
2021-11-20 22:00:23 +0100 | jinsun | (~quassel@user/jinsun) (Ping timeout: 264 seconds) |
2021-11-20 22:01:03 +0100 | deadmarshal | (~deadmarsh@95.38.119.180) (Ping timeout: 256 seconds) |
2021-11-20 22:01:29 +0100 | serg | (~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-11-20 22:06:44 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-11-20 22:08:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection) |
2021-11-20 22:08:48 +0100 | dhil | (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
2021-11-20 22:08:50 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:11f0:11ab:7004:939b) (Ping timeout: 268 seconds) |
2021-11-20 22:09:04 +0100 | jbox | (~jbox@user/jbox) |
2021-11-20 22:10:20 +0100 | timCF_ | (~timCF@m91-129-99-212.cust.tele2.ee) (Quit: leaving) |
2021-11-20 22:12:59 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-11-20 22:13:46 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-20 22:14:21 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Remote host closed the connection) |
2021-11-20 22:17:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-20 22:20:08 +0100 | pavonia | (~user@user/siracusa) |
2021-11-20 22:30:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-20 22:32:54 +0100 | mei | (~mei@user/mei) (Ping timeout: 260 seconds) |
2021-11-20 22:35:57 +0100 | burnsidesLlama | (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-20 22:38:39 +0100 | hiruji | (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
2021-11-20 22:43:12 +0100 | kuribas | (~user@ptr-25vy0i85dt12hx5mopu.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-11-20 22:43:31 +0100 | ubert | (~Thunderbi@p548c9fcb.dip0.t-ipconnect.de) |
2021-11-20 22:49:19 +0100 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 250 seconds) |
2021-11-20 22:51:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-20 22:52:01 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-20 22:53:17 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (ERC 5.4 (IRC client for GNU Emacs 28.0.60)) |
2021-11-20 22:53:42 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-20 22:54:45 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Read error: Connection reset by peer) |
2021-11-20 22:55:03 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-20 22:55:43 +0100 | rusty | (~rustyboy@82.77.237.221) |
2021-11-20 22:58:00 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-11-20 23:02:51 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-11-20 23:08:55 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) |
2021-11-20 23:09:55 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-20 23:11:47 +0100 | rusty | (~rustyboy@82.77.237.221) (Quit: Leaving) |
2021-11-20 23:13:20 +0100 | burnsidesLlama | (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
2021-11-20 23:13:35 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Ping timeout: 264 seconds) |
2021-11-20 23:14:51 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-11-20 23:15:15 +0100 | hiruji | (~hiruji@user/hiruji) |
2021-11-20 23:15:15 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-20 23:15:28 +0100 | hiruji | (~hiruji@user/hiruji) (Remote host closed the connection) |
2021-11-20 23:15:46 +0100 | hiruji | (~hiruji@user/hiruji) |
2021-11-20 23:16:14 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds) |
2021-11-20 23:17:58 +0100 | waleee | (~waleee@h-82-196-111-63.NA.cust.bahnhof.se) |
2021-11-20 23:18:49 +0100 | burnsidesLlama | (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-11-20 23:20:23 +0100 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 256 seconds) |
2021-11-20 23:20:38 +0100 | hiruji | (~hiruji@user/hiruji) |
2021-11-20 23:22:35 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-11-20 23:22:43 +0100 | jinsun__ | jinsun |
2021-11-20 23:24:03 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-20 23:26:54 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-11-20 23:29:42 +0100 | burnsidesLlama | (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
2021-11-20 23:34:33 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-11-20 23:35:05 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-20 23:35:44 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:d960:c213:7b57:d73e) |
2021-11-20 23:35:48 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) |
2021-11-20 23:37:46 +0100 | notzmv | (~zmv@user/notzmv) |
2021-11-20 23:40:58 +0100 | mimmy | (~mimmy@2607:fea8:6e0:7f90:d960:c213:7b57:d73e) (Ping timeout: 260 seconds) |
2021-11-20 23:44:18 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-11-20 23:45:52 +0100 | gg | (~gg@88.160.100.84) (Read error: Connection reset by peer) |
2021-11-20 23:49:07 +0100 | acidjnk_new | (~acidjnk@2001:16b8:67ca:f700:252c:a817:9d7d:a6ca) (Ping timeout: 250 seconds) |
2021-11-20 23:49:56 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-11-20 23:50:22 +0100 | yauhsien | (~yauhsien@118-167-40-224.dynamic-ip.hinet.net) |
2021-11-20 23:51:24 +0100 | dhil | (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Remote host closed the connection) |
2021-11-20 23:55:26 +0100 | yauhsien | (~yauhsien@118-167-40-224.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-20 23:58:35 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |