2020-10-03 00:00:12 +0200 | John20 | (~John@82.46.59.122) (Ping timeout: 265 seconds) |
2020-10-03 00:01:15 +0200 | Rudd0 | (~Rudd0@185.189.115.103) |
2020-10-03 00:02:15 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-10-03 00:02:36 +0200 | conal | (~conal@107.181.166.148) (Quit: Computer has gone to sleep.) |
2020-10-03 00:03:29 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Remote host closed the connection) |
2020-10-03 00:03:39 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 00:03:39 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 00:03:39 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 00:06:25 +0200 | solonarv | (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
2020-10-03 00:08:47 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:4db2:8fe2:8bd1:e1c0) |
2020-10-03 00:10:31 +0200 | darjeeling_ | (~darjeelin@122.245.210.179) (Ping timeout: 258 seconds) |
2020-10-03 00:10:53 +0200 | darjeeling_ | (~darjeelin@122.245.210.179) |
2020-10-03 00:12:27 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds) |
2020-10-03 00:13:00 +0200 | LKoen | (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Remote host closed the connection) |
2020-10-03 00:16:07 +0200 | alp | (~alp@2a01:e0a:58b:4920:348b:a0fc:3b69:4893) (Ping timeout: 240 seconds) |
2020-10-03 00:18:00 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-03 00:20:55 +0200 | mahene | (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 240 seconds) |
2020-10-03 00:21:03 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 00:21:55 +0200 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-10-03 00:22:47 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-10-03 00:26:27 +0200 | tomatopotato | (~tomatopot@188.126.89.194) |
2020-10-03 00:26:27 +0200 | hackage | fourmolu 0.2.0.0 - A formatter for Haskell source code https://hackage.haskell.org/package/fourmolu-0.2.0.0 (GeorgeThomas) |
2020-10-03 00:31:13 +0200 | taurux | (~taurux@net-188-216-115-169.cust.vodafonedsl.it) (Ping timeout: 246 seconds) |
2020-10-03 00:31:17 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 00:31:50 +0200 | taurux | (~taurux@net-188-216-43-60.cust.vodafonedsl.it) |
2020-10-03 00:35:03 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) |
2020-10-03 00:40:28 +0200 | conal | (~conal@107.181.166.148) |
2020-10-03 00:42:49 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 00:42:49 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 00:42:49 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-03 00:43:19 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
2020-10-03 00:45:30 +0200 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection) |
2020-10-03 00:46:02 +0200 | conal | (~conal@107.181.166.148) (Quit: Computer has gone to sleep.) |
2020-10-03 00:48:00 +0200 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Read error: Connection reset by peer) |
2020-10-03 00:48:22 +0200 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2020-10-03 00:52:48 +0200 | conal | (~conal@107.181.166.148) |
2020-10-03 00:57:04 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 00:57:31 +0200 | conal | (~conal@107.181.166.148) (Quit: Computer has gone to sleep.) |
2020-10-03 00:57:53 +0200 | <monochrom> | http://www.vex.net/~trebla/tmp/hasdoc :) |
2020-10-03 01:01:35 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 256 seconds) |
2020-10-03 01:03:23 +0200 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-10-03 01:10:25 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds) |
2020-10-03 01:20:52 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 272 seconds) |
2020-10-03 01:27:08 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:f016:8714:fb84:1abd) |
2020-10-03 01:29:45 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-10-03 01:35:07 +0200 | coot | (~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-10-03 01:39:02 +0200 | shafox_ | (~shafox@106.51.234.111) (Remote host closed the connection) |
2020-10-03 01:42:37 +0200 | jedws | (~jedws@121.209.139.222) |
2020-10-03 01:46:49 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-03 01:46:56 +0200 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-10-03 01:48:12 +0200 | spew | (uid195861@gateway/web/irccloud.com/x-nmkiijbefgbkmaqa) (Quit: Connection closed for inactivity) |
2020-10-03 01:50:09 +0200 | shatriff | (~vitaliish@188.163.30.117) |
2020-10-03 01:50:23 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-03 01:50:33 +0200 | m0rphism | (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.7.1) |
2020-10-03 01:52:58 +0200 | hackage | pandoc-plot 0.9.4.0 - A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice. https://hackage.haskell.org/package/pandoc-plot-0.9.4.0 (LaurentRDC) |
2020-10-03 01:54:52 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds) |
2020-10-03 01:55:25 +0200 | jgt | (~jgt@188.239.64.32) (Ping timeout: 240 seconds) |
2020-10-03 02:00:01 +0200 | tomatopotato | (~tomatopot@188.126.89.194) () |
2020-10-03 02:00:54 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 02:02:33 +0200 | aaaaaa | (~ArthurStr@host-91-90-11-12.soborka.net) |
2020-10-03 02:05:09 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-10-03 02:05:25 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 02:10:41 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-10-03 02:11:18 +0200 | conal | (~conal@107.181.166.148) |
2020-10-03 02:14:36 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 02:14:47 +0200 | <inkbottle> | variadic/dyadic fixed point: I don't understand the 6th line of code; is there a mistyping (why the `~`)? https://web.archive.org/web/20160304101809/http://osdir.com/ml/lang.haskell.cafe/2003-10/msg00211.… |
2020-10-03 02:14:55 +0200 | shatriff | (~vitaliish@188.163.30.117) (Remote host closed the connection) |
2020-10-03 02:15:31 +0200 | aaaaaa | (~ArthurStr@host-91-90-11-12.soborka.net) () |
2020-10-03 02:15:41 +0200 | <inkbottle> | polyvariadic* |
2020-10-03 02:17:01 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds) |
2020-10-03 02:17:44 +0200 | <ski> | inkbottle : lazy/irrefutable pattern-match |
2020-10-03 02:19:08 +0200 | <koz_> | ski: What's the idea behind irrefutable pattern matches? How do they differ from regular ones? |
2020-10-03 02:19:46 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 272 seconds) |
2020-10-03 02:20:15 +0200 | <ski> | if you have a pattern like e.g. `x:xs', it will check, when matching, whether the list is non-empty .. and if it's empty, it'll discard this case, and try the next instead |
2020-10-03 02:20:27 +0200 | <inkbottle> | ski: right, thanks |
2020-10-03 02:20:49 +0200 | <ski> | but, with an irrefutable pattern `~(x:xs)', the pattern-matching will always succeed, immediately, regardless of whether the list is empty or not |
2020-10-03 02:21:48 +0200 | <ski> | only when you actually try to access the value of `x' ior `xs', will it try to match the list with `x:xs' (and if that fails, you get a pattern-match failure. it won't "travel back in time" to try the next alternative/case. it's already too late for that) |
2020-10-03 02:21:49 +0200 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2020-10-03 02:21:54 +0200 | <ski> | now, consider |
2020-10-03 02:21:58 +0200 | <ski> | @src partition |
2020-10-03 02:21:58 +0200 | <lambdabot> | partition p xs = foldr (select p) ([],[]) xs |
2020-10-03 02:21:59 +0200 | <lambdabot> | where select p x ~(ts,fs) | p x = (x:ts,fs) |
2020-10-03 02:21:59 +0200 | <lambdabot> | | otherwise = (ts, x:fs) |
2020-10-03 02:22:30 +0200 | <ski> | > let (evens,odds) = partition even [0 ..] in (take 4 evens,take 4 odds) |
2020-10-03 02:22:32 +0200 | <lambdabot> | ([0,2,4,6],[1,3,5,7]) |
2020-10-03 02:22:38 +0200 | <ski> | and compare this with |
2020-10-03 02:23:22 +0200 | <ski> | @let partition' p xs = foldr (select' p) ([],[]) xs where select' p x (ts,fs) p x = (x:ts,fs) | otherwise = (ts,x:fs) |
2020-10-03 02:23:22 +0200 | <lambdabot> | Parse failed: Parse error: | |
2020-10-03 02:23:27 +0200 | <ski> | er |
2020-10-03 02:23:30 +0200 | <ski> | @let partition' p xs = foldr (select' p) ([],[]) xs where select' p x (ts,fs) | p x = (x:ts,fs) | otherwise = (ts,x:fs) |
2020-10-03 02:23:32 +0200 | <lambdabot> | Defined. |
2020-10-03 02:23:56 +0200 | <ski> | which is what you get, if you remove the lazy / irrefutable pattern `~<pat>' from the former |
2020-10-03 02:23:59 +0200 | <ski> | now, we get |
2020-10-03 02:24:03 +0200 | fendor_ | (~fendor@91.141.0.198.wireless.dyn.drei.com) |
2020-10-03 02:24:04 +0200 | <ski> | > let (evens,odds) = partition' even [0 ..] in (take 4 evens,take 4 odds) |
2020-10-03 02:24:11 +0200 | <lambdabot> | mueval-core: Time limit exceeded |
2020-10-03 02:24:33 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 02:24:34 +0200 | <ski> | in this case (passing an infinite list as input), it's crucial to have the `~' here ! |
2020-10-03 02:24:50 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 02:24:50 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 02:24:50 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 02:25:01 +0200 | <ski> | also, for a long, but finite list, partition will produce output, before seeing the end, but partition' won't ! |
2020-10-03 02:25:29 +0200 | <koz_> | ski: OK, that makes sense, and is very interesting. |
2020-10-03 02:25:32 +0200 | <koz_> | Thank you! |
2020-10-03 02:26:12 +0200 | <ski> | (and if you use `readFile' or `getContents' to process a file that's very big, possibly even too large to fit into memory all at once (lazy I/O), you don't want to have to see the end of the list, before you can produce some part of the output. you want to be "incremental", rather than "bulky". partition is incremental) |
2020-10-03 02:26:39 +0200 | fendor | (~fendor@91.141.2.239.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
2020-10-03 02:27:01 +0200 | <ski> | the problem is that, if you're just matching on `(ts,fs)', you're actually matching on the recursive call to `foldr'. so, you're forcing `foldr' to get to the end of the list, before you can output the current element `x' in one or the other of the output lists |
2020-10-03 02:27:24 +0200 | <ski> | by matching on `~(ts,fs)', you delay that forcing of the recursive call |
2020-10-03 02:27:27 +0200 | <ski> | @src foldr |
2020-10-03 02:27:27 +0200 | <lambdabot> | foldr f z [] = z |
2020-10-03 02:27:27 +0200 | <lambdabot> | foldr f z (x:xs) = f x (foldr f z xs) |
2020-10-03 02:28:02 +0200 | <ski> | in this case, `~(ts,fs)' is perfectly safe, since there's no way that matching on `(ts,fs') (later) can fail with a pattern-match error |
2020-10-03 02:28:46 +0200 | <ski> | now .. lazy patterns aren't required that often. but when there's a situation that calls for them, they can help make the code more readable |
2020-10-03 02:29:31 +0200 | <ski> | insyead of `select p x ~(ts,fs) = ..ts..fs..' here, we could have said `select p x tsfs = ..(fst tsfs)..(snd tsfs)..', and it would also have worked |
2020-10-03 02:29:48 +0200 | carlomagno | (~cararell@inet-hqmc02-o.oracle.com) |
2020-10-03 02:30:48 +0200 | <ski> | or, instead of `foo ~(x:xs) = ..x..xs..', one could say `foo xs0 = ..x..xs.. where (x,xs) = case xs0 of x:xs -> (x,xs)' (or `foo xs0 = ..(case xs0 of x:_ -> x)..(case xs0 of _:xs -> xs)..') |
2020-10-03 02:31:07 +0200 | <ski> | however, the first is more readable |
2020-10-03 02:32:40 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 256 seconds) |
2020-10-03 02:35:35 +0200 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
2020-10-03 02:35:48 +0200 | <cohn> | for anyone that's familiar with the Wreq HTTP library: when you use a lens on a nested object, how do you get the values out? |
2020-10-03 02:37:25 +0200 | <dsal> | What do you mean? |
2020-10-03 02:38:08 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-10-03 02:38:13 +0200 | <dsal> | cohn: I have a few helpers: https://github.com/dustin/gopro-plus/blob/master/src/GoPro/Plus/Internal/HTTP.hs |
2020-10-03 02:38:33 +0200 | <cohn> | dsal: so if I have some json data like '{"foo": ["bar", "baz"]}' the array seems to get transformed into a Vector. How would I get the values out? |
2020-10-03 02:39:14 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 02:40:38 +0200 | <dsal> | I think I'd probably use `toListOf` |
2020-10-03 02:40:54 +0200 | <cohn> | hmm. okay |
2020-10-03 02:40:56 +0200 | <dsal> | I'm looking for a simple example, but none of my examples end up being quite simple enough. |
2020-10-03 02:41:34 +0200 | <cohn> | exactly my dilemma. : ( |
2020-10-03 02:41:43 +0200 | <dsal> | Maybe this one: https://github.com/dustin/gopro-plus/blob/master/src/GoPro/Plus/Media.hs#L173-L180 |
2020-10-03 02:42:49 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
2020-10-03 02:43:02 +0200 | <cohn> | that's promising. Thanks! |
2020-10-03 02:44:37 +0200 | <dsal> | I was hoping one of the bots had Aeson, but `toListOf` is your friend here. |
2020-10-03 02:44:52 +0200 | <dsal> | Or just use the vector, but that can be annoying sometimes. |
2020-10-03 02:45:09 +0200 | <dsal> | Or make a custom type and let it parse into that. I guess it depends on what you actual want. |
2020-10-03 02:45:32 +0200 | <cohn> | for now, just trying to learn Aeson and Wreq on some play data |
2020-10-03 02:45:47 +0200 | todda7 | (~torstein@athedsl-4367507.home.otenet.gr) (Ping timeout: 240 seconds) |
2020-10-03 02:46:16 +0200 | <dsal> | Much of mine ends up accessing custom types. Aeson will run my FromJSON code and just give me a value of my type. |
2020-10-03 02:46:38 +0200 | <dsal> | I do occasionally play with the underlying Aeson Value thing, though. |
2020-10-03 02:46:39 +0200 | <cohn> | I'll probably need to do the same |
2020-10-03 02:46:42 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-03 02:46:51 +0200 | <dsal> | Doing the "hard" thing may very well save you a lot of time and confusion. |
2020-10-03 02:47:01 +0200 | conal | (~conal@107.181.166.148) (Quit: Computer has gone to sleep.) |
2020-10-03 02:47:35 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 02:47:40 +0200 | jedws | (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 02:47:44 +0200 | <dsal> | Aeson lens is cool when you really want to just pull a smaller blob out of a big wad of JSON. But if you have a regular form you intend to do a lot with, you'll find the long road shorter. :) |
2020-10-03 02:48:21 +0200 | <cohn> | I was hoping to avoid actually having to write a bunch of code just to play around with some data but I think you're right. |
2020-10-03 02:49:51 +0200 | <dsal> | You can do it in lens code, or you can do it in type code. If you're in a repl, the lens stuff might be easier. If you're in a file, defining a type is straightforward unless you need to do some custom decoding. |
2020-10-03 02:50:07 +0200 | <cohn> | I will say though, Wreq + Aeson + Lens makes this MUCH less painful. |
2020-10-03 02:50:35 +0200 | <cohn> | I might need some custom decoding for a few things, but I think I have everything I need. |
2020-10-03 02:50:47 +0200 | <dsal> | cohn: e.g., much of my code looks something like this: https://github.com/dustin/tesla/blob/master/src/Tesla/Car.hs#L215-L228 |
2020-10-03 02:51:47 +0200 | <dsal> | Actually, from about there down is defining a sum type for two different types of results, making a request with wreq, and returning a list of the things of my type. |
2020-10-03 02:52:00 +0200 | <cohn> | ooh, nice |
2020-10-03 02:52:17 +0200 | <dsal> | (the two functions in the middle aren't actually part of this, just helpers for looking at only one type or other based on the prism) |
2020-10-03 02:54:38 +0200 | <cohn> | prism? |
2020-10-03 02:55:54 +0200 | johanna | (~johanna@s91904426.blix.com) |
2020-10-03 02:59:38 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 02:59:48 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 02:59:48 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 02:59:48 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 03:06:31 +0200 | berberman | (~berberman@2408:8207:2562:2400::a44) (Ping timeout: 272 seconds) |
2020-10-03 03:07:17 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@68.235.43.94) |
2020-10-03 03:07:43 +0200 | aarvar | (~foewfoiew@50.35.43.33) |
2020-10-03 03:18:20 +0200 | raehik | (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Read error: Connection reset by peer) |
2020-10-03 03:18:25 +0200 | raehik1 | (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
2020-10-03 03:20:25 +0200 | xff0x | (~fox@2001:1a81:5254:9a00:e9b2:76ba:9f0:a22b) (Ping timeout: 240 seconds) |
2020-10-03 03:21:36 +0200 | xff0x | (~fox@2001:1a81:5254:9a00:acd2:8569:1d0e:86f) |
2020-10-03 03:22:20 +0200 | cosimone | (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.) |
2020-10-03 03:25:56 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 03:29:57 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-10-03 03:30:58 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 260 seconds) |
2020-10-03 03:31:42 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 03:33:09 +0200 | HarveyPwca | (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) |
2020-10-03 03:36:27 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 260 seconds) |
2020-10-03 03:37:17 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 03:42:03 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 260 seconds) |
2020-10-03 03:42:52 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 03:45:45 +0200 | mav1 | (~mav@i59F456E0.versanet.de) (Ping timeout: 240 seconds) |
2020-10-03 03:46:25 +0200 | raehik1 | (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2020-10-03 03:47:55 +0200 | xff0x | (~fox@2001:1a81:5254:9a00:acd2:8569:1d0e:86f) (Ping timeout: 240 seconds) |
2020-10-03 03:49:47 +0200 | xff0x | (~fox@2001:1a81:528f:c400:acd2:8569:1d0e:86f) |
2020-10-03 03:54:28 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-03 03:54:50 +0200 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
2020-10-03 03:56:24 +0200 | <dsal> | cohn: Sorry, went outside for a bit. |
2020-10-03 03:56:27 +0200 | <dsal> | > [Right 1, Right 2, Left 3, Right 4, Left 5] ^.. folded . _Right |
2020-10-03 03:56:29 +0200 | <lambdabot> | [1,2,4] |
2020-10-03 03:57:18 +0200 | <dsal> | prism is a concept in optics that lets you do fun things with sum types. |
2020-10-03 03:58:44 +0200 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) () |
2020-10-03 03:59:32 +0200 | <cohn> | ah |
2020-10-03 03:59:47 +0200 | nnst^ | (nnst@ip98-184-89-2.mc.at.cox.net) |
2020-10-03 03:59:55 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
2020-10-03 04:00:01 +0200 | nineonine | (~nineonine@216.81.48.202) (Remote host closed the connection) |
2020-10-03 04:00:35 +0200 | nineonine | (~nineonine@216.81.48.202) |
2020-10-03 04:02:30 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 04:02:41 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 04:04:45 +0200 | nineonine | (~nineonine@216.81.48.202) (Ping timeout: 240 seconds) |
2020-10-03 04:06:01 +0200 | <dsal> | > [Right 1, Right 2, Left 3, Right 4, Left 5] & traversed . _Left %~ (^2) -- cohn: you can also do stuff where prisms point you a particular way. |
2020-10-03 04:06:03 +0200 | <lambdabot> | [Right 1,Right 2,Left 9,Right 4,Left 25] |
2020-10-03 04:06:17 +0200 | <cohn> | oh cool. |
2020-10-03 04:06:27 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 04:06:32 +0200 | <cohn> | maybe I can use that to pull the data out of my lens result |
2020-10-03 04:07:05 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 240 seconds) |
2020-10-03 04:07:14 +0200 | <dsal> | In my case, I get a big blob of results that includes both superchargers and destination chargers as different JSON results, but my charger type supports both and then lets me disambiguate later if I need to. |
2020-10-03 04:08:44 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:f016:8714:fb84:1abd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 04:08:45 +0200 | conal | (~conal@107.181.166.148) |
2020-10-03 04:09:38 +0200 | <cohn> | I have a value "x" with type "x :: vector-0.12.1.2:Data.Vector.Vector Value" but I'm not sure how to get the values out. I thought you could use the "!" operator on a vector |
2020-10-03 04:10:11 +0200 | <cohn> | but it appears that it's storing an Aeson Value type that I'm not sure how to deal with. |
2020-10-03 04:12:50 +0200 | <dsal> | I kind of wish I could aeson with a bot here, but... what lens library are you using? |
2020-10-03 04:13:07 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:4db2:8fe2:8bd1:e1c0) (Ping timeout: 240 seconds) |
2020-10-03 04:13:13 +0200 | <cohn> | both "Control.Lens" and "Data.Aeson.Lens" |
2020-10-03 04:13:14 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 04:14:00 +0200 | <dsal> | Yeah, but what library is the latter? |
2020-10-03 04:14:12 +0200 | <dsal> | @package lens-aeson |
2020-10-03 04:14:12 +0200 | <lambdabot> | https://hackage.haskell.org/package/lens-aeson |
2020-10-03 04:14:55 +0200 | <cohn> | checking. |
2020-10-03 04:15:17 +0200 | <cohn> | yea, should be lens-aeson |
2020-10-03 04:15:20 +0200 | <dsal> | The docs on that one show you how to use the prisms over value. |
2020-10-03 04:16:00 +0200 | <dsal> | Do you have a small sample of your JSON and what you want to do with it? |
2020-10-03 04:16:32 +0200 | taurux | (~taurux@net-188-216-43-60.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2020-10-03 04:16:39 +0200 | <dsal> | `stack ghci` in this project wants to go grab a copy of ghc. So... this will take me a sec. heh |
2020-10-03 04:17:09 +0200 | <dsal> | Oh wait, here's one where I have all the parts. |
2020-10-03 04:17:15 +0200 | <cohn> | sure, I'm basically working with the Kodi JSON RPC API |
2020-10-03 04:17:23 +0200 | <cohn> | fwiw: https://kodi.wiki/view/JSON-RPC_API/Examples |
2020-10-03 04:17:41 +0200 | conal | (~conal@107.181.166.148) (Quit: Computer has gone to sleep.) |
2020-10-03 04:18:55 +0200 | elliott__ | (~elliott@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 04:19:18 +0200 | <dsal> | I looked up at your example above: |
2020-10-03 04:19:33 +0200 | <dsal> | λ> "{\"foo\": [\"bar\", \"baz\"]}" ^.. key "foo" . _Array . folded . _String -> ["bar","baz"] |
2020-10-03 04:19:56 +0200 | <cohn> | that's exactly what I'm trying to do... :D |
2020-10-03 04:20:58 +0200 | taurux | (~taurux@net-188-152-1-196.cust.vodafonedsl.it) |
2020-10-03 04:21:26 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) |
2020-10-03 04:22:59 +0200 | <dsal> | λ> "{\"foo\": [\"bar\", \"baz\"]}" ^. key "foo" . nth 1 . _String -> "baz" |
2020-10-03 04:23:47 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection) |
2020-10-03 04:24:18 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 04:24:29 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2020-10-03 04:24:30 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Client Quit) |
2020-10-03 04:24:44 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 04:25:13 +0200 | <dsal> | λ> "{\"foo\": [\"bar\", \"baz\"]}" ^.. members . values -- also, this sort of thing --> [String "bar",String "baz"] |
2020-10-03 04:25:56 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:f17c:daaf:122b:4823) |
2020-10-03 04:26:25 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 04:26:35 +0200 | <cohn> | ok, here's a sample of the data I'm working with: https://pastebin.com/cYUUvXHe |
2020-10-03 04:26:44 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-03 04:27:59 +0200 | <cohn> | if "r" is my HTTP request response, I'm doing this: r ^? responseBody . key "result" . key "tvshows" . _Array |
2020-10-03 04:28:26 +0200 | <cohn> | sorry, replace "^?" with "^." |
2020-10-03 04:28:44 +0200 | <dsal> | Sure. I've got r as the responseBody in my repl |
2020-10-03 04:30:08 +0200 | <cohn> | that gives me something like this: |
2020-10-03 04:30:09 +0200 | <cohn> | [Object (fromList [("tvshowid",Number 157.0),("label",String "Show1")]),Object (fromList [("tvshowid",Number 164.0),("label",String "Show2")]),Object (fromList [("tvshowid",Number 31.0),("label",String "Show3")]),Object (fromList [("tvshowid",Number 162.0),("label",String "Show4")]),Object (fromList [("tvshowid",Number 163.0),("label",String "Show5")])] |
2020-10-03 04:30:24 +0200 | <cohn> | so it looks like an array of objects to me |
2020-10-03 04:30:31 +0200 | <dsal> | It's a list of an object. |
2020-10-03 04:30:43 +0200 | <cohn> | I want to get the pairs of show ids and labels out |
2020-10-03 04:31:31 +0200 | Stanley|00 | (~stanley00@unaffiliated/stanley00) |
2020-10-03 04:32:43 +0200 | <cohn> | I assume it'd be easier to create a type for that and use FromJSON/ToJSON but it'd be nice to just explore the data without that stuff |
2020-10-03 04:33:29 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 04:33:32 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 256 seconds) |
2020-10-03 04:33:42 +0200 | <dsal> | This is a little annoying. r ^.. key "result" . key "tvshows" . _Array . folded . to (\x -> (x ^? key "label" . _String, x ^? key "tvshowid" . _Integer)) |
2020-10-03 04:33:48 +0200 | <dsal> | But yeah, it'd be easier if you just had a type for that. :) |
2020-10-03 04:34:05 +0200 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
2020-10-03 04:34:43 +0200 | <cohn> | heh, okay |
2020-10-03 04:34:47 +0200 | <dsal> | You can't guarantee all of those things have the correct values, so they'd have to be maybes at best (which you could do in that lambda). Actually, that looks fun. |
2020-10-03 04:35:41 +0200 | <cohn> | depends on your definition of fun... ; ) |
2020-10-03 04:36:08 +0200 | <dsal> | You can't guarantee all of those things have the correct values, so they'd have to be maybes at best (which you could do in that lambda). Actually, that looks fun. |
2020-10-03 04:36:11 +0200 | <dsal> | Try this awful thing: r ^.. key "result" . key "tvshows" . _Array . folded . to (\x -> do { l <- x ^? key "label". _String; i <- x ^? key "tvshowid" . _Integer; pure (l,i)} ) . to sequenceA |
2020-10-03 04:36:14 +0200 | <dsal> | Oops, sorry for the dup. |
2020-10-03 04:37:15 +0200 | <dsal> | Oh wait, that was dumber than I meant. |
2020-10-03 04:37:25 +0200 | elliott__ | (~elliott@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2020-10-03 04:37:25 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2020-10-03 04:37:30 +0200 | <cohn> | didn't work. |
2020-10-03 04:37:56 +0200 | <dsal> | r ^.. key "result" . key "tvshows" . _Array . folded . to (\x -> do { l <- x ^? key "label". _String; i <- x ^? key "tvshowid" . _Integer; pure (l,i)} ) . _Just |
2020-10-03 04:38:15 +0200 | <dsal> | That returns [("Show1",157),("Show2",164),("Show3",31),("Show4",162),("Show5",163)] for me. |
2020-10-03 04:38:21 +0200 | Amras | (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
2020-10-03 04:39:26 +0200 | <cohn> | ah, okay. I'm getting an error but probably because my result is a lazy byte string |
2020-10-03 04:39:45 +0200 | <cohn> | <interactive>:51:7: error: |
2020-10-03 04:39:45 +0200 | <cohn> | • No instance for (AsValue |
2020-10-03 04:39:45 +0200 | <cohn> | (Response Data.ByteString.Lazy.Internal.ByteString)) |
2020-10-03 04:39:45 +0200 | <cohn> | arising from a use of ‘key’ |
2020-10-03 04:39:47 +0200 | <cohn> | • In the first argument of ‘(.)’, namely ‘key "result"’ |
2020-10-03 04:40:21 +0200 | <cohn> | I need to redo this... I was using the http-conduit library but I should convert it all to Wreq |
2020-10-03 04:40:56 +0200 | <dsal> | Yeah, you need to tell wreq to give you JSON |
2020-10-03 04:41:30 +0200 | <dsal> | There's an `asJSON` call in there somewhere. |
2020-10-03 04:41:33 +0200 | <cohn> | yep |
2020-10-03 04:41:58 +0200 | <dsal> | Did you get it working? |
2020-10-03 04:42:06 +0200 | <cohn> | should be something like r <- asJSON =<< get "http://blahblah" |
2020-10-03 04:42:21 +0200 | <dsal> | Yeah, I end up burying that in helpers. |
2020-10-03 04:42:24 +0200 | <cohn> | not yet. |
2020-10-03 04:42:33 +0200 | <dsal> | jget :: (FromJSON j, MonadIO m) => String -> m j; jget u = view responseBody <$> liftIO (asJSON =<< get u) |
2020-10-03 04:43:18 +0200 | <cohn> | nice |
2020-10-03 04:44:46 +0200 | <dsal> | Once you get it working, delete this all and do it a sane way. :) |
2020-10-03 04:45:19 +0200 | <cohn> | haha, will do. Thanks so much for all your help! |
2020-10-03 04:45:56 +0200 | <dsal> | I do occasionally use this for weird one-off HTTP things, but making a type makes it easier. Then making lenses for my types gives me the same things with fewer conversion prism things. |
2020-10-03 04:46:21 +0200 | <cohn> | I now see the benefit of types! |
2020-10-03 04:47:05 +0200 | <dsal> | You can do *bizarre* stuff with Aeson lenses. One of the Advent of Code problems had me like, sum up all of the numbers in an arbitrarily complex JSON file. That's a half-liner. |
2020-10-03 04:47:30 +0200 | <cohn> | fwiw, I'm coming from a Python background. Trying to switch some development over to Haskell for the safety and purity gains |
2020-10-03 04:47:41 +0200 | theDon | (~td@muedsl-82-207-238-055.citykom.de) (Ping timeout: 256 seconds) |
2020-10-03 04:47:46 +0200 | <cohn> | plus, the Python GIL sucks. :D |
2020-10-03 04:47:48 +0200 | <dsal> | Well, you're trying to learn haskell and lenses at the same time. That's also kind of a lot. heh |
2020-10-03 04:47:56 +0200 | <cohn> | it is |
2020-10-03 04:48:02 +0200 | <dsal> | Yeah, I burn every nearby thread with my haskell projects. |
2020-10-03 04:49:10 +0200 | theDon | (~td@94.134.91.90) |
2020-10-03 04:49:13 +0200 | <cohn> | I know the basics of Haskell so I can at least create the types for handling the JSON data |
2020-10-03 04:49:47 +0200 | <cohn> | I completed the "Get Programming with Haskell" book by Will Kurt. Great read! |
2020-10-03 04:49:49 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-03 04:50:05 +0200 | <cohn> | wanted to take that knowledge and start doing useful things with Haskell. |
2020-10-03 04:50:13 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Client Quit) |
2020-10-03 04:51:13 +0200 | <dsal> | I don't know that one, but I like your style. :) |
2020-10-03 04:51:49 +0200 | <dsal> | Haskell's been my goto language for a while now. I don't do heavy lens stuff much, so I stay a bit rusty there, but for blue collar stuff, it's pretty great. |
2020-10-03 04:52:02 +0200 | <dsal> | I can pick up projects I've not looked at in months and drop a new feature in with little effort. |
2020-10-03 04:52:32 +0200 | <dsal> | My biggest complaint is that it's often *too* little effort. Like, I sit down to write a bit of code and then once I figure out what I want to do, I'm done. Now I'm sad because my big project isn't. |
2020-10-03 04:52:40 +0200 | <cohn> | that's not always easy to say with other languages |
2020-10-03 04:53:21 +0200 | <dsal> | You'd *think* it'd be hard with haskell with some of the golf we do sometimes, but in practice, it just means the hard parts are in one place and well tested, and the easy parts are just kind of obvious. |
2020-10-03 04:53:45 +0200 | lagothrix | Guest95125 |
2020-10-03 04:53:45 +0200 | Guest95125 | (~lagothrix@unaffiliated/lagothrix) (Killed (tolkien.freenode.net (Nickname regained by services))) |
2020-10-03 04:53:51 +0200 | <dsal> | For an egregious example, here's the code that honks the horn and flashes the lights in my car: https://github.com/dustin/tesla/blob/master/src/Tesla/Car/Command/Alerts.hs |
2020-10-03 04:53:53 +0200 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-10-03 04:54:09 +0200 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 244 seconds) |
2020-10-03 04:54:19 +0200 | <dsal> | https://dustin.github.io/tesla/Tesla-Car-Command-Alerts.html -- (there's a longstanding bug about not being able to document TH stuff better, unfortunately) |
2020-10-03 04:54:30 +0200 | <cohn> | hah, nice |
2020-10-03 04:54:36 +0200 | <dolio> | I don't know why anyone would think it'd be hard. |
2020-10-03 04:54:58 +0200 | <dolio> | People haven't been developing functional programming for 50+ years to make programming harder. |
2020-10-03 04:55:24 +0200 | <dsal> | Haskell is only for smart people who think they're better than everyone else. |
2020-10-03 04:56:12 +0200 | <dsal> | Or at least people who *think* they're smart, but can't even explain monads to me like I'm five in six words or less without having me understand any further context. |
2020-10-03 04:56:28 +0200 | <cohn> | xD |
2020-10-03 04:57:09 +0200 | <dsal> | Imagine talking to a programmer who only knows like, BASIC. They want you to explain python metaclasses to them, but in terms of things they understand. |
2020-10-03 04:57:17 +0200 | <cohn> | what's that saying: better to be quiet and have people think you're an idiot than open your mouth and remove all doubt |
2020-10-03 04:57:20 +0200 | <cohn> | something like that. |
2020-10-03 04:57:44 +0200 | <dsal> | Nah, go ahead and ask dumb questions. Better to have people think you're dumb than to just sit around being dumb. :) |
2020-10-03 04:57:56 +0200 | <cohn> | yea, I probably couldn't explain stuff to a BASIC programmer |
2020-10-03 04:58:03 +0200 | <cohn> | lol, true |
2020-10-03 04:58:10 +0200 | drbean | (~drbean@TC210-63-209-38.static.apol.com.tw) |
2020-10-03 04:58:32 +0200 | <ski> | @quote beyond.hope |
2020-10-03 04:58:32 +0200 | <lambdabot> | EdsgerDijkstra says: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of |
2020-10-03 04:58:33 +0200 | <lambdabot> | regeneration." |
2020-10-03 04:58:47 +0200 | <cohn> | I will say, everyone I've encountered in this channel has been incredibly helpful. I've learned quite a lot so far |
2020-10-03 04:58:54 +0200 | ski | raises hand |
2020-10-03 04:59:05 +0200 | <ddellacosta> | it's better to be loud and have people think you're an idiot than suffer in ignoranc. |
2020-10-03 04:59:05 +0200 | <cohn> | heh |
2020-10-03 04:59:11 +0200 | <ddellacosta> | *ignorance |
2020-10-03 04:59:23 +0200 | <dsal> | It's a bit of the blub paradox. Everything the BASIC programmer knows is in terms of GOTO and GOSUB. Why do you need a function? It's just a fancy case of GOSUB. Same thing as you go up. I can't explain a functor to you if you don't have a concept of data structures or functions. Even if you've probably used them. |
2020-10-03 04:59:43 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 05:00:01 +0200 | johanna | (~johanna@s91904426.blix.com) () |
2020-10-03 05:00:17 +0200 | ski | remembers `DEF FNAR(R)=PI*R^2' |
2020-10-03 05:00:56 +0200 | <ski> | people have to take it in reasonable enough steps |
2020-10-03 05:01:28 +0200 | <dsal> | Yeah, and some people believe that's incorrect and if they can't understand it in one, then it's a pointless waste of time. |
2020-10-03 05:01:39 +0200 | <monochrom> | I need a function because GOSUB doesn't let me pass parameters or return values unless I set aside global variables for that and hope I don't make a mistake. |
2020-10-03 05:01:43 +0200 | <ski> | not much you can do about it .. |
2020-10-03 05:01:52 +0200 | <cohn> | dsal: you must read Paul Graham essays. ; ) |
2020-10-03 05:01:55 +0200 | <dolio> | monochrom: Just don't make mistakes. |
2020-10-03 05:02:11 +0200 | <dsal> | I was trying to explain a trivial thing I did in a library using STM that was really exciting to me to someone once. She was like, "Can't you do that in java?" Which... yes, I could solve this problem in java, but it'd be an engineering feat for this one exact use case. I wrote the code without considering this use case. |
2020-10-03 05:02:14 +0200 | <dsal> | cohn: heh, that one at least. |
2020-10-03 05:02:18 +0200 | <monochrom> | And then if I desire a recursive function I'm screwed. |
2020-10-03 05:02:39 +0200 | <cohn> | dsal: http://paulgraham.com/avg.html ? |
2020-10-03 05:02:45 +0200 | <ski> | who needs dynamic allocation of variables .. |
2020-10-03 05:02:51 +0200 | <ski> | cohn, yep |
2020-10-03 05:03:32 +0200 | <dsal> | cohn: yeah, it at least helps the understanding. If you only know language X and are good at it, then it's all you need and it's hard to talk to you in terms of things that you can't possibly do that I feel like I require to solve my problems. |
2020-10-03 05:03:56 +0200 | <ski> | you can call a subroutine by modifying the ending `jmp' instruction to jump back just after where you `jmp'ed to it |
2020-10-03 05:04:12 +0200 | <dsal> | e.g., I've seen STM in other languages (e.g., C++, java, etc...), but they all look very hard to use correctly in a way that haskell is nearly impossible to use incorrectly. |
2020-10-03 05:04:14 +0200 | conal | (~conal@64.71.133.70) |
2020-10-03 05:04:25 +0200 | <monochrom> | So I was an exception to Dijsktra's quote. BASIC prepared me to be disappointed at BASIC and ready to receive Pascal as gospel. |
2020-10-03 05:05:02 +0200 | <dsal> | monochrom is secretly working his students up to be Pascal programmers. |
2020-10-03 05:05:38 +0200 | <ski> | i remember learning about C (and compilation), being amazed at the idea that there was a standardized format for functions, each function didn't have its own custom syntax .. |
2020-10-03 05:05:43 +0200 | <cohn> | dsal: exactly. the blub paradox is one reason I set out to learn FP. Just so happens that Haskell is a general purpose language without all the damn parenthesis. |
2020-10-03 05:05:48 +0200 | <cohn> | hehe |
2020-10-03 05:06:13 +0200 | pjb | (~t@2a01cb04063ec50074da2bfcb3222c7a.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2020-10-03 05:06:28 +0200 | <dsal> | Yeah, and once you learn about some of our tools, you'll be incredibly frustrated when you go to work and they don't let you use them. |
2020-10-03 05:06:30 +0200 | iqubic | (~user@2601:602:9500:4870:709f:b119:f02e:2ee7) |
2020-10-03 05:06:30 +0200 | <cohn> | err, s/parenthesis/parentheses/ |
2020-10-03 05:06:38 +0200 | ski | . o O ( "6. The more you know, the more you know." ) |
2020-10-03 05:06:53 +0200 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-10-03 05:07:03 +0200 | <cohn> | I'm already loving stack and the language server plugin for VS Code (yea, yea) |
2020-10-03 05:07:08 +0200 | <dsal> | Or you see really bad translations of stuff. go shipped with a quickcheck library that is fundamentally broken because the language is lacking in several dimensions. |
2020-10-03 05:07:20 +0200 | <dsal> | was the (yea, yea) for stack or VS? :) |
2020-10-03 05:07:26 +0200 | <dsal> | We have our own subreligions. |
2020-10-03 05:07:27 +0200 | <cohn> | hmm... |
2020-10-03 05:07:47 +0200 | <cohn> | VS Code. I'd imagine most folks shun it in favor of Emacs |
2020-10-03 05:07:51 +0200 | <dsal> | I like/use stack, but some people will fight. |
2020-10-03 05:08:06 +0200 | monochrom | draws sword |
2020-10-03 05:08:08 +0200 | zebrag | (~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) |
2020-10-03 05:08:17 +0200 | <dsal> | emacs is the one true religion, but we support alternative lifestyles |
2020-10-03 05:08:21 +0200 | <dolio> | I mean, I don't care what other people use. I just want them to stop telling me to use their stuff. |
2020-10-03 05:08:25 +0200 | inkbottle | (~inkbottle@aaubervilliers-654-1-1-33.w83-200.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2020-10-03 05:08:25 +0200 | <cohn> | I normally would too since I tend to associate anything from Redmond with pure evil, but I gotta say, VS Code is pretty nice |
2020-10-03 05:08:32 +0200 | <dolio> | Or lying about the stuff I use. |
2020-10-03 05:08:50 +0200 | <dsal> | cohn: You're talking like you're around my age. heh |
2020-10-03 05:09:04 +0200 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds) |
2020-10-03 05:09:05 +0200 | Lord_of_Life_ | Lord_of_Life |
2020-10-03 05:09:07 +0200 | <dsal> | It was kind of nice doing a fresh nixos install today and starting a project build without installing stack or ghc or anything. |
2020-10-03 05:09:09 +0200 | jedws | (~jedws@121.209.139.222) |
2020-10-03 05:09:16 +0200 | <cohn> | I might be |
2020-10-03 05:09:39 +0200 | <cohn> | been doing this crap for ~ 30-ish years |
2020-10-03 05:09:56 +0200 | <cohn> | wish I had found FP much sooner. |
2020-10-03 05:10:01 +0200 | <dsal> | There are brilliant haskell brains at MS. Keeping some of those folks on the payroll at least makes me feel much better about them. |
2020-10-03 05:10:08 +0200 | <dsal> | cohn: You're describing everything in my life. |
2020-10-03 05:10:27 +0200 | <cohn> | whoa. |
2020-10-03 05:10:34 +0200 | <iqubic> | dsal: I do love a fresh nixos install. |
2020-10-03 05:10:42 +0200 | <dsal> | The good news is, though I've never found anything and felt like I was too late, I still hopefully have some time left. |
2020-10-03 05:10:47 +0200 | <iqubic> | Haskell and Nix work so well together. |
2020-10-03 05:10:54 +0200 | cohn | must be in The Matrix |
2020-10-03 05:11:08 +0200 | <dsal> | nixos is another religion that bumps up against people in this channel at times. heh |
2020-10-03 05:12:01 +0200 | <dsal> | iqubic: are you using haskell.nix? I'm super lazy. It's nearly zero effort for me to build my packages, but it's a lot effort for the computer. |
2020-10-03 05:12:42 +0200 | <cohn> | I just want to learn everything I can. I use what works best for what I need and leave the religous wars to everybody else |
2020-10-03 05:12:55 +0200 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-10-03 05:13:08 +0200 | bloodstalker | (~bloodstal@46.166.187.154) (Read error: Connection reset by peer) |
2020-10-03 05:13:38 +0200 | jedws | (~jedws@121.209.139.222) (Ping timeout: 260 seconds) |
2020-10-03 05:13:53 +0200 | <cohn> | e.g. I use vim, Emacs, and VS Code every day for different things. I've played with Nix a little bit, as well ask stack and cabal. |
2020-10-03 05:13:54 +0200 | Dose8 | (~draven@75-109-68-113.stabcmtk02.res.dyn.suddenlink.net) |
2020-10-03 05:14:15 +0200 | <dsal> | Sure, sure. nixos is a Linux distribution that solves all of my OS problems. It's not super relevant here. |
2020-10-03 05:14:27 +0200 | Dose8 | (~draven@75-109-68-113.stabcmtk02.res.dyn.suddenlink.net) (Client Quit) |
2020-10-03 05:15:01 +0200 | <dsal> | I think stack is a little less popular here, but I've not been able to replace it yet. Each time I try, there's something that it does that I have a hard time replacing, so I don't bother. |
2020-10-03 05:15:27 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds) |
2020-10-03 05:15:37 +0200 | <cohn> | nix seems very well suited to use with Docker. But that could be overkill. |
2020-10-03 05:16:19 +0200 | <dsal> | nix is an alternative to docker in many ways. You end up with much less overhead and more resource sharing and stuff. That said, I run docker on nixos when I need it. *shrug* |
2020-10-03 05:16:33 +0200 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-03 05:16:46 +0200 | <cohn> | huh, never thought about it that way |
2020-10-03 05:17:46 +0200 | drbean | (~drbean@TC210-63-209-38.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
2020-10-03 05:17:49 +0200 | <dsal> | I do a build of my project, copy it into an external nix store, and then pull it down and run the specific version where I need it. I run a bunch of junk in aws on a machine too small to actually do the build, so I spin up a big machine to do the build, then copy artifacts out and upgrade when needed. |
2020-10-03 05:18:11 +0200 | <dsal> | Something about my lazy haskell.nix thing means it often ends up building like, all of ghc to make a binary. A little expensive, but it's just zero effort on my part. |
2020-10-03 05:19:42 +0200 | <dsal> | I had a small fix of my mqttd a day or so ago and the build process took *hours* on a large AWS machine. It actually caches all those artifacts, but I don't keep any of that state. |
2020-10-03 05:20:10 +0200 | <dsal> | haskell *can* compile very slowly. Some of my Advent of Code solutions run in O(1) time because I made the compiler compute the answer. heh |
2020-10-03 05:21:11 +0200 | drbean | (~drbean@TC210-63-209-81.static.apol.com.tw) |
2020-10-03 05:22:58 +0200 | <cohn> | that's cheating. ;) |
2020-10-03 05:23:04 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 05:23:35 +0200 | <dsal> | Not in that case, but it was just to do it. |
2020-10-03 05:24:05 +0200 | <cohn> | heh |
2020-10-03 05:24:19 +0200 | m0rphism | (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
2020-10-03 05:24:28 +0200 | <dsal> | I liked running the benchmarks and having it say my solution was around 6 ns. |
2020-10-03 05:24:36 +0200 | notzmv | (~user@unaffiliated/zmv) |
2020-10-03 05:26:20 +0200 | <monochrom> | If you can compile slowly, you can run quickly. >:) |
2020-10-03 05:34:12 +0200 | wwwww | (~wwwww@unaffiliated/wwwww) (Ping timeout: 272 seconds) |
2020-10-03 05:36:56 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:c105:622a:ea90:4f2d) |
2020-10-03 05:38:00 +0200 | kreyren | (~kreyren@fsf/member/kreyren) |
2020-10-03 05:38:24 +0200 | conal_ | (~conal@64.71.133.70) |
2020-10-03 05:38:39 +0200 | <kreyren> | i asked this question in #haskell-stack but reasking here as it seems that the channel has low traffic |
2020-10-03 05:38:43 +0200 | <kreyren> | i am keep getting https://dpaste.com/ASUFJEDKC.txt running build target in makefile http://ix.io/2zyp -> How do i make sure it's not trying to halt my system over time |
2020-10-03 05:38:47 +0200 | <kreyren> | basically fails to compile each time, system info http://ix.io/2zyr |
2020-10-03 05:43:45 +0200 | conal_ | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-10-03 05:46:05 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) |
2020-10-03 05:46:15 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer) |
2020-10-03 05:46:29 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) |
2020-10-03 05:50:46 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 05:51:05 +0200 | iqubic | (~user@2601:602:9500:4870:709f:b119:f02e:2ee7) (Remote host closed the connection) |
2020-10-03 05:53:16 +0200 | <kreyren> | created swapfile with 2G and that made it to continue past the breakpoint so i guess there is an issue with resource allocating on linux |
2020-10-03 05:54:59 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) (Ping timeout: 272 seconds) |
2020-10-03 05:55:05 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 240 seconds) |
2020-10-03 05:55:34 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:c105:622a:ea90:4f2d) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 05:57:12 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection) |
2020-10-03 05:58:13 +0200 | <c_wraith> | there are a couple of libraries that do so much inlining that they take up ridiculous amounts of memory to compile |
2020-10-03 05:58:18 +0200 | JLP1 | (~JLP@185.204.1.185) |
2020-10-03 05:58:39 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 05:58:48 +0200 | <dsal> | I think I end up building those in parallel |
2020-10-03 05:58:52 +0200 | <c_wraith> | vector-algorithms is the worst offender in my exerience, but there are probably some others. |
2020-10-03 05:59:21 +0200 | <dsal> | kreyren: you may consider reducing concurrency |
2020-10-03 05:59:52 +0200 | <kreyren> | dsal, i am not upstream can you elaborate? |
2020-10-03 06:00:21 +0200 | <dsal> | You can limit jobs in ~/.stack/config.yaml |
2020-10-03 06:00:58 +0200 | <dsal> | https://docs.haskellstack.org/en/stable/yaml_configuration/#jobs |
2020-10-03 06:01:19 +0200 | <kreyren> | checking |
2020-10-03 06:02:30 +0200 | <dsal> | -j1 will take longer, but use less memory |
2020-10-03 06:03:21 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 06:04:34 +0200 | kreyren_ | (~kreyren@fsf/member/kreyren) |
2020-10-03 06:04:51 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
2020-10-03 06:06:46 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 06:06:46 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 06:06:46 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 06:07:09 +0200 | kreyren | (~kreyren@fsf/member/kreyren) (Remote host closed the connection) |
2020-10-03 06:07:12 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection) |
2020-10-03 06:07:25 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 06:07:33 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 06:07:34 +0200 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds) |
2020-10-03 06:08:56 +0200 | zacts | (~zacts@dragora/developer/zacts) |
2020-10-03 06:09:10 +0200 | sand_dull | (~theuser@cpe-67-252-1-237.nycap.res.rr.com) |
2020-10-03 06:15:58 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 06:15:58 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 06:15:58 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 06:16:31 +0200 | machinedgod | (~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 260 seconds) |
2020-10-03 06:16:55 +0200 | ryansmccoy | (~ryansmcco@193.37.254.27) (Ping timeout: 240 seconds) |
2020-10-03 06:17:18 +0200 | ryansmccoy | (~ryansmcco@156.96.151.132) |
2020-10-03 06:17:29 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) |
2020-10-03 06:20:27 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds) |
2020-10-03 06:21:09 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Remote host closed the connection) |
2020-10-03 06:23:39 +0200 | pjb | (~t@2a01cb04063ec50000323e4acd27c310.ipv6.abo.wanadoo.fr) |
2020-10-03 06:24:20 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 06:26:08 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Remote host closed the connection) |
2020-10-03 06:26:09 +0200 | Buntspecht | (~user@unaffiliated/siracusa) (Read error: Connection reset by peer) |
2020-10-03 06:26:23 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 06:33:09 +0200 | sand_dull | (~theuser@cpe-67-252-1-237.nycap.res.rr.com) (Ping timeout: 265 seconds) |
2020-10-03 06:35:09 +0200 | Buntspecht | (~user@unaffiliated/siracusa) |
2020-10-03 06:37:15 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Read error: Connection reset by peer) |
2020-10-03 06:37:20 +0200 | Saukk | (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) |
2020-10-03 06:40:26 +0200 | <hololeap> | class Foo a where ; type Bar a ; foo :: Bar a -> Maybe Bool |
2020-10-03 06:40:46 +0200 | <hololeap> | why is GHC trying to make me turn on AllowAmbiguousTypes for this? |
2020-10-03 06:41:07 +0200 | <c_wraith> | because it has no way to infer `a' from a call to foo |
2020-10-03 06:41:27 +0200 | <ski> | `Bar' is not injective |
2020-10-03 06:41:45 +0200 | <hololeap> | ski: what does that mean? |
2020-10-03 06:42:14 +0200 | day_ | (~Unknown@unaffiliated/day) |
2020-10-03 06:42:16 +0200 | <ski> | it means that you could possibly have `Bar T0 = Bar T1', for two different types `T0' and `T1' |
2020-10-03 06:42:19 +0200 | <c_wraith> | instance Foo Int where Bar Int = () ; instance Foo Bool where Bar Bool = () |
2020-10-03 06:43:14 +0200 | <ski> | so, if you're passing something of type `Bar T0' to `foo', and say that `Bar T0 = String'. then it you also have `Bar T1 = String', and so it doesn't know whether to use the `Foo T0' or the `Foo T1' instance (which may give different implementations for `foo') |
2020-10-03 06:43:36 +0200 | <hololeap> | so, since there could be multiple instances of Foo which define the same Bar, there is no way to determine the Foo, given a Bar? |
2020-10-03 06:43:50 +0200 | <ski> | (that is, you're actually passing `String' to `foo', and it can't decide whether you mean `Foo T0' or `Foo T1') |
2020-10-03 06:43:53 +0200 | <c_wraith> | Not by inference, anyway |
2020-10-03 06:43:55 +0200 | borne | (~fritjof@200116b86454500007933c164a08810c.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2020-10-03 06:44:08 +0200 | <c_wraith> | You can use -XTypeApplications |
2020-10-03 06:44:14 +0200 | <hololeap> | c_wraith: it yells at me just with the class definition |
2020-10-03 06:44:15 +0200 | <ski> | you could declare `Bar' to be an associated `data' type. then it'd be injective |
2020-10-03 06:44:36 +0200 | <c_wraith> | yes, you need to allow the class, too |
2020-10-03 06:44:42 +0200 | <ski> | or, you could add an FD on it, to declare that it must be injective (prohibiting having both `Foo T0' and `Foo T1' as instances) |
2020-10-03 06:45:05 +0200 | day | (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
2020-10-03 06:45:05 +0200 | day_ | day |
2020-10-03 06:45:10 +0200 | <hololeap> | ski: what would that look like in this case? |
2020-10-03 06:46:04 +0200 | borne | (~fritjof@200116b864ada80031152e74c90dd565.dip.versatel-1u1.de) |
2020-10-03 06:46:29 +0200 | <hololeap> | are you saying have something like `class Foo a bar | a -> bar ...` |
2020-10-03 06:47:06 +0200 | <ski> | class Foo a where {type Bar a = b | b -> a; foo :: Bar a -> Maybe Bool} |
2020-10-03 06:47:31 +0200 | <hololeap> | oh, i didn't know you could use functional dependencies on type families in a class |
2020-10-03 06:47:31 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 06:48:04 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 06:49:02 +0200 | <ski> | (if one could use the usual FD syntax, it would have looked like `class Foo a | (Bar a) -> a where ..'. but that's not allowed syntax. an FD `x y -> z' means `z' is functionally determined by `x' and `y', not by `x' applied to `y') |
2020-10-03 06:49:36 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-10-03 06:49:43 +0200 | <ski> | anyway, of course you could instead use `class Foo a bar_a | bar_a -> a where bar :: bar_a -> Maybe Bool', if you want to go for MPTC with FD |
2020-10-03 06:51:00 +0200 | <hololeap> | so `b -> a` in FD terms means that each `b` must have exactly one `a` (thus ensuring injectivity) |
2020-10-03 06:51:51 +0200 | <ski> | (and, as i said, you could have done `class Foo a where data Bar a; foo :: Bar a -> Maybe Bool}'. but then you couldn't make synonyms in some instances) |
2020-10-03 06:52:01 +0200 | <ski> | hololeap : no, at most one |
2020-10-03 06:52:25 +0200 | <hololeap> | right, since some b's may not have a typeclass associated with them |
2020-10-03 06:52:44 +0200 | <hololeap> | or, that particular typeclass |
2020-10-03 06:53:06 +0200 | <hololeap> | they may not have an instance of the given typeclass associated with them |
2020-10-03 06:53:59 +0200 | <ski> | if you have `class Blah a b c | a -> b where ...', then the FD here logically means `forall a. unique b. exists c. Blah a b' (by `unique' i mean "exists at most one"), which is logically equivalent to `forall a b0 b1 c0 c1. (Blah a b0 c0,Blah a b1 c1) => b0 = b1' |
2020-10-03 06:54:29 +0200 | nan` | (nan`@gateway/vpn/privateinternetaccess/nan/x-47321016) |
2020-10-03 06:54:42 +0200 | <ski> | iow, if two instances of `Blah' agrees in the `a' parameter position, then they've got to also agree in the `b' parameter position (or else you're not allowed to have both instances at the same time) |
2020-10-03 06:55:27 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 06:56:18 +0200 | <hololeap> | so, `class Foo a b | b -> a ...` `instance Foo Int String` `instance Foo Bool String` |
2020-10-03 06:56:21 +0200 | <hololeap> | would not be allowed |
2020-10-03 06:56:25 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-10-03 06:56:27 +0200 | <ski> | right |
2020-10-03 06:57:25 +0200 | <hololeap> | okiedoke. this opens up a new world of GHC yelling at me. thanks :) |
2020-10-03 06:57:55 +0200 | <hololeap> | (not sarcastic, though tongue in cheek) |
2020-10-03 06:58:01 +0200 | <ski> | so practical effects of FDs are two. (a) not being allowed to have such instances at the same time, which would violate the FD; and (b), if during type inference/checking, it has derived that `Blah a b0 c0' and also `Blah a b1 c1' holds, then it knows that `b0' and `b1' must be equal, so it goes on to unify them directly |
2020-10-03 06:58:43 +0200 | <ski> | if there's no `c' part, then that in turns means that it can simplify the constraint `(Blah a b0,Blah a b1)' to just `Blah a b' |
2020-10-03 06:59:10 +0200 | raul782 | (~raul782@190.237.41.123) |
2020-10-03 06:59:44 +0200 | <ski> | and, this unification of `b0' and `b1' typically manifests itself as getting less ambiguous types, less need for explicitly informing the type system that, yes, you'd like this `b' over here to actually be the same as that `b' over there |
2020-10-03 07:00:03 +0200 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-10-03 07:00:04 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2020-10-03 07:00:43 +0200 | <ski> | or, in your case, as allowing a signature that would otherwise be illegal, due to being ambiguous (no way to determine `a' from the argument and result type of `foo') |
2020-10-03 07:00:50 +0200 | isovector1 | (~isovector@172.103.216.166.cable.tpia.cipherkey.com) |
2020-10-03 07:01:09 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 07:01:36 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@68.235.43.94) (Quit: Leaving) |
2020-10-03 07:02:19 +0200 | <hololeap> | ski, why did you write `forall. a` earilier? wouldn't this signify that every possible type needs to have an instance of this class? |
2020-10-03 07:02:33 +0200 | <ski> | no |
2020-10-03 07:02:54 +0200 | <ski> | are you thinking about the `forall a. unique b. exists c. Blah a b' formulation, or the `forall a b0 b1 c0 c1. (Blah a b0 c0,Blah a b1 c1) => b0 = b1' formulation ? |
2020-10-03 07:03:18 +0200 | <hololeap> | `forall a. unique b. exists c.` |
2020-10-03 07:03:36 +0200 | <hololeap> | i put the period in the wrong place |
2020-10-03 07:04:03 +0200 | <ski> | that reads as : for each type `a', there can be at most one type `b', such that for (at least) one type `c', we have an instance `Blah a b c' |
2020-10-03 07:04:21 +0200 | <hololeap> | ok |
2020-10-03 07:04:34 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-10-03 07:04:46 +0200 | <hololeap> | i see what you're saying |
2020-10-03 07:05:15 +0200 | <ski> | note that `unique b. ..b..'/"there can be at most one type `b', ..`b'.." is contravariant in `..b..'. so it's not demanding that `..b..' should hold, but rather placing a constraint on situations in which it does hold |
2020-10-03 07:06:37 +0200 | <ski> | `unique b. ..b..' means `forall b0 b1. (..b0..,..b1..) => b0 = b1'. so `unique b. exists c. Blah a b c' means `forall b0 b1. (exists c. Blah a b0 c,exists c. Blah a b1 c) => b0 = b1' |
2020-10-03 07:07:16 +0200 | <hololeap> | and `exists c.` just means that c needs to be defined, no other constraints |
2020-10-03 07:07:18 +0200 | <ski> | so, `Blah ...' ends up not in the consequent (after the `=>'), but in the antecedent (before the `=>'), of the implication |
2020-10-03 07:08:05 +0200 | <hololeap> | got it |
2020-10-03 07:08:12 +0200 | <hololeap> | never had it explained that way before |
2020-10-03 07:08:19 +0200 | <ski> | (and, in turn, `(exists c. Blah a b0 c,exists c. Blah a b1 c) => b0 = b1' becomes `(exists c0 c1. (Blah a b0 c0,Blah a b1 c1)) => b0 = b1', which becomes `forall c0 c1. (Blah a b0 c0,Blah b1 c1) => b0 = b1') |
2020-10-03 07:09:05 +0200 | <ski> | "and `exists c.` just means that c needs to be defined, no other constraints" -- exactly. there just has to be some `c', we don't care which (can be different, for the two different instances that we're considering). `c' is irrelevant to the FD `a -> b' |
2020-10-03 07:10:40 +0200 | <ski> | the same interpretation of FDs applies to relations/tables, in relational data base design (usually one thinks of this, when doing normalization of relations) |
2020-10-03 07:12:54 +0200 | <ski> | (one can, similarly, do normalization of MPTCs with FDs. and i suppose also if you have ATs with injectivity annotations) |
2020-10-03 07:13:25 +0200 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2020-10-03 07:14:38 +0200 | p0a | (~user@unaffiliated/p0a) |
2020-10-03 07:14:39 +0200 | <p0a> | Hello |
2020-10-03 07:14:49 +0200 | <p0a> | is there a way to view documentation of the Main module in haddock? |
2020-10-03 07:16:08 +0200 | raul782 | (~raul782@190.237.41.123) (Read error: Connection reset by peer) |
2020-10-03 07:16:27 +0200 | urodna | (~urodna@unaffiliated/urodna) (Read error: Connection reset by peer) |
2020-10-03 07:16:32 +0200 | ym555 | (~ym@156.199.76.92) |
2020-10-03 07:16:43 +0200 | raul782 | (~raul782@190.237.41.123) |
2020-10-03 07:17:14 +0200 | urodna | (~urodna@unaffiliated/urodna) |
2020-10-03 07:17:26 +0200 | JLP1 | (~JLP@185.204.1.185) (Remote host closed the connection) |
2020-10-03 07:17:54 +0200 | Saukk | (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Remote host closed the connection) |
2020-10-03 07:23:46 +0200 | ryansmccoy | (~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds) |
2020-10-03 07:23:56 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 07:24:16 +0200 | ryansmccoy | (~ryansmcco@193.37.254.27) |
2020-10-03 07:26:13 +0200 | mmohammadi98126 | (~mmohammad@2.178.147.205) |
2020-10-03 07:28:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2020-10-03 07:28:34 +0200 | nan` | (nan`@gateway/vpn/privateinternetaccess/nan/x-47321016) (Quit: leaving) |
2020-10-03 07:34:26 +0200 | <p0a> | I can see how the compiler catches bugs now with the type system |
2020-10-03 07:34:50 +0200 | <p0a> | for example when you add fields to a type, the constructor will no longer match the signature |
2020-10-03 07:35:16 +0200 | <p0a> | whereas in C you can get silent compilations with uninitialized data |
2020-10-03 07:35:35 +0200 | <p0a> | and even if the code is correct, you still need to dig up all such occurences and fix them. |
2020-10-03 07:35:36 +0200 | skorgon | (~skorgon@217.146.82.202) |
2020-10-03 07:36:17 +0200 | <dsal> | You can totally have uninitialized fields in haskell types. :) |
2020-10-03 07:36:34 +0200 | <dsal> | It's a bad idea, but occasionally it's useful. |
2020-10-03 07:37:33 +0200 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-10-03 07:38:25 +0200 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2020-10-03 07:38:56 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 07:40:39 +0200 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Client Quit) |
2020-10-03 07:40:55 +0200 | <p0a> | dsal: Okay but (X y z) messes up when you change X to three fields, right? :) |
2020-10-03 07:41:04 +0200 | <dsal> | Yeah. |
2020-10-03 07:41:25 +0200 | ski | . o O ( (`-Wmissing-fields',`-Woverlapping-patterns',)`-Wincomplete-patterns',`-Wincomplete-uni-patterns' ) |
2020-10-03 07:41:54 +0200 | <dsal> | Same as in go and other languages. That's not the revolutionary benefit of haskell's type system. :) |
2020-10-03 07:42:09 +0200 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
2020-10-03 07:42:24 +0200 | <ski> | > let foo Node{} = () in foo Node{} -- not really fond of such patterns |
2020-10-03 07:42:26 +0200 | <lambdabot> | () |
2020-10-03 07:43:37 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 258 seconds) |
2020-10-03 07:43:38 +0200 | iqubic | (~user@2601:602:9500:4870:8a40:95c2:967a:70b4) |
2020-10-03 07:45:04 +0200 | <p0a> | Why do I get this error? file-library-exe: ./library.database: openFile: does not exist (No such file or directory) |
2020-10-03 07:45:48 +0200 | <p0a> | https://paste.tomsmeding.com/Um3sNGUr |
2020-10-03 07:46:41 +0200 | <p0a> | (I know the code is long, but readDatabase and writeDatabase are relevant on Lib.hs |
2020-10-03 07:47:04 +0200 | <p0a> | tomsmeding: your paste would be nicer if it had line numbers :) I think |
2020-10-03 07:47:21 +0200 | <dsal> | Does the file exist? |
2020-10-03 07:47:29 +0200 | <p0a> | No it does not |
2020-10-03 07:47:33 +0200 | <p0a> | but I use readMaybe |
2020-10-03 07:47:52 +0200 | <dsal> | That's not what readMaybe does. heh |
2020-10-03 07:47:54 +0200 | <dsal> | :t readMaybe |
2020-10-03 07:47:56 +0200 | <lambdabot> | error: Variable not in scope: readMaybe |
2020-10-03 07:48:06 +0200 | <p0a> | oh wait |
2020-10-03 07:48:18 +0200 | <p0a> | huh I wonder what it is I used readMaybe for then |
2020-10-03 07:48:53 +0200 | <dsal> | You're trying to fmap readMaybe into an IO action that is failing. |
2020-10-03 07:49:04 +0200 | taurux | (~taurux@net-188-152-1-196.cust.vodafonedsl.it) (Ping timeout: 246 seconds) |
2020-10-03 07:49:43 +0200 | <p0a> | okay I see now |
2020-10-03 07:49:54 +0200 | <p0a> | I remember what happened |
2020-10-03 07:50:04 +0200 | <p0a> | There were two issues, I fixed one, and I forgot about the other |
2020-10-03 07:50:04 +0200 | <p0a> | :) |
2020-10-03 07:50:12 +0200 | <p0a> | Thank yuo |
2020-10-03 07:50:48 +0200 | <p0a> | (This is my little project which I hope to improve, but right now trying to get version 0.01) |
2020-10-03 07:50:50 +0200 | taurux | (~taurux@net-130-25-120-174.cust.vodafonedsl.it) |
2020-10-03 07:51:38 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:2cc5:6396:e3d8:6b4b) |
2020-10-03 07:51:56 +0200 | isovector1 | (~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Quit: Leaving) |
2020-10-03 07:52:20 +0200 | <p0a> | I wanted to move to RIO soon |
2020-10-03 07:52:36 +0200 | <p0a> | I guess for now I'll leave this bug unfixed and assume the database exists. I think I'd have to use exceptions otherwise |
2020-10-03 07:55:39 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 07:56:12 +0200 | Sanchayan | (~Sanchayan@106.200.213.229) |
2020-10-03 07:57:41 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:2cc5:6396:e3d8:6b4b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 07:59:52 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 08:00:02 +0200 | skorgon | (~skorgon@217.146.82.202) () |
2020-10-03 08:00:08 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-10-03 08:03:16 +0200 | alp | (~alp@2a01:e0a:58b:4920:bc50:e5de:f1a9:a1da) |
2020-10-03 08:03:57 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 08:03:58 +0200 | hackage | arch-hs 0.2.0.0 - Distribute hackage packages to archlinux https://hackage.haskell.org/package/arch-hs-0.2.0.0 (berberman) |
2020-10-03 08:04:28 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 08:04:32 +0200 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2020-10-03 08:04:58 +0200 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2020-10-03 08:05:25 +0200 | iqubic | (~user@2601:602:9500:4870:8a40:95c2:967a:70b4) (Ping timeout: 240 seconds) |
2020-10-03 08:08:27 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 08:13:03 +0200 | alp | (~alp@2a01:e0a:58b:4920:bc50:e5de:f1a9:a1da) (Ping timeout: 272 seconds) |
2020-10-03 08:17:15 +0200 | mmohammadi98126 | (~mmohammad@2.178.147.205) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
2020-10-03 08:22:55 +0200 | coot | (~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) |
2020-10-03 08:25:05 +0200 | perdent1 | (~blah@66.115.157.138) |
2020-10-03 08:26:17 +0200 | tzh | (~tzh@2601:448:c500:5300::143b) (Quit: zzz) |
2020-10-03 08:26:49 +0200 | Guest40023 | lep-delete |
2020-10-03 08:26:59 +0200 | perdent | (~blah@101.175.84.75) (Ping timeout: 256 seconds) |
2020-10-03 08:28:46 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-03 08:28:55 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds) |
2020-10-03 08:29:17 +0200 | <p0a> | if I have a Maybe (IO ()) how am I supposed to act on it? |
2020-10-03 08:29:43 +0200 | <p0a> | What's the idiomatic way? Sorry, I meant Maybe (IO T) |
2020-10-03 08:30:16 +0200 | <ski> | `sequence'/`sequenceA' ? |
2020-10-03 08:31:24 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 08:31:49 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2020-10-03 08:31:57 +0200 | <p0a> | so say I have a file I read. It's a Maybe (IO Database) and I'd like to print the entries of the database |
2020-10-03 08:31:59 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 08:32:12 +0200 | Sanchayan | (~Sanchayan@106.200.213.229) (Quit: leaving) |
2020-10-03 08:32:34 +0200 | <p0a> | if I had a database I'd just do map putStrLn (contents db) |
2020-10-03 08:32:58 +0200 | <p0a> | sorry, I meant mapM_ |
2020-10-03 08:33:08 +0200 | <c_wraith> | It's vastly unlikely something that interacts with the filesystem is going to produce Maybe (IO Database) |
2020-10-03 08:33:19 +0200 | <p0a> | Is it a mistake c_wraith ? |
2020-10-03 08:33:33 +0200 | <p0a> | That's how I wrote it. I have a readDatabase that returns a Maybe (IO Database) |
2020-10-03 08:33:35 +0200 | <c_wraith> | IO (Maybe Database) would make much more sense. |
2020-10-03 08:33:48 +0200 | <p0a> | Yes, that's what it is, sorry |
2020-10-03 08:34:54 +0200 | <ski> | that's quite different |
2020-10-03 08:35:38 +0200 | <ski> | what should happen, if you get `Nothing' ? |
2020-10-03 08:35:41 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 08:35:41 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 08:35:41 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 08:35:44 +0200 | <p0a> | Right |
2020-10-03 08:36:32 +0200 | <p0a> | I see it's a problem with types. So is there an idiomatic way or do I need to do a conditional? |
2020-10-03 08:36:33 +0200 | <taurux> | p0a: you can use my_io_maybe_db >>= (maybe what_to_do_when_nothing (\db -> what_to_do_when_db)) |
2020-10-03 08:36:57 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer) |
2020-10-03 08:37:35 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) |
2020-10-03 08:37:40 +0200 | <p0a> | What does -> do? |
2020-10-03 08:37:43 +0200 | <p0a> | oh it's a lambda |
2020-10-03 08:37:46 +0200 | <taurux> | it's a lambda |
2020-10-03 08:38:09 +0200 | <taurux> | what_to_do_when_nothing :: IO something |
2020-10-03 08:38:10 +0200 | <c_wraith> | p0a: it's not a "problem" with types. It's just types. At most there's a puzzle involved. bind the value so you can use it in an IO block, then deal with the Maybe appropriately |
2020-10-03 08:38:12 +0200 | <ski> | do you want to catch the failure, and do something else, here ? |
2020-10-03 08:38:18 +0200 | <ski> | or just propagate the failure ? |
2020-10-03 08:38:26 +0200 | <p0a> | propagate the failure |
2020-10-03 08:38:35 +0200 | <taurux> | You should use a Monad transformer |
2020-10-03 08:38:36 +0200 | <taurux> | MaybeT |
2020-10-03 08:38:37 +0200 | <p0a> | so that I never deal with it, I'm at top level :P |
2020-10-03 08:38:38 +0200 | <ski> | use `MaybeT IO', possibly |
2020-10-03 08:38:43 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 08:39:09 +0200 | <ski> | it will short-circuit, if something fails (with `Nothing') |
2020-10-03 08:39:24 +0200 | <taurux> | monad transformers make semantics of failure propagation much more clear. Take a look at the dedicate chapter in LYAH |
2020-10-03 08:39:28 +0200 | <taurux> | *dedicated |
2020-10-03 08:40:26 +0200 | <p0a> | for one thing I realized it's just Maybe Database because I do bind it in a do block |
2020-10-03 08:40:32 +0200 | <p0a> | I'm just confused as usual |
2020-10-03 08:41:47 +0200 | <p0a> | ah I know the issue, I actually have a Maybe [String] that I wish to print |
2020-10-03 08:42:18 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds) |
2020-10-03 08:42:20 +0200 | <p0a> | Because I have a Database -> [String] function applied to my db. Uh, sorry everyone I'm just confused. |
2020-10-03 08:42:53 +0200 | <c_wraith> | what do you want to do if it's Nothing? |
2020-10-03 08:43:25 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 08:43:29 +0200 | <ski> | <p0a> propagate the failure |
2020-10-03 08:44:18 +0200 | <p0a> | I like that (1+) <$> Nothing == Nothing, so that's the kind of thing I want |
2020-10-03 08:44:25 +0200 | Stanley|00 | (~stanley00@unaffiliated/stanley00) () |
2020-10-03 08:44:31 +0200 | <ski> | .. but at some point, you're going to have to handle the possible `Nothing', in some way (perhaps just by throwing away a `Maybe ()' result ..) |
2020-10-03 08:46:02 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Remote host closed the connection) |
2020-10-03 08:46:39 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 08:46:53 +0200 | <p0a> | i.e. I wnat something like (putStrLn . show) <$> (Just 1) |
2020-10-03 08:46:58 +0200 | <p0a> | but as is it won't work |
2020-10-03 08:47:15 +0200 | <p0a> | I think MaybeT might be what I need |
2020-10-03 08:47:16 +0200 | <c_wraith> | what do you want to *happen* if it's Nothing? |
2020-10-03 08:47:37 +0200 | <taurux> | p0a: It does not work because it has type (Maybe (IO ())) |
2020-10-03 08:47:50 +0200 | <p0a> | c_wraith: no print |
2020-10-03 08:47:55 +0200 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2020-10-03 08:48:05 +0200 | <c_wraith> | do you care to communicate the information to a higher level? |
2020-10-03 08:48:10 +0200 | <c_wraith> | err, communicate the failure |
2020-10-03 08:48:16 +0200 | <p0a> | no because this is version alpha of the thing I'm doing |
2020-10-03 08:48:27 +0200 | <p0a> | I was planning to move to RIO after I get something down and do things more properly |
2020-10-03 08:48:30 +0200 | <taurux> | if you use MaybeT you can directly bind it in an action in do-notation, and perform the related IO action. If it is nothing, the whole function will return Nothing (wrapped in MaybeT) |
2020-10-03 08:48:30 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection) |
2020-10-03 08:48:33 +0200 | todda7 | (~torstein@athedsl-4367507.home.otenet.gr) |
2020-10-03 08:48:38 +0200 | <c_wraith> | traverse_ or mapM_ work with Maybe, too |
2020-10-03 08:48:49 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) |
2020-10-03 08:48:53 +0200 | <c_wraith> | so you could do something like mapM_ (mapM_ putStrLn) |
2020-10-03 08:48:59 +0200 | <p0a> | ah two mapM_'s |
2020-10-03 08:49:15 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 08:49:18 +0200 | <p0a> | nice. I did notice that mapM_ worked with Maybe which is why my code was working in the first place (but putStrLn . show was applied to [String] ...) |
2020-10-03 08:49:24 +0200 | <p0a> | of course! thanks |
2020-10-03 08:50:25 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
2020-10-03 08:51:21 +0200 | GyroW | (~GyroW@d54c03e98.access.telenet.be) |
2020-10-03 08:51:21 +0200 | GyroW | (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
2020-10-03 08:51:21 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 08:52:14 +0200 | zaquest | (~notzaques@5.128.210.178) |
2020-10-03 08:52:27 +0200 | Foritus | (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Read error: Connection reset by peer) |
2020-10-03 08:53:12 +0200 | Foritus | (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) |
2020-10-03 08:53:28 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 246 seconds) |
2020-10-03 08:53:38 +0200 | Dimlock | (~Dimlock@195.140.213.38) |
2020-10-03 08:53:48 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-10-03 08:55:22 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 08:55:22 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 08:55:22 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 08:55:27 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 08:55:28 +0200 | shatriff | (~vitaliish@188.163.30.117) |
2020-10-03 08:58:47 +0200 | mav1 | (~mav@i59F4E15F.versanet.de) |
2020-10-03 08:59:22 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 09:00:12 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 256 seconds) |
2020-10-03 09:00:34 +0200 | aenesidemus_ | (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) |
2020-10-03 09:00:50 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 09:00:50 +0200 | xerox__ | (~xerox@unaffiliated/xerox) |
2020-10-03 09:01:09 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) |
2020-10-03 09:01:51 +0200 | shatriff_ | (~vitaliish@188.163.30.117) |
2020-10-03 09:02:01 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 265 seconds) |
2020-10-03 09:03:25 +0200 | shatriff | (~vitaliish@188.163.30.117) (Ping timeout: 240 seconds) |
2020-10-03 09:03:25 +0200 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 240 seconds) |
2020-10-03 09:03:25 +0200 | aenesidemus | (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) (Ping timeout: 240 seconds) |
2020-10-03 09:03:44 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2020-10-03 09:04:10 +0200 | zeta_0 | (~zeta@h78.22.19.98.dynamic.ip.windstream.net) |
2020-10-03 09:04:17 +0200 | Foritus | (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Read error: Connection reset by peer) |
2020-10-03 09:04:28 +0200 | <p0a> | Hey all, here's my code, feel free to criticize: https://paste.tomsmeding.com/hu7SEMVu |
2020-10-03 09:04:59 +0200 | Foritus | (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) |
2020-10-03 09:05:15 +0200 | fiQ2 | (~fiQ@mirkk.ninja) (Ping timeout: 244 seconds) |
2020-10-03 09:05:27 +0200 | bitmapper | (uid464869@gateway/web/irccloud.com/x-tarhbdjsvwboswmi) (Quit: Connection closed for inactivity) |
2020-10-03 09:05:37 +0200 | fiQ2 | (~fiQ@mirkk.ninja) |
2020-10-03 09:05:58 +0200 | <p0a> | The comment at the beginning of Main.hs explains the purpose of the program. I plan to rewrite it. I want to include proper strings (instead of String), exceptions for file handling, prettier printing and some other functionality to my database (like deleting records), as well as using an actual database instead of relying on the haskell Read |
2020-10-03 09:06:24 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 09:06:24 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 09:06:24 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 09:07:04 +0200 | <zeta_0> | hello there, has anyone here used the haskell package miso ? my issue has to do with nix configuration. |
2020-10-03 09:07:26 +0200 | <p0a> | a better "search" function would be nice, the one I currently have is a bit lame. Is there a google-esque String -> String -> Double function available? (Double representing the score of x being searched in y) |
2020-10-03 09:07:54 +0200 | <p0a> | The only thing I'm aware of is Levenshtein distance which is not exactly what I'm describing but would do |
2020-10-03 09:08:11 +0200 | siraben | (sirabenmat@gateway/shell/matrix.org/x-chzvshhyoygxwnpg) |
2020-10-03 09:09:40 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 09:10:45 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 240 seconds) |
2020-10-03 09:11:25 +0200 | todda7 | (~torstein@athedsl-4367507.home.otenet.gr) (Ping timeout: 240 seconds) |
2020-10-03 09:11:51 +0200 | <tomsmeding> | p0a ah nice idea |
2020-10-03 09:12:49 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 09:12:56 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 258 seconds) |
2020-10-03 09:13:47 +0200 | <p0a> | yeah :) I think it'd be nice |
2020-10-03 09:13:51 +0200 | chappi | (~swaroop@157.49.68.100) |
2020-10-03 09:13:55 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 09:13:56 +0200 | zeta_0 | (~zeta@h78.22.19.98.dynamic.ip.windstream.net) (Quit: rcirc on GNU Emacs 26.3) |
2020-10-03 09:14:08 +0200 | <p0a> | tomsmeding: btw in my latest paste https://paste.tomsmeding.com/hu7SEMVu there is no colors |
2020-10-03 09:14:23 +0200 | <p0a> | Did I break it by having lines that are too long? |
2020-10-03 09:14:35 +0200 | <taurux> | i see colors just fine in your paste |
2020-10-03 09:14:36 +0200 | <p0a> | oh nevermind I toggled highlighting |
2020-10-03 09:15:03 +0200 | p0a | is in a permanent state of confusion |
2020-10-03 09:15:18 +0200 | <ski> | (mapM_ . mapM_) (putStrLn . if optPathOnly opts then path else show) . fmap (queryStrings nonOptions) =<< readDatabase (optDatabase opts) |
2020-10-03 09:15:41 +0200 | <p0a> | ah thank you ski let me think about that |
2020-10-03 09:16:06 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-modyeizvecmfjtqb) (Ping timeout: 244 seconds) |
2020-10-03 09:16:11 +0200 | <ski> | not sure whether you want to elide naming `db', but you can do it |
2020-10-03 09:16:13 +0200 | <p0a> | kinda intense to be honest |
2020-10-03 09:16:31 +0200 | <p0a> | Like, it's cool that you can write and understand that |
2020-10-03 09:16:41 +0200 | <p0a> | but I think it places an unnecessary barrier to those of us who can't :P |
2020-10-03 09:16:55 +0200 | <p0a> | or am I being naive? idk |
2020-10-03 09:17:21 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-sxnpuddjngolmugc) |
2020-10-03 09:17:30 +0200 | chappi | (~swaroop@157.49.68.100) (Remote host closed the connection) |
2020-10-03 09:18:39 +0200 | <p0a> | okay so =<< allows us to ignore the do binding, then you fmap over the Maybe, followed by a double mapM_ to get inside Maybe and List |
2020-10-03 09:18:42 +0200 | <ski> | (mapM_ . mapM_) (putStrLn . if optPathOnly opts then path else show) (queryStrings nonOptions <$> db) -- is a version that assumes you keep `db <- readDatabase (optDatabase opts)' on the line above |
2020-10-03 09:19:01 +0200 | chappi | (~swaroop@157.45.76.253) |
2020-10-03 09:19:13 +0200 | <p0a> | ski: see, what I was trying to do is 'get inside' Maybe only once; but it seems necessary that you do it twice |
2020-10-03 09:19:16 +0200 | <ski> | (forM_ (queryStrings nonOptions <$> db) . mapM_) (putStrLn . if optPathOnly opts then path else show) -- same thing, just putting the action last |
2020-10-03 09:19:21 +0200 | zacts | (~zacts@dragora/developer/zacts) (Quit: leaving) |
2020-10-03 09:19:24 +0200 | LKoen | (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) |
2020-10-03 09:19:27 +0200 | <p0a> | Once to do the transformation Database -> [String] and once to use mapM_ |
2020-10-03 09:19:35 +0200 | <p0a> | otherwise the types won't match? I think |
2020-10-03 09:19:37 +0200 | <taurux> | ski: Can't you move the (queryStrings nonOptions) inside the argument of (mapM_ . mapM_)? |
2020-10-03 09:19:56 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2020-10-03 09:20:02 +0200 | <taurux> | oh no sorry I didn't think that there are 2 mapM_ |
2020-10-03 09:20:30 +0200 | falafel | (~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection) |
2020-10-03 09:20:38 +0200 | <ski> | one is for `Maybe', the other is for `[]' |
2020-10-03 09:21:05 +0200 | <p0a> | I guess mapM_ . mapM_ doesn't have a name, right? |
2020-10-03 09:21:16 +0200 | banjiewen | (sid115913@gateway/web/irccloud.com/x-shqhqasrwahmjagb) (Ping timeout: 244 seconds) |
2020-10-03 09:21:16 +0200 | mahene | (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) |
2020-10-03 09:21:24 +0200 | <ski> | (mapM_ . (. queryStrings nonOptions) . mapM_) (putStrLn . if optPathOnly opts then path else show) db |
2020-10-03 09:21:29 +0200 | <ski> | (forM_ db . (. queryStrings nonOptions) . mapM_) (putStrLn . if optPathOnly opts then path else show) |
2020-10-03 09:21:53 +0200 | <p0a> | oh lol |
2020-10-03 09:22:00 +0200 | <ski> | i considered those, at first, but figured you might be more confused by `foo . (. bar) . baz' |
2020-10-03 09:22:05 +0200 | <p0a> | now it's getting too tricky ski |
2020-10-03 09:22:46 +0200 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-10-03 09:23:10 +0200 | <ski> | `fmap'ping `queryStrings nonOptions' over `db' before getting into the `mapM_' seemed more clear |
2020-10-03 09:23:20 +0200 | constR | (uid58205@gateway/web/irccloud.com/x-ljcnzijchvmxodjj) (Ping timeout: 244 seconds) |
2020-10-03 09:23:20 +0200 | banjiewen | (sid115913@gateway/web/irccloud.com/x-mooiusydhgfmcvhk) |
2020-10-03 09:23:30 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 256 seconds) |
2020-10-03 09:24:47 +0200 | raul782 | (~raul782@190.237.41.123) () |
2020-10-03 09:25:43 +0200 | <p0a> | hahah that code is crazy |
2020-10-03 09:25:50 +0200 | <taurux> | p0a, you will get used to composing things functions like this |
2020-10-03 09:25:54 +0200 | <taurux> | :t (.) . (.) |
2020-10-03 09:25:57 +0200 | <lambdabot> | (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c |
2020-10-03 09:26:26 +0200 | <ski> | (. Compose) . mapM_ :: (Foldable t,Foldable u,Monad m) => (a -> m b) -> t (u a) -> m () |
2020-10-03 09:26:34 +0200 | <p0a> | Right so (.) . (.) is what in math is composing a scalar function with a R^2 -> R function |
2020-10-03 09:26:52 +0200 | constR | (uid58205@gateway/web/irccloud.com/x-euaithvjsiwmyvqd) |
2020-10-03 09:27:05 +0200 | <taurux> | ski, I think we're just scaring a haskell newcomer |
2020-10-03 09:27:10 +0200 | <p0a> | e.g. (a, b) -> a + b with doubling the result, so ((.) . (.)) (*2) (\(a, b) -> a + b) |
2020-10-03 09:27:23 +0200 | falafel | (~falafel@cpe-104-172-194-249.socal.res.rr.com) |
2020-10-03 09:27:32 +0200 | <ski> | mapM_ (putStrLn . if optPathOnly opts then path else show) (Compose (queryStrings nonOptions <$> db)) |
2020-10-03 09:27:37 +0200 | <p0a> | taurux: it's cool I've witnessed horrors before, at least I have a math background |
2020-10-03 09:27:46 +0200 | <ski> | forM_ (Compose (queryStrings nonOptions <$> db)) (putStrLn . if optPathOnly opts then path else show) |
2020-10-03 09:28:04 +0200 | <p0a> | taurux: but I'm warry about using ski's suggestions because from my (small) experience, dummy-code is better than smarty-code |
2020-10-03 09:28:13 +0200 | <ski> | using `Data.Functor.Compose' |
2020-10-03 09:28:46 +0200 | <ski> | i'm not saying you should use any of my suggestions :) |
2020-10-03 09:29:00 +0200 | <p0a> | yeah I get it, you're "composing" right now :P |
2020-10-03 09:29:11 +0200 | <ski> | they're more meant as "hm, it is possible to express it like this" |
2020-10-03 09:29:26 +0200 | <taurux> | p0a, it's a matter of style. I like to use code like ski's (but without that `Compose's, they're too much ahah) because I find it elegant and concise |
2020-10-03 09:29:48 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 09:29:48 +0200 | <ski> | it's a matter of balance, as well |
2020-10-03 09:30:14 +0200 | <taurux> | yes, you could write an entire program without using do-notation, but it would just be crazy |
2020-10-03 09:30:25 +0200 | <ski> | too much pointless code, and it becomes inscrutable |
2020-10-03 09:30:33 +0200 | shatriff_ | (~vitaliish@188.163.30.117) (Remote host closed the connection) |
2020-10-03 09:30:55 +0200 | borne | (~fritjof@200116b864ada80031152e74c90dd565.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2020-10-03 09:31:23 +0200 | Sheilong | (uid293653@gateway/web/irccloud.com/x-vlspjywaiiubsfqi) (Quit: Connection closed for inactivity) |
2020-10-03 09:32:35 +0200 | <ski> | i only started playing with this, since you were already pointlessing with `putStrLn . if ...' (and also, i admit, because `\db -> mapM_ (...) $ queryStrings nonOptions db' annoyed me, since it used `$', and seemed to name this `db' unnecessarily) |
2020-10-03 09:32:43 +0200 | <ski> | you could write |
2020-10-03 09:33:14 +0200 | constR | (uid58205@gateway/web/irccloud.com/x-euaithvjsiwmyvqd) (Quit: Connection closed for inactivity) |
2020-10-03 09:33:29 +0200 | <p0a> | ski: I think what I would do to make my code look better is call the first maybeDb and the second would be `db' |
2020-10-03 09:34:03 +0200 | <ski> | forM_ db $ \db -> forM_ (queryStrings nonOptions db) $ \f -> putStrLn $ |
2020-10-03 09:34:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 09:34:12 +0200 | <ski> | if optPathOnly opts |
2020-10-03 09:34:16 +0200 | <ski> | then path f |
2020-10-03 09:34:21 +0200 | <ski> | else show f |
2020-10-03 09:34:32 +0200 | <tomsmeding> | p0a: good line numbers are hard though |
2020-10-03 09:34:54 +0200 | <ski> | (or you could put each `forM_' on a separate line, the second indented more than the first. these are basically nested loops, anyway) |
2020-10-03 09:35:08 +0200 | <ski> | forM_ maybeDb $ \db -> |
2020-10-03 09:35:13 +0200 | <ski> | forM_ (queryStrings nonOptions db) $ \f -> |
2020-10-03 09:35:16 +0200 | <tomsmeding> | someone opens it on mobile where the font sizes are borked and all is unaligned, or someone puts in a character that the standard font doesn't have and the sizes don't match up, or ... |
2020-10-03 09:35:31 +0200 | <ski> | putStrLn (if optPathOnly opts |
2020-10-03 09:35:42 +0200 | <ski> | then path f |
2020-10-03 09:35:47 +0200 | <ski> | else show f) |
2020-10-03 09:35:59 +0200 | <p0a> | tomsmeding: Okay fair enough. I figured out that might be the reason why you don't have that feature |
2020-10-03 09:36:21 +0200 | <ski> | p0a : i was thinking that before, yea. but i didn't want to mention it, while we were considering other things |
2020-10-03 09:36:47 +0200 | <p0a> | Right I think that forM_ approach is nice |
2020-10-03 09:37:03 +0200 | <p0a> | ski: how do you keep track of your files in your disk? |
2020-10-03 09:37:21 +0200 | <p0a> | ski: say if you want to find a pdf file but you dont' remember where you put it. Or does that not happen? |
2020-10-03 09:37:37 +0200 | <p0a> | (this is unrelated to haskell but it's that my program helps me with) |
2020-10-03 09:37:46 +0200 | <ski> | sometimes i remember the general area i might've put it in |
2020-10-03 09:37:48 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:f17c:daaf:122b:4823) (Ping timeout: 244 seconds) |
2020-10-03 09:38:07 +0200 | <ski> | sometimes i remember title or authors or so, enough so i can find it again on the net |
2020-10-03 09:38:09 +0200 | borne | (~fritjof@200116b864ada80007933c164a08810c.dip.versatel-1u1.de) |
2020-10-03 09:38:21 +0200 | <p0a> | I feel like I'm managing my 6 disk backups, it's a mess |
2020-10-03 09:38:47 +0200 | <p0a> | I just want to rm -rf it all lol |
2020-10-03 09:39:13 +0200 | <taurux> | p0a, fdisk is more satisfying |
2020-10-03 09:39:16 +0200 | <p0a> | I'm trying to write a tool that lets me track my files and eventually I'd like to use it to back up properly (i.e. have all the files move in some proper hierarchy) |
2020-10-03 09:39:20 +0200 | <p0a> | ahahah taurux |
2020-10-03 09:39:33 +0200 | <taurux> | p0a, you could take a look at git-annex. It's written in Haskell! |
2020-10-03 09:39:48 +0200 | <taurux> | I use it to keep track of my enormous photo library |
2020-10-03 09:39:52 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 09:40:00 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-03 09:40:14 +0200 | alp | (~alp@2a01:e0a:58b:4920:2485:658c:7835:aa11) |
2020-10-03 09:40:25 +0200 | <p0a> | "With git-annex, Bob has a single directory tree that includes all his files," |
2020-10-03 09:40:32 +0200 | <taurux> | it can sync between different devices and folders (and also S3 buckets!) and supports tags and revisions |
2020-10-03 09:40:43 +0200 | <p0a> | Yeah, Bob was careful. p0a wasn't |
2020-10-03 09:40:44 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 09:40:44 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 09:40:44 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 09:40:44 +0200 | zebrag | (~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2020-10-03 09:40:48 +0200 | chaosmasttter | (~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de) |
2020-10-03 09:41:00 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 09:41:27 +0200 | <taurux> | p0a, ahaha I know how much managing files can be boring but it's necessary |
2020-10-03 09:41:32 +0200 | <p0a> | taurux: can git-annex archive your files even if they're at different places? Or do I need to turn / into a git project? |
2020-10-03 09:41:36 +0200 | zebrag | (~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) |
2020-10-03 09:42:04 +0200 | <ski> | (i guess sometimes it feels like i'm wading through drifts of køkkenmøddings of old cruft, making trails after me, through older accumulated trails) |
2020-10-03 09:42:05 +0200 | shafox | (~shafox@106.51.234.111) |
2020-10-03 09:42:14 +0200 | <taurux> | p0a, yes, it does |
2020-10-03 09:42:29 +0200 | <taurux> | It has a quite steep learning curve but it's really powerful |
2020-10-03 09:43:04 +0200 | <taurux> | It manages different places through different git repositories, but your files don't need to be present in each of the repos |
2020-10-03 09:43:08 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
2020-10-03 09:43:29 +0200 | <taurux> | it can keep track of files independently from git, git only manages symlinks to the actual files that are managed by git-annex |
2020-10-03 09:43:33 +0200 | <p0a> | that's awesome, thank you. I guess that's the tool I'm trying to write? |
2020-10-03 09:43:39 +0200 | <p0a> | I should just use git-annex instead |
2020-10-03 09:44:00 +0200 | siraben | (sirabenmat@gateway/shell/matrix.org/x-chzvshhyoygxwnpg) (Ping timeout: 244 seconds) |
2020-10-03 09:44:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 09:44:09 +0200 | <p0a> | you can attach textual descriptions to binary files and search for those, right? |
2020-10-03 09:44:14 +0200 | siraben | (sirabenmat@gateway/shell/matrix.org/x-pabygdewelkoamni) |
2020-10-03 09:45:29 +0200 | <p0a> | well it might be off-topic of this channel. Thank you regardless I'm going to look into it now |
2020-10-03 09:46:35 +0200 | mahene | (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 244 seconds) |
2020-10-03 09:46:45 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds) |
2020-10-03 09:46:45 +0200 | <taurux> | p0a, yes, it support tags |
2020-10-03 09:48:47 +0200 | <p0a> | tags won't do |
2020-10-03 09:48:50 +0200 | <p0a> | I need long descriptions |
2020-10-03 09:49:08 +0200 | <p0a> | I basically need text files associated to binary files that I can grep |
2020-10-03 09:49:33 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:df:e702:bc8c:934c) |
2020-10-03 09:50:13 +0200 | <taurux> | oh I don't know if git-annex supports that. You had better write a tool on your own as you just did probably, or a simple solution with some text files and a shell script |
2020-10-03 09:50:31 +0200 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-10-03 09:53:20 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) |
2020-10-03 09:53:47 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) (Client Quit) |
2020-10-03 09:54:01 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) |
2020-10-03 09:55:25 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 09:55:25 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 09:55:25 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 09:56:53 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:584:470f:1fe3:7660) |
2020-10-03 10:00:09 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:01:34 +0200 | borne | (~fritjof@200116b864ada80007933c164a08810c.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
2020-10-03 10:01:49 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-10-03 10:03:11 +0200 | quaestor | (~quaestor@griffith.christophrauch.de) (Remote host closed the connection) |
2020-10-03 10:04:51 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-10-03 10:04:55 +0200 | <tomsmeding> | p0a: tried to implement line numbers in the stupid way, my suspicion was confirmed: https://tomsmeding.com/ss/get/tomsmeding/GFBLec |
2020-10-03 10:05:23 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds) |
2020-10-03 10:05:28 +0200 | <tomsmeding> | (note the wrong line height for the high characters in a different font) |
2020-10-03 10:05:31 +0200 | <p0a> | Yeah I'll try to write my own tool. I haven't been able to find a solution so far plus I will learn quite a few things down the road |
2020-10-03 10:06:16 +0200 | <p0a> | tomsmeding: utf8 is maddening |
2020-10-03 10:06:50 +0200 | quaestor | (~quaestor@griffith.christophrauch.de) |
2020-10-03 10:06:51 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 10:06:51 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 10:06:51 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-03 10:07:04 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
2020-10-03 10:07:04 +0200 | <Rembane> | p0a: ...in that 1 character /= 1 byte? |
2020-10-03 10:07:19 +0200 | <tomsmeding> | well no, utf8 is a nice encoding, fonts are the problem |
2020-10-03 10:07:25 +0200 | <p0a> | Rembane: I'm mostly talking about alignment issues when drawing them |
2020-10-03 10:07:33 +0200 | <p0a> | Yeah right, well I wasn't being technical |
2020-10-03 10:07:37 +0200 | <tomsmeding> | utf8 /= unicode /= fonts :p |
2020-10-03 10:07:46 +0200 | <p0a> | That's all true and I'm aware |
2020-10-03 10:07:46 +0200 | <Rembane> | p0a: Yeah, that's a problem too. :) |
2020-10-03 10:07:46 +0200 | <tomsmeding> | p0a: you're in #haskell |
2020-10-03 10:07:59 +0200 | <p0a> | I know lol I just don't like being technical in general |
2020-10-03 10:08:36 +0200 | <p0a> | I had a similar issue tomsmeding, alignment of text tables, and I tried to fix it from within bash (it was a disaster) |
2020-10-03 10:08:48 +0200 | <tomsmeding> | lol |
2020-10-03 10:09:18 +0200 | <tomsmeding> | like, a potential solution to this is not making two <pre> elements of which you need to match the line heights, but make a huge table with a <tr> for each line |
2020-10-03 10:09:32 +0200 | <tomsmeding> | but that's, I dunno, awkward |
2020-10-03 10:09:38 +0200 | <p0a> | delegate it to the browser, right? |
2020-10-03 10:10:07 +0200 | <tomsmeding> | also means I need to process the output of highlightjs to be a table instead of a <pre> :D |
2020-10-03 10:10:11 +0200 | <Rembane> | I wonder if brick could help you. I'm not sure though, but curses seem like at least slightly useful here |
2020-10-03 10:10:21 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:10:37 +0200 | <p0a> | tomsmeding: another approach instead of line numbers would be to allow the user to hightlight some parts of the code in the url |
2020-10-03 10:10:51 +0200 | <p0a> | tomsmeding: i.e. ?highlight=12,25,34-36 |
2020-10-03 10:11:10 +0200 | <tomsmeding> | ... the canonical way to select which, is having line numbers that you can click on :) |
2020-10-03 10:11:15 +0200 | <p0a> | which instead of showing line numbers, just uses a yellow background color |
2020-10-03 10:12:04 +0200 | <p0a> | Rembane: Yeah I think curses would work, but it's high powered. I was trying to do everything from inside bash scripts |
2020-10-03 10:12:48 +0200 | jedws | (~jedws@121.209.139.222) |
2020-10-03 10:12:56 +0200 | alp | (~alp@2a01:e0a:58b:4920:2485:658c:7835:aa11) (Ping timeout: 244 seconds) |
2020-10-03 10:13:59 +0200 | fendor | (~fendor@e237-037.eduroam.tuwien.ac.at) |
2020-10-03 10:14:19 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 10:14:25 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 10:14:45 +0200 | <Rembane> | p0a: Got it, making everything from bash scrips seems to me like a good way to make your life extra painful |
2020-10-03 10:17:26 +0200 | <tomsmeding> | p0a: it's going on my todo list :p |
2020-10-03 10:17:40 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 10:20:17 +0200 | sw1nn | (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9) |
2020-10-03 10:20:22 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:21:29 +0200 | sw1nn | (~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) |
2020-10-03 10:23:23 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
2020-10-03 10:23:28 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 258 seconds) |
2020-10-03 10:24:49 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2020-10-03 10:28:00 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 10:29:33 +0200 | ubert1 | (~Thunderbi@91.141.2.69.wireless.dyn.drei.com) |
2020-10-03 10:29:59 +0200 | ubert | (~Thunderbi@91.141.3.51.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2020-10-03 10:29:59 +0200 | ubert1 | ubert |
2020-10-03 10:30:42 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:30:55 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) |
2020-10-03 10:33:19 +0200 | raichoo | (~raichoo@dslb-188-101-190-053.188.101.pools.vodafone-ip.de) |
2020-10-03 10:33:39 +0200 | lexi-lambda | (sid92601@gateway/web/irccloud.com/x-jxufrnuiocmjeutw) (Ping timeout: 272 seconds) |
2020-10-03 10:33:39 +0200 | FMJz____ | (sid279245@gateway/web/irccloud.com/x-fkwwfjqdqgntnoof) (Ping timeout: 272 seconds) |
2020-10-03 10:33:39 +0200 | darthThorik | (sid39589@gateway/web/irccloud.com/x-sgyzfgzinerqmyki) (Ping timeout: 272 seconds) |
2020-10-03 10:33:39 +0200 | edmundnoble | (sid229620@gateway/web/irccloud.com/x-xrnysnfynyaztlfh) (Ping timeout: 272 seconds) |
2020-10-03 10:33:47 +0200 | FMJz____ | (sid279245@gateway/web/irccloud.com/x-elbokqjeheccquxp) |
2020-10-03 10:33:49 +0200 | lexi-lambda | (sid92601@gateway/web/irccloud.com/x-domkjkegafyntpmw) |
2020-10-03 10:33:58 +0200 | jgt | (~jgt@188.239.64.32) |
2020-10-03 10:34:17 +0200 | albethere | (sid457088@gateway/web/irccloud.com/x-nwltghldiblztrql) (Ping timeout: 272 seconds) |
2020-10-03 10:34:17 +0200 | elvishjerricco | (sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 272 seconds) |
2020-10-03 10:34:45 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 10:34:55 +0200 | J_Arcane | (sid119274@gateway/web/irccloud.com/x-txzpuwgzvydklxqg) (Ping timeout: 272 seconds) |
2020-10-03 10:34:55 +0200 | sarahzrf | (~sarahzrf_@benzrf.com) (Ping timeout: 272 seconds) |
2020-10-03 10:34:55 +0200 | bitonic | (sid61915@gateway/web/irccloud.com/x-qsklantsesnflaev) (Ping timeout: 272 seconds) |
2020-10-03 10:35:33 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-xinbndxmgepgligq) (Ping timeout: 272 seconds) |
2020-10-03 10:35:42 +0200 | sarahzrf | (~sarahzrf_@sarahzrf.com) |
2020-10-03 10:35:54 +0200 | bitonic | (sid61915@gateway/web/irccloud.com/x-gpvtxexabdepunck) |
2020-10-03 10:35:56 +0200 | J_Arcane | (sid119274@gateway/web/irccloud.com/x-woiwotxdlskjwxcj) |
2020-10-03 10:36:06 +0200 | albethere | (sid457088@gateway/web/irccloud.com/x-cltqfsvqlhbhhdqu) |
2020-10-03 10:36:09 +0200 | elvishjerricco | (sid237756@NixOS/user/ElvishJerricco) |
2020-10-03 10:36:11 +0200 | graingert | (sid128301@gateway/web/irccloud.com/x-bllwrkosbcfwbepb) (Ping timeout: 272 seconds) |
2020-10-03 10:36:11 +0200 | edmundnoble | (sid229620@gateway/web/irccloud.com/x-jmnauejvbgcfpqch) |
2020-10-03 10:36:37 +0200 | darthThorik | (sid39589@gateway/web/irccloud.com/x-rxkyoafrogbhiwsr) |
2020-10-03 10:36:49 +0200 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-wrddzpzdlgkkaqhg) (Ping timeout: 272 seconds) |
2020-10-03 10:36:49 +0200 | nick_h | (sid319833@gateway/web/irccloud.com/x-utxytiydddaakjtw) (Ping timeout: 272 seconds) |
2020-10-03 10:36:49 +0200 | liquorice | (sid267884@gateway/web/irccloud.com/x-hozrupsabnlghimn) (Ping timeout: 272 seconds) |
2020-10-03 10:36:49 +0200 | idnar | (sid12240@gateway/web/irccloud.com/x-mrabweihkflesyxk) (Ping timeout: 272 seconds) |
2020-10-03 10:36:50 +0200 | <tomjaguarpaw> | If one has a `cabal.project` that doesn't contain a `packages: ...` stanza does that mean that the project implicitly contains no packages? If `cabal.project` doesn't exist then `packages:` is implicitly `*.cabal` (I believe) but it seems that if `cabal.project` does exist but doesn't contain `packages:` then the set of packages is implicitly empty. |
2020-10-03 10:36:57 +0200 | liquorice | (sid267884@gateway/web/irccloud.com/x-ccvpoduikfqcadak) |
2020-10-03 10:37:11 +0200 | Buntspecht | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-10-03 10:38:05 +0200 | koankeeper | (sid216950@gateway/web/irccloud.com/x-nrfuvoaktiahyvtf) (Ping timeout: 272 seconds) |
2020-10-03 10:38:05 +0200 | verlet64_ | (sid261276@gateway/web/irccloud.com/x-wqinasijpftynmsg) (Ping timeout: 272 seconds) |
2020-10-03 10:38:05 +0200 | carter | (sid14827@gateway/web/irccloud.com/x-ulfazeqjsbkemqzk) (Ping timeout: 272 seconds) |
2020-10-03 10:38:16 +0200 | nick_h | (sid319833@gateway/web/irccloud.com/x-srdcrkvbqjanzjcu) |
2020-10-03 10:38:31 +0200 | aizen_s | (sid462968@gateway/web/irccloud.com/x-tvunfsqxbrkdapxk) |
2020-10-03 10:38:40 +0200 | idnar | (sid12240@gateway/web/irccloud.com/x-bijxdaamgpwwflpv) |
2020-10-03 10:38:43 +0200 | scav | (sid309693@gateway/web/irccloud.com/x-wzdeycixeytkuxbp) (Ping timeout: 272 seconds) |
2020-10-03 10:38:43 +0200 | mcfilib | (sid302703@gateway/web/irccloud.com/x-jxboonrzncouqkfs) (Ping timeout: 272 seconds) |
2020-10-03 10:38:43 +0200 | dmj` | (sid72307@gateway/web/irccloud.com/x-svykqxbmoatuuexu) (Ping timeout: 272 seconds) |
2020-10-03 10:38:43 +0200 | pasukon | (sid49097@gateway/web/irccloud.com/x-lvmzgpypnmechtdl) (Ping timeout: 272 seconds) |
2020-10-03 10:38:43 +0200 | conjunctive | (sid433686@gateway/web/irccloud.com/x-hgrhllzbreepikwl) (Ping timeout: 272 seconds) |
2020-10-03 10:38:52 +0200 | graingert | (sid128301@gateway/web/irccloud.com/x-yubepytnnhokizvs) |
2020-10-03 10:38:53 +0200 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-aosrgxgicqqcugup) |
2020-10-03 10:39:11 +0200 | verlet64_ | (sid261276@gateway/web/irccloud.com/x-qmypxhhdelafasaj) |
2020-10-03 10:39:21 +0200 | Firedancer | (sid336191@gateway/web/irccloud.com/x-cywbocoitmzxkenh) (Ping timeout: 272 seconds) |
2020-10-03 10:39:21 +0200 | alanz | (sid110616@gateway/web/irccloud.com/x-xxwlmdhgwfiixuer) (Ping timeout: 272 seconds) |
2020-10-03 10:39:25 +0200 | taurux | (~taurux@net-130-25-120-174.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
2020-10-03 10:39:33 +0200 | Firedancer | (sid336191@gateway/web/irccloud.com/x-qvrclkltirfahdkn) |
2020-10-03 10:39:45 +0200 | ptrcmd_ | ptrcmd |
2020-10-03 10:39:50 +0200 | mcfilib | (sid302703@gateway/web/irccloud.com/x-yljnzhytqmeffwcq) |
2020-10-03 10:39:59 +0200 | alehander92 | (sid331460@gateway/web/irccloud.com/x-nsbojrlduleyvwek) (Ping timeout: 272 seconds) |
2020-10-03 10:40:05 +0200 | carter | (sid14827@gateway/web/irccloud.com/x-psnnzawtqaxxdkxa) |
2020-10-03 10:40:09 +0200 | conjunctive | (sid433686@gateway/web/irccloud.com/x-kjvfsgpfgehmptub) |
2020-10-03 10:40:09 +0200 | scav | (sid309693@gateway/web/irccloud.com/x-dpbxtezevjogbqll) |
2020-10-03 10:40:13 +0200 | pasukon | (sid49097@gateway/web/irccloud.com/x-uwiqcjpvkreobzhx) |
2020-10-03 10:40:27 +0200 | taurux | (~taurux@net-188-152-1-207.cust.vodafonedsl.it) |
2020-10-03 10:40:37 +0200 | rodlogic__ | (sid214676@gateway/web/irccloud.com/x-nihpzxtqkbdvurne) (Ping timeout: 272 seconds) |
2020-10-03 10:40:41 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:40:48 +0200 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2020-10-03 10:41:15 +0200 | SrPx | (sid108780@gateway/web/irccloud.com/x-okcdajrvcwspmiib) (Ping timeout: 272 seconds) |
2020-10-03 10:41:16 +0200 | dmj` | (sid72307@gateway/web/irccloud.com/x-lgfndhesvflaajhx) |
2020-10-03 10:41:27 +0200 | alanz | (sid110616@gateway/web/irccloud.com/x-bplzytauuzaqtdwm) |
2020-10-03 10:41:53 +0200 | drbrule | (sid395654@gateway/web/irccloud.com/x-cqgwchvakrtjjklm) (Ping timeout: 272 seconds) |
2020-10-03 10:41:53 +0200 | jlpeters | (sid25606@gateway/web/irccloud.com/x-exhssvdoqfiaasbd) (Ping timeout: 272 seconds) |
2020-10-03 10:42:01 +0200 | loc | (~loc@unaffiliated/loc) (Quit: 73) |
2020-10-03 10:42:12 +0200 | alehander92 | (sid331460@gateway/web/irccloud.com/x-kyfpobayuduivyro) |
2020-10-03 10:42:31 +0200 | fiadliel | (sid399568@gateway/web/irccloud.com/x-qpjmurqekfenxlla) (Ping timeout: 272 seconds) |
2020-10-03 10:42:40 +0200 | jlpeters | (sid25606@gateway/web/irccloud.com/x-oxflbpvsmgilmdyy) |
2020-10-03 10:42:56 +0200 | rodlogic__ | (sid214676@gateway/web/irccloud.com/x-baxtgbtrpgxheice) |
2020-10-03 10:43:03 +0200 | fiadliel | (sid399568@gateway/web/irccloud.com/x-hgzpvwimdwujzolw) |
2020-10-03 10:43:21 +0200 | drbrule | (sid395654@gateway/web/irccloud.com/x-xszuswimxvtaajbg) |
2020-10-03 10:43:25 +0200 | <siraben> | What's the question mark do in getSessionInt :: (?requestContext :: RequestContext) => Text -> IO (Maybe Int) ? |
2020-10-03 10:43:31 +0200 | koankeeper | (sid216950@gateway/web/irccloud.com/x-ccxungdzitxujqnk) |
2020-10-03 10:43:41 +0200 | SrPx | (sid108780@gateway/web/irccloud.com/x-fufsvtgbqbrimkxs) |
2020-10-03 10:44:55 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 10:45:25 +0200 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds) |
2020-10-03 10:46:24 +0200 | <ski> | siraben : implicit parameters, <https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#implicit-paramet…> |
2020-10-03 10:46:24 +0200 | loc | (~loc@unaffiliated/loc) |
2020-10-03 10:46:38 +0200 | danvet_ | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-10-03 10:47:44 +0200 | totallynotnate | (~nate@125.160.143.17) |
2020-10-03 10:47:48 +0200 | mahene | (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) |
2020-10-03 10:47:57 +0200 | <p0a> | do I put my warning options (like -Wall) under ghc-options in package.yaml using stack? |
2020-10-03 10:48:24 +0200 | Franciman | (~francesco@host-212-171-42-250.retail.telecomitalia.it) |
2020-10-03 10:48:41 +0200 | totallynotnate | (~nate@125.160.143.17) (Client Quit) |
2020-10-03 10:49:26 +0200 | <sm[m]> | Yes, p0a |
2020-10-03 10:50:19 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 10:50:26 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:584:470f:1fe3:7660) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 10:50:34 +0200 | <p0a> | thank you |
2020-10-03 10:50:48 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 10:51:30 +0200 | <p0a> | When reading RIO documentation, I read "A primary design choice you'll need to make in your code is how to structure your monads. " |
2020-10-03 10:52:01 +0200 | <p0a> | What does that mean? |
2020-10-03 10:52:43 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 10:53:07 +0200 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-10-03 10:53:52 +0200 | phaul | (~phaul@ruby/staff/phaul) |
2020-10-03 10:54:20 +0200 | ddellacosta | (~dd@86.106.121.168) (Ping timeout: 256 seconds) |
2020-10-03 10:55:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 10:55:08 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
2020-10-03 10:56:05 +0200 | <sm[m]> | p0a: above a certain size it's common for haskell apps to have custom monad involving several monad transformers (layers). Rio provides a standard one of these for you |
2020-10-03 10:56:28 +0200 | <p0a> | layers like m1 (m2 (m3 t)) ? |
2020-10-03 10:56:55 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 240 seconds) |
2020-10-03 10:57:38 +0200 | <sm[m]> | yes, essentially |
2020-10-03 10:57:55 +0200 | darjeeling_ | (~darjeelin@122.245.210.179) (Ping timeout: 240 seconds) |
2020-10-03 10:58:50 +0200 | <p0a> | any good newbie database modules one can take a look at? I was looking at haskelldb. I don't need much functionality |
2020-10-03 10:59:05 +0200 | <p0a> | I am planning to use RIO, probably doesn't matter but I am mentioning it |
2020-10-03 10:59:20 +0200 | <siraben> | ski: thanks |
2020-10-03 11:00:01 +0200 | Dimlock | (~Dimlock@195.140.213.38) () |
2020-10-03 11:00:15 +0200 | <sm[m]> | any of the -simple libs. Next step up would be persistent |
2020-10-03 11:00:16 +0200 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
2020-10-03 11:00:57 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 11:01:30 +0200 | <siraben> | ski: Hm, implicit parameters reminds me of dynamic scoping |
2020-10-03 11:02:07 +0200 | phaul | (~phaul@ruby/staff/phaul) |
2020-10-03 11:02:08 +0200 | <p0a> | thank you. I'm a bit intimidated by all the details |
2020-10-03 11:02:40 +0200 | <p0a> | data-simple looks nice |
2020-10-03 11:03:06 +0200 | <sm[m]> | I don't know that one |
2020-10-03 11:03:34 +0200 | chaosmasttter | (~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2020-10-03 11:03:52 +0200 | <p0a> | maybe I'll try mysql-simple |
2020-10-03 11:04:16 +0200 | <sm[m]> | not on hackage which isn't a great sign |
2020-10-03 11:04:43 +0200 | <p0a> | sm[m]: https://hackage.haskell.org/package/data-basic |
2020-10-03 11:04:47 +0200 | jedws | (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 11:04:53 +0200 | <p0a> | (I wrote it wrong, sorry) |
2020-10-03 11:05:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 11:06:16 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 11:06:37 +0200 | <sm[m]> | It does sound nice. There's also https://hackage.haskell.org/package/sqlite-simple |
2020-10-03 11:06:57 +0200 | <chreekat[m]1> | sqlite-simple would be be first recommendation. Ah sm just beat me to it |
2020-10-03 11:07:08 +0200 | <p0a> | Right, actually that looks even better. I do remember that sqlite is better than mysql for simple things |
2020-10-03 11:07:34 +0200 | <p0a> | I'll try to learn some sql today and design my schema(?) and interface with the database from haskell |
2020-10-03 11:08:02 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
2020-10-03 11:08:43 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) |
2020-10-03 11:10:32 +0200 | <sm[m]> | simplest of all is to writeFile.show and read.readFile |
2020-10-03 11:11:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 11:11:11 +0200 | alp | (~alp@2a01:e0a:58b:4920:dde3:d9bf:3a69:9f2f) |
2020-10-03 11:11:25 +0200 | <p0a> | sm[m]: That's version alpha which I got down already :) (https://paste.tomsmeding.com/hu7SEMVu humblebrag) |
2020-10-03 11:11:39 +0200 | <p0a> | If you'd like, read the top comment, it explains the use |
2020-10-03 11:13:33 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 260 seconds) |
2020-10-03 11:14:27 +0200 | <sm[m]> | cool |
2020-10-03 11:15:03 +0200 | <tomjaguarpaw> | p0a: Definitely don't use HaskellDB. It is utterly obsolete. |
2020-10-03 11:15:12 +0200 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-aosrgxgicqqcugup) (Quit: Connection closed for inactivity) |
2020-10-03 11:15:21 +0200 | <p0a> | tomjaguarpaw: got it. I'm going for sqlite-simple, thank you |
2020-10-03 11:15:25 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 11:17:27 +0200 | <tomjaguarpaw> | Wise choice. |
2020-10-03 11:22:32 +0200 | jgt | (~jgt@188.239.64.32) (Ping timeout: 272 seconds) |
2020-10-03 11:25:34 +0200 | thc202 | (~thc202@unaffiliated/thc202) |
2020-10-03 11:26:32 +0200 | falafel | (~falafel@cpe-104-172-194-249.socal.res.rr.com) (Ping timeout: 265 seconds) |
2020-10-03 11:31:23 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 11:33:00 +0200 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) |
2020-10-03 11:33:54 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 11:35:31 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2020-10-03 11:35:40 +0200 | reda | (~reda@unaffiliated/reda) |
2020-10-03 11:44:35 +0200 | alp | (~alp@2a01:e0a:58b:4920:dde3:d9bf:3a69:9f2f) (Ping timeout: 272 seconds) |
2020-10-03 11:46:16 +0200 | nnst^ | (nnst@ip98-184-89-2.mc.at.cox.net) () |
2020-10-03 11:46:53 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 11:47:11 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 11:47:11 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 11:47:11 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 11:47:49 +0200 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) |
2020-10-03 11:51:47 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 11:52:25 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 240 seconds) |
2020-10-03 11:53:27 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 11:53:55 +0200 | MTecknology1 | (~MTecknolo@185.204.1.185) |
2020-10-03 11:55:06 +0200 | darjeeling_ | (~darjeelin@122.245.210.179) |
2020-10-03 11:55:19 +0200 | lemmih | (~lemmih@2406:3003:2072:44:640b:57cc:705a:e759) |
2020-10-03 11:55:45 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 12:00:28 +0200 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-10-03 12:01:49 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 12:01:52 +0200 | nschoe | (~quassel@2a01:e0a:3c4:c7b0:35dc:2c34:4b9e:28a4) |
2020-10-03 12:04:22 +0200 | ubert | (~Thunderbi@91.141.2.69.wireless.dyn.drei.com) (Remote host closed the connection) |
2020-10-03 12:06:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 12:06:05 +0200 | drbean | (~drbean@TC210-63-209-81.static.apol.com.tw) (Ping timeout: 240 seconds) |
2020-10-03 12:09:12 +0200 | chappi | (~swaroop@157.45.76.253) (Remote host closed the connection) |
2020-10-03 12:09:37 +0200 | finkata | (~dpetrov@83.222.188.39) |
2020-10-03 12:11:11 +0200 | chappi | (~swaroop@157.49.125.207) |
2020-10-03 12:11:53 +0200 | jwynn6 | (~jwynn6@050-088-122-078.res.spectrum.com) (Ping timeout: 260 seconds) |
2020-10-03 12:11:54 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 12:14:32 +0200 | patrick2 | (~tarpk@ool-182dc9b3.dyn.optonline.net) (Quit: WeeChat 2.8) |
2020-10-03 12:15:49 +0200 | patrick1 | (~tarpk@ool-182dc9b3.dyn.optonline.net) |
2020-10-03 12:16:20 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-10-03 12:16:20 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
2020-10-03 12:17:59 +0200 | jgt | (~jgt@188.239.64.32) |
2020-10-03 12:20:08 +0200 | Guest_92 | (021afdb0@2.26.253.176) |
2020-10-03 12:20:56 +0200 | <Guest_92> | im trying to install haskel but am presented with this error. [ Error ] Build failed with NonZeroExit 77 "./configure" ["--prefix=/Users/maz/.ghcup/ghc/8.8.4"] Check the logs at "/Users/maz/.ghcup/logs" and the build directory "/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO" for more clues. Make sure to clean up |
2020-10-03 12:20:57 +0200 | <Guest_92> | "/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO" afterwards."_eghcup --cache install ghc recommended" failed!(base) maz@Mazharuls-Air ~ % |
2020-10-03 12:21:08 +0200 | <Guest_92> | can someone help me please |
2020-10-03 12:21:32 +0200 | <maerwald> | did you check the logs? |
2020-10-03 12:22:14 +0200 | todda7 | (~torstein@athedsl-222199.home.otenet.gr) |
2020-10-03 12:22:24 +0200 | jgt | (~jgt@188.239.64.32) (Ping timeout: 260 seconds) |
2020-10-03 12:22:28 +0200 | hackage | pontarius-xmpp-extras 0.1.0.5 - XEPs implementation on top of pontarius-xmpp https://hackage.haskell.org/package/pontarius-xmpp-extras-0.1.0.5 (SergeyAlirzaev) |
2020-10-03 12:22:41 +0200 | <Guest_92> | how do i do that? |
2020-10-03 12:24:16 +0200 | <maerwald> | Guest_92: http://letmegooglethat.com/?q=how+do+I+open+directory+on+mac |
2020-10-03 12:26:07 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 12:30:21 +0200 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 258 seconds) |
2020-10-03 12:30:59 +0200 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
2020-10-03 12:31:34 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-sxnpuddjngolmugc) (Quit: Connection closed for inactivity) |
2020-10-03 12:32:20 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 12:33:35 +0200 | <Guest_92> | i am still unable to check my logs |
2020-10-03 12:33:39 +0200 | <maerwald> | why? |
2020-10-03 12:33:46 +0200 | <tomjaguarpaw> | Guest_92: Perhaps more helpfully, note that that error message tells you 'Check the logs at "/Users/maz/.ghcup/logs" and the build directory "/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO" for more clues. |
2020-10-03 12:34:05 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 240 seconds) |
2020-10-03 12:36:11 +0200 | jgt | (~jgt@195.225.146.77) |
2020-10-03 12:36:49 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-10-03 12:37:18 +0200 | <Guest_92> | i have tried Users/maz/.ghcup/logs" |
2020-10-03 12:37:29 +0200 | <Guest_92> | but there is nothing there |
2020-10-03 12:38:44 +0200 | <tomjaguarpaw> | And how about the build directory? |
2020-10-03 12:39:27 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 12:39:30 +0200 | <Guest_92> | how would i go about checking that? |
2020-10-03 12:40:03 +0200 | <tomjaguarpaw> | Look in that directory and see if there's anything notable in there |
2020-10-03 12:40:17 +0200 | <tomjaguarpaw> | Are you saying that /Users/maz/.ghcup/logs is empty? |
2020-10-03 12:40:36 +0200 | <tomjaguarpaw> | Can you run "ls -l /Users/maz/.ghcup/logs" and paste the full output here? |
2020-10-03 12:42:00 +0200 | <maerwald> | It cannot be true, otherwise ghcup would crash at the start |
2020-10-03 12:42:18 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 12:42:30 +0200 | <Guest_92> | -rw-r--r-- 1 maz staff 1248 3 Oct 11:20 ghc-configure.log-rw-r--r-- 1 maz staff 929 3 Oct 11:20 ghcup.log |
2020-10-03 12:42:31 +0200 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-10-03 12:42:34 +0200 | <maerwald> | see |
2020-10-03 12:42:51 +0200 | <Guest_92> | when i try accessing the logs, it says that access is denied |
2020-10-03 12:45:45 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 240 seconds) |
2020-10-03 12:46:25 +0200 | todda7 | (~torstein@athedsl-222199.home.otenet.gr) (Ping timeout: 264 seconds) |
2020-10-03 12:46:50 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2020-10-03 12:47:48 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 12:47:52 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 12:47:53 +0200 | supercoven | (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
2020-10-03 12:50:43 +0200 | jwynn6 | (~jwynn6@050-088-122-078.res.spectrum.com) |
2020-10-03 12:51:55 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 240 seconds) |
2020-10-03 12:52:06 +0200 | <tomjaguarpaw> | OK, so there is something there |
2020-10-03 12:52:30 +0200 | <tomjaguarpaw> | What happens when you try "less /Users/maz/.ghcup/logs/ghc-configure.log" |
2020-10-03 12:52:33 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 12:53:32 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
2020-10-03 12:53:53 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 12:56:28 +0200 | <Guest_92> | Target platform inferred as: x86_64-apple-darwinGHC build : x86_64-apple-darwinGHC host : x86_64-apple-darwinGHC target : x86_64-apple-darwinLLVM target: x86_64-apple-darwinchecking for path to top of build tree... /private/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO/ghc-8.8.4checking for perl... /usr/bin/perlchecking for a |
2020-10-03 12:56:28 +0200 | <Guest_92> | BSD-compatible install... /usr/bin/install -cchecking for gfind... nochecking for find... /usr/bin/findchecking whether ln -s works... yeschecking for gsed... sedchecking XCode version... xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instancenot |
2020-10-03 12:56:29 +0200 | <Guest_92> | found (too old?)checking for gcc... gccchecking whether the C compiler works... noconfigure: error: in `/private/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO/ghc-8.8.4':configure: error: C compiler cannot create executablesSee `config.log' for more details |
2020-10-03 12:57:03 +0200 | toorevitimirp | (~tooreviti@117.182.181.38) |
2020-10-03 12:57:13 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-10-03 12:57:23 +0200 | dzwonki | (~dzwonki@188.147.38.8.nat.umts.dynamic.t-mobile.pl) |
2020-10-03 12:57:29 +0200 | <tomjaguarpaw> | Looks like something is wrong with your gcc. I wouldn't know how to fix that, especially on a Mac. Maybe someone else here will. |
2020-10-03 12:58:20 +0200 | <tomjaguarpaw> | I suppose you could try "less /private/var/folders/nt/wx7qk_ks7lv4x_102964057w0000gn/T/ghcup-ANoIrO/ghc-8.8.4/config.log" |
2020-10-03 12:58:25 +0200 | <tomjaguarpaw> | Maybe that has the answers |
2020-10-03 12:59:05 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 12:59:26 +0200 | cosimone | (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
2020-10-03 13:00:07 +0200 | <maerwald> | you need gcc, your xcode is broken |
2020-10-03 13:00:13 +0200 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 246 seconds) |
2020-10-03 13:02:17 +0200 | chappi | (~swaroop@157.49.125.207) (Remote host closed the connection) |
2020-10-03 13:02:37 +0200 | <maerwald> | http://letmegooglethat.com/?q=how+to+install+gcc+on+mac |
2020-10-03 13:02:41 +0200 | chappi | (~swaroop@157.49.125.207) |
2020-10-03 13:02:42 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 13:03:32 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 256 seconds) |
2020-10-03 13:04:33 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 13:05:12 +0200 | jedws | (~jedws@121.209.139.222) |
2020-10-03 13:05:46 +0200 | Lycurgus | (~niemand@98.4.96.130) |
2020-10-03 13:07:18 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-10-03 13:08:53 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 13:09:03 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 260 seconds) |
2020-10-03 13:10:08 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 13:12:43 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 13:13:25 +0200 | rprije | (~rprije@203.214.95.251) (Ping timeout: 240 seconds) |
2020-10-03 13:14:01 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2020-10-03 13:14:25 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 240 seconds) |
2020-10-03 13:14:32 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) |
2020-10-03 13:14:40 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-10-03 13:14:48 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 13:15:48 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 13:16:20 +0200 | Tops21 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 13:17:32 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 13:19:23 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
2020-10-03 13:22:13 +0200 | chappi | (~swaroop@157.49.125.207) (Remote host closed the connection) |
2020-10-03 13:22:51 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 13:23:55 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) |
2020-10-03 13:24:05 +0200 | <kuribas> | Is there a way to force HLS to always you cabal new-style? |
2020-10-03 13:24:15 +0200 | <kuribas> | it's picking stack now... |
2020-10-03 13:25:28 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Ping timeout: 256 seconds) |
2020-10-03 13:27:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 13:29:27 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:df:e702:bc8c:934c) (Ping timeout: 260 seconds) |
2020-10-03 13:31:16 +0200 | nschoe | (~quassel@2a01:e0a:3c4:c7b0:35dc:2c34:4b9e:28a4) (Remote host closed the connection) |
2020-10-03 13:32:31 +0200 | nschoe | (~quassel@2a01:e0a:3c4:c7b0:49a5:212c:e2d5:4010) |
2020-10-03 13:33:06 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 13:33:55 +0200 | hekkaidekapus{ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-10-03 13:34:43 +0200 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-10-03 13:36:20 +0200 | <kuribas> | putting cabal: -path "./grin/" - component: "grin:lib" in hie.yaml doesn't help either |
2020-10-03 13:37:05 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 13:41:34 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:303e:b42f:c76:fb4a) |
2020-10-03 13:42:42 +0200 | worc3131 | (~quassel@2a02:c7f:c026:9500:7d0b:65d0:38a4:4786) (Ping timeout: 244 seconds) |
2020-10-03 13:43:06 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 13:45:25 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
2020-10-03 13:46:00 +0200 | fluturel | (~fluturel@79.119.85.203) |
2020-10-03 13:47:09 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 13:48:12 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2020-10-03 13:51:25 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 240 seconds) |
2020-10-03 13:53:37 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 13:54:21 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Read error: Connection reset by peer) |
2020-10-03 13:54:35 +0200 | solonarv | (~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) |
2020-10-03 13:55:32 +0200 | Sheilong | (uid293653@gateway/web/irccloud.com/x-pmnoughzcdhyigas) |
2020-10-03 13:57:10 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) |
2020-10-03 13:58:11 +0200 | <fluturel> | any ideas on why this isn't working? 'either length (*2) (someFunc 4 6)' where someFunc is of type someFunc :: (Fractional a, Eq a) => a -> a -> Either String a |
2020-10-03 13:59:32 +0200 | <fluturel> | It gives me the error No instance for (Fractional Int) arising from a use of 'someFunc' |
2020-10-03 14:00:02 +0200 | MTecknology1 | (~MTecknolo@185.204.1.185) () |
2020-10-03 14:00:48 +0200 | <tomjaguarpaw> | The return value of the either call must be the same as the return value of 'length', i.e. Int |
2020-10-03 14:01:16 +0200 | <tomjaguarpaw> | either (fromIntegral . length) (*2) (someFunc 4 6) |
2020-10-03 14:01:25 +0200 | <tomjaguarpaw> | fluturel: ^^ perhaps you want that |
2020-10-03 14:01:58 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-03 14:03:09 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 14:03:09 +0200 | <fluturel> | tomjaguarpaw: that's exactly what i was looking for, thank you |
2020-10-03 14:03:18 +0200 | <tomjaguarpaw> | You're welcome! |
2020-10-03 14:03:24 +0200 | <fluturel> | Forgot length returns Int, not something of Num |
2020-10-03 14:03:32 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:03:47 +0200 | <tomjaguarpaw> | Yeah, that can be annoying |
2020-10-03 14:04:15 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) |
2020-10-03 14:04:18 +0200 | <kuribas> | it says no cabal found, but there is a cabal in grin/grin.cabal |
2020-10-03 14:04:43 +0200 | <tomjaguarpaw> | Does it mean no /executable/ called cabal found? |
2020-10-03 14:05:30 +0200 | <kuribas> | no it says the glob *.cabal |
2020-10-03 14:06:02 +0200 | <kuribas> | it says create a package .cabal or cabal.project |
2020-10-03 14:07:31 +0200 | <tomjaguarpaw> | Does it expect to be run from the directory where the cabal file is found? |
2020-10-03 14:07:37 +0200 | <tomjaguarpaw> | i.e. do you need to be in the grin/ directory? |
2020-10-03 14:08:08 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 14:09:59 +0200 | <kuribas> | tomjaguarpaw: it's trying to run stack |
2020-10-03 14:10:11 +0200 | <kuribas> | I want it to run cabal |
2020-10-03 14:10:28 +0200 | <kuribas> | if it can run stack from this directory, it should run cabal as well from this directory. |
2020-10-03 14:11:31 +0200 | vnz | (~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in) |
2020-10-03 14:12:09 +0200 | <tomjaguarpaw> | Yes, one would hope that would be possible. I'm just making a suggestion that could be used to futher analyse the situation. |
2020-10-03 14:12:35 +0200 | <kuribas> | these tools are pretty fiddly |
2020-10-03 14:13:21 +0200 | vnz | (~vnz@2001:bc8:604:94f::1) |
2020-10-03 14:13:21 +0200 | vnz | (~vnz@2001:bc8:604:94f::1) (Changing host) |
2020-10-03 14:13:21 +0200 | vnz | (~vnz@unaffiliated/vnz) |
2020-10-03 14:13:41 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:13:41 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:ac77:4652:cb2e:48b1) |
2020-10-03 14:14:11 +0200 | <fendor> | text has no pattern synonyms to access it first characters? |
2020-10-03 14:14:32 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:15:04 +0200 | Tops22 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:15:16 +0200 | <kuribas> | tomjaguarpaw: there's a stack.yaml, maybe that's why it works? |
2020-10-03 14:16:04 +0200 | <tomjaguarpaw> | kuribas: possibly. What happens if you delete the stack.yaml? |
2020-10-03 14:16:32 +0200 | Tops23 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:17:25 +0200 | Tops21 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
2020-10-03 14:18:07 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-10-03 14:18:58 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
2020-10-03 14:20:01 +0200 | Tops22 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
2020-10-03 14:20:42 +0200 | dzwonki | (~dzwonki@188.147.38.8.nat.umts.dynamic.t-mobile.pl) ("WeeChat 2.9") |
2020-10-03 14:22:31 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Remote host closed the connection) |
2020-10-03 14:23:48 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:25:29 +0200 | Guest_92 | (021afdb0@2.26.253.176) (Ping timeout: 245 seconds) |
2020-10-03 14:25:30 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:26:02 +0200 | Tops21 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:26:38 +0200 | <kuribas> | tomjaguarpaw: running it in the ./grin directory doesn't even do anything |
2020-10-03 14:27:17 +0200 | raichoo | (~raichoo@dslb-188-101-190-053.188.101.pools.vodafone-ip.de) (Quit: Lost terminal) |
2020-10-03 14:27:22 +0200 | <kuribas> | these tools suck so badly |
2020-10-03 14:27:29 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 14:27:41 +0200 | <tomjaguarpaw> | Yup, the command line and ambient Unix system makes a very poor interface |
2020-10-03 14:27:45 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 14:27:51 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 2.9) |
2020-10-03 14:28:04 +0200 | Tops23 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
2020-10-03 14:28:40 +0200 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2020-10-03 14:29:22 +0200 | <kuribas> | tomjaguarpaw: I am running it from vscode |
2020-10-03 14:29:27 +0200 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Quit: WeeChat 2.8) |
2020-10-03 14:29:53 +0200 | <tomjaguarpaw> | Sure, but hls itself has the whole Unix system to contend with. |
2020-10-03 14:30:12 +0200 | <kuribas> | what does haskell project management have to do with unix? |
2020-10-03 14:30:38 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 272 seconds) |
2020-10-03 14:30:57 +0200 | <tomjaguarpaw> | It is ill-defined what actually constitutes a Haskell source tree. There is an informal idea that it as a hierarchy of directories with .hs files in appropriate places and some .cabal files and maybe a cabal.project file in the correct place. |
2020-10-03 14:31:03 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-03 14:31:11 +0200 | <tomjaguarpaw> | Not "free of place and time", as Rich Hickey would put it |
2020-10-03 14:31:24 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 14:33:28 +0200 | <kuribas> | that's not UNIX fault, but the haskell project structure. |
2020-10-03 14:33:45 +0200 | <kuribas> | it's overcomplicated |
2020-10-03 14:33:46 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:33:49 +0200 | <tomjaguarpaw> | I never said it was Unix's fault. |
2020-10-03 14:34:24 +0200 | <tomjaguarpaw> | It's very much the fault of all these tools for not starting by precisely defining the interface to the ambient system. |
2020-10-03 14:34:38 +0200 | <kuribas> | indeed |
2020-10-03 14:34:52 +0200 | <tomjaguarpaw> | Or rather, by precisely defining which parts of the ambient system they will use in their interface |
2020-10-03 14:34:56 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
2020-10-03 14:35:22 +0200 | <tomjaguarpaw> | What does it mean if a file exists but is not readable? Who knows? What does it mean if a .cabal file is a symlink? Who knows? It's all just "defined" by the implementation. |
2020-10-03 14:35:34 +0200 | <kuribas> | IMO also the problem is how bad these tools report errors. |
2020-10-03 14:35:37 +0200 | <tomjaguarpaw> | What does it mean if a file vanishes half way through compilation? Who knows? |
2020-10-03 14:35:50 +0200 | <tomjaguarpaw> | Yes, the error reporting is often abysmal. |
2020-10-03 14:36:24 +0200 | <tomjaguarpaw> | Rather than saying "no cabal file found" it should say "I looked in all these places but didn't find a cabal file: ..." |
2020-10-03 14:36:33 +0200 | <tomjaguarpaw> | Then you can start to get a clue about how to fix it. |
2020-10-03 14:36:37 +0200 | <kuribas> | indeed |
2020-10-03 14:36:50 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-03 14:38:05 +0200 | <maerwald> | fendor: make one :) |
2020-10-03 14:38:23 +0200 | <fendor> | maerwald, fair enough, good idea, thanks! |
2020-10-03 14:38:30 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 14:38:53 +0200 | <tomjaguarpaw> | Or just use a function! unconsText :: Text -> Maybe (Char, Text). No need to go outside of Haskell98! |
2020-10-03 14:39:03 +0200 | <maerwald> | the syntax for pattern synonyms is confusing imo |
2020-10-03 14:39:11 +0200 | <maerwald> | I can never memorize it |
2020-10-03 14:39:31 +0200 | <maerwald> | tomjaguarpaw: a function is not a pattern synonym |
2020-10-03 14:40:02 +0200 | <tomjaguarpaw> | Indeed. I think I'm missing the point of the need for such a synonym. |
2020-10-03 14:40:13 +0200 | <maerwald> | you mean the need for pattern matching? |
2020-10-03 14:40:19 +0200 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-10-03 14:40:44 +0200 | <tomjaguarpaw> | No, for the synonym. If you define functions (simple Haskell, boring Haskell) `unconsText` and `consText` why do you need the synonym? |
2020-10-03 14:41:06 +0200 | <maerwald> | Why do you need pattern matching at all when you can have functions? |
2020-10-03 14:41:38 +0200 | <tomjaguarpaw> | There's no way of matching on user-defined sum types without pattern matching! |
2020-10-03 14:41:58 +0200 | <maerwald> | the compiler could emit functions instead |
2020-10-03 14:42:07 +0200 | <tomjaguarpaw> | Sure, but it doesn't. |
2020-10-03 14:42:14 +0200 | <maerwald> | why? |
2020-10-03 14:43:05 +0200 | <tomjaguarpaw> | Well, you need some primitive form of pattern matching, else how are you going to deconstruct the result of the function? |
2020-10-03 14:43:22 +0200 | <tomjaguarpaw> | But given that Maybe and (,) already exist, `unConsText :: Text -> Maybe (Char, Text)` seems fine to me |
2020-10-03 14:43:59 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:44:12 +0200 | <maerwald> | no, the answer is: because it's convenient |
2020-10-03 14:44:16 +0200 | <maerwald> | you don't need it at all |
2020-10-03 14:45:53 +0200 | <tomjaguarpaw> | OK, thanks for the answer. Nonetheless I don't see that "case myText of { ConsText c rest -> ...; NilText -> ... }" is more convenient than "case unconsText myText of { Just (c, rest) -> ... ; Nothing -> ... }", and the latter is far less confusing. PatternSynonyms are not standard Haskell after all. |
2020-10-03 14:46:26 +0200 | <maerwald> | I usually avoid arguing about other ppls style and assume they know what they are doing :) |
2020-10-03 14:46:54 +0200 | <tomjaguarpaw> | A reasonable policy. |
2020-10-03 14:47:02 +0200 | <maerwald> | Additionally, pattern synonyms allow the COMPLETE pragma, which you don't have with functions. |
2020-10-03 14:48:17 +0200 | <kuribas> | https://gist.github.com/kuribas/0a828d64c9d2564d8045289dca0ae515 |
2020-10-03 14:48:21 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2020-10-03 14:48:21 +0200 | <kuribas> | tomjaguarpaw: ^ |
2020-10-03 14:48:40 +0200 | <kuribas> | what's this /grin/a ? |
2020-10-03 14:49:23 +0200 | <kuribas> | I added the hie.yaml file |
2020-10-03 14:49:30 +0200 | <tomjaguarpaw> | maerwald: I am making a suggestion that applies to the case of fendor, not a suggestion to avoid pattern synonyms under all circumstances. |
2020-10-03 14:49:54 +0200 | <maerwald> | tomjaguarpaw: I think he knows that there is a function :p |
2020-10-03 14:50:39 +0200 | <kuribas> | tomjaguarpaw: this is what I mean with the tools suck. I just hope that it will improve in the near future. |
2020-10-03 14:51:16 +0200 | <kuribas> | tomjaguarpaw: I'll just go back to emacs and recursive grep |
2020-10-03 14:51:33 +0200 | <tomjaguarpaw> | maerwald: That seems to be a vital piece of context I was missing. |
2020-10-03 14:52:06 +0200 | <maerwald> | kuribas: I did that too, until I started working on a project where it's policy to put "::" after a newline, so it broke my grepping for function definitions |
2020-10-03 14:52:44 +0200 | <kuribas> | maerwald: grep-fu is a complicated skill :) |
2020-10-03 14:52:48 +0200 | <maerwald> | I started to use codex with hasktags again, but it was broken |
2020-10-03 14:53:01 +0200 | <fendor> | Well, I liked to have something like: (x:'+':y:r) for text. In this case, I like it more than the nested case statement |
2020-10-03 14:53:01 +0200 | <maerwald> | kuribas: it isn't, just a waste of time |
2020-10-03 14:53:12 +0200 | <tomjaguarpaw> | kuribas: './*.cabal' really does look like it's looking just in the directory it's run from. |
2020-10-03 14:53:39 +0200 | <tomjaguarpaw> | fendor: Aha! Nested patterns. A good counterargument. |
2020-10-03 14:54:03 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 14:54:31 +0200 | Tops2 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
2020-10-03 14:54:33 +0200 | <maerwald> | and codex has this issue of picking stack automagically too, lol |
2020-10-03 14:54:49 +0200 | <maerwald> | so if you have a hybrid project, it's gonna be annoying |
2020-10-03 14:55:28 +0200 | raehik1 | (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
2020-10-03 14:55:38 +0200 | fluturel | (~fluturel@79.119.85.203) (Ping timeout: 258 seconds) |
2020-10-03 14:56:05 +0200 | Zachoz | (~Zachoz@89.47.234.28) |
2020-10-03 14:56:47 +0200 | <kuribas> | maerwald: better than nothing |
2020-10-03 14:57:18 +0200 | <maerwald> | I just use ag |
2020-10-03 14:57:32 +0200 | <kuribas> | speed isn't critical |
2020-10-03 14:57:44 +0200 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-10-03 14:57:48 +0200 | <maerwald> | speed is everything |
2020-10-03 14:57:50 +0200 | <kuribas> | tomjaguarpaw: I followed the documentation for hie.yaml |
2020-10-03 14:58:24 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 14:58:30 +0200 | Tops21 | (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 272 seconds) |
2020-10-03 14:58:44 +0200 | <tomjaguarpaw> | I think HLS maintainers will be responsive if you file a GitHub issue with a minimal reproducer |
2020-10-03 15:01:14 +0200 | <kuribas> | does anyone have experience with other typed functional languages? |
2020-10-03 15:01:23 +0200 | <kuribas> | in a production setting. |
2020-10-03 15:01:23 +0200 | <fendor> | kuribas, elm? :D |
2020-10-03 15:01:34 +0200 | <kuribas> | I really cannot recommend haskell for my team. |
2020-10-03 15:01:59 +0200 | <kuribas> | or perhaps I need to stick to stack? |
2020-10-03 15:02:27 +0200 | hackage | linear 1.21.3 - Linear Algebra https://hackage.haskell.org/package/linear-1.21.3 (ryanglscott) |
2020-10-03 15:02:28 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
2020-10-03 15:02:39 +0200 | <maerwald> | kuribas: TypeScript |
2020-10-03 15:02:42 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 15:02:55 +0200 | jgt | (~jgt@195.225.146.77) (Ping timeout: 258 seconds) |
2020-10-03 15:02:57 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 15:02:58 +0200 | <kuribas> | maerwald: for backend stuff |
2020-10-03 15:03:05 +0200 | <maerwald> | oh |
2020-10-03 15:03:16 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) |
2020-10-03 15:03:31 +0200 | <maerwald> | I would say clojure, but I urge you to stay away from it as far as possible |
2020-10-03 15:03:33 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-03 15:03:38 +0200 | <maerwald> | don't even touch it with a stick |
2020-10-03 15:03:49 +0200 | <kuribas> | maerwald: we're already using clojure :) |
2020-10-03 15:03:55 +0200 | <maerwald> | oh god, I'm sorry |
2020-10-03 15:04:00 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 15:04:05 +0200 | <maerwald> | hope you get paid well |
2020-10-03 15:04:05 +0200 | <kuribas> | maerwald: I want to propose something more robust |
2020-10-03 15:04:11 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 15:04:27 +0200 | <aldum> | what is Rich Hickey's problem with types, I don't get it |
2020-10-03 15:04:59 +0200 | <tomjaguarpaw> | kuribas: Would you mind filling in a ticket for me explaining the reasons for not being able to recommend Haskell for your team? I am trying to understand better the sources of friction in the Haskell ecosystem. https://github.com/tomjaguarpaw/tilapia/issues/new |
2020-10-03 15:05:09 +0200 | <maerwald> | kuribas: I haven't tried Ocaml, but people use it and it has some large company backers |
2020-10-03 15:05:22 +0200 | <maerwald> | I'm confident it can't be worse than clojure |
2020-10-03 15:05:25 +0200 | <maerwald> | because nothing can |
2020-10-03 15:05:32 +0200 | <kuribas> | tomjaguarpaw: I just need something that work. |
2020-10-03 15:05:45 +0200 | <tomjaguarpaw> | Yeah, it's the definition of "work" that I'm trying to understand. |
2020-10-03 15:06:01 +0200 | <kuribas> | tomjaguarpaw: I mean good tooling. I know my colleagues don't want to use emacs. |
2020-10-03 15:06:28 +0200 | <kuribas> | maerwald: sure, php, javascript |
2020-10-03 15:06:56 +0200 | <maerwald> | kuribas: php isn't really a language :p there must be some other definition for it |
2020-10-03 15:07:55 +0200 | <tomjaguarpaw> | kuribas: "Tooling" meaning what? Editor integrations? |
2020-10-03 15:07:59 +0200 | <kuribas> | tomjaguarpaw: yes |
2020-10-03 15:08:37 +0200 | <maerwald> | There's a bigger problem than tooling: GHC doesn't scale. Because compilation is both slow and memory intensive. Tooling suffers from that too |
2020-10-03 15:08:50 +0200 | <tomjaguarpaw> | I think HLS is the best Haskell has to offer at the moment. But I really do think that the HLS team will fix this issue for you if you report it. |
2020-10-03 15:09:00 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-10-03 15:09:01 +0200 | <maerwald> | If you have a 300 module monolith, running plain ghci becomes a challenge |
2020-10-03 15:09:19 +0200 | <maerwald> | (and anything else, including hls/intero/etc OOMs) |
2020-10-03 15:09:25 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 15:09:33 +0200 | <kuribas> | tomjaguarpaw: this isn't the first problem, there also was a problem when launching HLS in a workspace. |
2020-10-03 15:10:08 +0200 | <kuribas> | tomjaguarpaw: alright, I'll report the issues... |
2020-10-03 15:10:10 +0200 | <tomjaguarpaw> | Sure, there are loads of problems. I'm just saying that I'm pretty sure they will get fixed if you report them. HLS is being used extensively, especially by the people who maintain it! |
2020-10-03 15:10:36 +0200 | <maerwald> | When I worked on a pretty large Go backend system... it was actually a bliss to iterate code-wise, because compilation is cached and fast |
2020-10-03 15:10:37 +0200 | <kuribas> | tomjaguarpaw: at least if I can get something somewhat stable before I present it to the team. |
2020-10-03 15:10:59 +0200 | John20 | (~John@82.46.59.122) |
2020-10-03 15:11:02 +0200 | <kuribas> | maerwald: yeah, because the language is so primitive. |
2020-10-03 15:11:09 +0200 | <maerwald> | kuribas: true |
2020-10-03 15:11:30 +0200 | Lycurgus | (~niemand@98.4.96.130) (Quit: Exeunt) |
2020-10-03 15:14:05 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) |
2020-10-03 15:14:17 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 15:15:32 +0200 | perdent1 | (~blah@66.115.157.138) (Quit: Leaving.) |
2020-10-03 15:17:28 +0200 | hackage | aeson 1.5.4.1 - Fast JSON parsing and encoding https://hackage.haskell.org/package/aeson-1.5.4.1 (AdamBergmark) |
2020-10-03 15:18:49 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-10-03 15:18:59 +0200 | alp | (~alp@2a01:e0a:58b:4920:7cc6:ff33:2bc5:5932) |
2020-10-03 15:21:57 +0200 | hackage | text-show 3.9 - Efficient conversion of values into Text https://hackage.haskell.org/package/text-show-3.9 (ryanglscott) |
2020-10-03 15:22:58 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) |
2020-10-03 15:23:41 +0200 | Amras | (~Amras@unaffiliated/amras0000) |
2020-10-03 15:24:56 +0200 | ggole | (~ggole@2001:8003:8119:7200:d175:a532:be60:ae73) |
2020-10-03 15:26:27 +0200 | hackage | qhs 0.3.3 - Command line tool qhs, SQL queries on CSV and TSV files. https://hackage.haskell.org/package/qhs-0.3.3 (itchyny) |
2020-10-03 15:27:33 +0200 | <Cheery> | I installed haskell language server |
2020-10-03 15:27:51 +0200 | <Cheery> | it's telling me ghcide compiled against GHC 8.8.4, but currently using 8.0.2 |
2020-10-03 15:28:02 +0200 | <Cheery> | I decided.. ok. Lets go to 8.8.4 but how? |
2020-10-03 15:28:39 +0200 | mav1 | (~mav@i59F4E15F.versanet.de) (Quit: WeeChat 2.9) |
2020-10-03 15:30:03 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) (Ping timeout: 272 seconds) |
2020-10-03 15:30:08 +0200 | <tomjaguarpaw> | Cheery: Are you asking how you can get GHC 8.8.4? If so, try https://www.haskell.org/ghcup/ (and when ghcup is installed, run `ghcup install ghc 8.8.4`) |
2020-10-03 15:30:38 +0200 | <maerwald> | if it's a stack project, bump lts to 16.16 |
2020-10-03 15:34:46 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 15:34:53 +0200 | <Cheery> | ok.. it seem to be going to 8.8.4 now. |
2020-10-03 15:35:32 +0200 | <Cheery> | haha. hasking whether I want to install haskell language server |
2020-10-03 15:36:52 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer) |
2020-10-03 15:37:08 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) |
2020-10-03 15:37:29 +0200 | Bergle_2 | (~Bergle_4@101.165.90.119) |
2020-10-03 15:37:34 +0200 | nineonine | (~nineonine@216-19-190-182.dyn.novuscom.net) |
2020-10-03 15:37:39 +0200 | <maerwald> | Cheery: it's a good idea |
2020-10-03 15:37:52 +0200 | <maerwald> | because it's managed properly and will tell you if there are updates |
2020-10-03 15:38:16 +0200 | blissful | (~azuline@unaffiliated/azuline) (Quit: Ping timeout (120 seconds)) |
2020-10-03 15:38:20 +0200 | sdx23 | (~sdx23@unaffiliated/sdx23) (Remote host closed the connection) |
2020-10-03 15:38:35 +0200 | sdx23 | (~sdx23@unaffiliated/sdx23) |
2020-10-03 15:38:43 +0200 | blissful | (~azuline@unaffiliated/azuline) |
2020-10-03 15:39:17 +0200 | benwr___ | (sid372383@gateway/web/irccloud.com/x-pbrsmtxwohmjfqbb) (Ping timeout: 260 seconds) |
2020-10-03 15:39:24 +0200 | sagax | (~sagax_nb@213.138.71.146) (Read error: Connection reset by peer) |
2020-10-03 15:40:11 +0200 | alp | (~alp@2a01:e0a:58b:4920:7cc6:ff33:2bc5:5932) (Ping timeout: 272 seconds) |
2020-10-03 15:40:18 +0200 | Bergle_1 | (~Bergle_4@101.165.90.119) (Ping timeout: 272 seconds) |
2020-10-03 15:41:16 +0200 | benwr___ | (sid372383@gateway/web/irccloud.com/x-jllzmgdqvwjjsvpo) |
2020-10-03 15:42:11 +0200 | toorevitimirp | (~tooreviti@117.182.181.38) (Ping timeout: 240 seconds) |
2020-10-03 15:42:29 +0200 | toorevitimirp | (~tooreviti@117.182.181.38) |
2020-10-03 15:43:05 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2020-10-03 15:46:38 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 15:50:13 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) |
2020-10-03 15:52:40 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 15:53:22 +0200 | xerox__ | (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
2020-10-03 15:53:54 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 15:54:25 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) |
2020-10-03 15:56:20 +0200 | <ski> | siraben : they are a form of dynamic scoping, i'd say |
2020-10-03 15:58:06 +0200 | inkbottle | (~inkbottle@aaubervilliers-654-1-101-122.w86-212.abo.wanadoo.fr) |
2020-10-03 15:58:40 +0200 | zebrag | (~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2020-10-03 15:59:39 +0200 | polyrain_ | (~polyrain@2001:8003:e501:6901:b02f:4d9a:d965:934e) |
2020-10-03 16:01:18 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-10-03 16:02:55 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:ac77:4652:cb2e:48b1) (Ping timeout: 240 seconds) |
2020-10-03 16:02:58 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 16:04:36 +0200 | mpereira | (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Remote host closed the connection) |
2020-10-03 16:09:05 +0200 | rusua_ | (uid124537@gateway/web/irccloud.com/x-mexpuwrluhhqoukw) |
2020-10-03 16:09:17 +0200 | <p0a> | maerwald: about the 300 module monolith, isn't a 'solution' to get faster hardware? |
2020-10-03 16:09:39 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 16:09:40 +0200 | rusua_ | (uid124537@gateway/web/irccloud.com/x-mexpuwrluhhqoukw) (Client Quit) |
2020-10-03 16:09:53 +0200 | <maerwald> | p0a: no, because GHC isn't good at compiling in parallel :) |
2020-10-03 16:10:06 +0200 | <maerwald> | and if you do, you need 64GB of ram |
2020-10-03 16:10:13 +0200 | rusua_ | (uid124537@gateway/web/irccloud.com/x-rvpnrgylngbccoaw) |
2020-10-03 16:10:16 +0200 | <p0a> | If you do what? |
2020-10-03 16:10:19 +0200 | <maerwald> | (and that's what our amazon instance was, which is quite expensive) |
2020-10-03 16:10:43 +0200 | <maerwald> | if you do compile modules in parallel |
2020-10-03 16:11:48 +0200 | <p0a> | It's surprising to me that ghc doesn't scale with cores |
2020-10-03 16:12:00 +0200 | <yushyin> | yeah, I often do -j1 or -j2 otherwise my 8GB notebook would go OOM while compiling haskell stuff :/ |
2020-10-03 16:12:02 +0200 | <kuribas> | ghc is quite imperatively written |
2020-10-03 16:12:06 +0200 | <kuribas> | AFAIK |
2020-10-03 16:12:31 +0200 | <p0a> | 64GB isn't that expensive for a personal build right? we're talking servers -- that's what's expensive |
2020-10-03 16:12:46 +0200 | <maerwald> | you need to build on servers too, yeah :) |
2020-10-03 16:13:04 +0200 | aarvar | (~foewfoiew@50.35.43.33) (Ping timeout: 246 seconds) |
2020-10-03 16:13:08 +0200 | <kuribas> | maerwald: can't you modularize your code more? |
2020-10-03 16:13:13 +0200 | <maerwald> | slow CI iterations decrease productivity |
2020-10-03 16:13:16 +0200 | <kuribas> | 64GB seems excessive |
2020-10-03 16:13:36 +0200 | mahene | (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Remote host closed the connection) |
2020-10-03 16:13:38 +0200 | <kuribas> | maerwald: does it takes hours to compile? |
2020-10-03 16:13:54 +0200 | <kuribas> | I find 5 or 10 minutes still acceptable for a CI build |
2020-10-03 16:14:13 +0200 | <maerwald> | kuribas: CI was 30 minutes minimum |
2020-10-03 16:14:36 +0200 | <dminuoso> | For what its worth, with -O0 you can usually get much better memory and CPU usage. |
2020-10-03 16:14:42 +0200 | <maerwald> | currently, they are 1h+ |
2020-10-03 16:14:54 +0200 | <dminuoso> | For develop iterations, -O0 should be fine for many cases |
2020-10-03 16:15:22 +0200 | <dminuoso> | Even in CI you could do that, as long as you switch to the desired optimization level for actual releases. |
2020-10-03 16:15:26 +0200 | <maerwald> | dminuoso: then spinning up the event sourced backend would take 2 hours xD |
2020-10-03 16:17:00 +0200 | <p0a> | 2 hours means that with 256GB of ram it'd be just 30 minutes maerwald |
2020-10-03 16:17:01 +0200 | Rudd0 | (~Rudd0@185.189.115.98) (Ping timeout: 265 seconds) |
2020-10-03 16:17:04 +0200 | <p0a> | see? it's fine |
2020-10-03 16:17:27 +0200 | hackage | derive-lifted-instances 0.2.1 - Derive class instances though various kinds of lifting https://hackage.haskell.org/package/derive-lifted-instances-0.2.1 (SjoerdVisscher) |
2020-10-03 16:18:01 +0200 | <kuribas> | maerwald: what do you do that's so heavy? Lots of generics? |
2020-10-03 16:18:28 +0200 | hackage | text-show-instances 3.8.4 - Additional instances for text-show https://hackage.haskell.org/package/text-show-instances-3.8.4 (ryanglscott) |
2020-10-03 16:18:54 +0200 | <maerwald> | kuribas: TH, generics, aeson, aeson-typescript |
2020-10-03 16:19:35 +0200 | <kuribas> | maerwald: you could try replace some of the generics with TH, that may decrease compile times. |
2020-10-03 16:20:05 +0200 | <maerwald> | I don't think that buys much. The problem is rather that it's 300 modules |
2020-10-03 16:20:06 +0200 | <kuribas> | maerwald: for example Aeson deriving. |
2020-10-03 16:20:13 +0200 | <maerwald> | and I don't work on that project anymore |
2020-10-03 16:20:31 +0200 | <kuribas> | maerwald: do you need to compile everything from scratch everytime? |
2020-10-03 16:20:36 +0200 | <p0a> | 300 modules means what exactly? 300 invocations of ghc? |
2020-10-03 16:20:39 +0200 | <maerwald> | nope |
2020-10-03 16:21:11 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 16:24:57 +0200 | hackage | exp-pairs 0.2.1.0 - Linear programming over exponent pairs https://hackage.haskell.org/package/exp-pairs-0.2.1.0 (Bodigrim) |
2020-10-03 16:25:49 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-03 16:28:59 +0200 | p0a | (~user@unaffiliated/p0a) (Quit: bye) |
2020-10-03 16:29:30 +0200 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-10-03 16:33:55 +0200 | xff0x | (~fox@2001:1a81:528f:c400:acd2:8569:1d0e:86f) (Ping timeout: 240 seconds) |
2020-10-03 16:34:58 +0200 | xff0x | (~fox@2001:1a81:528f:c400:e801:3cdf:9d3a:43d8) |
2020-10-03 16:36:49 +0200 | John20 | (~John@82.46.59.122) (Ping timeout: 264 seconds) |
2020-10-03 16:38:34 +0200 | jedws | (~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 16:39:50 +0200 | fendor | (~fendor@e237-037.eduroam.tuwien.ac.at) (Remote host closed the connection) |
2020-10-03 16:41:08 +0200 | urodna | (~urodna@unaffiliated/urodna) |
2020-10-03 16:41:17 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 16:41:58 +0200 | petersen | (~petersen@redhat/juhp) (Ping timeout: 260 seconds) |
2020-10-03 16:42:04 +0200 | dincio | (~dincio@host-87-0-5-208.retail.telecomitalia.it) |
2020-10-03 16:45:42 +0200 | conal | (~conal@64.71.133.70) |
2020-10-03 16:45:55 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-10-03 16:47:25 +0200 | vicfred_ | (~vicfred@unaffiliated/vicfred) |
2020-10-03 16:49:47 +0200 | vicfred | (~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds) |
2020-10-03 16:50:32 +0200 | dincio | (~dincio@host-87-0-5-208.retail.telecomitalia.it) (Quit: WeeChat 2.9) |
2020-10-03 16:51:30 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 16:53:49 +0200 | petersen | (~petersen@redhat/juhp) |
2020-10-03 16:55:46 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2020-10-03 16:59:43 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:946c:d009:44fd:e452) |
2020-10-03 17:00:01 +0200 | Zachoz | (~Zachoz@89.47.234.28) () |
2020-10-03 17:00:17 +0200 | polyrain | (~polyrain@2001:8003:e501:6901:946c:d009:44fd:e452) (Client Quit) |
2020-10-03 17:00:18 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 17:01:39 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 17:01:43 +0200 | conal | (~conal@64.71.133.70) (Ping timeout: 246 seconds) |
2020-10-03 17:02:08 +0200 | polyrain_ | (~polyrain@2001:8003:e501:6901:b02f:4d9a:d965:934e) (Ping timeout: 244 seconds) |
2020-10-03 17:02:34 +0200 | conal | (~conal@66.115.157.135) |
2020-10-03 17:04:00 +0200 | fliife850 | (~FliiFe@59.ip-54-37-158.eu) (Quit: The Lounge - https://thelounge.chat) |
2020-10-03 17:05:28 +0200 | hackage | atomic-primops 0.8.4 - A safe approach to CAS and other atomic ops in Haskell. https://hackage.haskell.org/package/atomic-primops-0.8.4 (ryanglscott) |
2020-10-03 17:05:58 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2020-10-03 17:07:17 +0200 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-10-03 17:07:33 +0200 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-10-03 17:09:22 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 17:09:31 +0200 | toorevitimirp | (~tooreviti@117.182.181.38) (Remote host closed the connection) |
2020-10-03 17:09:45 +0200 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2020-10-03 17:09:55 +0200 | Lord_of_Life_ | Lord_of_Life |
2020-10-03 17:11:00 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds) |
2020-10-03 17:11:29 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 17:12:39 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:303e:b42f:c76:fb4a) (Ping timeout: 272 seconds) |
2020-10-03 17:14:47 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
2020-10-03 17:15:40 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 17:18:06 +0200 | bitmapper | (uid464869@gateway/web/irccloud.com/x-aodidipmuxccpmsk) |
2020-10-03 17:18:14 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 17:19:01 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 17:19:28 +0200 | hackage | derive-lifted-instances 0.2.2 - Derive class instances though various kinds of lifting https://hackage.haskell.org/package/derive-lifted-instances-0.2.2 (SjoerdVisscher) |
2020-10-03 17:19:55 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 17:20:25 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-10-03 17:21:35 +0200 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) |
2020-10-03 17:22:15 +0200 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-03 17:23:10 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
2020-10-03 17:23:15 +0200 | kuribas | (~user@ptr-25vy0i9v0yveatz4g8h.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2020-10-03 17:23:23 +0200 | coot | (~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-10-03 17:23:44 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) |
2020-10-03 17:25:02 +0200 | mav1 | (~mav@i59F4E15F.versanet.de) |
2020-10-03 17:25:03 +0200 | coot | (~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) |
2020-10-03 17:25:08 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:ed72:300f:cee0:50da) |
2020-10-03 17:25:27 +0200 | hackage | termonad 4.0.1.0 - Terminal emulator configurable in Haskell https://hackage.haskell.org/package/termonad-4.0.1.0 (cdepillabout) |
2020-10-03 17:26:40 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 260 seconds) |
2020-10-03 17:26:42 +0200 | ryansmccoy | (~ryansmcco@193.37.254.27) (Ping timeout: 272 seconds) |
2020-10-03 17:27:45 +0200 | hiroaki | (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) |
2020-10-03 17:27:48 +0200 | ryansmccoy | (~ryansmcco@156.96.151.132) |
2020-10-03 17:28:03 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 17:32:11 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-10-03 17:33:52 +0200 | coot_ | (~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) |
2020-10-03 17:35:25 +0200 | coot | (~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds) |
2020-10-03 17:35:25 +0200 | coot_ | coot |
2020-10-03 17:37:34 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in) |
2020-10-03 17:38:12 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2020-10-03 17:39:10 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Client Quit) |
2020-10-03 17:40:03 +0200 | ddellacosta | (~dd@86.106.121.168) |
2020-10-03 17:40:44 +0200 | bloodstalker | (~bloodstal@46.166.187.154) |
2020-10-03 17:41:18 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 17:41:36 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 17:41:36 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 17:41:36 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 17:42:37 +0200 | rembo10 | (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.1 - https://znc.in) |
2020-10-03 17:43:12 +0200 | eruditass | (uid248673@gateway/web/irccloud.com/x-xlxyyorlrbylocpr) (Ping timeout: 260 seconds) |
2020-10-03 17:43:48 +0200 | d0liver | (sid363046@gateway/web/irccloud.com/x-qxqtscijfywlxedk) (Ping timeout: 272 seconds) |
2020-10-03 17:43:48 +0200 | betawaffle | (sid2730@gateway/web/irccloud.com/x-orjomwskylmorsde) (Ping timeout: 272 seconds) |
2020-10-03 17:43:48 +0200 | tiru | (tiru@gateway/web/irccloud.com/x-gfuwglvcfdlytqib) (Ping timeout: 272 seconds) |
2020-10-03 17:43:48 +0200 | Cir0X | (sid221743@gateway/web/irccloud.com/x-evcopvnmbvtlefpi) (Ping timeout: 272 seconds) |
2020-10-03 17:43:48 +0200 | m-renaud | (sid333785@gateway/web/irccloud.com/x-kpmgnertdfunxglr) (Ping timeout: 272 seconds) |
2020-10-03 17:44:26 +0200 | ibloom | (sid350277@gateway/web/irccloud.com/x-sdzgxluappwccdwo) (Ping timeout: 272 seconds) |
2020-10-03 17:44:26 +0200 | liszt | (sid336875@gateway/web/irccloud.com/x-fgkyqbrdplybngov) (Ping timeout: 272 seconds) |
2020-10-03 17:44:26 +0200 | chessai | (sid225296@gateway/web/irccloud.com/x-iuoxqvqcfhadrlqz) (Ping timeout: 272 seconds) |
2020-10-03 17:44:26 +0200 | ajmcmiddlin | (sid284402@gateway/web/irccloud.com/x-sfijhwdwxlmemapi) (Ping timeout: 272 seconds) |
2020-10-03 17:44:26 +0200 | cvlad- | (sid203065@gateway/web/irccloud.com/x-dpssemqomdmrjjbm) (Ping timeout: 272 seconds) |
2020-10-03 17:44:42 +0200 | ocharles | (sid30093@musicbrainz/user/ocharles) (Ping timeout: 260 seconds) |
2020-10-03 17:44:42 +0200 | ghuntley | (sid16877@gateway/web/irccloud.com/x-luqtfrbjedshlyyp) (Ping timeout: 260 seconds) |
2020-10-03 17:45:04 +0200 | metadave | (sid28102@gateway/web/irccloud.com/x-qyjldscaiqukxlnz) (Ping timeout: 272 seconds) |
2020-10-03 17:45:04 +0200 | heyj | (sid171370@gateway/web/irccloud.com/x-rhahyjccskeqwknw) (Ping timeout: 272 seconds) |
2020-10-03 17:45:04 +0200 | iphy | (sid67735@gateway/web/irccloud.com/x-qiqhfnskjyrqjolo) (Ping timeout: 272 seconds) |
2020-10-03 17:45:15 +0200 | d0liver | (sid363046@gateway/web/irccloud.com/x-fdwlevtfjmrlsqqx) |
2020-10-03 17:45:18 +0200 | tiru | (tiru@gateway/web/irccloud.com/x-xnxbjyohgerhrzfb) |
2020-10-03 17:45:43 +0200 | bloodsta1ker | (~bloodstal@5.115.157.170) |
2020-10-03 17:45:45 +0200 | m-renaud | (sid333785@gateway/web/irccloud.com/x-ucmnbonuwpygsdsu) |
2020-10-03 17:46:33 +0200 | eruditass | (uid248673@gateway/web/irccloud.com/x-velielirfiuvbxms) |
2020-10-03 17:46:55 +0200 | Cir0X | (sid221743@gateway/web/irccloud.com/x-cpmvkyxaeuqbghtu) |
2020-10-03 17:46:58 +0200 | chessai | (sid225296@gateway/web/irccloud.com/x-qipjiulksamexnar) |
2020-10-03 17:47:00 +0200 | liszt | (sid336875@gateway/web/irccloud.com/x-fgjnvuscjsssyrqb) |
2020-10-03 17:47:01 +0200 | ajmcmiddlin | (sid284402@gateway/web/irccloud.com/x-ioikmsgxhbssuurt) |
2020-10-03 17:47:01 +0200 | cvlad- | (sid203065@gateway/web/irccloud.com/x-ohozyplbhkhukaip) |
2020-10-03 17:47:02 +0200 | metadave | (sid28102@gateway/web/irccloud.com/x-saqsamxyttpjnhcp) |
2020-10-03 17:47:04 +0200 | ghuntley | (sid16877@gateway/web/irccloud.com/x-jwzkcgtobgufetir) |
2020-10-03 17:47:04 +0200 | ocharles | (sid30093@musicbrainz/user/ocharles) |
2020-10-03 17:47:09 +0200 | betawaffle | (sid2730@gateway/web/irccloud.com/x-wghvolpocwqebnnh) |
2020-10-03 17:47:35 +0200 | heyj | (sid171370@gateway/web/irccloud.com/x-ihekfkoaipxroskj) |
2020-10-03 17:47:37 +0200 | bloodstalker | (~bloodstal@46.166.187.154) (Ping timeout: 264 seconds) |
2020-10-03 17:47:37 +0200 | ibloom | (sid350277@gateway/web/irccloud.com/x-ymkdxafhqeygykpz) |
2020-10-03 17:47:37 +0200 | iphy | (sid67735@gateway/web/irccloud.com/x-aopftouqgwvymeyk) |
2020-10-03 17:47:51 +0200 | rembo10 | (~rembo10@wally.codeshy.com) |
2020-10-03 17:48:59 +0200 | dyeplexer | (~lol@unaffiliated/terpin) |
2020-10-03 17:50:18 +0200 | bloodsta1ker | (~bloodstal@5.115.157.170) (Ping timeout: 265 seconds) |
2020-10-03 17:50:44 +0200 | bloodstalker | (~bloodstal@46.166.187.188) |
2020-10-03 17:51:47 +0200 | constR | (uid58205@gateway/web/irccloud.com/x-efrkxtuegwrgtzug) |
2020-10-03 17:55:05 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2020-10-03 17:55:43 +0200 | aj2 | (~aj@s91904426.blix.com) |
2020-10-03 17:56:08 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) |
2020-10-03 17:59:53 +0200 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 256 seconds) |
2020-10-03 18:01:08 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 18:01:43 +0200 | sajith[m] | (sajithmatr@gateway/shell/matrix.org/x-sazyjhonfaddxfuy) (Quit: Idle for 30+ days) |
2020-10-03 18:02:07 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 18:02:15 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-03 18:02:17 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 18:02:17 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 18:02:17 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 18:04:06 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 18:04:45 +0200 | john_freekon | (5cf785e2@92.247.133.226) |
2020-10-03 18:11:19 +0200 | jeffcasavant[m] | (jeffcasava@gateway/shell/matrix.org/x-hmrlrnakwcyeqokv) |
2020-10-03 18:11:25 +0200 | bonvoyage[m]11 | (bonvoyageu@gateway/shell/matrix.org/x-xlbynwhsaluwujmn) |
2020-10-03 18:12:01 +0200 | Rudd0 | (~Rudd0@185.189.115.103) |
2020-10-03 18:12:11 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
2020-10-03 18:12:45 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 18:12:45 +0200 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 18:12:45 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 18:13:19 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) (Quit: WeeChat 2.9) |
2020-10-03 18:14:51 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 18:15:45 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in) |
2020-10-03 18:16:37 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2020-10-03 18:16:40 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-03 18:18:08 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 18:18:18 +0200 | GyroW | (~GyroW@d54c03e98.access.telenet.be) |
2020-10-03 18:18:18 +0200 | GyroW | (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
2020-10-03 18:18:18 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 18:18:57 +0200 | hackage | rattletrap 9.2.0 - Parse and generate Rocket League replays. https://hackage.haskell.org/package/rattletrap-9.2.0 (fozworth) |
2020-10-03 18:20:39 +0200 | mav1 | (~mav@i59F4E15F.versanet.de) (Quit: WeeChat 2.9) |
2020-10-03 18:21:44 +0200 | john_freekon | (5cf785e2@92.247.133.226) () |
2020-10-03 18:25:03 +0200 | conal | (~conal@66.115.157.135) (Quit: Computer has gone to sleep.) |
2020-10-03 18:25:23 +0200 | shatriff | (~vitaliish@78.111.190.146) (Ping timeout: 256 seconds) |
2020-10-03 18:26:22 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 18:26:22 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 18:26:22 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 18:27:57 +0200 | rusua_ | (uid124537@gateway/web/irccloud.com/x-rvpnrgylngbccoaw) (Quit: Connection closed for inactivity) |
2020-10-03 18:30:35 +0200 | Lucas__ | (~Lucas@187.123.1.224) |
2020-10-03 18:31:13 +0200 | geekosaur | (42d52102@66.213.33.2) |
2020-10-03 18:31:28 +0200 | Lucas__ | (~Lucas@187.123.1.224) (Read error: Connection reset by peer) |
2020-10-03 18:32:54 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in) |
2020-10-03 18:33:03 +0200 | jgt | (~jgt@188.239.64.32) |
2020-10-03 18:33:49 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds) |
2020-10-03 18:34:02 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 18:34:02 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 18:34:02 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 18:34:55 +0200 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2020-10-03 18:38:40 +0200 | isovector1 | (~isovector@172.103.216.166) |
2020-10-03 18:46:04 +0200 | <dsal> | I spin up a sufficiently large aws instance to do my builds. At least, initial builds. cachix is taking care of the deps. |
2020-10-03 18:46:14 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-10-03 18:46:52 +0200 | <maerwald> | caching isn't the problem |
2020-10-03 18:46:55 +0200 | <tomjaguarpaw> | dsal: That's very cool. Do you have a script or write up you've published about how you do that? |
2020-10-03 18:47:06 +0200 | <maerwald> | we used cabal-cache and it works fine too |
2020-10-03 18:49:36 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-10-03 18:49:43 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 18:49:58 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 18:51:21 +0200 | shatriff | (~vitaliish@78.111.190.146) (Read error: Connection reset by peer) |
2020-10-03 18:51:23 +0200 | Saukk | (~Saukk@2001:998:f1:3963:1c59:9bb5:b94c:2) |
2020-10-03 18:51:37 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 18:52:06 +0200 | <maerwald> | but that's not what "scales well" means :) |
2020-10-03 18:52:25 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-10-03 18:52:53 +0200 | Saukk | (~Saukk@2001:998:f1:3963:1c59:9bb5:b94c:2) (Remote host closed the connection) |
2020-10-03 18:53:01 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 264 seconds) |
2020-10-03 18:53:10 +0200 | vicfred_ | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-10-03 18:54:15 +0200 | <dsal> | tomjaguarpaw: I have a small note about how to launch the instance again. All I did was built out an aws instance on nixos, and then use cachix. |
2020-10-03 18:56:47 +0200 | bcoppens_ | bcoppens |
2020-10-03 18:56:48 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) (Changing host) |
2020-10-03 18:56:48 +0200 | bcoppens | (~bartcopp@kde/coppens) |
2020-10-03 18:57:58 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
2020-10-03 18:59:23 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 18:59:31 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 19:03:46 +0200 | jwynn6_ | (~justin@050-088-122-078.res.spectrum.com) (Ping timeout: 265 seconds) |
2020-10-03 19:04:02 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2020-10-03 19:04:49 +0200 | tzh | (~tzh@2601:448:c500:5300::143b) |
2020-10-03 19:05:25 +0200 | jgt | (~jgt@188.239.64.32) (Ping timeout: 240 seconds) |
2020-10-03 19:08:08 +0200 | jedws | (~jedws@121.209.139.222) |
2020-10-03 19:08:25 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-10-03 19:09:08 +0200 | oisdk | (~oisdk@2001:bb6:3329:d100:d17f:3343:5407:5673) |
2020-10-03 19:09:12 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 19:09:12 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 19:09:12 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-03 19:09:24 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds) |
2020-10-03 19:09:58 +0200 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-10-03 19:09:58 +0200 | Lycurgus | (~niemand@98.4.96.130) |
2020-10-03 19:12:03 +0200 | Franciman | (~francesco@host-212-171-42-250.retail.telecomitalia.it) (Quit: Leaving) |
2020-10-03 19:12:03 +0200 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2020-10-03 19:12:24 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 19:13:08 +0200 | gentauro | (~gentauro@unaffiliated/gentauro) |
2020-10-03 19:13:53 +0200 | kw | (ac4a6125@cpe-172-74-97-37.nc.res.rr.com) |
2020-10-03 19:13:58 +0200 | John20 | (~John@82.46.59.122) |
2020-10-03 19:14:18 +0200 | <kw> | How do I tell GHC that a typeclass-based pair of patterns is complete? |
2020-10-03 19:14:22 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 246 seconds) |
2020-10-03 19:14:59 +0200 | <kw> | I keep getting parse errors on the `{-# COMPLETE ... #-}` prgagma when I add signatures. |
2020-10-03 19:16:25 +0200 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2020-10-03 19:16:47 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 19:17:34 +0200 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-hdtidkhqzeetbjwg) |
2020-10-03 19:18:01 +0200 | <kw> | E.g. I get a parse error on `{-# COMPLETE Empty :: (HasTail m)=> m a, (:<:) :: (Consable m, HasTail m)=> a -> m a -> m a #-}` |
2020-10-03 19:18:32 +0200 | <kw> | But on `{-# COMPLETE Empty, (:<:) #-}` GHC tells me that I need to add signatures. |
2020-10-03 19:20:52 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
2020-10-03 19:21:05 +0200 | John20 | (~John@82.46.59.122) (Ping timeout: 240 seconds) |
2020-10-03 19:21:43 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) |
2020-10-03 19:23:15 +0200 | <tomjaguarpaw> | Does anyone know how to increase the stored history length in GHCi? |
2020-10-03 19:25:34 +0200 | <geekosaur> | https://github.com/judah/haskeline/wiki/UserPreferences |
2020-10-03 19:25:43 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 19:26:47 +0200 | <geekosaur> | unfortunately, this seems to apply to anything that uses haskeline. fortunately, to date there's not a lot beyond ghci that uses it |
2020-10-03 19:27:09 +0200 | kw | (ac4a6125@cpe-172-74-97-37.nc.res.rr.com) (Ping timeout: 245 seconds) |
2020-10-03 19:28:08 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 19:28:48 +0200 | feralSigyn | Sigyn |
2020-10-03 19:29:13 +0200 | knupfer | (~Thunderbi@i59F7FF93.versanet.de) |
2020-10-03 19:30:32 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-03 19:31:22 +0200 | <tomjaguarpaw> | geekosaur: Thanks |
2020-10-03 19:33:16 +0200 | shaman_king | (b94186aa@185.65.134.170) |
2020-10-03 19:33:18 +0200 | <shaman_king> | hi |
2020-10-03 19:33:25 +0200 | <shaman_king> | i hot a huge fart coming in |
2020-10-03 19:33:37 +0200 | <shaman_king> | a massive one as wel |
2020-10-03 19:35:38 +0200 | ChanServ | +q *!*@185.65.134.170 |
2020-10-03 19:35:48 +0200 | shaman_king | (b94186aa@185.65.134.170) () |
2020-10-03 19:37:10 +0200 | Ariakenom | (~Ariakenom@h-155-4-221-50.NA.cust.bahnhof.se) |
2020-10-03 19:37:15 +0200 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-10-03 19:38:40 +0200 | shatriff | (~vitaliish@78.111.190.146) (Remote host closed the connection) |
2020-10-03 19:40:25 +0200 | machinedgod | (~machinedg@45.78.189.122) |
2020-10-03 19:43:17 +0200 | <tomsmeding> | thanks for telling us |
2020-10-03 19:45:46 +0200 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2020-10-03 19:46:29 +0200 | <koz_> | When ghcup labels something as 'stray', what does it mean? |
2020-10-03 19:46:49 +0200 | coot | (~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-10-03 19:47:16 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
2020-10-03 19:47:30 +0200 | <maerwald> | koz_: you won't be able to install it after you remove it, because the version has been removed from ghcup |
2020-10-03 19:47:39 +0200 | <koz_> | maerwald: Ah, I see. |
2020-10-03 19:48:11 +0200 | <koz_> | I ask because I have 9.0.1-alpha1 seemingly installed. |
2020-10-03 19:48:32 +0200 | <koz_> | But the prerelease is 9.0.0.20200925 according to ghcup. |
2020-10-03 19:48:55 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 19:49:10 +0200 | <maerwald> | yes, pls revome that version |
2020-10-03 19:49:13 +0200 | <maerwald> | and install the other |
2020-10-03 19:49:29 +0200 | <maerwald> | https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73 |
2020-10-03 19:52:14 +0200 | <koz_> | maerwald: Thanks - doing now. |
2020-10-03 19:57:44 +0200 | howdoi | (uid224@gateway/web/irccloud.com/x-olozehqnejtdionh) |
2020-10-03 19:58:39 +0200 | stree | (~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-10-03 19:58:56 +0200 | stree | (~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) |
2020-10-03 19:58:58 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 20:00:02 +0200 | aj2 | (~aj@s91904426.blix.com) () |
2020-10-03 20:01:42 +0200 | jgt | (~jgt@188.239.64.32) |
2020-10-03 20:05:48 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-10-03 20:06:07 +0200 | todda7 | (~torstein@athedsl-4367507.home.otenet.gr) |
2020-10-03 20:06:33 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) |
2020-10-03 20:08:24 +0200 | geekosaur | (42d52102@66.213.33.2) (Ping timeout: 245 seconds) |
2020-10-03 20:11:07 +0200 | blase | (~blase@4e69b241.skybroadband.com) (Ping timeout: 258 seconds) |
2020-10-03 20:11:22 +0200 | elliott_ | (~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2020-10-03 20:11:48 +0200 | Lycurgus | (~niemand@98.4.96.130) (Quit: Exeunt) |
2020-10-03 20:12:24 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
2020-10-03 20:12:55 +0200 | knupfer | (~Thunderbi@i59F7FF93.versanet.de) (Ping timeout: 240 seconds) |
2020-10-03 20:14:58 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 20:16:56 +0200 | <dsal> | My AWS instance only has 2GB of RAM, but every haskell program I'm running uses a TB of it. |
2020-10-03 20:18:26 +0200 | ChanServ | -q *!*@185.65.134.170 |
2020-10-03 20:19:26 +0200 | mav1 | (~mav@p5b02806a.dip0.t-ipconnect.de) |
2020-10-03 20:20:30 +0200 | <Rembane> | dsal: No, it reserves 1TB, it doesn't actually use it. |
2020-10-03 20:20:43 +0200 | <dsal> | I know. It just looks really funny on this 2GB machine. |
2020-10-03 20:21:36 +0200 | elliott__ | (~elliott@2607:fb90:18d4:a679:a49b:9a0:152c:df0d) |
2020-10-03 20:21:54 +0200 | <dsal> | https://usercontent.irccloud-cdn.com/file/KUhHDqj8/memories |
2020-10-03 20:22:09 +0200 | <Rembane> | dsal: Yeah, it's amazing. :) |
2020-10-03 20:24:28 +0200 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 260 seconds) |
2020-10-03 20:26:34 +0200 | todda7 | (~torstein@athedsl-4367507.home.otenet.gr) (Ping timeout: 272 seconds) |
2020-10-03 20:27:55 +0200 | elliott__ | (~elliott@2607:fb90:18d4:a679:a49b:9a0:152c:df0d) (Ping timeout: 240 seconds) |
2020-10-03 20:30:06 +0200 | coot | (~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) |
2020-10-03 20:30:32 +0200 | ryansmccoy | (~ryansmcco@156.96.151.132) (Ping timeout: 260 seconds) |
2020-10-03 20:30:47 +0200 | underlifE | (~underlife@31.170.22.3) |
2020-10-03 20:30:48 +0200 | ryansmccoy | (~ryansmcco@193.37.254.27) |
2020-10-03 20:32:05 +0200 | geekosaur | (42d52102@66.213.33.2) |
2020-10-03 20:32:21 +0200 | Buntspecht | (~user@unaffiliated/siracusa) |
2020-10-03 20:33:29 +0200 | conal | (~conal@66.115.157.135) |
2020-10-03 20:33:30 +0200 | mav1 | (~mav@p5b02806a.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-10-03 20:38:36 +0200 | coot | (~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 272 seconds) |
2020-10-03 20:38:37 +0200 | jneira | (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Quit: Ping timeout (120 seconds)) |
2020-10-03 20:39:24 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
2020-10-03 20:48:38 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) |
2020-10-03 20:51:50 +0200 | ciupakabra | (~andrius@global-5-182.nat-2.net.cam.ac.uk) |
2020-10-03 20:51:52 +0200 | <ciupakabra> | hello |
2020-10-03 20:52:20 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) |
2020-10-03 20:52:44 +0200 | <ciupakabra> | I've heard this is a friendly channel, was wondering why I wasn't able to text in #xmonad? I had identified with Freenode |
2020-10-03 20:53:36 +0200 | HaskellYogi | (~vivekrama@49.207.196.239) (Remote host closed the connection) |
2020-10-03 20:53:54 +0200 | <dsal> | What happens when you try? |
2020-10-03 20:54:00 +0200 | snakemasterflex | (~snakemast@213.100.206.23) |
2020-10-03 20:54:26 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 272 seconds) |
2020-10-03 20:54:26 +0200 | <ciupakabra> | I join successfully, but it says #xmonad Cannot send to nick/channel |
2020-10-03 20:54:27 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@68.235.43.166) |
2020-10-03 20:54:43 +0200 | <ciupakabra> | I can see your message |
2020-10-03 20:55:03 +0200 | jneira | (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) |
2020-10-03 20:56:38 +0200 | Jamalaka | (~Jamalaka@178.162.209.171) |
2020-10-03 20:56:51 +0200 | <ciupakabra> | dsal - any idea?:) |
2020-10-03 20:57:25 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:ed72:300f:cee0:50da) (Ping timeout: 240 seconds) |
2020-10-03 20:57:34 +0200 | shatriff | (~vitaliish@78.111.190.146) (Remote host closed the connection) |
2020-10-03 20:57:50 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 20:58:20 +0200 | shatriff | (~vitaliish@78.111.190.146) (Read error: Connection reset by peer) |
2020-10-03 20:58:30 +0200 | <sm[m]> | Sure you identified successfully ? |
2020-10-03 20:58:33 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 20:58:57 +0200 | <ciupakabra> | got this from the bot NickServ(NickServ@services.)- You are now identified for ciupakabra. |
2020-10-03 20:59:06 +0200 | shatriff | (~vitaliish@78.111.190.146) (Remote host closed the connection) |
2020-10-03 20:59:23 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 20:59:24 +0200 | <dsal> | no weird modes or anything. Were you quieted there? |
2020-10-03 20:59:41 +0200 | <ciupakabra> | I registered just today |
2020-10-03 20:59:54 +0200 | shatriff | (~vitaliish@78.111.190.146) (Read error: Connection reset by peer) |
2020-10-03 21:00:10 +0200 | shatriff | (~vitaliish@78.111.190.146) |
2020-10-03 21:00:41 +0200 | shatriff | (~vitaliish@78.111.190.146) (Read error: Connection reset by peer) |
2020-10-03 21:00:49 +0200 | <ciupakabra> | is it possible to check if I'm quieted there? |
2020-10-03 21:01:30 +0200 | elliott__ | (~elliott@141.156.194.190) |
2020-10-03 21:04:16 +0200 | dhil | (~dhil@11.29.39.217.dyn.plus.net) (Quit: Leaving) |
2020-10-03 21:04:54 +0200 | <geekosaur> | you don't appear to be |
2020-10-03 21:04:56 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-03 21:05:43 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) |
2020-10-03 21:06:00 +0200 | xff0x | (~fox@2001:1a81:528f:c400:e801:3cdf:9d3a:43d8) (Ping timeout: 244 seconds) |
2020-10-03 21:06:06 +0200 | <ciupakabra> | Also, I haven't set up IRC that well, and don't know much about how connecting to servers works. I just did /connect Freenode /nick ciupakabra /msg Freenode identify pw and /join #xmonad |
2020-10-03 21:06:13 +0200 | <ciupakabra> | so maybe the way I identify is wrong |
2020-10-03 21:08:10 +0200 | xff0x | (~fox@141.98.255.143) |
2020-10-03 21:09:09 +0200 | <ciupakabra> | */msg NickServ identify pw |
2020-10-03 21:09:53 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:7533:7086:5452:36ef) |
2020-10-03 21:10:08 +0200 | elliott_ | (~elliott_@141.156.194.190) |
2020-10-03 21:10:25 +0200 | da39a3ee5e6b4b0d | (~textual@n11211935170.netvigator.com) (Ping timeout: 240 seconds) |
2020-10-03 21:12:53 +0200 | knupfer | (~Thunderbi@i59F7FF93.versanet.de) |
2020-10-03 21:12:53 +0200 | machinedgod | (~machinedg@45.78.189.122) (Read error: Connection reset by peer) |
2020-10-03 21:13:24 +0200 | fluturel | (~fluturel@79.119.85.203) |
2020-10-03 21:14:23 +0200 | ixlun | (~matthew@213.205.241.94) |
2020-10-03 21:14:25 +0200 | xff0x | (~fox@141.98.255.143) (Ping timeout: 240 seconds) |
2020-10-03 21:14:29 +0200 | fluturel | (~fluturel@79.119.85.203) (Read error: Connection reset by peer) |
2020-10-03 21:15:49 +0200 | <ixlun> | Hi all, I'm trying to do a fold with a cutoff.. i.e. at some point during the computation of the fold, an intermediate value should be retunrned, even though the entire input list may not have been traversed. |
2020-10-03 21:16:09 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 21:16:15 +0200 | <ixlun> | I'm currently trying: `head . takeWhile cutoff . scanr' |
2020-10-03 21:16:21 +0200 | xff0x | (~fox@2001:1a81:528f:c400:e801:3cdf:9d3a:43d8) |
2020-10-03 21:16:25 +0200 | elliott_ | (~elliott_@141.156.194.190) (Ping timeout: 240 seconds) |
2020-10-03 21:16:32 +0200 | manwolf | (~manwolf12@106.192.162.147) |
2020-10-03 21:16:35 +0200 | elliott__ | (~elliott@141.156.194.190) (Ping timeout: 240 seconds) |
2020-10-03 21:16:53 +0200 | <dsal> | :t scanr |
2020-10-03 21:16:55 +0200 | <lambdabot> | (a -> b -> b) -> b -> [a] -> [b] |
2020-10-03 21:17:17 +0200 | <ixlun> | I'm not sure if that's doing as I expect... if I traceShowId on the value returned by cutoff, it appears to only be evaluated once |
2020-10-03 21:17:58 +0200 | <dsal> | I'm a bit confused as to what you're doing. Can you just use foldr? |
2020-10-03 21:18:23 +0200 | <ixlun> | I can kind of see why it's doing that since I'm calliing `head', but that's only to get the value where the the cutoff predicate became true. |
2020-10-03 21:18:48 +0200 | machinedgod | (~machinedg@45.78.189.122) |
2020-10-03 21:18:57 +0200 | <geekosaur> | it's lazy so the scan would end when you stop consuming values |
2020-10-03 21:18:59 +0200 | <dsal> | If you move that predicate into the argument to foldr, I would expect it to do the right thing. |
2020-10-03 21:21:05 +0200 | <dsal> | Does that function differently from `f i . head` ? |
2020-10-03 21:21:10 +0200 | dsal | needs to have lunch |
2020-10-03 21:21:14 +0200 | <ixlun> | Say I have the list: [a,b,c,d] and I also have a predicate function `cutoff :: x -> Bool'. Part way through the list that preciate could become true, so I want to stop the fold at that point and return the value |
2020-10-03 21:21:51 +0200 | <dsal> | Is the predicate on the input or the output? If it's the output, then it doesn't seem to do anything at all. |
2020-10-03 21:22:13 +0200 | <ixlun> | The predicate is on the output |
2020-10-03 21:22:53 +0200 | <dsal> | But if you're asking for head, so it's a partial function that either returns the first output, or there's no output. |
2020-10-03 21:23:48 +0200 | macrover | (~macrover@ip70-189-231-35.lv.lv.cox.net) |
2020-10-03 21:23:59 +0200 | <ixlun> | Yeah, that's not what I want I guess |
2020-10-03 21:25:37 +0200 | <ixlun> | As an example, suppose I predicate: `x > 10' and then I have: `foldl (+) 0 [2,3,4,5]' I'd want the return value to be: 9 |
2020-10-03 21:26:00 +0200 | <ixlun> | is there such a thing? |
2020-10-03 21:27:06 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 21:28:12 +0200 | <ahf> | jag |
2020-10-03 21:29:51 +0200 | <ixlun> | I suppose what I'm after is a terminating fold |
2020-10-03 21:30:04 +0200 | <dsal> | Well, foldr terminates. |
2020-10-03 21:30:16 +0200 | <dsal> | But it's a bit hard in this exact situation. |
2020-10-03 21:31:09 +0200 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-10-03 21:31:48 +0200 | <dsal> | foldr will stop if you don't look at the output, but your condition depends on that here. |
2020-10-03 21:32:08 +0200 | kernelmethod | (~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) |
2020-10-03 21:32:25 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 21:34:02 +0200 | <dsal> | > last . takeWhile (<10) . scanl (+) 0 $ [2..] -- this is pretty close to what you described. |
2020-10-03 21:34:05 +0200 | <lambdabot> | 9 |
2020-10-03 21:35:27 +0200 | <Zetagon> | wait I'm new here, but does lambdabot evaluate all haskell code? or just pure? |
2020-10-03 21:35:52 +0200 | <Rembane> | > putStrLn "Maybe?" |
2020-10-03 21:35:53 +0200 | <dsal> | It's sandboxed. yahb is less restricted. |
2020-10-03 21:35:55 +0200 | <lambdabot> | <IO ()> |
2020-10-03 21:36:02 +0200 | <dsal> | % putStrLn "hi" |
2020-10-03 21:36:02 +0200 | <yahb> | dsal: hi |
2020-10-03 21:36:05 +0200 | renzhi | (~renzhi@modemcable070.17-177-173.mc.videotron.ca) |
2020-10-03 21:36:29 +0200 | <ixlun> | dsal: Ahhh I get it, last and scanl will cause the evaluation to happen |
2020-10-03 21:36:51 +0200 | <dsal> | That's kind of a weird way to think about it. |
2020-10-03 21:37:18 +0200 | <dsal> | You're not worried about "causing evaluation" because there's no difference between something that didn't happen and something that wasn't observed. |
2020-10-03 21:37:45 +0200 | <dsal> | last is just the thing you were asking for -- it's the boundary value in the produced list, as opposed to head, which is always the same. |
2020-10-03 21:38:16 +0200 | ciupakabra5 | (836f05b6@global-5-182.nat-2.net.cam.ac.uk) |
2020-10-03 21:38:23 +0200 | <ciupakabra5> | mm |
2020-10-03 21:38:58 +0200 | <ciupakabra5> | darn this is weird, so I've connected to Freenode through their website, and it lets me write in #haskell but not in #xmonad |
2020-10-03 21:39:10 +0200 | <Xnuk> | % readFile "." |
2020-10-03 21:39:11 +0200 | <yahb> | Xnuk: *** Exception: .: openFile: inappropriate type (is a directory) |
2020-10-03 21:40:16 +0200 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-10-03 21:40:20 +0200 | <Xnuk> | % readFile "/etc/hostname" |
2020-10-03 21:40:20 +0200 | <yahb> | Xnuk: *** Exception: /etc/hostname: openFile: does not exist (No such file or directory) |
2020-10-03 21:40:49 +0200 | knupfer | (~Thunderbi@i59F7FF93.versanet.de) (Quit: knupfer) |
2020-10-03 21:41:26 +0200 | knupfer | (~Thunderbi@200116b82c95f60035804b3f286051fa.dip.versatel-1u1.de) |
2020-10-03 21:43:16 +0200 | macrover | (~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 265 seconds) |
2020-10-03 21:43:55 +0200 | supercoven | (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2020-10-03 21:44:13 +0200 | ciupakabra | (~andrius@global-5-182.nat-2.net.cam.ac.uk) (Quit: leaving) |
2020-10-03 21:44:39 +0200 | chaosmasttter | (~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de) |
2020-10-03 21:45:41 +0200 | kernelmethod | (~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) (Ping timeout: 265 seconds) |
2020-10-03 21:49:04 +0200 | kernelmethod | (~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) |
2020-10-03 21:49:57 +0200 | ciupakabra5 | (836f05b6@global-5-182.nat-2.net.cam.ac.uk) (Remote host closed the connection) |
2020-10-03 21:50:42 +0200 | kernelmethod | (~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) (Client Quit) |
2020-10-03 21:56:52 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 21:56:52 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 21:56:52 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 21:59:30 +0200 | geekosaur | (42d52102@66.213.33.2) (Remote host closed the connection) |
2020-10-03 22:00:25 +0200 | sand_dull | (~theuser@cpe-67-252-1-237.nycap.res.rr.com) |
2020-10-03 22:00:50 +0200 | carlomagno1 | (~cararell@inet-hqmc02-o.oracle.com) |
2020-10-03 22:02:35 +0200 | carlomagno | (~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 240 seconds) |
2020-10-03 22:03:24 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) (Quit: Leaving) |
2020-10-03 22:03:43 +0200 | conal | (~conal@66.115.157.135) (Quit: Computer has gone to sleep.) |
2020-10-03 22:07:16 +0200 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2020-10-03 22:08:26 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds) |
2020-10-03 22:08:51 +0200 | voyons_osti | (~dan@107-190-41-58.cpe.teksavvy.com) (Quit: Leaving) |
2020-10-03 22:10:38 +0200 | manwolf | (~manwolf12@106.192.162.147) (Quit: Leaving) |
2020-10-03 22:10:56 +0200 | <koz_> | MaybeT IO Database |
2020-10-03 22:11:27 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-03 22:11:37 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-03 22:11:37 +0200 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-03 22:11:37 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-03 22:12:57 +0200 | <MarcelineVQ> | chad EitherT () IO Database vs simp MaybeT IO Database |
2020-10-03 22:13:26 +0200 | <koz_> | MarcelineVQ: ReaderT DatabaseStatus IO Database, for the FP Completionists. |
2020-10-03 22:13:36 +0200 | renzhi | (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 272 seconds) |
2020-10-03 22:13:38 +0200 | <MarcelineVQ> | fp completionists use RIO |
2020-10-03 22:13:48 +0200 | <koz_> | MarcelineVQ: My bad, lol. |
2020-10-03 22:14:01 +0200 | <koz_> | I clearly don't know enough about that world. |
2020-10-03 22:15:23 +0200 | danvet_ | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2020-10-03 22:16:04 +0200 | rprije | (~rprije@203.214.95.251) |
2020-10-03 22:16:54 +0200 | Citrouille | ping |
2020-10-03 22:19:55 +0200 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2020-10-03 22:19:56 +0200 | Super_Feeling | (~Super_Fee@103.92.42.154) |
2020-10-03 22:19:58 +0200 | mirrorbird | (~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) |
2020-10-03 22:20:54 +0200 | <koz_> | Also, shouldn't that be ExceptT () IO Database? |
2020-10-03 22:21:19 +0200 | <Super_Feeling> | new to haskell. what to do lol |
2020-10-03 22:21:20 +0200 | <ddellacosta> | I thought FP completionist was some extremist camp of statically-typed FP programmers until I realized you were talking about the company |
2020-10-03 22:21:35 +0200 | <koz_> | ddellacosta: Yeah, I guess I was a bit vague. |
2020-10-03 22:21:35 +0200 | <ddellacosta> | Super_Feeling: what kind of help are you looking for? |
2020-10-03 22:21:41 +0200 | <dsal> | Super_Feeling: learn it and then write all the code. |
2020-10-03 22:21:45 +0200 | <ddellacosta> | koz_: it gave me a chuckle |
2020-10-03 22:21:51 +0200 | <koz_> | ddellacosta: Happy to help! |
2020-10-03 22:22:01 +0200 | elliott__ | (~elliott@pool-108-18-30-116.washdc.fios.verizon.net) |
2020-10-03 22:22:56 +0200 | <Super_Feeling> | i have no fp experience. I did some elixir, but haskell has some good type checking i reckon |
2020-10-03 22:23:16 +0200 | <koz_> | Super_Feeling: It'd help us help you if you told us what your goals are. |
2020-10-03 22:23:20 +0200 | <ddellacosta> | Super_Feeling: have you gone through any learning materials? Are you looking for learning materials? |
2020-10-03 22:23:25 +0200 | <ddellacosta> | ^ what koz_ said |
2020-10-03 22:23:27 +0200 | <koz_> | Are you looking to write a killer webapp? A compiler? Some other thing? |
2020-10-03 22:23:32 +0200 | conal | (~conal@64.71.133.70) |
2020-10-03 22:23:42 +0200 | <koz_> | Or are you looking to learn how to set up a Haskell environment? How to use some library? Some other thing? |
2020-10-03 22:24:01 +0200 | <koz_> | "I need All Of The Help" is a good way to attract attention, but not really constructive responses. |
2020-10-03 22:24:58 +0200 | <dsal> | I'm trying to get tests running with haskell.nix. I'm not sure anybody knows how to actually use this thing. heh |
2020-10-03 22:25:13 +0200 | <Super_Feeling> | haha I agree. I need something that can convince me on haskell, I've watched a bunch of youtube videos on FP and haskell but I want to know what exactly makes haskell so special, I know the features it offers but there's a philosophy around it and I don't understand it |
2020-10-03 22:25:36 +0200 | <koz_> | I would say this is not a fruitful or useful line of inquiry. |
2020-10-03 22:25:41 +0200 | <dsal> | There are a lot of things that can't be understood without experience. |
2020-10-03 22:25:42 +0200 | <koz_> | We program to solve a problem or do a task. |
2020-10-03 22:25:50 +0200 | <koz_> | What is _your_ problem or task? |
2020-10-03 22:25:55 +0200 | <ddellacosta> | dsal: is that tweag's next-gen how-to-approach-haskell-in-nix thing? |
2020-10-03 22:26:00 +0200 | <koz_> | Given this, we can give some pros (and cons) of Haskell. |
2020-10-03 22:26:13 +0200 | <koz_> | In a vacuum, that discussion is fairly hard to ground in anything reasonable IMHO. |
2020-10-03 22:26:28 +0200 | <ddellacosta> | Super_Feeling: yeah the big catch-22 with Haskell IMHO is that you really have to spend some time with it to appreciate what it provides, and how it's distinct from other languages |
2020-10-03 22:26:36 +0200 | <dsal> | ddellacosta: I'm not actually sure who did it. It's really easy to get building in nix, but it builds all software by default. I *can* build the test suite and run it manually, but I feel like something's missing. |
2020-10-03 22:26:48 +0200 | <Super_Feeling> | Okay, just for the sake of it. Let's pick up a killer webapp |
2020-10-03 22:27:14 +0200 | <ddellacosta> | dsal: gotcha. Yeah I've only done ad-hoc nix stuff with Haskell, above and beyond Gabriel Gonzalez's nix stuff |
2020-10-03 22:27:55 +0200 | <koz_> | Super_Feeling: If you wanna build a killer web app, I would argue Haskell gives you a _lot_ of tools to make this much more reasonable. |
2020-10-03 22:28:07 +0200 | <dsal> | ddellacosta: I'm trying to figure out a good approach. I mostly use nixos because it's the best linux distribution for my needs. I'm hoping I find the magic that makes me like, not rebuild ghc and stuff. |
2020-10-03 22:28:13 +0200 | <Super_Feeling> | yeah i saw ihp, was pretty sweet and comparable to rails/dj. |
2020-10-03 22:28:43 +0200 | <koz_> | I'm not really a web person (others in this channel are way more qualified than me to describe these advantages to you), but I _have_ tried writing some web stuff in Haskell for my Real Job. |
2020-10-03 22:28:58 +0200 | <koz_> | I am _purposefully_ ignorant about the toxic hell that is web. |
2020-10-03 22:29:15 +0200 | <koz_> | I managed, with my Haskell knowledge, to write something inside of a day, that actually worked and wasn't absurdist. |
2020-10-03 22:29:17 +0200 | <ddellacosta> | dsal: I've been wanting to check out bazel after reading this, sounds like it provides very nice behavior even in a nix context, as long as you're willing to slog through the configuration: https://blog.sumtypeofway.com/posts/bazel-haskell-build-system-joy.html |
2020-10-03 22:29:23 +0200 | <Super_Feeling> | haha, even I'm tired of it but that's the area of my expertise lol |
2020-10-03 22:29:42 +0200 | <koz_> | It's an anecdote, and possibly a vague one, but I _very_ much doubt that I could have done that in anything else and ended up with anything halfway sensible. |
2020-10-03 22:29:50 +0200 | <koz_> | Largely, it was thanks to Haskell hand-holding me. |
2020-10-03 22:30:17 +0200 | <Super_Feeling> | Let me take on an experiment and write an interpreter, maybe I'll learn a few new things |
2020-10-03 22:31:08 +0200 | <dsal> | ddellacosta: I use a similar system at work. It's not exactly the build system I'm looking for, but trying to find that place where all the amazing development stuff people say about nix clicks. So far, it's great for user/system, but the development stuff is not amazing. I'm convinced it's because I don't know how to use things, though things are kind of poorly documented. |
2020-10-03 22:31:22 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:7533:7086:5452:36ef) (Ping timeout: 260 seconds) |
2020-10-03 22:31:43 +0200 | <ddellacosta> | dsal: ah I see, yeah I think I got focused on your comment about not re-building GHC |
2020-10-03 22:31:46 +0200 | <dsal> | Super_Feeling: writing parsers and evaluating languages in Haskell is entirely too easy. |
2020-10-03 22:32:01 +0200 | <dsal> | ddellacosta: Yeah, the effort of getting starting with haskell.nix is nearly zero. But each build takes hours. :) |
2020-10-03 22:32:09 +0200 | <dsal> | (well, each time *something* changes) |
2020-10-03 22:32:16 +0200 | <ddellacosta> | what I've found nix really does that I appreciate in terms of spinning up build environments is just being able to configure my Haskell project and the associated dependencies with relative ease |
2020-10-03 22:32:31 +0200 | <ddellacosta> | dsal: okay that in particular it sounds like bazel helps with at least |
2020-10-03 22:32:36 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-03 22:32:37 +0200 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-03 22:32:37 +0200 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-03 22:33:07 +0200 | <dsal> | cachix allegedly helps. I just keep managing to have cache misses. |
2020-10-03 22:33:15 +0200 | <ddellacosta> | ah |
2020-10-03 22:33:18 +0200 | <Super_Feeling> | not for me, i've never written a parser |
2020-10-03 22:33:23 +0200 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
2020-10-03 22:33:54 +0200 | <ddellacosta> | Super_Feeling: I don't know exactly where you're at in your Haskell journey but I'm fond of this tutorial, and I recommend megaparsec to folks: https://markkarpov.com/tutorial/megaparsec.html |
2020-10-03 22:33:57 +0200 | <dsal> | Super_Feeling: Writing parsers is unfortunate pain in most languages. |
2020-10-03 22:34:14 +0200 | <ddellacosta> | gives a good overview of the landscape too |
2020-10-03 22:34:21 +0200 | <Zetagon> | Super_Feeling: https://www.seas.upenn.edu/~cis194/spring13/lectures.html this is a great intro to haskell and concludes in writing a parser |
2020-10-03 22:34:46 +0200 | <ddellacosta> | oh yeah that's good stuff too |
2020-10-03 22:35:04 +0200 | <Super_Feeling> | sounds good. I never expected this irc to be so receptive. thanks guys. |
2020-10-03 22:35:22 +0200 | <ddellacosta> | the link I gave is going to be more useful if you're already somewhat comfortable in Haskell, whereas I'd recommend Zetagon's link if you are starting more "from scratch" |
2020-10-03 22:35:25 +0200 | <ddellacosta> | good luck! |
2020-10-03 22:35:49 +0200 | Super_Feeling | (~Super_Fee@103.92.42.154) (Quit: Leaving) |
2020-10-03 22:37:15 +0200 | <dsal> | ugh, this demo project about how awesome nix is for haskell has a cabal file, four .nix files, a Makefile, and possibly more stuff. The thing I like about stack is that I almost never edit anything but my source. I guess these tools are better for people who work on few projects. |
2020-10-03 22:38:54 +0200 | <dsal> | My github CI stuff broke, so I'm trying a different recipe I found somewhere and it's been running for an hour and a half now (building ghc) |
2020-10-03 22:39:36 +0200 | <ddellacosta> | yikes that sucks |
2020-10-03 22:40:02 +0200 | oisdk | (~oisdk@2001:bb6:3329:d100:d17f:3343:5407:5673) (Quit: oisdk) |
2020-10-03 22:41:05 +0200 | elliott__ | (~elliott@pool-108-18-30-116.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-10-03 22:42:44 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-03 22:42:52 +0200 | <dsal> | I got it all figured out and threw it into a bunch of projects, and then one day they all started failing. It looks like it's jle's setup-stack thing which both doesn't work and is no longer needed. Guess I edit all the yamls. h eh |
2020-10-03 22:43:18 +0200 | ericsagnes | (~ericsagne@2405:6580:0:5100:80c3:1766:ef39:bb4c) |
2020-10-03 22:46:20 +0200 | <ddellacosta> | dsal: good luck 😬 |
2020-10-03 22:46:45 +0200 | conal | (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
2020-10-03 22:47:23 +0200 | avdb | (~avdb@ip-83-134-26-4.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2020-10-03 22:47:30 +0200 | ggole | (~ggole@2001:8003:8119:7200:d175:a532:be60:ae73) (Quit: Leaving) |
2020-10-03 22:47:36 +0200 | sand_dull | (~theuser@cpe-67-252-1-237.nycap.res.rr.com) (Ping timeout: 256 seconds) |
2020-10-03 22:49:25 +0200 | conal | (~conal@66.115.157.94) |
2020-10-03 22:51:33 +0200 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
2020-10-03 22:55:34 +0200 | hiroaki | (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2020-10-03 22:56:16 +0200 | hiroaki | (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) |
2020-10-03 22:57:02 +0200 | knupfer | (~Thunderbi@200116b82c95f60035804b3f286051fa.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-10-03 23:00:01 +0200 | Jamalaka | (~Jamalaka@178.162.209.171) () |
2020-10-03 23:00:28 +0200 | ym555 | (~ym@156.199.76.92) (Ping timeout: 246 seconds) |
2020-10-03 23:00:58 +0200 | hackage | bizzlelude 1.7.0 - A lousy Prelude replacement by a lousy dude https://hackage.haskell.org/package/bizzlelude-1.7.0 (TheBizzle) |
2020-10-03 23:01:40 +0200 | ym555 | (~ym@156.199.199.58) |
2020-10-03 23:02:07 +0200 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-03 23:04:38 +0200 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-03 23:05:44 +0200 | aaaaaa | (~ArthurStr@host-91-90-11-13.soborka.net) |
2020-10-03 23:09:51 +0200 | machinedgod | (~machinedg@45.78.189.122) (Ping timeout: 256 seconds) |
2020-10-03 23:11:38 +0200 | madjestic | (~madjestic@86-88-72-244.fixed.kpn.net) |
2020-10-03 23:11:55 +0200 | ym555 | (~ym@156.199.199.58) (Ping timeout: 240 seconds) |
2020-10-03 23:15:12 +0200 | mitchellsalad | (uid40617@gateway/web/irccloud.com/x-yibkddeecqmzocfr) |
2020-10-03 23:15:51 +0200 | ym555 | (~ym@41.42.203.37) |
2020-10-03 23:16:37 +0200 | <dsal> | Someone needs marketing help. |
2020-10-03 23:17:32 +0200 | <hpc> | yeah, it's hard to differentiate a prelude replacement just by being lousy :P |
2020-10-03 23:17:50 +0200 | <Rembane> | Or some help to handle the pressure you get by releasing something that people rely on |
2020-10-03 23:18:58 +0200 | aarvar | (~foewfoiew@50.35.43.33) |
2020-10-03 23:19:01 +0200 | <hpc> | the funny thing is, that one's actually not half bad |
2020-10-03 23:19:29 +0200 | <hpc> | if it wasn't for a few bits like map = fmap, it wouldn't even be a prelude replacement |
2020-10-03 23:19:49 +0200 | <hpc> | just a ton of reexports |
2020-10-03 23:24:36 +0200 | ashbreeze | (~mark@72-161-254-200.dyn.centurytel.net) (Remote host closed the connection) |
2020-10-03 23:26:42 +0200 | jneira | (501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Ping timeout: 256 seconds) |
2020-10-03 23:27:45 +0200 | _ashbreeze_ | (~mark@72-161-254-200.dyn.centurytel.net) |
2020-10-03 23:29:35 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
2020-10-03 23:30:25 +0200 | chaosmasttter | (~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-10-03 23:33:47 +0200 | thir | (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-03 23:34:54 +0200 | machinedgod | (~machinedg@d67-193-126-196.home3.cgocable.net) |
2020-10-03 23:35:28 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) |
2020-10-03 23:36:23 +0200 | <dsal> | OK. Removing that Setup Stack thing seemed to get all my github CI flowing again. |
2020-10-03 23:36:27 +0200 | nbloomf | (~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Client Quit) |
2020-10-03 23:38:13 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2020-10-03 23:38:13 +0200 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2020-10-03 23:38:13 +0200 | jle` | (~mstksg@unaffiliated/mstksg) |
2020-10-03 23:39:44 +0200 | snakemasterflex | (~snakemast@213.100.206.23) (Ping timeout: 272 seconds) |
2020-10-03 23:43:25 +0200 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds) |
2020-10-03 23:45:16 +0200 | conal | (~conal@66.115.157.94) (Quit: Computer has gone to sleep.) |
2020-10-03 23:51:15 +0200 | hiptobecubic | (~john@unaffiliated/hiptobecubic) |
2020-10-03 23:53:40 +0200 | kers | (~kers@185.204.1.185) |
2020-10-03 23:55:11 +0200 | Damex | (~root@staticline10864.toya.net.pl) |
2020-10-03 23:59:13 +0200 | Damex | (~root@staticline10864.toya.net.pl) (Client Quit) |
2020-10-03 23:59:15 +0200 | <Squarism> | Using classes as a way of make "typed modules". Types/functions dependent on types defined for a particular instance of a class. I see no way of making private member of the "typed module" class. Is there any around trick to that? |