2020/10/03

2020-10-03 00:00:12 +0200John20(~John@82.46.59.122) (Ping timeout: 265 seconds)
2020-10-03 00:01:15 +0200Rudd0(~Rudd0@185.189.115.103)
2020-10-03 00:02:15 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-03 00:02:36 +0200conal(~conal@107.181.166.148) (Quit: Computer has gone to sleep.)
2020-10-03 00:03:29 +0200GyroW(~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
2020-10-03 00:03:39 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 00:03:39 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 00:03:39 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 00:06:25 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-10-03 00:08:47 +0200ericsagnes(~ericsagne@2405:6580:0:5100:4db2:8fe2:8bd1:e1c0)
2020-10-03 00:10:31 +0200darjeeling_(~darjeelin@122.245.210.179) (Ping timeout: 258 seconds)
2020-10-03 00:10:53 +0200darjeeling_(~darjeelin@122.245.210.179)
2020-10-03 00:12:27 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds)
2020-10-03 00:13:00 +0200LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Remote host closed the connection)
2020-10-03 00:16:07 +0200alp(~alp@2a01:e0a:58b:4920:348b:a0fc:3b69:4893) (Ping timeout: 240 seconds)
2020-10-03 00:18:00 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-03 00:20:55 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 240 seconds)
2020-10-03 00:21:03 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 00:21:55 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-10-03 00:22:47 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds)
2020-10-03 00:26:27 +0200tomatopotato(~tomatopot@188.126.89.194)
2020-10-03 00:26:27 +0200hackagefourmolu 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 +0200taurux(~taurux@net-188-216-115-169.cust.vodafonedsl.it) (Ping timeout: 246 seconds)
2020-10-03 00:31:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 00:31:50 +0200taurux(~taurux@net-188-216-43-60.cust.vodafonedsl.it)
2020-10-03 00:35:03 +0200mirrorbird(~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f)
2020-10-03 00:40:28 +0200conal(~conal@107.181.166.148)
2020-10-03 00:42:49 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 00:42:49 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 00:42:49 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-03 00:43:19 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-03 00:45:30 +0200o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-10-03 00:46:02 +0200conal(~conal@107.181.166.148) (Quit: Computer has gone to sleep.)
2020-10-03 00:48:00 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Read error: Connection reset by peer)
2020-10-03 00:48:22 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2020-10-03 00:52:48 +0200conal(~conal@107.181.166.148)
2020-10-03 00:57:04 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-10-03 00:57:31 +0200conal(~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 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 256 seconds)
2020-10-03 01:03:23 +0200livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-10-03 01:10:25 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds)
2020-10-03 01:20:52 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 272 seconds)
2020-10-03 01:27:08 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f016:8714:fb84:1abd)
2020-10-03 01:29:45 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-10-03 01:35:07 +0200coot(~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-03 01:39:02 +0200shafox_(~shafox@106.51.234.111) (Remote host closed the connection)
2020-10-03 01:42:37 +0200jedws(~jedws@121.209.139.222)
2020-10-03 01:46:49 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-03 01:46:56 +0200frdg(47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net)
2020-10-03 01:48:12 +0200spew(uid195861@gateway/web/irccloud.com/x-nmkiijbefgbkmaqa) (Quit: Connection closed for inactivity)
2020-10-03 01:50:09 +0200shatriff(~vitaliish@188.163.30.117)
2020-10-03 01:50:23 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-03 01:50:33 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.7.1)
2020-10-03 01:52:58 +0200hackagepandoc-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 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
2020-10-03 01:55:25 +0200jgt(~jgt@188.239.64.32) (Ping timeout: 240 seconds)
2020-10-03 02:00:01 +0200tomatopotato(~tomatopot@188.126.89.194) ()
2020-10-03 02:00:54 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 02:02:33 +0200aaaaaa(~ArthurStr@host-91-90-11-12.soborka.net)
2020-10-03 02:05:09 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-10-03 02:05:25 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 02:10:41 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-10-03 02:11:18 +0200conal(~conal@107.181.166.148)
2020-10-03 02:14:36 +0200snakemasterflex(~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 +0200shatriff(~vitaliish@188.163.30.117) (Remote host closed the connection)
2020-10-03 02:15:31 +0200aaaaaa(~ArthurStr@host-91-90-11-12.soborka.net) ()
2020-10-03 02:15:41 +0200 <inkbottle> polyvariadic*
2020-10-03 02:17:01 +0200Gurkenglas(~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 +0200snakemasterflex(~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 +0200wroathe(~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 +0200fendor_(~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 +0200GyroW_(~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 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 02:24:50 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 02:24:50 +0200GyroW(~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 +0200fendor(~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 +0200carlomagno(~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 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 256 seconds)
2020-10-03 02:35:35 +0200ahmr88(~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 +0200AlterEgo-(~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 +0200da39a3ee5e6b4b0d(~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 +0200cr3(~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 +0200todda7(~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 +0200cr3(~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 +0200conal(~conal@107.181.166.148) (Quit: Computer has gone to sleep.)
2020-10-03 02:47:35 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-03 02:47:40 +0200jedws(~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 +0200johanna(~johanna@s91904426.blix.com)
2020-10-03 02:59:38 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 02:59:48 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 02:59:48 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 02:59:48 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 03:06:31 +0200berberman(~berberman@2408:8207:2562:2400::a44) (Ping timeout: 272 seconds)
2020-10-03 03:07:17 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.94)
2020-10-03 03:07:43 +0200aarvar(~foewfoiew@50.35.43.33)
2020-10-03 03:18:20 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Read error: Connection reset by peer)
2020-10-03 03:18:25 +0200raehik1(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-10-03 03:20:25 +0200xff0x(~fox@2001:1a81:5254:9a00:e9b2:76ba:9f0:a22b) (Ping timeout: 240 seconds)
2020-10-03 03:21:36 +0200xff0x(~fox@2001:1a81:5254:9a00:acd2:8569:1d0e:86f)
2020-10-03 03:22:20 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-10-03 03:25:56 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 03:29:57 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-10-03 03:30:58 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 260 seconds)
2020-10-03 03:31:42 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 03:33:09 +0200HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
2020-10-03 03:36:27 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 260 seconds)
2020-10-03 03:37:17 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 03:42:03 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 260 seconds)
2020-10-03 03:42:52 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 03:45:45 +0200mav1(~mav@i59F456E0.versanet.de) (Ping timeout: 240 seconds)
2020-10-03 03:46:25 +0200raehik1(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2020-10-03 03:47:55 +0200xff0x(~fox@2001:1a81:5254:9a00:acd2:8569:1d0e:86f) (Ping timeout: 240 seconds)
2020-10-03 03:49:47 +0200xff0x(~fox@2001:1a81:528f:c400:acd2:8569:1d0e:86f)
2020-10-03 03:54:28 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-03 03:54:50 +0200ahmr88(~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 +0200tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2020-10-03 03:59:32 +0200 <cohn> ah
2020-10-03 03:59:47 +0200nnst^(nnst@ip98-184-89-2.mc.at.cox.net)
2020-10-03 03:59:55 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-10-03 04:00:01 +0200nineonine(~nineonine@216.81.48.202) (Remote host closed the connection)
2020-10-03 04:00:35 +0200nineonine(~nineonine@216.81.48.202)
2020-10-03 04:02:30 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 04:02:41 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 04:04:45 +0200nineonine(~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 +0200thir(~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 +0200snakemasterflex(~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 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f016:8714:fb84:1abd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 04:08:45 +0200conal(~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 +0200ericsagnes(~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 +0200falafel(~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 +0200taurux(~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 +0200conal(~conal@107.181.166.148) (Quit: Computer has gone to sleep.)
2020-10-03 04:18:55 +0200elliott__(~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 +0200taurux(~taurux@net-188-152-1-196.cust.vodafonedsl.it)
2020-10-03 04:21:26 +0200nbloomf(~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 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection)
2020-10-03 04:24:18 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-10-03 04:24:29 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-10-03 04:24:30 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Client Quit)
2020-10-03 04:24:44 +0200wroathe(~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 +0200ericsagnes(~ericsagne@2405:6580:0:5100:f17c:daaf:122b:4823)
2020-10-03 04:26:25 +0200da39a3ee5e6b4b0d(~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 +0200justanotheruser(~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 +0200Stanley|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 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 04:33:32 +0200HaskellYogi(~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 +0200Stanley00(~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 +0200elliott__(~elliott@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-10-03 04:37:25 +0200cr3(~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 +0200Amras(~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 +0200theDon(~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 +0200theDon(~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 +0200cr3(~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 +0200cr3(~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 +0200lagothrixGuest95125
2020-10-03 04:53:45 +0200Guest95125(~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 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-10-03 04:54:09 +0200dbmikus(~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 +0200drbean(~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 +0200skiraises 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 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 05:00:01 +0200johanna(~johanna@s91904426.blix.com) ()
2020-10-03 05:00:17 +0200skiremembers `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 +0200conal(~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 +0200pjb(~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 +0200iqubic(~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 +0200ski. o O ( "6. The more you know, the more you know." )
2020-10-03 05:06:53 +0200Lord_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 +0200monochromdraws sword
2020-10-03 05:08:08 +0200zebrag(~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 +0200inkbottle(~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 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds)
2020-10-03 05:09:05 +0200Lord_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 +0200jedws(~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 +0200cohnmust 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 +0200conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-03 05:13:08 +0200bloodstalker(~bloodstal@46.166.187.154) (Read error: Connection reset by peer)
2020-10-03 05:13:38 +0200jedws(~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 +0200Dose8(~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 +0200Dose8(~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 +0200falafel(~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 +0200dbmikus(~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 +0200drbean(~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 +0200drbean(~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 +0200falafel(~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 +0200m0rphism(~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 +0200notzmv(~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 +0200wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 272 seconds)
2020-10-03 05:36:56 +0200polyrain(~polyrain@2001:8003:e501:6901:c105:622a:ea90:4f2d)
2020-10-03 05:38:00 +0200kreyren(~kreyren@fsf/member/kreyren)
2020-10-03 05:38:24 +0200conal_(~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 +0200conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-03 05:46:05 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-10-03 05:46:15 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer)
2020-10-03 05:46:29 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-10-03 05:50:46 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 05:51:05 +0200iqubic(~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 +0200mirrorbird(~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) (Ping timeout: 272 seconds)
2020-10-03 05:55:05 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-10-03 05:55:34 +0200polyrain(~polyrain@2001:8003:e501:6901:c105:622a:ea90:4f2d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 05:57:12 +0200falafel(~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 +0200JLP1(~JLP@185.204.1.185)
2020-10-03 05:58:39 +0200falafel(~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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 06:04:34 +0200kreyren_(~kreyren@fsf/member/kreyren)
2020-10-03 06:04:51 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-03 06:06:46 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 06:06:46 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 06:06:46 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 06:07:09 +0200kreyren(~kreyren@fsf/member/kreyren) (Remote host closed the connection)
2020-10-03 06:07:12 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection)
2020-10-03 06:07:25 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 06:07:33 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-10-03 06:07:34 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds)
2020-10-03 06:08:56 +0200zacts(~zacts@dragora/developer/zacts)
2020-10-03 06:09:10 +0200sand_dull(~theuser@cpe-67-252-1-237.nycap.res.rr.com)
2020-10-03 06:15:58 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 06:15:58 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 06:15:58 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 06:16:31 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 260 seconds)
2020-10-03 06:16:55 +0200ryansmccoy(~ryansmcco@193.37.254.27) (Ping timeout: 240 seconds)
2020-10-03 06:17:18 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-10-03 06:17:29 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db)
2020-10-03 06:20:27 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Ping timeout: 240 seconds)
2020-10-03 06:21:09 +0200HaskellYogi(~vivekrama@49.207.196.239) (Remote host closed the connection)
2020-10-03 06:23:39 +0200pjb(~t@2a01cb04063ec50000323e4acd27c310.ipv6.abo.wanadoo.fr)
2020-10-03 06:24:20 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 06:26:08 +0200HaskellYogi(~vivekrama@49.207.196.239) (Remote host closed the connection)
2020-10-03 06:26:09 +0200Buntspecht(~user@unaffiliated/siracusa) (Read error: Connection reset by peer)
2020-10-03 06:26:23 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 06:33:09 +0200sand_dull(~theuser@cpe-67-252-1-237.nycap.res.rr.com) (Ping timeout: 265 seconds)
2020-10-03 06:35:09 +0200Buntspecht(~user@unaffiliated/siracusa)
2020-10-03 06:37:15 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Read error: Connection reset by peer)
2020-10-03 06:37:20 +0200Saukk(~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 +0200day_(~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 +0200borne(~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 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-10-03 06:45:05 +0200day_day
2020-10-03 06:45:10 +0200 <hololeap> ski: what would that look like in this case?
2020-10-03 06:46:04 +0200borne(~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 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 06:48:04 +0200da39a3ee5e6b4b0d(~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 +0200cole-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 +0200nan`(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 +0200da39a3ee5e6b4b0d(~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 +0200elliott_(~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 +0200raul782(~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 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-03 07:00:04 +0200wroathe(~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 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-10-03 07:01:09 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 07:01:36 +0200Jeanne-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 +0200takuan(~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 +0200Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2020-10-03 07:14:38 +0200p0a(~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 +0200raul782(~raul782@190.237.41.123) (Read error: Connection reset by peer)
2020-10-03 07:16:27 +0200urodna(~urodna@unaffiliated/urodna) (Read error: Connection reset by peer)
2020-10-03 07:16:32 +0200ym555(~ym@156.199.76.92)
2020-10-03 07:16:43 +0200raul782(~raul782@190.237.41.123)
2020-10-03 07:17:14 +0200urodna(~urodna@unaffiliated/urodna)
2020-10-03 07:17:26 +0200JLP1(~JLP@185.204.1.185) (Remote host closed the connection)
2020-10-03 07:17:54 +0200Saukk(~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Remote host closed the connection)
2020-10-03 07:23:46 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 272 seconds)
2020-10-03 07:23:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-03 07:24:16 +0200ryansmccoy(~ryansmcco@193.37.254.27)
2020-10-03 07:26:13 +0200mmohammadi98126(~mmohammad@2.178.147.205)
2020-10-03 07:28:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-10-03 07:28:34 +0200nan`(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 +0200skorgon(~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 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-10-03 07:38:25 +0200CMCDragonkai1(~Thunderbi@124.19.3.250)
2020-10-03 07:38:56 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 07:40:39 +0200CMCDragonkai1(~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 +0200ski. 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 +0200frdg(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 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 258 seconds)
2020-10-03 07:43:38 +0200iqubic(~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 +0200taurux(~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 +0200taurux(~taurux@net-130-25-120-174.cust.vodafonedsl.it)
2020-10-03 07:51:38 +0200polyrain(~polyrain@2001:8003:e501:6901:2cc5:6396:e3d8:6b4b)
2020-10-03 07:51:56 +0200isovector1(~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 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-03 07:56:12 +0200Sanchayan(~Sanchayan@106.200.213.229)
2020-10-03 07:57:41 +0200polyrain(~polyrain@2001:8003:e501:6901:2cc5:6396:e3d8:6b4b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 07:59:52 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798)
2020-10-03 08:00:02 +0200skorgon(~skorgon@217.146.82.202) ()
2020-10-03 08:00:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-10-03 08:03:16 +0200alp(~alp@2a01:e0a:58b:4920:bc50:e5de:f1a9:a1da)
2020-10-03 08:03:57 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 08:03:58 +0200hackagearch-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 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 08:04:32 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-10-03 08:04:58 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2020-10-03 08:05:25 +0200iqubic(~user@2601:602:9500:4870:8a40:95c2:967a:70b4) (Ping timeout: 240 seconds)
2020-10-03 08:08:27 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 08:13:03 +0200alp(~alp@2a01:e0a:58b:4920:bc50:e5de:f1a9:a1da) (Ping timeout: 272 seconds)
2020-10-03 08:17:15 +0200mmohammadi98126(~mmohammad@2.178.147.205) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-10-03 08:22:55 +0200coot(~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl)
2020-10-03 08:25:05 +0200perdent1(~blah@66.115.157.138)
2020-10-03 08:26:17 +0200tzh(~tzh@2601:448:c500:5300::143b) (Quit: zzz)
2020-10-03 08:26:49 +0200Guest40023lep-delete
2020-10-03 08:26:59 +0200perdent(~blah@101.175.84.75) (Ping timeout: 256 seconds)
2020-10-03 08:28:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-03 08:28:55 +0200jle`(~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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 08:31:49 +0200thir(~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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 08:32:12 +0200Sanchayan(~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 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 08:35:41 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 08:35:41 +0200jle`(~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 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer)
2020-10-03 08:37:35 +0200nineonine(~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 +0200heatsink(~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 +0200jle`(~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 +0200heatsink(~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 +0200Stanley|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 +0200HaskellYogi(~vivekrama@49.207.196.239) (Remote host closed the connection)
2020-10-03 08:46:39 +0200HaskellYogi(~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 +0200zaquest(~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 +0200falafel(~falafel@2605:e000:1527:d491:a806:37fa:6971:2798) (Remote host closed the connection)
2020-10-03 08:48:33 +0200todda7(~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 +0200falafel(~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 +0200heatsink(~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 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-03 08:51:21 +0200GyroW(~GyroW@d54c03e98.access.telenet.be)
2020-10-03 08:51:21 +0200GyroW(~GyroW@d54c03e98.access.telenet.be) (Changing host)
2020-10-03 08:51:21 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 08:52:14 +0200zaquest(~notzaques@5.128.210.178)
2020-10-03 08:52:27 +0200Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Read error: Connection reset by peer)
2020-10-03 08:53:12 +0200Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net)
2020-10-03 08:53:28 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 246 seconds)
2020-10-03 08:53:38 +0200Dimlock(~Dimlock@195.140.213.38)
2020-10-03 08:53:48 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-10-03 08:55:22 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 08:55:22 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 08:55:22 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 08:55:27 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 08:55:28 +0200shatriff(~vitaliish@188.163.30.117)
2020-10-03 08:58:47 +0200mav1(~mav@i59F4E15F.versanet.de)
2020-10-03 08:59:22 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 09:00:12 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 256 seconds)
2020-10-03 09:00:34 +0200aenesidemus_(~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net)
2020-10-03 09:00:50 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 09:00:50 +0200xerox__(~xerox@unaffiliated/xerox)
2020-10-03 09:01:09 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-10-03 09:01:51 +0200shatriff_(~vitaliish@188.163.30.117)
2020-10-03 09:02:01 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 265 seconds)
2020-10-03 09:03:25 +0200shatriff(~vitaliish@188.163.30.117) (Ping timeout: 240 seconds)
2020-10-03 09:03:25 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 240 seconds)
2020-10-03 09:03:25 +0200aenesidemus(~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
2020-10-03 09:03:44 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-03 09:04:10 +0200zeta_0(~zeta@h78.22.19.98.dynamic.ip.windstream.net)
2020-10-03 09:04:17 +0200Foritus(~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 +0200Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net)
2020-10-03 09:05:15 +0200fiQ2(~fiQ@mirkk.ninja) (Ping timeout: 244 seconds)
2020-10-03 09:05:27 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-tarhbdjsvwboswmi) (Quit: Connection closed for inactivity)
2020-10-03 09:05:37 +0200fiQ2(~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 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 09:06:24 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 09:06:24 +0200jle`(~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 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-chzvshhyoygxwnpg)
2020-10-03 09:09:40 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 09:10:45 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 240 seconds)
2020-10-03 09:11:25 +0200todda7(~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 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 09:12:56 +0200jle`(~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 +0200chappi(~swaroop@157.49.68.100)
2020-10-03 09:13:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 09:13:56 +0200zeta_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 +0200p0ais 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 +0200howdoi(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 +0200howdoi(uid224@gateway/web/irccloud.com/x-sxnpuddjngolmugc)
2020-10-03 09:17:30 +0200chappi(~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 +0200chappi(~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 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-10-03 09:19:24 +0200LKoen(~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 +0200cole-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 +0200falafel(~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 +0200banjiewen(sid115913@gateway/web/irccloud.com/x-shqhqasrwahmjagb) (Ping timeout: 244 seconds)
2020-10-03 09:21:16 +0200mahene(~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 +0200livvy(~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 +0200constR(uid58205@gateway/web/irccloud.com/x-ljcnzijchvmxodjj) (Ping timeout: 244 seconds)
2020-10-03 09:23:20 +0200banjiewen(sid115913@gateway/web/irccloud.com/x-mooiusydhgfmcvhk)
2020-10-03 09:23:30 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 256 seconds)
2020-10-03 09:24:47 +0200raul782(~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 +0200constR(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 +0200falafel(~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 +0200heatsink(~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 +0200shatriff_(~vitaliish@188.163.30.117) (Remote host closed the connection)
2020-10-03 09:30:55 +0200borne(~fritjof@200116b864ada80031152e74c90dd565.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-10-03 09:31:23 +0200Sheilong(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 +0200constR(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 +0200heatsink(~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 +0200ericsagnes(~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 +0200borne(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 09:40:00 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-03 09:40:14 +0200alp(~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 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 09:40:44 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 09:40:44 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 09:40:44 +0200zebrag(~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-10-03 09:40:48 +0200chaosmasttter(~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de)
2020-10-03 09:41:00 +0200thir(~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 +0200zebrag(~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 +0200shafox(~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 +0200snakemasterflex(~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 +0200siraben(sirabenmat@gateway/shell/matrix.org/x-chzvshhyoygxwnpg) (Ping timeout: 244 seconds)
2020-10-03 09:44:05 +0200heatsink(~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 +0200siraben(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 +0200mahene(~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 244 seconds)
2020-10-03 09:46:45 +0200jle`(~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 +0200ericsagnes(~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 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-10-03 09:53:20 +0200avdb(~avdb@ip-83-134-26-4.dsl.scarlet.be)
2020-10-03 09:53:47 +0200avdb(~avdb@ip-83-134-26-4.dsl.scarlet.be) (Client Quit)
2020-10-03 09:54:01 +0200avdb(~avdb@ip-83-134-26-4.dsl.scarlet.be)
2020-10-03 09:55:25 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 09:55:25 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 09:55:25 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 09:56:53 +0200polyrain(~polyrain@2001:8003:e501:6901:584:470f:1fe3:7660)
2020-10-03 10:00:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 10:01:34 +0200borne(~fritjof@200116b864ada80007933c164a08810c.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-10-03 10:01:49 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-10-03 10:03:11 +0200quaestor(~quaestor@griffith.christophrauch.de) (Remote host closed the connection)
2020-10-03 10:04:51 +0200heatsink(~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 +0200jle`(~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 +0200quaestor(~quaestor@griffith.christophrauch.de)
2020-10-03 10:06:51 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 10:06:51 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 10:06:51 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-03 10:07:04 +0200GyroW(~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 +0200heatsink(~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 +0200jedws(~jedws@121.209.139.222)
2020-10-03 10:12:56 +0200alp(~alp@2a01:e0a:58b:4920:2485:658c:7835:aa11) (Ping timeout: 244 seconds)
2020-10-03 10:13:59 +0200fendor(~fendor@e237-037.eduroam.tuwien.ac.at)
2020-10-03 10:14:19 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 10:14:25 +0200heatsink(~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 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 10:20:17 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-10-03 10:20:22 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 10:21:29 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-10-03 10:23:23 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-03 10:23:28 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 258 seconds)
2020-10-03 10:24:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-03 10:28:00 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 10:29:33 +0200ubert1(~Thunderbi@91.141.2.69.wireless.dyn.drei.com)
2020-10-03 10:29:59 +0200ubert(~Thunderbi@91.141.3.51.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
2020-10-03 10:29:59 +0200ubert1ubert
2020-10-03 10:30:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 10:30:55 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-10-03 10:33:19 +0200raichoo(~raichoo@dslb-188-101-190-053.188.101.pools.vodafone-ip.de)
2020-10-03 10:33:39 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-jxufrnuiocmjeutw) (Ping timeout: 272 seconds)
2020-10-03 10:33:39 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-fkwwfjqdqgntnoof) (Ping timeout: 272 seconds)
2020-10-03 10:33:39 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-sgyzfgzinerqmyki) (Ping timeout: 272 seconds)
2020-10-03 10:33:39 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-xrnysnfynyaztlfh) (Ping timeout: 272 seconds)
2020-10-03 10:33:47 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-elbokqjeheccquxp)
2020-10-03 10:33:49 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-domkjkegafyntpmw)
2020-10-03 10:33:58 +0200jgt(~jgt@188.239.64.32)
2020-10-03 10:34:17 +0200albethere(sid457088@gateway/web/irccloud.com/x-nwltghldiblztrql) (Ping timeout: 272 seconds)
2020-10-03 10:34:17 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 272 seconds)
2020-10-03 10:34:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 10:34:55 +0200J_Arcane(sid119274@gateway/web/irccloud.com/x-txzpuwgzvydklxqg) (Ping timeout: 272 seconds)
2020-10-03 10:34:55 +0200sarahzrf(~sarahzrf_@benzrf.com) (Ping timeout: 272 seconds)
2020-10-03 10:34:55 +0200bitonic(sid61915@gateway/web/irccloud.com/x-qsklantsesnflaev) (Ping timeout: 272 seconds)
2020-10-03 10:35:33 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-xinbndxmgepgligq) (Ping timeout: 272 seconds)
2020-10-03 10:35:42 +0200sarahzrf(~sarahzrf_@sarahzrf.com)
2020-10-03 10:35:54 +0200bitonic(sid61915@gateway/web/irccloud.com/x-gpvtxexabdepunck)
2020-10-03 10:35:56 +0200J_Arcane(sid119274@gateway/web/irccloud.com/x-woiwotxdlskjwxcj)
2020-10-03 10:36:06 +0200albethere(sid457088@gateway/web/irccloud.com/x-cltqfsvqlhbhhdqu)
2020-10-03 10:36:09 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco)
2020-10-03 10:36:11 +0200graingert(sid128301@gateway/web/irccloud.com/x-bllwrkosbcfwbepb) (Ping timeout: 272 seconds)
2020-10-03 10:36:11 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-jmnauejvbgcfpqch)
2020-10-03 10:36:37 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-rxkyoafrogbhiwsr)
2020-10-03 10:36:49 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-wrddzpzdlgkkaqhg) (Ping timeout: 272 seconds)
2020-10-03 10:36:49 +0200nick_h(sid319833@gateway/web/irccloud.com/x-utxytiydddaakjtw) (Ping timeout: 272 seconds)
2020-10-03 10:36:49 +0200liquorice(sid267884@gateway/web/irccloud.com/x-hozrupsabnlghimn) (Ping timeout: 272 seconds)
2020-10-03 10:36:49 +0200idnar(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 +0200liquorice(sid267884@gateway/web/irccloud.com/x-ccvpoduikfqcadak)
2020-10-03 10:37:11 +0200Buntspecht(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-10-03 10:38:05 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-nrfuvoaktiahyvtf) (Ping timeout: 272 seconds)
2020-10-03 10:38:05 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-wqinasijpftynmsg) (Ping timeout: 272 seconds)
2020-10-03 10:38:05 +0200carter(sid14827@gateway/web/irccloud.com/x-ulfazeqjsbkemqzk) (Ping timeout: 272 seconds)
2020-10-03 10:38:16 +0200nick_h(sid319833@gateway/web/irccloud.com/x-srdcrkvbqjanzjcu)
2020-10-03 10:38:31 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-tvunfsqxbrkdapxk)
2020-10-03 10:38:40 +0200idnar(sid12240@gateway/web/irccloud.com/x-bijxdaamgpwwflpv)
2020-10-03 10:38:43 +0200scav(sid309693@gateway/web/irccloud.com/x-wzdeycixeytkuxbp) (Ping timeout: 272 seconds)
2020-10-03 10:38:43 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-jxboonrzncouqkfs) (Ping timeout: 272 seconds)
2020-10-03 10:38:43 +0200dmj`(sid72307@gateway/web/irccloud.com/x-svykqxbmoatuuexu) (Ping timeout: 272 seconds)
2020-10-03 10:38:43 +0200pasukon(sid49097@gateway/web/irccloud.com/x-lvmzgpypnmechtdl) (Ping timeout: 272 seconds)
2020-10-03 10:38:43 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-hgrhllzbreepikwl) (Ping timeout: 272 seconds)
2020-10-03 10:38:52 +0200graingert(sid128301@gateway/web/irccloud.com/x-yubepytnnhokizvs)
2020-10-03 10:38:53 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-aosrgxgicqqcugup)
2020-10-03 10:39:11 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-qmypxhhdelafasaj)
2020-10-03 10:39:21 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-cywbocoitmzxkenh) (Ping timeout: 272 seconds)
2020-10-03 10:39:21 +0200alanz(sid110616@gateway/web/irccloud.com/x-xxwlmdhgwfiixuer) (Ping timeout: 272 seconds)
2020-10-03 10:39:25 +0200taurux(~taurux@net-130-25-120-174.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2020-10-03 10:39:33 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-qvrclkltirfahdkn)
2020-10-03 10:39:45 +0200ptrcmd_ptrcmd
2020-10-03 10:39:50 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-yljnzhytqmeffwcq)
2020-10-03 10:39:59 +0200alehander92(sid331460@gateway/web/irccloud.com/x-nsbojrlduleyvwek) (Ping timeout: 272 seconds)
2020-10-03 10:40:05 +0200carter(sid14827@gateway/web/irccloud.com/x-psnnzawtqaxxdkxa)
2020-10-03 10:40:09 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-kjvfsgpfgehmptub)
2020-10-03 10:40:09 +0200scav(sid309693@gateway/web/irccloud.com/x-dpbxtezevjogbqll)
2020-10-03 10:40:13 +0200pasukon(sid49097@gateway/web/irccloud.com/x-uwiqcjpvkreobzhx)
2020-10-03 10:40:27 +0200taurux(~taurux@net-188-152-1-207.cust.vodafonedsl.it)
2020-10-03 10:40:37 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-nihpzxtqkbdvurne) (Ping timeout: 272 seconds)
2020-10-03 10:40:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 10:40:48 +0200CMCDragonkai1(~Thunderbi@124.19.3.250)
2020-10-03 10:41:15 +0200SrPx(sid108780@gateway/web/irccloud.com/x-okcdajrvcwspmiib) (Ping timeout: 272 seconds)
2020-10-03 10:41:16 +0200dmj`(sid72307@gateway/web/irccloud.com/x-lgfndhesvflaajhx)
2020-10-03 10:41:27 +0200alanz(sid110616@gateway/web/irccloud.com/x-bplzytauuzaqtdwm)
2020-10-03 10:41:53 +0200drbrule(sid395654@gateway/web/irccloud.com/x-cqgwchvakrtjjklm) (Ping timeout: 272 seconds)
2020-10-03 10:41:53 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-exhssvdoqfiaasbd) (Ping timeout: 272 seconds)
2020-10-03 10:42:01 +0200loc(~loc@unaffiliated/loc) (Quit: 73)
2020-10-03 10:42:12 +0200alehander92(sid331460@gateway/web/irccloud.com/x-kyfpobayuduivyro)
2020-10-03 10:42:31 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-qpjmurqekfenxlla) (Ping timeout: 272 seconds)
2020-10-03 10:42:40 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-oxflbpvsmgilmdyy)
2020-10-03 10:42:56 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-baxtgbtrpgxheice)
2020-10-03 10:43:03 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-hgzpvwimdwujzolw)
2020-10-03 10:43:21 +0200drbrule(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 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-ccxungdzitxujqnk)
2020-10-03 10:43:41 +0200SrPx(sid108780@gateway/web/irccloud.com/x-fufsvtgbqbrimkxs)
2020-10-03 10:44:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 10:45:25 +0200CMCDragonkai1(~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 +0200loc(~loc@unaffiliated/loc)
2020-10-03 10:46:38 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-10-03 10:47:44 +0200totallynotnate(~nate@125.160.143.17)
2020-10-03 10:47:48 +0200mahene(~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 +0200Franciman(~francesco@host-212-171-42-250.retail.telecomitalia.it)
2020-10-03 10:48:41 +0200totallynotnate(~nate@125.160.143.17) (Client Quit)
2020-10-03 10:49:26 +0200 <sm[m]> Yes, p0a
2020-10-03 10:50:19 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 10:50:26 +0200polyrain(~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 +0200heatsink(~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 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 10:53:07 +0200phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-10-03 10:53:52 +0200phaul(~phaul@ruby/staff/phaul)
2020-10-03 10:54:20 +0200ddellacosta(~dd@86.106.121.168) (Ping timeout: 256 seconds)
2020-10-03 10:55:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 10:55:08 +0200snakemasterflex(~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 +0200HaskellYogi(~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 +0200darjeeling_(~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 +0200Dimlock(~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 +0200phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-10-03 11:00:57 +0200heatsink(~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 +0200phaul(~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 +0200chaosmasttter(~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 +0200jedws(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 11:06:16 +0200snakemasterflex(~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 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-03 11:08:43 +0200voyons_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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 11:11:11 +0200alp(~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 +0200madjestic(~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 +0200hnOsmium0001(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 +0200heatsink(~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 +0200jgt(~jgt@188.239.64.32) (Ping timeout: 272 seconds)
2020-10-03 11:25:34 +0200thc202(~thc202@unaffiliated/thc202)
2020-10-03 11:26:32 +0200falafel(~falafel@cpe-104-172-194-249.socal.res.rr.com) (Ping timeout: 265 seconds)
2020-10-03 11:31:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 11:33:00 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-03 11:33:54 +0200Tops2(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de)
2020-10-03 11:35:31 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-03 11:35:40 +0200reda(~reda@unaffiliated/reda)
2020-10-03 11:44:35 +0200alp(~alp@2a01:e0a:58b:4920:dde3:d9bf:3a69:9f2f) (Ping timeout: 272 seconds)
2020-10-03 11:46:16 +0200nnst^(nnst@ip98-184-89-2.mc.at.cox.net) ()
2020-10-03 11:46:53 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 11:47:11 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 11:47:11 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 11:47:11 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 11:47:49 +0200tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2020-10-03 11:51:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 11:52:25 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-10-03 11:53:27 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 11:53:55 +0200MTecknology1(~MTecknolo@185.204.1.185)
2020-10-03 11:55:06 +0200darjeeling_(~darjeelin@122.245.210.179)
2020-10-03 11:55:19 +0200lemmih(~lemmih@2406:3003:2072:44:640b:57cc:705a:e759)
2020-10-03 11:55:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 12:00:28 +0200Rudd0(~Rudd0@185.189.115.98)
2020-10-03 12:01:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 12:01:52 +0200nschoe(~quassel@2a01:e0a:3c4:c7b0:35dc:2c34:4b9e:28a4)
2020-10-03 12:04:22 +0200ubert(~Thunderbi@91.141.2.69.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-03 12:06:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 12:06:05 +0200drbean(~drbean@TC210-63-209-81.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-10-03 12:09:12 +0200chappi(~swaroop@157.45.76.253) (Remote host closed the connection)
2020-10-03 12:09:37 +0200finkata(~dpetrov@83.222.188.39)
2020-10-03 12:11:11 +0200chappi(~swaroop@157.49.125.207)
2020-10-03 12:11:53 +0200jwynn6(~jwynn6@050-088-122-078.res.spectrum.com) (Ping timeout: 260 seconds)
2020-10-03 12:11:54 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 12:14:32 +0200patrick2(~tarpk@ool-182dc9b3.dyn.optonline.net) (Quit: WeeChat 2.8)
2020-10-03 12:15:49 +0200patrick1(~tarpk@ool-182dc9b3.dyn.optonline.net)
2020-10-03 12:16:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-03 12:16:20 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-10-03 12:17:59 +0200jgt(~jgt@188.239.64.32)
2020-10-03 12:20:08 +0200Guest_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 +0200todda7(~torstein@athedsl-222199.home.otenet.gr)
2020-10-03 12:22:24 +0200jgt(~jgt@188.239.64.32) (Ping timeout: 260 seconds)
2020-10-03 12:22:28 +0200hackagepontarius-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 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 12:30:21 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 258 seconds)
2020-10-03 12:30:59 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-10-03 12:31:34 +0200howdoi(uid224@gateway/web/irccloud.com/x-sxnpuddjngolmugc) (Quit: Connection closed for inactivity)
2020-10-03 12:32:20 +0200heatsink(~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 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 240 seconds)
2020-10-03 12:36:11 +0200jgt(~jgt@195.225.146.77)
2020-10-03 12:36:49 +0200heatsink(~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 +0200HaskellYogi(~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 +0200heatsink(~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 +0200Sgeo(~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 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 240 seconds)
2020-10-03 12:46:25 +0200todda7(~torstein@athedsl-222199.home.otenet.gr) (Ping timeout: 264 seconds)
2020-10-03 12:46:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-03 12:47:48 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 12:47:52 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 12:47:53 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-10-03 12:50:43 +0200jwynn6(~jwynn6@050-088-122-078.res.spectrum.com)
2020-10-03 12:51:55 +0200HaskellYogi(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 12:53:32 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-10-03 12:53:53 +0200da39a3ee5e6b4b0d(~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 +0200toorevitimirp(~tooreviti@117.182.181.38)
2020-10-03 12:57:13 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-10-03 12:57:23 +0200dzwonki(~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 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 12:59:26 +0200cosimone(~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 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 246 seconds)
2020-10-03 13:02:17 +0200chappi(~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 +0200chappi(~swaroop@157.49.125.207)
2020-10-03 13:02:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 13:03:32 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 256 seconds)
2020-10-03 13:04:33 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 13:05:12 +0200jedws(~jedws@121.209.139.222)
2020-10-03 13:05:46 +0200Lycurgus(~niemand@98.4.96.130)
2020-10-03 13:07:18 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-03 13:08:53 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 13:09:03 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 260 seconds)
2020-10-03 13:10:08 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 13:12:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 13:13:25 +0200rprije(~rprije@203.214.95.251) (Ping timeout: 240 seconds)
2020-10-03 13:14:01 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-10-03 13:14:25 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 240 seconds)
2020-10-03 13:14:32 +0200mpereira(~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d)
2020-10-03 13:14:40 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-03 13:14:48 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 13:15:48 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 13:16:20 +0200Tops21(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de)
2020-10-03 13:17:32 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-03 13:19:23 +0200Tops2(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-10-03 13:22:13 +0200chappi(~swaroop@157.49.125.207) (Remote host closed the connection)
2020-10-03 13:22:51 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 13:23:55 +0200dhil(~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 +0200HaskellYogi(~vivekrama@49.207.196.239) (Ping timeout: 256 seconds)
2020-10-03 13:27:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 13:29:27 +0200ericsagnes(~ericsagne@2405:6580:0:5100:df:e702:bc8c:934c) (Ping timeout: 260 seconds)
2020-10-03 13:31:16 +0200nschoe(~quassel@2a01:e0a:3c4:c7b0:35dc:2c34:4b9e:28a4) (Remote host closed the connection)
2020-10-03 13:32:31 +0200nschoe(~quassel@2a01:e0a:3c4:c7b0:49a5:212c:e2d5:4010)
2020-10-03 13:33:06 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 13:33:55 +0200hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-03 13:34:43 +0200hekkaidekapus_(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 13:41:34 +0200ericsagnes(~ericsagne@2405:6580:0:5100:303e:b42f:c76:fb4a)
2020-10-03 13:42:42 +0200worc3131(~quassel@2a02:c7f:c026:9500:7d0b:65d0:38a4:4786) (Ping timeout: 244 seconds)
2020-10-03 13:43:06 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 13:45:25 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-10-03 13:46:00 +0200fluturel(~fluturel@79.119.85.203)
2020-10-03 13:47:09 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 13:48:12 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-10-03 13:51:25 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 240 seconds)
2020-10-03 13:53:37 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 13:54:21 +0200mpereira(~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Read error: Connection reset by peer)
2020-10-03 13:54:35 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr)
2020-10-03 13:55:32 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-pmnoughzcdhyigas)
2020-10-03 13:57:10 +0200mpereira(~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 +0200MTecknology1(~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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-03 14:03:09 +0200thir(~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 +0200heatsink(~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 +0200mirrorbird(~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 +0200heatsink(~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 +0200vnz(~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 +0200vnz(~vnz@2001:bc8:604:94f::1)
2020-10-03 14:13:21 +0200vnz(~vnz@2001:bc8:604:94f::1) (Changing host)
2020-10-03 14:13:21 +0200vnz(~vnz@unaffiliated/vnz)
2020-10-03 14:13:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 14:13:41 +0200polyrain(~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 +0200Tops2(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de)
2020-10-03 14:15:04 +0200Tops22(~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 +0200Tops23(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de)
2020-10-03 14:17:25 +0200Tops21(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-10-03 14:18:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-10-03 14:18:58 +0200Tops2(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
2020-10-03 14:20:01 +0200Tops22(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
2020-10-03 14:20:42 +0200dzwonki(~dzwonki@188.147.38.8.nat.umts.dynamic.t-mobile.pl) ("WeeChat 2.9")
2020-10-03 14:22:31 +0200mpereira(~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Remote host closed the connection)
2020-10-03 14:23:48 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 14:25:29 +0200Guest_92(021afdb0@2.26.253.176) (Ping timeout: 245 seconds)
2020-10-03 14:25:30 +0200Tops2(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de)
2020-10-03 14:26:02 +0200Tops21(~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 +0200raichoo(~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 +0200snakemasterflex(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 14:27:51 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 2.9)
2020-10-03 14:28:04 +0200Tops23(~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
2020-10-03 14:28:40 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2020-10-03 14:29:22 +0200 <kuribas> tomjaguarpaw: I am running it from vscode
2020-10-03 14:29:27 +0200Zetagon(~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 +0200Tops2(~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 +0200thir(~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 +0200thir(~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 +0200heatsink(~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 +0200snakemasterflex(~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 +0200thir(~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 +0200heatsink(~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 +0200Zetagon(~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 +0200heatsink(~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 +0200heatsink(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 14:54:31 +0200Tops2(~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 +0200raehik1(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-10-03 14:55:38 +0200fluturel(~fluturel@79.119.85.203) (Ping timeout: 258 seconds)
2020-10-03 14:56:05 +0200Zachoz(~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 +0200AlterEgo-(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-03 14:58:30 +0200Tops21(~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 +0200hackagelinear 1.21.3 - Linear Algebra https://hackage.haskell.org/package/linear-1.21.3 (ryanglscott)
2020-10-03 15:02:28 +0200voyons_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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 15:02:55 +0200jgt(~jgt@195.225.146.77) (Ping timeout: 258 seconds)
2020-10-03 15:02:57 +0200snakemasterflex(~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 +0200voyons_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 +0200thir(~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 +0200thir(~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 +0200heatsink(~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 +0200heatsink(~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 +0200thir(~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 +0200John20(~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 +0200Lycurgus(~niemand@98.4.96.130) (Quit: Exeunt)
2020-10-03 15:14:05 +0200HaskellYogi(~vivekrama@49.207.196.239)
2020-10-03 15:14:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 15:15:32 +0200perdent1(~blah@66.115.157.138) (Quit: Leaving.)
2020-10-03 15:17:28 +0200hackageaeson 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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-10-03 15:18:59 +0200alp(~alp@2a01:e0a:58b:4920:7cc6:ff33:2bc5:5932)
2020-10-03 15:21:57 +0200hackagetext-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 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db)
2020-10-03 15:23:41 +0200Amras(~Amras@unaffiliated/amras0000)
2020-10-03 15:24:56 +0200ggole(~ggole@2001:8003:8119:7200:d175:a532:be60:ae73)
2020-10-03 15:26:27 +0200hackageqhs 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 +0200mav1(~mav@i59F4E15F.versanet.de) (Quit: WeeChat 2.9)
2020-10-03 15:30:03 +0200mirrorbird(~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 +0200thir(~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 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer)
2020-10-03 15:37:08 +0200mpereira(~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d)
2020-10-03 15:37:29 +0200Bergle_2(~Bergle_4@101.165.90.119)
2020-10-03 15:37:34 +0200nineonine(~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 +0200blissful(~azuline@unaffiliated/azuline) (Quit: Ping timeout (120 seconds))
2020-10-03 15:38:20 +0200sdx23(~sdx23@unaffiliated/sdx23) (Remote host closed the connection)
2020-10-03 15:38:35 +0200sdx23(~sdx23@unaffiliated/sdx23)
2020-10-03 15:38:43 +0200blissful(~azuline@unaffiliated/azuline)
2020-10-03 15:39:17 +0200benwr___(sid372383@gateway/web/irccloud.com/x-pbrsmtxwohmjfqbb) (Ping timeout: 260 seconds)
2020-10-03 15:39:24 +0200sagax(~sagax_nb@213.138.71.146) (Read error: Connection reset by peer)
2020-10-03 15:40:11 +0200alp(~alp@2a01:e0a:58b:4920:7cc6:ff33:2bc5:5932) (Ping timeout: 272 seconds)
2020-10-03 15:40:18 +0200Bergle_1(~Bergle_4@101.165.90.119) (Ping timeout: 272 seconds)
2020-10-03 15:41:16 +0200benwr___(sid372383@gateway/web/irccloud.com/x-jllzmgdqvwjjsvpo)
2020-10-03 15:42:11 +0200toorevitimirp(~tooreviti@117.182.181.38) (Ping timeout: 240 seconds)
2020-10-03 15:42:29 +0200toorevitimirp(~tooreviti@117.182.181.38)
2020-10-03 15:43:05 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-10-03 15:46:38 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 15:50:13 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-10-03 15:52:40 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 15:53:22 +0200xerox__(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-10-03 15:53:54 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 15:54:25 +0200nbloomf(~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 +0200inkbottle(~inkbottle@aaubervilliers-654-1-101-122.w86-212.abo.wanadoo.fr)
2020-10-03 15:58:40 +0200zebrag(~inkbottle@aaubervilliers-654-1-82-122.w86-212.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-10-03 15:59:39 +0200polyrain_(~polyrain@2001:8003:e501:6901:b02f:4d9a:d965:934e)
2020-10-03 16:01:18 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-10-03 16:02:55 +0200polyrain(~polyrain@2001:8003:e501:6901:ac77:4652:cb2e:48b1) (Ping timeout: 240 seconds)
2020-10-03 16:02:58 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 16:04:36 +0200mpereira(~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Remote host closed the connection)
2020-10-03 16:09:05 +0200rusua_(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 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 16:09:40 +0200rusua_(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 +0200rusua_(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 +0200aarvar(~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 +0200mahene(~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 +0200Rudd0(~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 +0200hackagederive-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 +0200hackagetext-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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 16:24:57 +0200hackageexp-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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-03 16:28:59 +0200p0a(~user@unaffiliated/p0a) (Quit: bye)
2020-10-03 16:29:30 +0200xerox_(~xerox@unaffiliated/xerox)
2020-10-03 16:33:55 +0200xff0x(~fox@2001:1a81:528f:c400:acd2:8569:1d0e:86f) (Ping timeout: 240 seconds)
2020-10-03 16:34:58 +0200xff0x(~fox@2001:1a81:528f:c400:e801:3cdf:9d3a:43d8)
2020-10-03 16:36:49 +0200John20(~John@82.46.59.122) (Ping timeout: 264 seconds)
2020-10-03 16:38:34 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 16:39:50 +0200fendor(~fendor@e237-037.eduroam.tuwien.ac.at) (Remote host closed the connection)
2020-10-03 16:41:08 +0200urodna(~urodna@unaffiliated/urodna)
2020-10-03 16:41:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 16:41:58 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 260 seconds)
2020-10-03 16:42:04 +0200dincio(~dincio@host-87-0-5-208.retail.telecomitalia.it)
2020-10-03 16:45:42 +0200conal(~conal@64.71.133.70)
2020-10-03 16:45:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-03 16:47:25 +0200vicfred_(~vicfred@unaffiliated/vicfred)
2020-10-03 16:49:47 +0200vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds)
2020-10-03 16:50:32 +0200dincio(~dincio@host-87-0-5-208.retail.telecomitalia.it) (Quit: WeeChat 2.9)
2020-10-03 16:51:30 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 16:53:49 +0200petersen(~petersen@redhat/juhp)
2020-10-03 16:55:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-03 16:59:43 +0200polyrain(~polyrain@2001:8003:e501:6901:946c:d009:44fd:e452)
2020-10-03 17:00:01 +0200Zachoz(~Zachoz@89.47.234.28) ()
2020-10-03 17:00:17 +0200polyrain(~polyrain@2001:8003:e501:6901:946c:d009:44fd:e452) (Client Quit)
2020-10-03 17:00:18 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-03 17:01:39 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 17:01:43 +0200conal(~conal@64.71.133.70) (Ping timeout: 246 seconds)
2020-10-03 17:02:08 +0200polyrain_(~polyrain@2001:8003:e501:6901:b02f:4d9a:d965:934e) (Ping timeout: 244 seconds)
2020-10-03 17:02:34 +0200conal(~conal@66.115.157.135)
2020-10-03 17:04:00 +0200fliife850(~FliiFe@59.ip-54-37-158.eu) (Quit: The Lounge - https://thelounge.chat)
2020-10-03 17:05:28 +0200hackageatomic-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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-03 17:07:17 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-10-03 17:07:33 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-03 17:09:22 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 17:09:31 +0200toorevitimirp(~tooreviti@117.182.181.38) (Remote host closed the connection)
2020-10-03 17:09:45 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2020-10-03 17:09:55 +0200Lord_of_Life_Lord_of_Life
2020-10-03 17:11:00 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds)
2020-10-03 17:11:29 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 17:12:39 +0200ericsagnes(~ericsagne@2405:6580:0:5100:303e:b42f:c76:fb4a) (Ping timeout: 272 seconds)
2020-10-03 17:14:47 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-10-03 17:15:40 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 17:18:06 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-aodidipmuxccpmsk)
2020-10-03 17:18:14 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 17:19:01 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 17:19:28 +0200hackagederive-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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 17:20:25 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-03 17:21:35 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-03 17:22:15 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-03 17:23:10 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-03 17:23:15 +0200kuribas(~user@ptr-25vy0i9v0yveatz4g8h.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-10-03 17:23:23 +0200coot(~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-03 17:23:44 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com)
2020-10-03 17:25:02 +0200mav1(~mav@i59F4E15F.versanet.de)
2020-10-03 17:25:03 +0200coot(~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl)
2020-10-03 17:25:08 +0200ericsagnes(~ericsagne@2405:6580:0:5100:ed72:300f:cee0:50da)
2020-10-03 17:25:27 +0200hackagetermonad 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 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 260 seconds)
2020-10-03 17:26:42 +0200ryansmccoy(~ryansmcco@193.37.254.27) (Ping timeout: 272 seconds)
2020-10-03 17:27:45 +0200hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
2020-10-03 17:27:48 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-10-03 17:28:03 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 17:32:11 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-10-03 17:33:52 +0200coot_(~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl)
2020-10-03 17:35:25 +0200coot(~coot@37.30.49.34.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
2020-10-03 17:35:25 +0200coot_coot
2020-10-03 17:37:34 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
2020-10-03 17:38:12 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2020-10-03 17:39:10 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Client Quit)
2020-10-03 17:40:03 +0200ddellacosta(~dd@86.106.121.168)
2020-10-03 17:40:44 +0200bloodstalker(~bloodstal@46.166.187.154)
2020-10-03 17:41:18 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 17:41:36 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 17:41:36 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 17:41:36 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 17:42:37 +0200rembo10(~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.1 - https://znc.in)
2020-10-03 17:43:12 +0200eruditass(uid248673@gateway/web/irccloud.com/x-xlxyyorlrbylocpr) (Ping timeout: 260 seconds)
2020-10-03 17:43:48 +0200d0liver(sid363046@gateway/web/irccloud.com/x-qxqtscijfywlxedk) (Ping timeout: 272 seconds)
2020-10-03 17:43:48 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-orjomwskylmorsde) (Ping timeout: 272 seconds)
2020-10-03 17:43:48 +0200tiru(tiru@gateway/web/irccloud.com/x-gfuwglvcfdlytqib) (Ping timeout: 272 seconds)
2020-10-03 17:43:48 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-evcopvnmbvtlefpi) (Ping timeout: 272 seconds)
2020-10-03 17:43:48 +0200m-renaud(sid333785@gateway/web/irccloud.com/x-kpmgnertdfunxglr) (Ping timeout: 272 seconds)
2020-10-03 17:44:26 +0200ibloom(sid350277@gateway/web/irccloud.com/x-sdzgxluappwccdwo) (Ping timeout: 272 seconds)
2020-10-03 17:44:26 +0200liszt(sid336875@gateway/web/irccloud.com/x-fgkyqbrdplybngov) (Ping timeout: 272 seconds)
2020-10-03 17:44:26 +0200chessai(sid225296@gateway/web/irccloud.com/x-iuoxqvqcfhadrlqz) (Ping timeout: 272 seconds)
2020-10-03 17:44:26 +0200ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-sfijhwdwxlmemapi) (Ping timeout: 272 seconds)
2020-10-03 17:44:26 +0200cvlad-(sid203065@gateway/web/irccloud.com/x-dpssemqomdmrjjbm) (Ping timeout: 272 seconds)
2020-10-03 17:44:42 +0200ocharles(sid30093@musicbrainz/user/ocharles) (Ping timeout: 260 seconds)
2020-10-03 17:44:42 +0200ghuntley(sid16877@gateway/web/irccloud.com/x-luqtfrbjedshlyyp) (Ping timeout: 260 seconds)
2020-10-03 17:45:04 +0200metadave(sid28102@gateway/web/irccloud.com/x-qyjldscaiqukxlnz) (Ping timeout: 272 seconds)
2020-10-03 17:45:04 +0200heyj(sid171370@gateway/web/irccloud.com/x-rhahyjccskeqwknw) (Ping timeout: 272 seconds)
2020-10-03 17:45:04 +0200iphy(sid67735@gateway/web/irccloud.com/x-qiqhfnskjyrqjolo) (Ping timeout: 272 seconds)
2020-10-03 17:45:15 +0200d0liver(sid363046@gateway/web/irccloud.com/x-fdwlevtfjmrlsqqx)
2020-10-03 17:45:18 +0200tiru(tiru@gateway/web/irccloud.com/x-xnxbjyohgerhrzfb)
2020-10-03 17:45:43 +0200bloodsta1ker(~bloodstal@5.115.157.170)
2020-10-03 17:45:45 +0200m-renaud(sid333785@gateway/web/irccloud.com/x-ucmnbonuwpygsdsu)
2020-10-03 17:46:33 +0200eruditass(uid248673@gateway/web/irccloud.com/x-velielirfiuvbxms)
2020-10-03 17:46:55 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-cpmvkyxaeuqbghtu)
2020-10-03 17:46:58 +0200chessai(sid225296@gateway/web/irccloud.com/x-qipjiulksamexnar)
2020-10-03 17:47:00 +0200liszt(sid336875@gateway/web/irccloud.com/x-fgjnvuscjsssyrqb)
2020-10-03 17:47:01 +0200ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-ioikmsgxhbssuurt)
2020-10-03 17:47:01 +0200cvlad-(sid203065@gateway/web/irccloud.com/x-ohozyplbhkhukaip)
2020-10-03 17:47:02 +0200metadave(sid28102@gateway/web/irccloud.com/x-saqsamxyttpjnhcp)
2020-10-03 17:47:04 +0200ghuntley(sid16877@gateway/web/irccloud.com/x-jwzkcgtobgufetir)
2020-10-03 17:47:04 +0200ocharles(sid30093@musicbrainz/user/ocharles)
2020-10-03 17:47:09 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-wghvolpocwqebnnh)
2020-10-03 17:47:35 +0200heyj(sid171370@gateway/web/irccloud.com/x-ihekfkoaipxroskj)
2020-10-03 17:47:37 +0200bloodstalker(~bloodstal@46.166.187.154) (Ping timeout: 264 seconds)
2020-10-03 17:47:37 +0200ibloom(sid350277@gateway/web/irccloud.com/x-ymkdxafhqeygykpz)
2020-10-03 17:47:37 +0200iphy(sid67735@gateway/web/irccloud.com/x-aopftouqgwvymeyk)
2020-10-03 17:47:51 +0200rembo10(~rembo10@wally.codeshy.com)
2020-10-03 17:48:59 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-10-03 17:50:18 +0200bloodsta1ker(~bloodstal@5.115.157.170) (Ping timeout: 265 seconds)
2020-10-03 17:50:44 +0200bloodstalker(~bloodstal@46.166.187.188)
2020-10-03 17:51:47 +0200constR(uid58205@gateway/web/irccloud.com/x-efrkxtuegwrgtzug)
2020-10-03 17:55:05 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2020-10-03 17:55:43 +0200aj2(~aj@s91904426.blix.com)
2020-10-03 17:56:08 +0200mirrorbird(~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f)
2020-10-03 17:59:53 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 256 seconds)
2020-10-03 18:01:08 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 18:01:43 +0200sajith[m](sajithmatr@gateway/shell/matrix.org/x-sazyjhonfaddxfuy) (Quit: Idle for 30+ days)
2020-10-03 18:02:07 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 18:02:15 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-03 18:02:17 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 18:02:17 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 18:02:17 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 18:04:06 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 18:04:45 +0200john_freekon(5cf785e2@92.247.133.226)
2020-10-03 18:11:19 +0200jeffcasavant[m](jeffcasava@gateway/shell/matrix.org/x-hmrlrnakwcyeqokv)
2020-10-03 18:11:25 +0200bonvoyage[m]11(bonvoyageu@gateway/shell/matrix.org/x-xlbynwhsaluwujmn)
2020-10-03 18:12:01 +0200Rudd0(~Rudd0@185.189.115.103)
2020-10-03 18:12:11 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-03 18:12:45 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 18:12:45 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 18:12:45 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 18:13:19 +0200avdb(~avdb@ip-83-134-26-4.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-10-03 18:14:51 +0200shatriff(~vitaliish@78.111.190.146)
2020-10-03 18:15:45 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
2020-10-03 18:16:37 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2020-10-03 18:16:40 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-03 18:18:08 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 18:18:18 +0200GyroW(~GyroW@d54c03e98.access.telenet.be)
2020-10-03 18:18:18 +0200GyroW(~GyroW@d54c03e98.access.telenet.be) (Changing host)
2020-10-03 18:18:18 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 18:18:57 +0200hackagerattletrap 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 +0200mav1(~mav@i59F4E15F.versanet.de) (Quit: WeeChat 2.9)
2020-10-03 18:21:44 +0200john_freekon(5cf785e2@92.247.133.226) ()
2020-10-03 18:25:03 +0200conal(~conal@66.115.157.135) (Quit: Computer has gone to sleep.)
2020-10-03 18:25:23 +0200shatriff(~vitaliish@78.111.190.146) (Ping timeout: 256 seconds)
2020-10-03 18:26:22 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 18:26:22 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 18:26:22 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 18:27:57 +0200rusua_(uid124537@gateway/web/irccloud.com/x-rvpnrgylngbccoaw) (Quit: Connection closed for inactivity)
2020-10-03 18:30:35 +0200Lucas__(~Lucas@187.123.1.224)
2020-10-03 18:31:13 +0200geekosaur(42d52102@66.213.33.2)
2020-10-03 18:31:28 +0200Lucas__(~Lucas@187.123.1.224) (Read error: Connection reset by peer)
2020-10-03 18:32:54 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
2020-10-03 18:33:03 +0200jgt(~jgt@188.239.64.32)
2020-10-03 18:33:49 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds)
2020-10-03 18:34:02 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 18:34:02 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 18:34:02 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-10-03 18:34:55 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2020-10-03 18:38:40 +0200isovector1(~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 +0200cole-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 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-03 18:49:43 +0200shatriff(~vitaliish@78.111.190.146)
2020-10-03 18:49:58 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 18:51:21 +0200shatriff(~vitaliish@78.111.190.146) (Read error: Connection reset by peer)
2020-10-03 18:51:23 +0200Saukk(~Saukk@2001:998:f1:3963:1c59:9bb5:b94c:2)
2020-10-03 18:51:37 +0200shatriff(~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 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-03 18:52:53 +0200Saukk(~Saukk@2001:998:f1:3963:1c59:9bb5:b94c:2) (Remote host closed the connection)
2020-10-03 18:53:01 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 264 seconds)
2020-10-03 18:53:10 +0200vicfred_(~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 +0200bcoppens_bcoppens
2020-10-03 18:56:48 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be) (Changing host)
2020-10-03 18:56:48 +0200bcoppens(~bartcopp@kde/coppens)
2020-10-03 18:57:58 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-10-03 18:59:23 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 18:59:31 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 19:03:46 +0200jwynn6_(~justin@050-088-122-078.res.spectrum.com) (Ping timeout: 265 seconds)
2020-10-03 19:04:02 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-10-03 19:04:49 +0200tzh(~tzh@2601:448:c500:5300::143b)
2020-10-03 19:05:25 +0200jgt(~jgt@188.239.64.32) (Ping timeout: 240 seconds)
2020-10-03 19:08:08 +0200jedws(~jedws@121.209.139.222)
2020-10-03 19:08:25 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-03 19:09:08 +0200oisdk(~oisdk@2001:bb6:3329:d100:d17f:3343:5407:5673)
2020-10-03 19:09:12 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 19:09:12 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 19:09:12 +0200GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-03 19:09:24 +0200GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds)
2020-10-03 19:09:58 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-10-03 19:09:58 +0200Lycurgus(~niemand@98.4.96.130)
2020-10-03 19:12:03 +0200Franciman(~francesco@host-212-171-42-250.retail.telecomitalia.it) (Quit: Leaving)
2020-10-03 19:12:03 +0200gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2020-10-03 19:12:24 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 19:13:08 +0200gentauro(~gentauro@unaffiliated/gentauro)
2020-10-03 19:13:53 +0200kw(ac4a6125@cpe-172-74-97-37.nc.res.rr.com)
2020-10-03 19:13:58 +0200John20(~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 +0200dhil(~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 +0200Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2020-10-03 19:16:47 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 19:17:34 +0200hnOsmium0001(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 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-10-03 19:21:05 +0200John20(~John@82.46.59.122) (Ping timeout: 240 seconds)
2020-10-03 19:21:43 +0200voyons_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 +0200thir(~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 +0200kw(ac4a6125@cpe-172-74-97-37.nc.res.rr.com) (Ping timeout: 245 seconds)
2020-10-03 19:28:08 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 19:28:48 +0200feralSigynSigyn
2020-10-03 19:29:13 +0200knupfer(~Thunderbi@i59F7FF93.versanet.de)
2020-10-03 19:30:32 +0200thir(~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 +0200shaman_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 +0200ChanServ+q *!*@185.65.134.170
2020-10-03 19:35:48 +0200shaman_king(b94186aa@185.65.134.170) ()
2020-10-03 19:37:10 +0200Ariakenom(~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 +0200shatriff(~vitaliish@78.111.190.146) (Remote host closed the connection)
2020-10-03 19:40:25 +0200machinedgod(~machinedg@45.78.189.122)
2020-10-03 19:43:17 +0200 <tomsmeding> thanks for telling us
2020-10-03 19:45:46 +0200dyeplexer(~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 +0200coot(~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-10-03 19:47:16 +0200snakemasterflex(~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 +0200shatriff(~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 +0200howdoi(uid224@gateway/web/irccloud.com/x-olozehqnejtdionh)
2020-10-03 19:58:39 +0200stree(~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-10-03 19:58:56 +0200stree(~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net)
2020-10-03 19:58:58 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 20:00:02 +0200aj2(~aj@s91904426.blix.com) ()
2020-10-03 20:01:42 +0200jgt(~jgt@188.239.64.32)
2020-10-03 20:05:48 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-03 20:06:07 +0200todda7(~torstein@athedsl-4367507.home.otenet.gr)
2020-10-03 20:06:33 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net)
2020-10-03 20:08:24 +0200geekosaur(42d52102@66.213.33.2) (Ping timeout: 245 seconds)
2020-10-03 20:11:07 +0200blase(~blase@4e69b241.skybroadband.com) (Ping timeout: 258 seconds)
2020-10-03 20:11:22 +0200elliott_(~elliott_@pool-108-28-204-229.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-10-03 20:11:48 +0200Lycurgus(~niemand@98.4.96.130) (Quit: Exeunt)
2020-10-03 20:12:24 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-10-03 20:12:55 +0200knupfer(~Thunderbi@i59F7FF93.versanet.de) (Ping timeout: 240 seconds)
2020-10-03 20:14:58 +0200snakemasterflex(~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 +0200ChanServ-q *!*@185.65.134.170
2020-10-03 20:19:26 +0200mav1(~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 +0200elliott__(~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 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 260 seconds)
2020-10-03 20:26:34 +0200todda7(~torstein@athedsl-4367507.home.otenet.gr) (Ping timeout: 272 seconds)
2020-10-03 20:27:55 +0200elliott__(~elliott@2607:fb90:18d4:a679:a49b:9a0:152c:df0d) (Ping timeout: 240 seconds)
2020-10-03 20:30:06 +0200coot(~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl)
2020-10-03 20:30:32 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 260 seconds)
2020-10-03 20:30:47 +0200underlifE(~underlife@31.170.22.3)
2020-10-03 20:30:48 +0200ryansmccoy(~ryansmcco@193.37.254.27)
2020-10-03 20:32:05 +0200geekosaur(42d52102@66.213.33.2)
2020-10-03 20:32:21 +0200Buntspecht(~user@unaffiliated/siracusa)
2020-10-03 20:33:29 +0200conal(~conal@66.115.157.135)
2020-10-03 20:33:30 +0200mav1(~mav@p5b02806a.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-03 20:38:36 +0200coot(~coot@37.30.60.84.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 272 seconds)
2020-10-03 20:38:37 +0200jneira(501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Quit: Ping timeout (120 seconds))
2020-10-03 20:39:24 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-10-03 20:48:38 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-10-03 20:51:50 +0200ciupakabra(~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 +0200avdb(~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 +0200HaskellYogi(~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 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-10-03 20:54:26 +0200madjestic(~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 +0200Jeanne-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 +0200jneira(501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206)
2020-10-03 20:56:38 +0200Jamalaka(~Jamalaka@178.162.209.171)
2020-10-03 20:56:51 +0200 <ciupakabra> dsal - any idea?:)
2020-10-03 20:57:25 +0200ericsagnes(~ericsagne@2405:6580:0:5100:ed72:300f:cee0:50da) (Ping timeout: 240 seconds)
2020-10-03 20:57:34 +0200shatriff(~vitaliish@78.111.190.146) (Remote host closed the connection)
2020-10-03 20:57:50 +0200shatriff(~vitaliish@78.111.190.146)
2020-10-03 20:58:20 +0200shatriff(~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 +0200shatriff(~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 +0200shatriff(~vitaliish@78.111.190.146) (Remote host closed the connection)
2020-10-03 20:59:23 +0200shatriff(~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 +0200shatriff(~vitaliish@78.111.190.146) (Read error: Connection reset by peer)
2020-10-03 21:00:10 +0200shatriff(~vitaliish@78.111.190.146)
2020-10-03 21:00:41 +0200shatriff(~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 +0200elliott__(~elliott@141.156.194.190)
2020-10-03 21:04:16 +0200dhil(~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 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-03 21:05:43 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-10-03 21:06:00 +0200xff0x(~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 +0200xff0x(~fox@141.98.255.143)
2020-10-03 21:09:09 +0200 <ciupakabra> */msg NickServ identify pw
2020-10-03 21:09:53 +0200ericsagnes(~ericsagne@2405:6580:0:5100:7533:7086:5452:36ef)
2020-10-03 21:10:08 +0200elliott_(~elliott_@141.156.194.190)
2020-10-03 21:10:25 +0200da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Ping timeout: 240 seconds)
2020-10-03 21:12:53 +0200knupfer(~Thunderbi@i59F7FF93.versanet.de)
2020-10-03 21:12:53 +0200machinedgod(~machinedg@45.78.189.122) (Read error: Connection reset by peer)
2020-10-03 21:13:24 +0200fluturel(~fluturel@79.119.85.203)
2020-10-03 21:14:23 +0200ixlun(~matthew@213.205.241.94)
2020-10-03 21:14:25 +0200xff0x(~fox@141.98.255.143) (Ping timeout: 240 seconds)
2020-10-03 21:14:29 +0200fluturel(~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 +0200heatsink(~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 +0200xff0x(~fox@2001:1a81:528f:c400:e801:3cdf:9d3a:43d8)
2020-10-03 21:16:25 +0200elliott_(~elliott_@141.156.194.190) (Ping timeout: 240 seconds)
2020-10-03 21:16:32 +0200manwolf(~manwolf12@106.192.162.147)
2020-10-03 21:16:35 +0200elliott__(~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 +0200machinedgod(~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 +0200dsalneeds 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 +0200macrover(~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 +0200thir(~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 +0200Sgeo(~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 +0200kernelmethod(~kernelmet@c-73-181-114-129.hsd1.co.comcast.net)
2020-10-03 21:32:25 +0200thir(~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 +0200renzhi(~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 +0200ciupakabra5(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 +0200vicfred(~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 +0200knupfer(~Thunderbi@i59F7FF93.versanet.de) (Quit: knupfer)
2020-10-03 21:41:26 +0200knupfer(~Thunderbi@200116b82c95f60035804b3f286051fa.dip.versatel-1u1.de)
2020-10-03 21:43:16 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 265 seconds)
2020-10-03 21:43:55 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 240 seconds)
2020-10-03 21:44:13 +0200ciupakabra(~andrius@global-5-182.nat-2.net.cam.ac.uk) (Quit: leaving)
2020-10-03 21:44:39 +0200chaosmasttter(~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de)
2020-10-03 21:45:41 +0200kernelmethod(~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) (Ping timeout: 265 seconds)
2020-10-03 21:49:04 +0200kernelmethod(~kernelmet@c-73-181-114-129.hsd1.co.comcast.net)
2020-10-03 21:49:57 +0200ciupakabra5(836f05b6@global-5-182.nat-2.net.cam.ac.uk) (Remote host closed the connection)
2020-10-03 21:50:42 +0200kernelmethod(~kernelmet@c-73-181-114-129.hsd1.co.comcast.net) (Client Quit)
2020-10-03 21:56:52 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 21:56:52 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 21:56:52 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 21:59:30 +0200geekosaur(42d52102@66.213.33.2) (Remote host closed the connection)
2020-10-03 22:00:25 +0200sand_dull(~theuser@cpe-67-252-1-237.nycap.res.rr.com)
2020-10-03 22:00:50 +0200carlomagno1(~cararell@inet-hqmc02-o.oracle.com)
2020-10-03 22:02:35 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 240 seconds)
2020-10-03 22:03:24 +0200mirrorbird(~psutcliff@2a00:801:42a:82eb:6edc:4c78:a574:2a8f) (Quit: Leaving)
2020-10-03 22:03:43 +0200conal(~conal@66.115.157.135) (Quit: Computer has gone to sleep.)
2020-10-03 22:07:16 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-10-03 22:08:26 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds)
2020-10-03 22:08:51 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Quit: Leaving)
2020-10-03 22:10:38 +0200manwolf(~manwolf12@106.192.162.147) (Quit: Leaving)
2020-10-03 22:10:56 +0200 <koz_> MaybeT IO Database
2020-10-03 22:11:27 +0200GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-03 22:11:37 +0200GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-03 22:11:37 +0200GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-03 22:11:37 +0200GyroW(~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 +0200renzhi(~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 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-10-03 22:16:04 +0200rprije(~rprije@203.214.95.251)
2020-10-03 22:16:54 +0200Citrouilleping
2020-10-03 22:19:55 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-10-03 22:19:56 +0200Super_Feeling(~Super_Fee@103.92.42.154)
2020-10-03 22:19:58 +0200mirrorbird(~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 +0200elliott__(~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 +0200conal(~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 +0200ericsagnes(~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 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-03 22:32:37 +0200GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-03 22:32:37 +0200GyroW_(~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 +0200GyroW(~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 +0200Super_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 +0200oisdk(~oisdk@2001:bb6:3329:d100:d17f:3343:5407:5673) (Quit: oisdk)
2020-10-03 22:41:05 +0200elliott__(~elliott@pool-108-18-30-116.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-03 22:42:44 +0200heatsink(~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 +0200ericsagnes(~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 +0200conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2020-10-03 22:47:23 +0200avdb(~avdb@ip-83-134-26-4.dsl.scarlet.be) (Ping timeout: 240 seconds)
2020-10-03 22:47:30 +0200ggole(~ggole@2001:8003:8119:7200:d175:a532:be60:ae73) (Quit: Leaving)
2020-10-03 22:47:36 +0200sand_dull(~theuser@cpe-67-252-1-237.nycap.res.rr.com) (Ping timeout: 256 seconds)
2020-10-03 22:49:25 +0200conal(~conal@66.115.157.94)
2020-10-03 22:51:33 +0200Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
2020-10-03 22:55:34 +0200hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-10-03 22:56:16 +0200hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
2020-10-03 22:57:02 +0200knupfer(~Thunderbi@200116b82c95f60035804b3f286051fa.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-10-03 23:00:01 +0200Jamalaka(~Jamalaka@178.162.209.171) ()
2020-10-03 23:00:28 +0200ym555(~ym@156.199.76.92) (Ping timeout: 246 seconds)
2020-10-03 23:00:58 +0200hackagebizzlelude 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 +0200ym555(~ym@156.199.199.58)
2020-10-03 23:02:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-03 23:04:38 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-03 23:05:44 +0200aaaaaa(~ArthurStr@host-91-90-11-13.soborka.net)
2020-10-03 23:09:51 +0200machinedgod(~machinedg@45.78.189.122) (Ping timeout: 256 seconds)
2020-10-03 23:11:38 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-10-03 23:11:55 +0200ym555(~ym@156.199.199.58) (Ping timeout: 240 seconds)
2020-10-03 23:15:12 +0200mitchellsalad(uid40617@gateway/web/irccloud.com/x-yibkddeecqmzocfr)
2020-10-03 23:15:51 +0200ym555(~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 +0200aarvar(~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 +0200ashbreeze(~mark@72-161-254-200.dyn.centurytel.net) (Remote host closed the connection)
2020-10-03 23:26:42 +0200jneira(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 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de)
2020-10-03 23:30:25 +0200chaosmasttter(~chaosmast@p200300c4a711ea01f472f055cac452c2.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-03 23:33:47 +0200thir(~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-03 23:34:54 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-10-03 23:35:28 +0200nbloomf(~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 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:2c94:3287:2d16:a9db) (Client Quit)
2020-10-03 23:38:13 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-10-03 23:38:13 +0200jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-10-03 23:38:13 +0200jle`(~mstksg@unaffiliated/mstksg)
2020-10-03 23:39:44 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 272 seconds)
2020-10-03 23:43:25 +0200jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds)
2020-10-03 23:45:16 +0200conal(~conal@66.115.157.94) (Quit: Computer has gone to sleep.)
2020-10-03 23:51:15 +0200hiptobecubic(~john@unaffiliated/hiptobecubic)
2020-10-03 23:53:40 +0200kers(~kers@185.204.1.185)
2020-10-03 23:55:11 +0200Damex(~root@staticline10864.toya.net.pl)
2020-10-03 23:59:13 +0200Damex(~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?