Home freenode/#haskell: Logs Calendar

Logs on 2020-12-22 (freenode/#haskell)

00:00:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection)
00:00:21 Vulfe joins (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26)
00:01:59 <fuzzypixelz> I I want to map elem on a list of elements and lists, how can I do that?
00:02:16 <fuzzypixelz> elem (1, [1, 2, 3]) doesn't work for example
00:02:29 <fuzzypixelz> so I can't map elem on a list of tuples
00:04:41 × cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Ping timeout: 268 seconds)
00:04:49 <fuzzypixelz> here's what I did: elem' (e, l) = elem e l
00:04:55 <fuzzypixelz> and just used elem1
00:08:14 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 256 seconds)
00:08:58 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds)
00:11:42 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection)
00:12:38 × Genome quits (~genome@cpc153687-nrwh14-2-0-cust19.4-4.cable.virginm.net) (Quit: Leaving)
00:13:14 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
00:14:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
00:15:34 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
00:15:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:18:22 thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de)
00:21:54 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 265 seconds)
00:22:53 × thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
00:24:45 <hseg> any way to optimize this? http://ix.io/2J4J ds and terms are heavy functions that i don't think i can optimize much
00:25:04 <hseg> (restricted by combinatorial explosion)
00:25:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:26:50 <hseg> especially should be able to share one (ds m) call over the entire needle call
00:28:53 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
00:29:48 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
00:31:27 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection)
00:31:34 Vulfe joins (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26)
00:32:09 <hseg> oh wait. ds m :: [(a,Int)] is injective, so can replace the sum by a lookup
00:32:53 <hseg> still needs a shared ds call though
00:33:14 × hiroaki quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
00:35:17 × shenyi quits (uid216035@gateway/web/irccloud.com/x-uvfrbzkrqfbnyxjp) (Quit: Connection closed for inactivity)
00:35:31 irc_user joins (uid423822@gateway/web/irccloud.com/x-zpqgavcurwhmhgkg)
00:37:57 <monochrom> needle m l = let dsm = ds m in [(t, f * occs t dsm) | ...]
00:38:09 <monochrom> occs t dsm = sum . map snd $ filter ((== t) . fst) dsm
00:40:41 <hseg> sure, though as i realized 5m ago, can replace the sum . filter by just fromMaybe 0 . lookup
00:41:19 <hseg> and am not seeing *that* drastic of an improvement by floating the (ds m) call out, for some reason
00:41:57 <hseg> ... indeed, am doing a poor man's inner join of maps on lists
00:42:04 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
00:45:54 <hseg> so should rather refactor ds, terms into Map [Int] Int and replace needle by unionsWith (+) ([0..m] <&> intersectionWith (*) (ds m) . (`terms` l))
00:46:03 <dsal> fuzzypixelz: the tuple is possibly confusing you.
00:46:14 <xsperry> fuzzypixelz, what's your input and desired output?
00:46:15 <dsal> It's not clear what you mean by "map elem"
00:46:25 × wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 264 seconds)
00:46:37 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
00:47:12 <dsal> > uncurry elem <$> [(1, [1, 2, 3]), (4, [1, 2, 3])] -- fuzzypixelz do you mean something like this?
00:47:14 <lambdabot> [True,False]
00:48:09 <dsal> :t uncurry
00:48:11 <lambdabot> (a -> b -> c) -> (a, b) -> c
00:49:42 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-90.cust.tzulo.com)
00:51:16 × Wamanuz quits (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Ping timeout: 240 seconds)
00:52:08 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
00:56:01 delYsid joins (~user@unaffiliated/delysid)
00:56:34 nitrix is now known as nitrix-mas
00:58:23 <delYsid> Given two rose trees a and b where b is a subset of a, is there a simple way to impose the ordering of b onto a?
00:59:18 <delYsid> IOW all the nodes present in b should be put first in a, in the same order they occur in b.
00:59:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:00:55 × arybczak quits (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c) (Quit: Konversation terminated!)
01:01:42 × MVQq quits (~anja@198.254.202.72) (Quit: q)
01:02:24 MarcelineVQ joins (~anja@198.254.202.72)
01:03:10 <fuzzypixelz> dsal: yes that's exactly what I need, thank you
01:03:57 sgibber2018 joins (~arch-gibb@208.85.237.137)
01:05:13 revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
01:07:14 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
01:10:52 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 246 seconds)
01:10:59 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-exdojaqirdkfmvpz) (Quit: Connection closed for inactivity)
01:11:00 kam1 joins (~kam1@24.231.108.143)
01:11:02 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
01:11:04 × sgibber2018 quits (~arch-gibb@208.85.237.137) (Quit: WeeChat 3.0)
01:11:37 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
01:11:39 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:11:54 Tario joins (~Tario@201.192.165.173)
01:14:08 × iqubic quits (~user@2601:602:9500:4870:55c5:a9fe:a753:58ff) (Ping timeout: 258 seconds)
01:14:20 Sheilong joins (uid293653@gateway/web/irccloud.com/x-duufhsmgfmkrtnrr)
01:14:26 sgibber2018 joins (~arch-gibb@208.85.237.137)
01:15:16 <xsperry> <$> is just fmap btw, which is map for lists
01:15:23 iqubic joins (~user@c-67-171-38-72.hsd1.wa.comcast.net)
01:16:11 × sgibber2018 quits (~arch-gibb@208.85.237.137) (Client Quit)
01:16:28 sgibber2018 joins (~arch-gibb@208.85.237.137)
01:16:49 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds)
01:16:57 <fuzzypixelz> xsperry: oh I see
01:17:23 <fuzzypixelz> my (haskell) solution for AOC day 6: https://bpa.st/4QIA
01:17:37 <fuzzypixelz> Any feedback is (very) appreciated
01:17:39 <fuzzypixelz> :P
01:18:37 <fuzzypixelz> uhh, I mean, please give me feedback/comments/remarks .. anything
01:21:19 MOSCOS joins (~MOSCOS@152.32.70.55)
01:24:25 × Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds)
01:24:51 Mikagami joins (~MOSCOS@122.54.107.175)
01:26:25 × MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
01:28:00 guest1222 joins (~user@49.5.6.87)
01:28:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:28:44 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
01:29:17 Kaiepi joins (~Kaiepi@47.54.252.148)
01:30:16 MOSCOS joins (~MOSCOS@152.32.70.55)
01:30:58 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
01:31:52 × jumper149 quits (~jumper149@ip4d1622a9.dynamic.kabel-deutschland.de) (Quit: WeeChat 2.9)
01:32:16 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
01:32:58 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
01:32:58 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
01:32:58 dibblego joins (~dibblego@haskell/developer/dibblego)
01:33:25 × Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds)
01:33:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
01:33:51 Mikagami joins (~MOSCOS@122.54.107.175)
01:34:20 fuzzypixelz_ joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
01:34:27 <hseg> hrm. is there some way of altering the key of a map for a single query?
01:35:25 × MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
01:35:36 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds)
01:35:39 fuzzypixelz_ is now known as fuzzypixelz
01:36:47 <hseg> otherwise, i'm forced to compute the key-dependent values before alteration, adding unnecessary strictness
01:40:05 <hseg> hrm. and that breaks all of my abstraction boundaries
01:40:50 <hseg> unfortunately, maps are not key-value pairs, so this proposed alteration is too expensive to be reasonable
01:41:04 <ski> > ST.Lazy.runST (do ref <- STRef.Lazy.newSTRef []; let loop n = do loop (n+1); STRef.Lazy.modifySTRef ref (n:) in do loop 0; STRef.Lazy.readSTRef ref)
01:41:10 <lambdabot> mueval-core: Time limit exceeded
01:41:33 <ski> monochrom : was one of your `ST.Lazy' examples something like that ^ ?
01:44:11 <monochrom> Yes. Head/left recursion works.
01:44:50 cn8 joins (~8cn@2603-8081-8f01-4e00-0c24-30c9-e128-1797.res6.spectrum.com)
01:45:01 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
01:46:25 <hseg> ok, converting to maps made everything *much* faster
01:46:31 <ski> so i wonder why that wasn't productive
01:48:04 × columbarius quits (~columbari@mue-88-130-54-123.dsl.tropolys.de) (Ping timeout: 260 seconds)
01:48:08 wei2912 joins (~wei2912@unaffiliated/wei2912)
01:49:50 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
01:50:08 columbarius joins (~columbari@i5E86B3C9.versanet.de)
01:50:54 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:51:02 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
01:51:21 Kaiepi joins (~Kaiepi@47.54.252.148)
01:51:46 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
01:52:51 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
01:53:26 × hseg quits (~gesh@IGLD-84-228-238-87.inter.net.il) (Quit: WeeChat 3.0)
01:55:34 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
01:55:34 Lord_of_Life_ is now known as Lord_of_Life
01:58:16 <koz_> ski: It spent too much time procastinating on social media. :P
01:58:27 <fuzzypixelz> just dropping this https://bpa.st/4QIA again (my aoc day 6 solution), if you have anything to say about it please do
01:59:15 × xcmw quits (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:01:40 xcmw joins (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com)
02:01:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:01:52 christo joins (~chris@81.96.113.213)
02:06:13 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds)
02:06:51 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds)
02:07:29 hackage yesod-form-multi 1.7.0 - Multi-input form handling for Yesod Web Framework https://hackage.haskell.org/package/yesod-form-multi-1.7.0 (Burtannia)
02:10:09 eacameron joins (uid256985@gateway/web/irccloud.com/x-vxdrpcotoqmkhsji)
02:12:32 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
02:15:35 ADG1089_ joins (~adg1089@122.163.166.13)
02:16:57 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 260 seconds)
02:19:26 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
02:19:29 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
02:19:49 × ADG1089_ quits (~adg1089@122.163.166.13) (Ping timeout: 246 seconds)
02:19:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:24:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
02:25:02 ADG1089_ joins (~adg1089@122.163.166.13)
02:25:23 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
02:27:34 × jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 256 seconds)
02:29:25 <delYsid> pathTree :: Tree a -> Tree (NonEmpty a)
02:29:30 <delYsid> pathTree = foldTree $ \a -> Node (pure a) . (fmap . fmap) (cons a)
02:29:42 <guest1222> is rio a good library to use?
02:29:44 <delYsid> Thats about the most useful function I have ever written/discovered.
02:29:46 <guest1222> https://hackage.haskell.org/package/rio
02:30:13 × ADG1089_ quits (~adg1089@122.163.166.13) (Ping timeout: 268 seconds)
02:30:27 <glguy> guest1222, it's unmaintained build-depends would make it a mess to rely on
02:30:37 <guest1222> glguy: ...
02:32:22 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
02:32:58 christo joins (~chris@81.96.113.213)
02:36:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
02:37:19 × christo quits (~chris@81.96.113.213) (Ping timeout: 246 seconds)
02:39:51 × delYsid quits (~user@unaffiliated/delysid) (Remote host closed the connection)
02:44:36 christo joins (~chris@81.96.113.213)
02:45:28 <guest1222> glguy: what runParser is used to in parsec?
02:45:44 <guest1222> there's State monad in runParser?
02:49:00 × kam1 quits (~kam1@24.231.108.143) (Read error: Connection reset by peer)
02:49:32 drbean joins (~drbean@TC210-63-209-143.static.apol.com.tw)
02:50:13 olligobber joins (~olligobbe@unaffiliated/olligobber)
02:51:25 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:51:31 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
02:54:21 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds)
02:55:11 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
02:56:13 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
02:57:03 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
02:57:19 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
02:57:24 Kaeipi joins (~Kaiepi@47.54.252.148)
02:58:34 kam1 joins (~kam1@24.231.108.143)
02:59:33 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds)
03:00:16 × drbean quits (~drbean@TC210-63-209-143.static.apol.com.tw) (Ping timeout: 240 seconds)
03:00:20 drbean_ joins (~drbean@TC210-63-209-167.static.apol.com.tw)
03:00:57 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:01:05 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
03:01:33 mastarija joins (~mastarija@93-136-154-213.adsl.net.t-com.hr)
03:01:51 × xff0x_ quits (~fox@2001:1a81:537d:6200:a74c:d71f:eb2e:2908) (Ping timeout: 258 seconds)
03:03:44 xff0x_ joins (~fox@2001:1a81:53b4:600:dcc7:7fd8:9f40:3657)
03:05:41 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds)
03:07:50 × drbean_ quits (~drbean@TC210-63-209-167.static.apol.com.tw) (Ping timeout: 268 seconds)
03:07:52 <glguy> guest1222, I don't understand the question
03:08:14 <glguy> You're asking about: runParser :: Stream s Identity t => Parsec s u a -> u -> SourceName -> s -> Either ParseError a ?
03:09:46 jedws joins (~jedws@121.209.189.201)
03:11:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:11:24 drbean joins (~drbean@TC210-63-209-160.static.apol.com.tw)
03:11:26 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds)
03:11:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
03:12:21 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:12:39 <glguy> and parsec provides built-in support for tracking some state, along the path of a successful parse
03:12:45 jespada joins (~jespada@90.254.245.49)
03:14:21 × theDon quits (~td@muedsl-82-207-238-191.citykom.de) (Read error: Connection reset by peer)
03:15:06 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:15:43 <dsal> :t map concat
03:15:44 <lambdabot> Foldable t => [t [a]] -> [[a]]
03:15:52 <dsal> :t foldMap
03:15:53 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
03:16:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
03:16:18 theDon joins (~td@muedsl-82-207-238-252.citykom.de)
03:17:29 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
03:17:49 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:19:16 × Wayno quits (~Wayno@185.103.96.147) (Remote host closed the connection)
03:19:42 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
03:20:02 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
03:20:02 lagothrix is now known as Guest79707
03:20:02 × Guest79707 quits (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services)))
03:20:02 xirhtogal is now known as lagothrix
03:22:57 × cn8 quits (~8cn@2603-8081-8f01-4e00-0c24-30c9-e128-1797.res6.spectrum.com) (Read error: Connection reset by peer)
03:25:27 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
03:26:44 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
03:27:47 <MarcelineVQ> :t fold . fold
03:27:49 <lambdabot> (Foldable t1, Foldable t2, Monoid c, Monoid (t1 c)) => t2 (t1 c) -> c
03:29:18 drbean_ joins (~drbean@TC210-63-209-212.static.apol.com.tw)
03:29:42 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
03:29:46 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Client Quit)
03:30:03 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:30:05 × drbean quits (~drbean@TC210-63-209-160.static.apol.com.tw) (Ping timeout: 240 seconds)
03:32:13 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:37:33 nineonin_ joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
03:40:00 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-duufhsmgfmkrtnrr) ()
03:40:57 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
03:43:52 × mastarija quits (~mastarija@93-136-154-213.adsl.net.t-com.hr) (Quit: Leaving)
03:45:17 × MarcelineVQ quits (~anja@198.254.202.72) (Ping timeout: 256 seconds)
03:45:45 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
03:48:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:48:49 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
03:49:20 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
03:50:04 vs^ joins (vs@ip98-184-89-2.mc.at.cox.net)
03:50:23 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
03:50:36 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
03:54:22 _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1)
03:56:30 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
03:56:46 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
03:56:52 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:57:04 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection)
03:57:49 × sgibber2018 quits (~arch-gibb@208.85.237.137) (Ping timeout: 258 seconds)
03:58:03 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-rvdkfbbedyjxkcho) (Quit: Connection closed for inactivity)
04:00:20 rprije joins (~rprije@202.168.43.92)
04:00:30 Rudd0 joins (~Rudd0@185.189.115.103)
04:01:52 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
04:02:28 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
04:02:47 nbloomf joins (~nbloomf@2600:1700:ad14:3020:65a1:7ff2:d4f4:eebe)
04:05:08 orion joins (~orion@c-76-19-238-5.hsd1.ma.comcast.net)
04:05:08 × orion quits (~orion@c-76-19-238-5.hsd1.ma.comcast.net) (Changing host)
04:05:08 orion joins (~orion@unaffiliated/orion)
04:05:10 MarcelineVQ joins (~anja@198.254.202.72)
04:07:02 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds)
04:10:18 coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl)
04:11:38 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
04:11:56 srk joins (~sorki@gateway/tor-sasl/sorki)
04:13:12 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
04:13:22 × xcmw quits (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:14:36 × irc_user quits (uid423822@gateway/web/irccloud.com/x-zpqgavcurwhmhgkg) (Quit: Connection closed for inactivity)
04:15:01 flukiluke1 joins (~flukiluke@217.146.82.202)
04:15:05 × zv quits (~zv@unaffiliated/zv) (Ping timeout: 240 seconds)
04:16:28 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection)
04:16:34 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
04:17:48 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
04:18:44 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
04:19:51 thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de)
04:22:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:22:32 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
04:24:38 × thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
04:25:01 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
04:25:11 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
04:25:29 jmchael joins (~jmchael@81.174.205.210)
04:25:42 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
04:26:15 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
04:27:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:30:03 × revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
04:32:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds)
04:34:48 × iqubic quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Remote host closed the connection)
04:37:04 iqubic joins (~user@2601:602:9500:4870:e949:f050:eec9:86cb)
04:41:30 hackage HaskellNet 0.5.3 - Client support for POP3, SMTP, and IMAP https://hackage.haskell.org/package/HaskellNet-0.5.3 (AlexanderVershilov)
04:43:36 jedws joins (~jedws@121.209.189.201)
04:49:23 × coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
04:49:23 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
04:49:25 × orion quits (~orion@unaffiliated/orion) (Ping timeout: 264 seconds)
04:53:17 × jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 268 seconds)
04:54:10 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:54:25 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
04:57:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:58:46 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds)
05:01:05 × Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
05:01:19 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
05:01:25 Kaeipi joins (~Kaiepi@47.54.252.148)
05:02:22 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
05:02:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
05:06:12 × Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
05:06:14 × MarcelineVQ quits (~anja@198.254.202.72) (Ping timeout: 268 seconds)
05:09:29 Kaiepi joins (~Kaiepi@47.54.252.148)
05:10:30 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection)
05:12:01 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
05:12:34 × Kronic quits (~Kronic___@84.203.96.46) (Read error: Connection reset by peer)
05:12:59 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:13:32 Tario joins (~Tario@201.192.165.173)
05:20:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
05:21:18 DTZUZU_ joins (~DTZUZU@207.81.171.116)
05:21:49 ADG1089__ joins (~aditya@122.163.166.13)
05:22:11 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
05:22:29 × DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
05:22:36 <iqubic> Is there a way to short circuit a Do block? I have a Do block using State GameState Int, for a custom type GameState. I want to first check if GameState has a given property, and if so, I want to do none of the remaining computations and just return of a set value.
05:23:55 DTZUZU joins (~DTZUZU@205.ip-149-56-132.net)
05:24:47 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
05:25:42 <monochrom> Just use a conditional.
05:25:46 <iqubic> How so?
05:26:01 <monochrom> You know if-then-else? You know case-of?
05:26:14 × DTZUZU_ quits (~DTZUZU@207.81.171.116) (Ping timeout: 260 seconds)
05:26:33 <iqubic> I do.
05:26:45 <pavonia> It depends on the used monad, e.g. Cont can do that, IIRC
05:26:55 <iqubic> I'm using State.
05:27:12 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
05:27:47 <pavonia> Then use a conditional :)
05:28:20 <iqubic> I se.
05:32:08 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-90.cust.tzulo.com) (Quit: Leaving)
05:32:56 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds)
05:35:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:35:13 × borne quits (~fritjof@200116b864861500c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
05:36:46 borne joins (~fritjof@200116b864c6f800cebf0c02893372bd.dip.versatel-1u1.de)
05:40:28 MarcelineVQ joins (~anja@198.254.202.72)
05:41:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
05:42:57 al3x27 joins (~plovs@85.254.75.83)
05:46:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds)
05:46:22 × _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 260 seconds)
05:46:33 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
05:50:52 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds)
05:53:42 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:55:09 × jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3)
05:59:37 × Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
06:00:07 Mikagami joins (~MOSCOS@122.54.107.175)
06:02:25 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 240 seconds)
06:04:42 × mounty quits (~mounty@2001:8000:2f59:0:6d56:fa71:1764:6b85) (Ping timeout: 260 seconds)
06:04:43 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
06:06:33 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
06:08:47 <gentauro> tdammers: hey, you still haven't got any scandinavians? https://well-typed.com/who_we_are/
06:09:03 <gentauro> tdammers: is it cos they don't apply, or do you just not hire scandis? :D
06:09:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
06:09:20 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
06:09:38 <gentauro> tdammers: https://well-typed.com/blog/2020/12/haskell-development-job-with-well-typed/
06:09:51 <MarcelineVQ> the latter for sure
06:11:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
06:12:49 × ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection)
06:13:10 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
06:13:19 Kaiepi joins (~Kaiepi@47.54.252.148)
06:14:07 jedws joins (~jedws@121.209.189.201)
06:14:29 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds)
06:15:20 mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42)
06:16:44 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
06:16:57 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
06:17:40 zv joins (~zv@unaffiliated/zv)
06:18:59 <gentauro> btw, troll spotted? https://yairchu.github.io/posts/silly-haskell-formatting
06:19:26 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
06:19:38 <gentauro> I tend to write my signtaures like this for readability (and sanity) -> https://gitlab.com/spisemisu/bornhack-demo-2019/-/blob/master/src/Main.hs#L52-59
06:19:50 <gentauro> how is this "silly"?
06:20:03 grdvnl joins (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com)
06:21:12 thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de)
06:23:45 _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1)
06:25:38 <pavonia> gentauro: Well, he has a point there. If you want to remove/move the first parameter with "silly" formatting, you have to change two lines
06:25:47 × thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
06:27:05 <leifm> The way he prefers works better with proportionally-spaced fonts
06:27:53 <MarcelineVQ> I don't strictly adhere to one parameter to one line
06:28:18 <MarcelineVQ> I might have 2,3,1 even
06:29:11 <MarcelineVQ> Code as an artform should shun strict formatting anyway :>
06:29:24 <MarcelineVQ> Make it beautiful not conformant
06:30:20 <pavonia> Heh
06:30:42 <gentauro> pavonia: so compromise readability for the sake of "lazyness"?
06:31:07 × nineonin_ quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
06:31:20 nfd joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
06:31:50 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
06:32:33 <gentauro> also, I think it's a bit meh to dismiss all of Haskell styling tools -> «I was looking to see what formatting tools exist for Haskell, and discovered that while several tools exist, none fit my taste, and some of these tools were disqualified on the grounds of applying silly formatting.»
06:32:43 <gentauro> maybe he should have stayed in the C++ ecosystem
06:32:47 <nfd> hey folks :) trying to finish up AoC day 19 and i think i have most of a cfg parser generator (to megaparsec) handy, but i've got some hiccup somewhere here that's causing it to not consume all input (like i expected from the backtracking strat)
06:32:56 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:65a1:7ff2:d4f4:eebe) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:33:18 <nfd> https://nfd.moe/files/tmp/day19.txt think my problem's in mkParser here
06:33:18 <gentauro> nfd: there are `hints` on the /r/haskell ;)
06:33:29 <nfd> heh nice
06:33:54 <nfd> specifically i'm rejecting good inputs on that last `<* eof` check on the top-level
06:34:27 <nfd> i'll check the reddit but i don't know if i want to see how everyone else generally does it before i'm through
06:34:31 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
06:34:39 Kaiepi joins (~Kaiepi@47.54.252.148)
06:34:59 <gentauro> btw, I personally use `stylish-haskell`. I somehow agree with the formatting except on imports of constructors and record fields. Instead of beeing multi-line, they are always one-liners …
06:35:19 <gentauro> nfd: good point
06:35:45 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds)
06:35:47 <pavonia> gentauro: I wouldn't say, and I also don't like the formatting suggested in the article, but it doesn't seem like trolling to me
06:37:56 <gentauro> pavonia: using the terms "silly" for all others (including Jasper Van der Jeugt tool) compared to "propper" (his) is trolling in my book
06:38:52 <gentauro> nfd: I guess it would help if you posted a "sample" of the data to parse …
06:39:58 × xff0x_ quits (~fox@2001:1a81:53b4:600:dcc7:7fd8:9f40:3657) (Ping timeout: 258 seconds)
06:40:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:40:53 xff0x_ joins (~fox@2001:1a81:53b4:600:e33a:6fca:3b6a:86a2)
06:42:38 nitrix-mas is now known as nitrix
06:43:13 EdFletcher joins (~EdFletche@unaffiliated/edfletchert137)
06:43:28 <nfd> so i'm going through with megaparsec debug and i'm mostly seeing what i expected
06:45:15 <nfd> aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba is accepted early at aabbbbbaabbbaaaaaabbbbbababa in the trial input
06:45:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
06:45:31 <nfd> (and then caught and errored by the guard at the top-level
06:45:51 <nfd> gentauro: sorry, i was staring at the debug output :D
06:46:08 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 268 seconds)
06:46:55 <nfd> my first instinct was "well, maybe i need more eof checking in the midst of this thing" but clearly that's probably not *quite* it all of the time
06:47:30 <nfd> because parsers may be called in the middle of others, generally
06:48:09 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:49:13 <nfd> this problem kinda smells of Kleene
06:49:49 xerox_ watches Kleene checking his armpits
06:50:16 kostic_ joins (~kostic@51.194.80.91)
06:50:39 <nfd> though the last parser to apparently wrongly succeed was 11, which is by definition in p2. 42, 31 | 42, 11, 31 which isn't very kleeney
06:50:53 toorevitimirp joins (~tooreviti@117.182.182.252)
06:51:03 <nfd> so maybe i take it back
06:52:25 <nfd> and also not very regular
06:52:44 nfd has flashbacks of having to do pumping lemma problems in exams
06:53:33 <nfd> uptree 11 fails a whole bunch, though! strange
06:56:04 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 260 seconds)
06:56:15 × Tspoon quits (tlarjoma@hilla.kapsi.fi) (Ping timeout: 256 seconds)
06:56:21 Tspoon joins (tlarjoma@hilla.kapsi.fi)
06:57:26 berberman joins (~berberman@unaffiliated/berberman)
06:58:23 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
06:59:08 nemron joins (~nemron@2a02:810b:c7bf:fdb8:e5d9:cf51:dbc1:34c4)
07:00:29 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
07:00:53 kostic_ joins (~kostic@51.194.80.91)
07:01:26 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:09:49 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 264 seconds)
07:09:58 fxg joins (~fxg@unaffiliated/fxg)
07:10:23 Turmiht joins (2d38964a@45.56.150.74)
07:11:16 <Turmiht> Anybody here uses macOS Big Sur to write Haskell?
07:11:49 <Turmiht> I got a linker error yesterday and cannot figure it out
07:14:02 kostic_ joins (~kostic@51.194.80.91)
07:15:01 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
07:16:24 cfricke joins (~cfricke@unaffiliated/cfricke)
07:17:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:19:28 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:19:31 u0_a203 joins (~u0_a203@37.98.47.224)
07:19:45 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh) (Quit: Connection closed for inactivity)
07:20:33 × cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit)
07:22:50 cfricke joins (~cfricke@unaffiliated/cfricke)
07:22:52 × u0_a203 quits (~u0_a203@37.98.47.224) (Client Quit)
07:23:17 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
07:24:03 × nemron quits (~nemron@2a02:810b:c7bf:fdb8:e5d9:cf51:dbc1:34c4) (Ping timeout: 258 seconds)
07:24:38 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 264 seconds)
07:24:48 <dminuoso> Turmiht: What error message do you get?
07:25:43 CMCDragonkai2 joins (~Thunderbi@124.19.3.250)
07:25:50 <Turmiht> Resolving dependencies...Build profile: -w ghc-8.8.4 -O1In order, the following will be built (use -v for more details): - distributive-0.6.2 (lib:distributive) (requires build)Starting distributive-0.6.2 (all, legacy fallback)cabal: Failed to build distributive-0.6.2. The failure occurred during theconfigure step. The exception
07:25:50 <Turmiht> was:dieVerbatim: user error (cabal: '/Users/turmiht/.ghcup/bin/ghc' exited with anerror:ld: warning: ignoring file/Users/turmiht/.cabal/store/ghc-8.8.4/cbl-dctst-1.0.8-9ce5b252/lib/libHScbl-dctst-1.0.8-9ce5b252.a,building for macOS-x86_64 but attempting to link with file built forunknown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E
07:25:51 <Turmiht> 0x0A 0x2F0x20 0x20 0x20 0x20 0x20 0x20 0x20 )Undefined symbols for architecture x86_64:"_cblzmdctstzm1zi0zi8zm9ce5b252_DistributionziExtraziDoctest_defaultMainWithDoctests_closure",referenced from:_Main_main_info in Main.o_Lu2mR_srt in Main.old: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v
07:25:51 <Turmiht> to seeinvocation)`gcc' failed in phase `Linker'. (Exit code: 1))
07:25:57 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
07:26:44 <Turmiht> It seems to me that my ld fail to recognize the ar file (given the magic bytes)
07:26:52 nemron joins (~nemron@2a01:598:a906:d62d:a0e2:5e5d:3ca2:a658)
07:28:07 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
07:28:37 kostic_ joins (~kostic@51.194.80.91)
07:29:00 hackage spdx-license 0.1.0 - SPDX license templates https://hackage.haskell.org/package/spdx-license-0.1.0 (Poscat)
07:29:10 <Turmiht> lipo -info and object dump show contents of referenced libs is build for macho-x86-64
07:29:26 <dminuoso> @where
07:29:26 <lambdabot> @where <key>, return element associated with key
07:29:35 <dminuoso> @where paste
07:29:35 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
07:29:37 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:29:59 <dminuoso> Turmiht: Can you use that? It's just easier for me to read when whitespace is nicely preserved
07:30:09 <Turmiht> I'll give it a try
07:30:19 <Turmiht> Wait a minute plz
07:30:20 christo joins (~chris@81.96.113.213)
07:31:19 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
07:31:23 <Turmiht> https://paste.tomsmeding.com/rdCfhFsm
07:31:28 <Turmiht> Is it ok?
07:31:33 <dminuoso> Yes, cheers
07:31:44 <dminuoso> Mmm, still looks weird, but it's fine
07:31:59 nineonine joins (~nineonine@50.216.62.2)
07:32:13 <Turmiht> Well, thx
07:32:29 solarliner joins (~solarline@243.81.10.109.rev.sfr.net)
07:33:25 <dminuoso> Turmiht: Does the error happen with 8.10.3 as well?
07:33:42 <Turmiht> Yes, and 8.6.5
07:34:18 <Turmiht> Wait, no
07:34:28 ADG1089__ joins (~aditya@122.163.166.13)
07:34:28 × christo quits (~chris@81.96.113.213) (Ping timeout: 246 seconds)
07:34:30 <Turmiht> I just tried 8.10.2 which appear in ghcup list
07:34:40 asheshambasta joins (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be)
07:35:09 <Turmiht> should I build 8.10.3 from source?
07:36:45 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
07:36:55 × olligobber quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 246 seconds)
07:37:57 <dminuoso> Turmiht: What command did you use to provoke this error?
07:38:35 <Turmiht> `cabal install distributive` could, although I first found it when I try install Agda
07:39:07 <dminuoso> Just to rule some stuff out, do you have any modifications in your ~/.cabal/config ?
07:39:32 <Turmiht> nop, and it have tried reinstall everthing
07:39:58 <Turmiht> I and everything, typos
07:40:12 shad0w_ joins (~shad0w_@160.202.37.210)
07:40:20 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/issues/18446
07:40:24 <dminuoso> Im wondering whether this is related
07:41:07 × shad0w_ quits (~shad0w_@160.202.37.210) (Read error: Connection reset by peer)
07:41:30 <dminuoso> Turmiht: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-apple-darwin.tar.xz
07:41:34 <dminuoso> Try the version manually
07:41:37 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
07:41:50 <dminuoso> Just unpack it somewhere and install as regular bindist
07:41:59 <tdammers> gentauro: you'd think well-typed, out of all people, would have a "strictly no scandinavians" hiring policy?
07:42:11 <Turmiht> I'm downloading it
07:42:57 shad0w_ joins (~shad0w_@160.202.37.210)
07:43:13 × danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
07:43:54 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
07:44:30 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
07:45:31 × shad0w_ quits (~shad0w_@160.202.37.210) (Read error: Connection reset by peer)
07:47:18 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
07:50:14 × nfd quits (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 272 seconds)
07:51:07 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
07:51:39 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 258 seconds)
07:53:34 <Turmiht> sorry to ask, how can I use a specific ghc version when using cabal?
07:54:59 <sclv> use the -w flag
07:55:18 <sclv> cabal —help and the manual are your friends
07:56:00 <dminuoso> sclv: — instead of -?
07:56:01 RaderH2O joins (02b03581@2.176.53.129)
07:56:03 <dminuoso> Does cabal eat that?
07:56:11 <RaderH2O> hMmMm
07:56:50 Turmiht27 joins (c6347492@198.52.116.146)
07:56:56 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:57:23 × Turmiht27 quits (c6347492@198.52.116.146) (Remote host closed the connection)
07:58:25 × Turmiht quits (2d38964a@45.56.150.74) (Ping timeout: 245 seconds)
07:59:09 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
08:03:56 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds)
08:04:27 × RaderH2O quits (02b03581@2.176.53.129) (Remote host closed the connection)
08:05:25 × fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 240 seconds)
08:06:50 olligobber joins (~olligobbe@unaffiliated/olligobber)
08:08:02 kostic_ joins (~kostic@51.194.80.91)
08:13:27 Turmiht joins (2d389679@45.56.150.121)
08:13:34 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
08:14:01 <Turmiht> I disconnected.. have a way to get history I missed?
08:14:08 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
08:15:10 <dminuoso> Turmiht: Check the topic of the channel
08:16:11 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
08:16:50 × nemron quits (~nemron@2a01:598:a906:d62d:a0e2:5e5d:3ca2:a658) (Ping timeout: 264 seconds)
08:16:55 gothos_ joins (~gothos@antsy.jhz.name)
08:17:17 × [exa] quits (exa@unaffiliated/exa/x-5381537) (Ping timeout: 256 seconds)
08:17:17 × arw quits (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 256 seconds)
08:17:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
08:17:24 [exa] joins (exa@srv3.blesmrt.net)
08:17:24 arw joins (~arw@impulse.informatik.uni-erlangen.de)
08:17:48 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:17:51 × gothos quits (~gothos@antsy.jhz.name) (Ping timeout: 256 seconds)
08:17:51 gothos_ is now known as gothos
08:18:02 × sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:55:615d:2b49:d448) (Ping timeout: 260 seconds)
08:18:14 nemron joins (~nemron@2a02:810b:c7bf:fdb8:61d2:5f6c:bc78:4d37)
08:18:37 × xff0x_ quits (~fox@2001:1a81:53b4:600:e33a:6fca:3b6a:86a2) (Ping timeout: 260 seconds)
08:19:05 xff0x_ joins (~fox@2001:1a81:53b4:600:1516:de:d27a:a053)
08:19:35 sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:268a:d573:fb76:8521)
08:19:50 × _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 264 seconds)
08:20:58 solonarv joins (~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr)
08:22:18 <Turmiht> I read the log and try -w, but found nothing about -w option in cabal --help
08:22:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds)
08:24:09 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:24:36 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds)
08:25:18 <sclv> -w is short for with-ghc
08:26:02 <sclv> re earlier, autocorrect turning my double hyphens into dashes, sigh
08:27:20 mounty joins (~mounty@210.1.196.133)
08:27:22 <Turmiht> is it in cabal's help? I still cannot found it
08:28:00 <Turmiht> search pattern `with-ghc` highlight nothing
08:28:17 <sclv> might only be kn the help for specific subcommands
08:31:09 <Turmiht> build with 8.10.3 also failed
08:31:14 <Turmiht> sadly
08:31:45 cyphase joins (~cyphase@unaffiliated/cyphase)
08:32:33 <Turmiht> -w works but it's not in manual if I'm not missed it
08:32:59 thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de)
08:33:06 <Turmiht> whatever, your advise is helpful and thx
08:33:28 hhpp joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
08:34:57 × thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Remote host closed the connection)
08:35:04 thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de)
08:35:44 × mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds)
08:37:19 × thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Client Quit)
08:38:30 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
08:39:33 × Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection)
08:39:57 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
08:39:57 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
08:39:57 mouseghost joins (~draco@wikipedia/desperek)
08:40:59 × Mikagami quits (~MOSCOS@122.54.107.175) (Read error: Connection reset by peer)
08:41:25 Mikagami joins (~MOSCOS@122.54.107.175)
08:42:36 cfricke joins (~cfricke@unaffiliated/cfricke)
08:43:07 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
08:46:22 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7482:9511:22c:1523) (Remote host closed the connection)
08:46:46 Turmiht joins (2d389679@45.56.150.121)
08:49:24 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
08:49:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
08:50:20 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:54:21 × Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection)
08:55:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
08:57:25 × drbean_ quits (~drbean@TC210-63-209-212.static.apol.com.tw) (Ping timeout: 246 seconds)
08:57:36 × CMCDragonkai2 quits (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds)
09:01:27 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
09:05:24 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
09:05:29 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:08:56 wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5)
09:12:16 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
09:13:43 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
09:13:43 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
09:13:43 dibblego joins (~dibblego@haskell/developer/dibblego)
09:15:17 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
09:15:30 Kaiepi joins (~Kaiepi@47.54.252.148)
09:20:34 × Randy quits (randy@freebsd/user/randy) (Quit: Brb)
09:21:31 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:22:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds)
09:23:09 thc202 joins (~thc202@unaffiliated/thc202)
09:25:07 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 260 seconds)
09:26:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
09:26:37 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Ping timeout: 264 seconds)
09:26:43 × zv quits (~zv@unaffiliated/zv) (Ping timeout: 258 seconds)
09:28:06 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
09:31:09 Turmiht joins (2d389679@45.56.150.121)
09:32:30 × vodkaInferno quits (~wormphleg@104.131.156.184) (Read error: Connection reset by peer)
09:32:36 __monty__ joins (~toonn@unaffiliated/toonn)
09:32:41 vodkaInf1rno joins (~wormphleg@104.131.156.184)
09:32:42 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
09:33:26 <Turmiht> I just removed the binutils installed from homebrew and the original problems disappeared however how it fails in building phase instead of linking.
09:34:08 _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1)
09:34:10 <Turmiht> Seems ghc use the linux version bin utils to build lib for me earlier.
09:36:53 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
09:36:54 <Turmiht> just for reference if somebody meet the same error.
09:37:40 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 246 seconds)
09:37:57 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
09:41:36 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds)
09:42:19 zv joins (~zv@unaffiliated/zv)
09:42:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds)
09:43:16 × ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection)
09:43:42 ADG1089__ joins (~aditya@122.163.166.13)
09:43:42 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
09:45:02 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
09:45:19 × Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection)
09:46:46 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
09:47:47 × hhpp quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection)
09:48:32 × toorevitimirp quits (~tooreviti@117.182.182.252) (Read error: Connection reset by peer)
09:48:49 toorevitimirp joins (~tooreviti@117.182.182.252)
09:50:22 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
09:50:52 nineonine joins (~nineonine@50.216.62.2)
09:51:22 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds)
09:51:33 ulidtko|kk joins (~ulidtko@194.54.80.38)
09:52:25 × guest1222 quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
09:52:34 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
09:52:50 kindaro joins (1f08c5b4@h31-8-197-180.dyn.bashtel.ru)
09:53:01 nineonine joins (~nineonine@50.216.62.2)
09:53:03 <kindaro> How can I view Template Haskell splices when building with Cabal?
09:53:30 <kindaro> `cabal build --ghc-options '-ddump-splices -ddump-to-file'` does not seem to produce any relevant files.
09:53:45 × ulidtko|k quits (~ulidtko@193.111.48.79) (Ping timeout: 240 seconds)
09:53:47 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
09:54:23 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-vynnkfmwforjolgj) (Quit: Connection closed for inactivity)
09:54:24 <kindaro> I am using Cabal 3.4.
09:54:33 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
09:54:57 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Client Quit)
09:55:04 nineonine joins (~nineonine@50.216.62.2)
09:56:00 × xff0x_ quits (~fox@2001:1a81:53b4:600:1516:de:d27a:a053) (Remote host closed the connection)
09:56:17 xff0x_ joins (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5)
09:56:44 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
09:56:48 scde joins (~scde@5.63.35.8)
09:57:13 nineonine joins (~nineonine@50.216.62.2)
09:58:51 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
09:58:54 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:59:17 nineonine joins (~nineonine@50.216.62.2)
10:00:48 × scde quits (~scde@5.63.35.8) (Client Quit)
10:00:56 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:01:34 nineonine joins (~nineonine@50.216.62.2)
10:02:21 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
10:03:08 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:03:43 nineonine joins (~nineonine@50.216.62.2)
10:04:23 × [exa] quits (exa@srv3.blesmrt.net) (Changing host)
10:04:23 [exa] joins (exa@unaffiliated/exa/x-5381537)
10:05:17 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:05:29 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
10:05:42 nineonine joins (~nineonine@50.216.62.2)
10:07:08 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Read error: Connection reset by peer)
10:07:18 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:07:44 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
10:07:47 nineonine joins (~nineonine@50.216.62.2)
10:09:20 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:09:26 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
10:09:29 <gentauro> 08:41 < tdammers> gentauro: you'd think well-typed, out of all people, would have a "strictly no scandinavians" hiring policy?
10:09:50 <gentauro> I just find it strange that no scandis are at your company. I mean, people here are all <3 Haskell …
10:09:51 nineonine joins (~nineonine@50.216.62.2)
10:10:15 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 268 seconds)
10:10:21 <gentauro> I heard from an employee that IOHK has a single dane (or somebody living here in CPH) as an employee
10:10:35 <gentauro> maybe is the wage gap?
10:11:08 <gentauro> tdammers: nevertheless, I'm doing some promo on LinkedIn. Hopefully some of my fellow CPH and FP lovers will apply :)
10:11:45 × urdh quits (~urdh@unaffiliated/urdh) (Quit: Boom!)
10:12:05 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:12:30 <tdammers> yes, please do. wage gap might play a role, but I don't think it's the decisive factor - after all, we do have people in other high-income areas
10:12:37 nineonine joins (~nineonine@50.216.62.2)
10:13:26 jamm joins (~jamm@unaffiliated/jamm)
10:13:55 urdh joins (~urdh@unaffiliated/urdh)
10:14:15 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:14:41 <gentauro> tdammers: I noticed myself (found and organizer of MF#K in Denmark) where people "beg" for FP jobs. And yes, wage isn't an issue. Personally, I had to decline a Swedish (Haskell) startup-job cos the person offered me a salary that was worse than a Danish cashier …
10:14:46 nineonine joins (~nineonine@50.216.62.2)
10:14:56 <gentauro> I mean, I would <3 to work with Haskell, but with a "fair" salary ;)
10:15:06 <tdammers> hmhm
10:16:09 <gentauro> tdammers: Well-Types is an UK company right? What will happen from the new year (Brexit)?
10:16:18 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:16:50 × _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 264 seconds)
10:16:57 nineonine joins (~nineonine@50.216.62.2)
10:18:04 kam1 joins (~kam1@24.231.108.143)
10:18:25 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
10:18:26 <tdammers> it is, yes
10:18:51 dandart joins (~Thunderbi@home.dandart.co.uk)
10:18:57 nineonine joins (~nineonine@50.216.62.2)
10:19:01 <tdammers> I'm not sure it's decided what the consequences of Brexit will be, but it won't be the end of the company
10:22:05 <gentauro> tdammers: I guess WT can do the same as `serokell` where if the owners of WT just apply for a virtual Estonian citizenship (I have it) they can make a company in the EU from anywhere in the world
10:22:24 <gentauro> but I guess the owners of WT already have that covered :)
10:22:32 <tdammers> yep
10:22:36 <merijn> eh, Brexit has already happened, this year is just the end of the grace period for the free trade agreement. And since consulting isn't a physical good I suspect the impact of Brexit is at worst "slightly increased cost"
10:22:50 <tdammers> we also literally have one employee in Estonia (though I believe he doesn't have citizenship)
10:23:16 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
10:23:16 <tdammers> merijn: yeah, hence my assessment that chances to the company structure might not be necessary at all
10:23:31 <tdammers> after all, we already have plenty of clients outside of the EU
10:24:22 <gentauro> merijn: I do freelance gigs. And my `Certified Public Accountant` told me to "stay away" from anything UK related (so much paperwork that needs to be done now)
10:24:57 glowcoil joins (sid3405@gateway/web/irccloud.com/x-urkxtcqlvmxbhybw)
10:25:17 nineonine joins (~nineonine@50.216.62.2)
10:25:17 <gentauro> 11:23 < tdammers> after all, we already have plenty of clients outside of the EU
10:25:20 <gentauro> good to hear
10:25:48 <tdammers> the interesting bit is of course that we're a UK-based company that has both clients and employees outside the UK
10:25:49 rslima_____ joins (sid26145@gateway/web/irccloud.com/x-sxoacwwvrypgvpjy)
10:26:09 ocharles joins (sid30093@gateway/web/irccloud.com/x-xltcvhbyjparvqrq)
10:26:20 <merijn> gentauro: I mean, it's the exact same paperwork as working with companies in the US
10:26:23 ocharles is now known as Guest98308
10:26:48 kyagrd__ joins (sid102627@gateway/web/irccloud.com/x-ypgrgcqphmltykqe)
10:26:49 milessabin joins (sid86799@gateway/web/irccloud.com/x-qdexhvophzkhmamx)
10:27:16 <tdammers> this is interesting already even without brexit, because while I am employed by WT directly as far as employment legalities are concerned, the fiscal situation is that WT rents my services from a Dutch payroll agency, and I am fiscally employed by the payroll agency, not WT
10:27:20 Kamuela joins (sid111576@gateway/web/irccloud.com/x-sygmzwyrzcdkakla)
10:27:24 <gentauro> merijn: yeah, that pretty `meh` as well. I know one of the few `Tor` employees here in Denmark. It was to much hasle to `Tor` created a danish subsidiary company in Denmark
10:28:26 kristjansson joins (sid126207@gateway/web/irccloud.com/x-kjqkrwfhxeyivisw)
10:28:31 graingert joins (sid128301@gateway/web/irccloud.com/x-pvrbspgvxauvbmrf)
10:28:33 <merijn> gentauro: You don't need to directly employ people anyway. An old colleague "works for" a US company, but he's basically self-employed and then his company gets contracted from the US, as there's much simpler paperwork for B2B contract
10:28:35 <tdammers> some other WT employees are fiscally self-employed, and send invoices to WT directly, so they get to do the international paperwork themselves - but I opted to do the payrolling thing, for all sorts of boring reasons
10:29:15 <gentauro> merijn: yeah, that is what Oskar Wickström (haskellatwork) does :)
10:29:38 kuribas joins (~user@ptr-25vy0i7ylwdflfexhxz.18120a2.ip6.access.telenet.be)
10:29:44 taktoa[c] joins (sid282096@gateway/web/irccloud.com/x-qzdgtblpiialqhic)
10:30:02 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
10:30:15 hazard-pointer joins (sid331723@gateway/web/irccloud.com/x-nmwklpcxqbimwbcx)
10:30:35 <kuribas> why isn't there a IsLable instance for Proxy?
10:30:40 dani- joins (sid341953@gateway/web/irccloud.com/x-ntpllqrkvsgxojfo)
10:30:44 <kuribas> IsLabel
10:30:47 <tdammers> main reason being that Dutch gov't is on a crusade against "fake self employement", and that means that if you do it that way, you will be subjected to a lot of paperwork and scrutinity, and you may find yourself being considered "not really self-employed after all", and then you get to deal with even more bureaucratic nonsense
10:30:53 srhb joins (sid400352@NixOS/user/srhb)
10:31:03 m-renaud joins (sid333785@gateway/web/irccloud.com/x-rdlxbrqpwuslqdal)
10:31:23 <kuribas> Or at least some kind of Label type in base?
10:31:26 ghuntley joins (sid16877@gateway/web/irccloud.com/x-ykjkjsicixvqqmkq)
10:31:28 <tdammers> I mean, the intended goal is honorable - this kind of fake self-employment has been a loophole to bypass labor laws for a long while
10:31:30 _Cactus_ joins (~cactus@173.244.208.116)
10:31:56 kozowu joins (uid44796@gateway/web/irccloud.com/x-lmrzkgcwuiqfijer)
10:32:00 <gentauro> tdammers: so it's like in DK. If you work as a freelance as you would do as an employee (same tasks) then the Government will "fine" the hiring company
10:32:16 <tdammers> yes. even retroactively.
10:32:23 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Quit: Lost terminal)
10:32:38 <gentauro> the trick is to have at least "two different" companies in a fiscal year
10:32:38 J_Arcane joins (sid119274@gateway/web/irccloud.com/x-rmzbmhxqvjyslqlb)
10:32:50 <tdammers> the rules are bit more involved here
10:32:55 <gentauro> I guess
10:33:07 <tdammers> e.g., for certain industries (like performing arts), two is not enough
10:33:50 <tdammers> you also have to make a plausible argument that you are spending at least 24 hours per week directly on the job - and for musicians, this can be a problem, because the time you spend preparing for gigs and practicing your instrument skills does not count towards that
10:34:08 <gentauro> :o
10:34:16 typetetris joins (sid275937@gateway/web/irccloud.com/x-wukxokdildxlsinc)
10:34:19 <tdammers> which is absolute nonsense of course, but that's the situation
10:34:42 <gentauro> so artist needs to be part of a "corporate" then?
10:34:50 <tdammers> hmm, no
10:34:52 <gentauro> that will help with "creativity"
10:34:57 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Remote host closed the connection)
10:35:06 <kuribas> tdammers: that would make the actual work versus percieved work ration for a musician 0.1%
10:35:13 <tdammers> some artists manage to meet the criteria, while many others instead do the payroll thing
10:35:21 <tdammers> kuribas: yes, just about
10:35:39 jackdk joins (sid373013@gateway/web/irccloud.com/x-xeablxzuerknfxni)
10:35:50 agander_m joins (sid407952@gateway/web/irccloud.com/x-godagyxukcquqjck)
10:36:12 <tdammers> kuribas: though not that extreme. when I was still a pro musician, I would work 80 hour weeks on average; about 2-3 hours of that would be performing, and another 16 hours teaching, plus maybe 1-2 hours doing paid composition / arrangement work
10:36:16 nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155)
10:36:26 <tdammers> so about a 1:4 ratio
10:37:07 <gentauro> maybe they are part of the "SCAM" that they use in Spain with the "media money". It's shared based on your exposure on TV/radio. People who "sell out" and vote the "dark side" on how to distribute the "media money", gets their music played between 01:00 - 05:00 AM
10:37:30 <gentauro> since ther music is played the "most", they get more TV-money that "well know artist"
10:38:10 <gentauro> "well know artist" complain about this, but nobody cares cos they had these campaigsn where they called "everybody thiefs" for "stealing the music". Karma can be a b- …
10:38:13 <gentauro> :)
10:38:24 <tdammers> it's a shame that there's no good model for fitting professional artists into the capitalist model
10:38:26 <kuribas> tdammers: funny thing is, if I am doing choir accompaniment, I hardly need to practice, and get payed usually quite well. When doing "serious music", like Brahms quartets, I spend months praciticing, going to Gent every weekend with the train to rehearse, and if I get just the cost back I can be happy.
10:39:31 <kuribas> tdammers: tl;dr people don't care about Brahms, but they care about John Rutter :-)
10:39:32 × miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
10:39:45 miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
10:39:45 <gentauro> tdammers: I once where at this small bar with some IT-people drinking a few beers. It was only us and some "random" Swedish band playing some music in the background. Since nobody else came in, the owner didn't want to pay the band. So we all chipped up money for gas so they could go back to Sweden
10:39:52 <tdammers> kuribas: that's the arts for ya. when I was a pro, I'd do the stuff I love for a sandwich and gas money, but playing stupid charts stuff, or just sitting in a corner playing unobtrusive piano music was the stuff that'd rake in the money
10:39:53 <gentauro> musician don't have it easy …
10:39:56 <kuribas> or worse, Ludovico einaudi
10:40:42 <tdammers> I know you classical pianists hate Einaudi, but I kind of admire him for having found a thing that sells and consistently pulling off selling it over and over and over again
10:40:57 × nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 260 seconds)
10:40:58 <tdammers> and apparently he manages to do it without grinding his soul into a mushy pulp
10:40:59 <kuribas> sure, he's absolutely great at marketing
10:41:23 <gentauro> wait a second. Is this an analogy with FP/Haskell? xD
10:41:30 shad0w_ joins (~shad0w_@160.202.37.210)
10:41:31 <tdammers> nooooooo...
10:41:36 <kuribas> yeah, this is very offtopic
10:41:53 <kuribas> unless you compare einaudi with php
10:42:03 <tdammers> nah, he's way too consistent
10:42:09 <gentauro> kuribas: for me it is. I would rather work with Haskell, but what brings food on the table is my .NET gigs
10:42:12 <gentauro> xD
10:42:15 <kuribas> tdammers: lol
10:42:31 <kuribas> gentauro: not f# I suppose
10:42:33 <kuribas> ?
10:42:56 <gentauro> in Denmark is C#, cos the person who created it was a dane. Tough market to introduce something else …
10:43:26 <tdammers> C# is also insanely popular across Europe due to Windows and the MS stack in general
10:43:37 <gentauro> kuribas: but sometimes I do F#, but people can't maintain it so I end up re-writting it to C# :(
10:43:43 <kuribas> gentauro: can you introduce FP concepts in your team?
10:43:52 <tdammers> lots of European companies have been on MS stacks forever, and many corporate IT systems started as an Excel sheet on the CEO's computer
10:43:58 <kuribas> .NET seem to have better support for immutability than java
10:44:12 <tdammers> gah, there's the I-word again
10:44:20 × solarliner quits (~solarline@243.81.10.109.rev.sfr.net) (Read error: Connection reset by peer)
10:44:29 <gentauro> kuribas: not where I am at the moment. It's a freelance gig. If I introduce something and the team can't take over, I have to provide "free hours" until they do. So this time no FP for me ;)
10:44:36 × ADG1089__ quits (~aditya@122.163.166.13) (Quit: Konversation terminated!)
10:45:32 × st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.9)
10:45:35 <dminuoso> https://hackage.haskell.org/package/websockets-0.12.7.2/docs/Network-WebSockets.html#t:WebSocketsData
10:45:37 <dminuoso> You should only use the Text or the Text instance when you are sure that the data is UTF-8 encoded (which is the case for Text messages).
10:45:44 <dminuoso> Can anyone guess what they mean by this here? It sounds confused.
10:45:48 <gentauro> kuribas: but right now, I'm writing a tool in Haskell that generates F# code :)
10:46:08 <kuribas> tdammers: what's wrong with that?
10:46:08 <gentauro> I'm expecting to have it ready by the end of the year
10:46:31 <tdammers> dminuoso: I think it means "if you are not sure that the data you will receive is UTF-8 encoded, then do not use the Text instances"
10:47:21 <tdammers> kuribas: it misses the point. the problem isn't just mutability, and making variables immutable when you can just willy-nilly have all sorts of side effects is completely pointless
10:47:45 <tdammers> take, for example, clojure, which makes a pompous deal out of immutability, but completely ignores other side effects, such as disk I/O
10:47:47 <kuribas> tdammers: I totally agree, but at least it's a small step, no?
10:48:25 <dminuoso> tdammers: Given the context that's strange.
10:48:28 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
10:48:48 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 260 seconds)
10:49:20 <tdammers> dminuoso: the other interpretation just doesn't make sense ("when you are sure that the data is UTF-8 encoded, then do not use any other instances")
10:50:15 <kuribas> tdammers: IMO the biggest fuckup in clojure is using hashmaps for everything.
10:50:21 <dminuoso> tdammers: Mmm. The phrasing is just odd, especially the `(which is the case for Text messages)` part of it.
10:50:46 <kuribas> tdammers: being so lenient means that most advantages of purity go away.
10:50:59 <gentauro> kuribas: some F# I have seen, it's just C# (OO) but written with F# syntax
10:51:16 <gentauro> very few people write F# as they would write SML/ML
10:51:22 <tdammers> kuribas: clojure never really had a lot of advantages of purity in the first place, but hashmaps-for-everything has nothing to do with it
10:51:24 <dminuoso> But I think they're just trying to say `fromDataMessage @Text` will crash, unles you are getting a Text message (as per websocket specs), or an utf8 encoded binary message.
10:51:39 <tdammers> you can have completely pure hashmaps (though preventing HashDoS is tricky then)
10:51:50 <kuribas> tdammers: hashmaps for everything means it's impossible to reason about anything
10:52:10 <kuribas> tdammers: and the goal of immutability is reasoning
10:52:16 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:52:24 <tdammers> no it doesn't
10:52:39 <tdammers> *pure* hashmaps means they're still pure, and you can still reason about their purity
10:52:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 258 seconds)
10:53:14 <tdammers> it's very vaguely similar to how you can still apply pure reasoning to IO actions, as long as you don't apply pure reasoning to the *execution* of IO actions
10:53:28 <kuribas> pure until something crashes because you don't have a field in the hashmap...
10:54:08 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
10:54:16 <tdammers> that's orthogonal
10:54:25 <tdammers> we have enough partial functions in Haskell too
10:54:39 <kuribas> gentauro: in that case it would be better to keep it in C#
10:54:56 <tdammers> > [] ! 1
10:54:58 <lambdabot> error:
10:54:58 <lambdabot> • Couldn't match expected type ‘Array i0 e’ with actual type ‘[a0]’
10:54:59 <lambdabot> • In the first argument of ‘(!)’, namely ‘[]’
10:55:03 <tdammers> > [] !! 1
10:55:05 <kuribas> tdammers: and I try to avoid partial functions in haskell
10:55:06 <lambdabot> *Exception: Prelude.!!: index too large
10:55:22 <tdammers> so avoid partial functions in clojure. this has nothing to do with purity
10:55:45 hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
10:56:14 <kuribas> tdammers: every function in clojure that takes a hashmap is partial.
10:56:28 <tdammers> that is obviously false
10:56:33 <kuribas> tdammers: or even worse when it isn't partial, it just returns a wrong result.
10:57:05 <kuribas> yeah, the "obviously false" case is worse.
10:57:15 <kuribas> I prefer things crashing early over wrong behaviour.
10:57:43 <kuribas> IMO total > partial > total doing the wrong thing
10:58:07 <tdammers> (get hashmap key) returns nil if the key doesn't exist
10:58:12 <tdammers> that is neither partial nor the wrong thing
10:58:19 <tdammers> what else would you want it to do?
10:58:45 <tdammers> it could crash, but that would make it partial, by the definition we use in Haskell
10:59:24 <tdammers> then again, due to the lack of a type checker, most clojure functions are in fact partial - `get`, for example, cannot be called on something that isn't a collection
10:59:51 <tdammers> but anyway, this has absolutely nothing to do with effects, nor mutability
10:59:54 <kuribas> tdammers: it's not about what I want a hashmap to do, it's about when I want to use a hashmap.
11:00:04 <kuribas> and I don't want to use it for everything
11:00:11 <tdammers> that's a completely valid complaint
11:00:13 Tops2 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de)
11:00:23 <tdammers> but it has nothing to do with purity or partiality
11:00:37 <tdammers> your complaint is about hashmaps being too generic
11:00:37 × Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
11:00:55 <tdammers> about not providing any static constraints as to which values may go into which keys
11:01:03 <kuribas> tdammers: it can: (get 5 :a) => nil
11:01:05 Mikagami joins (~MOSCOS@122.54.107.175)
11:01:18 <kuribas> (get "abc" :a) => nil
11:01:22 <tdammers> right
11:01:48 <tdammers> but since clj runs on the jvm, and uses java interfaces to implement things like lookup, you can fabricate classes that will cause lookups to crash
11:02:11 <tdammers> granted, that's a bit of a fabricated argument
11:03:40 × cow-orker quits (~foobar@pogostick.net) (Remote host closed the connection)
11:04:56 <kuribas> the philosophy of clojure is to be very lenient
11:05:04 <kuribas> it's typically the java side that crashes
11:05:16 × CindyLinz quits (~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds)
11:05:56 × solarion quits (~solarion@fsf/member/solarion) (Ping timeout: 240 seconds)
11:05:56 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 240 seconds)
11:05:56 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 240 seconds)
11:06:18 byorgey joins (~byorgey@155.138.238.211)
11:06:20 CindyLinz joins (~cindy_utf@112.121.78.20)
11:07:33 solarion joins (~solarion@mail.digitasaru.net)
11:09:17 cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
11:09:49 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 260 seconds)
11:10:58 c_wraith joins (~c_wraith@adjoint.us)
11:11:25 <kuribas> tdammers: my point is that with pattern matching and records, you can avoid a complex type system, and still get easy to understand errors.
11:11:41 <kuribas> tdammers: a sufficiently smart compiler could even do that at compile time.
11:11:56 <kuribas> SBCL is quite good in static analysis.
11:12:30 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:12:32 <gentauro> 11:54 < kuribas> gentauro: in that case it would be better to keep it in C#
11:12:35 <gentauro> kuribas: yep
11:13:54 <kuribas> tdammers: I totally agree that the benifits from static pure FP doesn't come from a single feature, but several features and how you use them.
11:14:48 <tdammers> case in point, something more strict than hashmaps is fairly useless without static checks
11:14:53 <tdammers> take for example Python classes
11:15:14 <tdammers> you can say foo.bar, which is roughly equivalent to (get foo :bar) in clojure, or bar foo in haskell
11:15:44 <tdammers> in haskell, the compiler can tell you that you cannot apply bar to foo, because the foo type doesn't have a bar field
11:16:13 <tdammers> in clojure, you're just going to get nil, which is the interpreter telling you, at runtime, that the value you're looking at doesn't have a bar field
11:16:24 <tdammers> in python, you get a crash at runtime
11:16:50 qwsd joins (~tema@217.118.92.215)
11:16:58 <tdammers> so in both of these dynamic languages, the error doesn't get reported until runtime - Python fares no better than clojure, even though you declared the class beforehand as a "type"
11:17:54 <gentauro> tdammers: languages with `casting` are as bad as `dynamic-typed` langauges.
11:17:59 <tdammers> so why, then, would you go through the trouble of declaring classes (or having explicit record fields, or anything similar) when you can't get more useful (i.e., earlier and louder) failures out of it?
11:18:53 × Majiir quits (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net) (Quit: CUT THE HARDLINES!!)
11:18:54 <tdammers> gentauro: not the point, really - all I'm saying here is that the benefit of more explicit record types is that you can get better static reasoning, but if the static reasoning doesn't happen and you still won't get errors until you actually run the broken code, then you're not getting much value out of it
11:19:37 <tdammers> clojure acknowledges this and says, OK, so we're not getting any static assertions out of this either way, so let's just use the simpler solution here
11:23:21 Majiir joins (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net)
11:25:47 <kuribas> tdammers: yeah, earlier and louder is better that late and/or silent
11:26:16 <kuribas> tdammers: but you do get earlier and louder errors, as long as you don't do nil punning.
11:26:24 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
11:26:51 × kindaro quits (1f08c5b4@h31-8-197-180.dyn.bashtel.ru) (Remote host closed the connection)
11:26:52 livvy joins (~livvy@gateway/tor-sasl/livvy)
11:27:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:28:05 <kuribas> tdammers: I think scheme works that way, let me test...
11:28:06 <tdammers> the "lateness" of errors can be classified pretty much like this: 1. while writing the code, 2. while building ("compile-time"), 3. when running test suite, 4. when starting up the application, 5. when running the offending code under the error conditions
11:28:31 <tdammers> anything more fine-grained than that is largely irrelevant
11:28:42 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
11:29:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:29:15 <tdammers> oh, and there is 6. after running the offending code under the error conditions
11:29:33 <tdammers> which is of course the worst, because now you have absolutely no idea what even triggers the error
11:30:08 <dminuoso> I guess memory corruption is a frequenty case of 6.
11:30:30 <tdammers> yeah, and it's the reason why, all else being equal, garbage collection is the lesser evil
11:30:38 <gentauro> tdammers: or type-system not providing anything at all :P https://youtu.be/Gv2I7qTux7g?t=549
11:30:49 × shad0w_ quits (~shad0w_@160.202.37.210) (Ping timeout: 264 seconds)
11:31:22 <kuribas> tdammers: 5. running the code in acceptance, 6. running the code in production
11:31:52 <tdammers> kuribas: that's one of those more fine-grained distinctions that don't matter much in practice
11:33:12 drbean joins (~drbean@TC210-63-209-21.static.apol.com.tw)
11:33:19 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
11:34:40 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
11:35:24 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:35:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:36:18 <kuribas> tdammers: in our case, we even remotely connect to the production repl :-)
11:36:25 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
11:36:26 <dminuoso> gentauro: Speaking of "langauges with `casting`", should we have a good and long talk about Haskell and it's ubiquitous realToFrac and fromIntegral functions? :>
11:36:48 <dminuoso> Realistically, Haskell is not a dime better than C with regards to casting of integral types.
11:37:25 <dminuoso> It's some worse in fact, because you're constantly annoyed to insert realToFrac and fromIntegral everywhere, which add no value to the quality of code.
11:37:34 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
11:38:42 × xff0x_ quits (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5) (Ping timeout: 260 seconds)
11:40:18 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
11:40:18 <kuribas> can unsafeCoerce crash a production server?
11:40:26 Varis joins (~Tadas@unaffiliated/varis)
11:41:30 xff0x_ joins (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5)
11:42:00 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
11:42:02 <kuribas> or will it crash a single thread?
11:42:24 <dminuoso> It has the capability of crashing the entire process
11:43:00 <solonarv> you can probably achieve a segfault using unsafeCoerce
11:44:04 <tdammers> s/probably/definitely/ -- been there, done that
11:44:28 <solonarv> I only hedged because I couldn't provide/remember a concrete example ;)
11:44:53 <sshine> 1 is a decent probability.
11:44:53 <dminuoso> % unsafeCoerce 10 :: String
11:44:54 <yahb> dminuoso: ; <interactive>:34:20: error:; Not in scope: type constructor or class `String'; Perhaps you meant one of these: `IsString' (imported from GHC.Exts), `Strict' (imported from Control.Lens), `Strict' (imported from Language.Haskell.TH)
11:45:01 <dminuoso> err
11:45:27 <dminuoso> % unsafeCoerce 10 :: String
11:45:27 <yahb> dminuoso: ""
11:45:31 <dminuoso> Okay what?
11:45:46 <dminuoso> % unsafeCoerce 10 :: IO String
11:45:47 <yahb> dminuoso: "[Segmentation fault]
11:45:56 <dminuoso> Much better. ^- kuribas
11:46:01 <kuribas> % unsafeCoerce (10 :: Int) :: String
11:46:02 <yahb> kuribas: ""
11:46:04 <solonarv> ADT-to-ADT is usually (always?) safe, both Integer (which the 10 defaults to) and String are ADTs
11:46:25 <dminuoso> solonarv: I dont think it's safe.
11:47:08 <dminuoso> solonarv: Also, IO is also just an ADT.
11:47:08 <kuribas> 10 must be compatible with String...
11:47:17 <kuribas> maybe some magic bit
11:47:27 <solonarv> no, IO is a newtype over a function. That makes it not an ADT (in terms of representation)
11:47:34 <dminuoso> Ah, I see what you mean
11:48:16 <solonarv> data Int = I# Int# ; so (10 :: Int) is represented by a tag saying "first constructor" followed by the actual value
11:49:01 <kuribas> tdammers: gauche scheme raises an error when accessing an unbound slot
11:49:03 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
11:49:03 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
11:49:32 <solonarv> data [] a = [] | a : [] a ; if you try to interpret that (10 :: Int) value as a [b] , you look at that tag, which tells you "first constructor"; the first constructor is [], which has no fields, so you don't look any further and everything "works"
11:49:44 <dminuoso> solonarv: Here's why your theory is wrong:
11:50:25 <dminuoso> % unsafeCoerce () :: NE.NonEmpty Char -- solonarv
11:50:26 <yahb> dminuoso: ; <interactive>:1:20: error:; Not in scope: type constructor or class `NE.NonEmpty'; No module named `NE' is imported.
11:50:35 <dminuoso> % import qualified Data.List.NonEmpty as NE
11:50:35 <yahb> dminuoso:
11:50:37 <dminuoso> % unsafeCoerce () :: NE.NonEmpty Char -- solonarv
11:50:37 <yahb> dminuoso: [Segmentation fault]
11:50:54 <solonarv> I don't see where this contradicts my theory
11:51:41 <solonarv> you try to interpret () as a NonEmpty Char, you see "first constructor", and you go on to look at the next few memory addresses where you expect that constructor's two fields; but instead there's garbage
11:51:47 <kuribas> how does yahb detect segmentation fault?
11:52:09 <solonarv> kuribas: ptrace, I think
11:52:16 nfd joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
11:52:27 <dminuoso> 12:46:04 solonarv | ADT-to-ADT is usually (always?) safe, both Integer (which the 10 defaults to) and String are ADTs
11:52:31 <dminuoso> Im just saying its not always safe
11:52:42 <solonarv> ah yes, then I agree
11:53:32 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 258 seconds)
11:53:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
11:55:57 <merijn> kuribas: You can just install a signal handler for SIGSEGV :p
11:56:25 <kuribas> merijn: can you resume from that?
11:56:38 <merijn> Sure, why not?
11:57:12 <merijn> For one, you process may have many threads besides the one the segfaulted
11:58:01 <merijn> kuribas: Only SIGKILL and SIGSTOP can't be overridden with a signal handler
11:58:08 <kuribas> right
11:58:09 <nfd> mind you, in a single-thread application, exiting your sigsegv handler will promptly replay the same effect that caused the last segfault, so
11:59:09 <nfd> second of all, i don't know what sane actions you can take in that handler other than "violently explode but write a little note on the way out"
11:59:24 <dminuoso> nfd: A lot, actually
11:59:28 <merijn> nfd: It Depends (TM)
11:59:41 <dminuoso> nfd: This trick is used to implement high performance speculative JIT exit points with.
12:00:11 <nfd> i mean, It Depends, but you're doing some really weird systems hacking s.t. you wouldn't need this discussion
12:00:18 <dminuoso> When Java HotSpot does a speculative optimization, it speculatively constant folds (quite deep), and prepends a read to a special page. When the speculative optimization is invalidated, read permissions for that page are taken back
12:00:26 <dminuoso> Triggering a SIGSEGV
12:00:41 <nfd> common application dev puts sigsegv clearly in the category of "the program is wrong"
12:00:51 <dminuoso> So the sigsegv handler of HotSpot then undoes the optimization, fixes the read permission, and resumes.
12:01:15 <dminuoso> (The benefits of this, is that it plays nicely with branch predictors in the CPU)
12:01:39 <tdammers> wow, our craft is absolutely terrible
12:01:40 <dminuoso> as opposed to flipping a bit in memory and doing a conditional jnz on it
12:02:20 <nfd> hotspot is a bizarre pile of beauty in horrors, and i know this quite well, as someone who has spent weeks of my life minmaxing its gc
12:02:43 <merijn> tdammers: tbh, I disagree with that being terrible
12:02:57 <nfd> it's not Terrible, it's Systems
12:03:04 <merijn> tdammers: That's just "using hardware features that currently don't have nicely provided interfaces"
12:03:10 <nfd> regrettably our code has to run on actual computers
12:03:23 <dminuoso> nfd: Switch jobs and become a mathematician
12:03:27 <dminuoso> You never have to worry about computability again.
12:03:28 <tdammers> merijn: the terrible part is that they don't have nicely provided interfaces to begin with
12:03:30 <merijn> tdammers: The fuck do I have MMU and virtual addresses for if people are going to whine when I use them >.>
12:04:02 <merijn> Same reason GHC programs take 1 TB according to top/linux's dumb memory measuring >.>
12:04:13 <tdammers> yeah, that's terrible too
12:04:34 <nfd> dminuoso: /me laughs in von neumann/godel/hilbert/....
12:04:36 <merijn> Linux/top are terrible, GHC's implementation is totally sensible and intended use of the interface
12:04:58 <merijn> It's just unfortunate some users blame GHC/haskell
12:05:19 <nfd> linux is terrible, but what're ya gonna use
12:05:26 <merijn> nfd: FreeBSD :p
12:05:27 <dminuoso> merijn will say freebsd in 1 second
12:05:29 <dminuoso> Oh darn
12:05:31 <dminuoso> He beat me to it
12:05:32 <nfd> plan9? bsd? hurd?
12:05:56 <dminuoso> Also, Windows is an option.
12:05:58 <merijn> FreeBSD isn't great on the desktop, but linux sucks there too so just use macOS or Windows :p
12:06:30 <dminuoso> merijn: to be honest, my quality of life has drastically improved since switching to a wiling window manager. That alone is what keeps me on Linux.
12:06:52 <merijn> dminuoso: I used FreeBSD with tiling window manager for ages, but I don't really miss it
12:07:06 <merijn> dminuoso: My main mode of operation is full screen terminal running tmux anyway :p
12:07:07 <nfd> i went to university talking to/making buddies with the grad students and faculty who hacked on netbsd a lot, haha
12:07:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:07:18 <kuribas> dminuoso: what's a willing window manager? :-)
12:07:34 <nfd> reliably i would talk to them about flaws in linux and how i was sure netbsd did it better, and they would wince and say there was a bug
12:08:47 <nfd> like, CLOCK_MONOTONIC in linux isn't actually that MONOTONIC, and netbsd has something actually monotonic, and i said that was great, and they said "yeah but it kinda panics the kernel actually"
12:09:11 <nfd> tiling window manager? yeah i think i use one of those on my phone
12:09:17 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
12:10:21 nineonine joins (~nineonine@50.216.62.2)
12:10:25 × flukiluke1 quits (~flukiluke@217.146.82.202) (Remote host closed the connection)
12:10:38 <nfd> (i actually use dwm on my phone)
12:11:01 <nfd> (works great)
12:12:14 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
12:13:58 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds)
12:14:02 × vs^ quits (vs@ip98-184-89-2.mc.at.cox.net) ()
12:14:09 × clog quits (~nef@bespin.org) (Ping timeout: 260 seconds)
12:15:08 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
12:17:29 <gentauro> does anybody know if the GHC binaries for windows are made with some GitLab CI/CD? If yes, link please :)
12:18:19 × rprije quits (~rprije@202.168.43.92) (Ping timeout: 246 seconds)
12:22:18 <opqdonut> https://gitlab.haskell.org/ghc/ghc/-/wikis/continuous-integration sounds like circleci
12:22:27 Sheilong joins (uid293653@gateway/web/irccloud.com/x-tihixihqvmmwogqg)
12:22:59 Tops21 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de)
12:23:41 <opqdonut> hmm looks like there are gitlab pipelines as well, https://gitlab.haskell.org/ghc/ghc/-/pipelines
12:23:49 <opqdonut> #ghc can tell you more probably...
12:24:41 Entertainment joins (~entertain@104.246.132.210)
12:25:35 × tzlil quits (~tzlil@unaffiliated/tzlil) (Read error: Connection reset by peer)
12:25:40 <gentauro> opqdonut: that table at the bottom doesn't look right
12:25:52 tzlil joins (~tzlil@unaffiliated/tzlil)
12:25:56 × Tops2 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
12:26:39 <opqdonut> yeah I have no idea what that wiki page is about, there's no circleci config in the main ghc repo (only appveyor and gitlab-ci)
12:27:25 × Entertainment quits (~entertain@104.246.132.210) (Client Quit)
12:27:38 <gentauro> join #ghc
12:28:47 Entertainment joins (~entertain@104.246.132.210)
12:28:50 Betelgeuse1 joins (~Betelgeus@185.204.1.185)
12:29:22 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:29:46 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
12:30:44 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
12:31:26 shad0w_ joins (~shad0w_@160.202.37.172)
12:34:10 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 258 seconds)
12:43:36 kkateq joins (1f11e846@ip1f11e846.dynamic.kabel-deutschland.de)
12:43:39 × shad0w_ quits (~shad0w_@160.202.37.172) (Read error: Connection reset by peer)
12:44:01 geekosaur joins (ac3a5304@172.58.83.4)
12:45:14 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
12:46:15 × _Cactus_ quits (~cactus@173.244.208.116) (Quit: Ex-Chat)
12:49:47 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
12:49:56 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
12:50:20 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:51:13 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:51:14 jmchael joins (~jmchael@81.174.205.210)
12:53:27 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
12:54:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds)
12:54:54 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 268 seconds)
12:55:14 <sshine> https://hackage.haskell.org/package/hedgehog-1.0.4/docs/Hedgehog.html#t:Command
12:55:30 <sshine> Hedgehog has so many features I don't know about.
12:57:59 hackage api-maker 0.1.0.0 - Package to make APIs https://hackage.haskell.org/package/api-maker-0.1.0.0 (schnecki)
13:00:18 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
13:04:28 Tario joins (~Tario@201.192.165.173)
13:10:10 ADG1089__ joins (~aditya@122.163.166.13)
13:10:36 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
13:13:47 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 265 seconds)
13:16:10 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
13:16:33 <siraben> How do I convert Text.ParserCombinators.Token into a parser?
13:16:39 <siraben> parse decimal "" is ill-typed
13:17:17 kostic_ joins (~kostic@51.194.80.91)
13:17:26 × olligobber quits (~olligobbe@unaffiliated/olligobber) (Remote host closed the connection)
13:21:09 <pavonia> siraben: You need to apply it to a token parser
13:21:28 <pavonia> see the example for makeTokenParser
13:24:09 Guest_2 joins (56b2cdc4@host86-178-205-196.range86-178.btcentralplus.com)
13:24:25 × Guest_2 quits (56b2cdc4@host86-178-205-196.range86-178.btcentralplus.com) (Remote host closed the connection)
13:25:18 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Remote host closed the connection)
13:26:49 × kkateq quits (1f11e846@ip1f11e846.dynamic.kabel-deutschland.de) (Remote host closed the connection)
13:28:09 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
13:34:06 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
13:34:22 knupfer joins (~Thunderbi@200116b82c2bd800516fbdbd3eb5c414.dip.versatel-1u1.de)
13:35:17 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
13:37:58 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
13:40:33 fendor joins (~fendor@77.119.131.23.wireless.dyn.drei.com)
13:40:37 <sshine> why aren't there any LR(k) parser combinators? why are they all LL(k)?
13:41:15 <sshine> siraben, Text.ParserCombinators smells like Parsec's old namespace.
13:42:13 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
13:42:21 <sshine> siraben, did you see the example at the bottom of Text.Parsec.Token? https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Token.html#v:makeTokenParser
13:42:36 × ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection)
13:43:01 ADG1089__ joins (~aditya@122.163.166.13)
13:43:49 <merijn> sshine: That's a...flawed question
13:44:31 <siraben> pavonia: sshine: I did, so looks like I need to use the empty language def
13:44:38 <merijn> sshine: LR(k)/LL(k) refer to the lookahead/recurssion parser generators can properly handle. But parser combinators aren't parser generators, they're more like DSLs/convenience libraries for writing recursive descent parsers
13:44:59 <merijn> sshine: And recursive descent parsers can handle unbounded lookahead/retry IFF you write them like that
13:45:15 × Kaiepi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
13:45:29 <merijn> sshine: Of course, actually using that unboundedness will get you terrible performance
13:45:35 Kaiepi joins (~Kaiepi@47.54.252.148)
13:46:51 <sshine> merijn, I'm asking, why aren't there parser combinators that construct LR(k) parsers? I understand that parser combinators are eDSLs. I don't understand why they can't be eDSLs over LR(k) parsers.
13:47:30 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
13:47:46 <sshine> so basically rather than have Happy as a stand-alone program with a separate compilation step, you could have an embedded DSL.
13:47:52 Kaiepi joins (~Kaiepi@47.54.252.148)
13:48:35 <merijn> sshine: You'd have to redo all the analysis every time you run the program to create the parser, though
13:49:25 × drbean quits (~drbean@TC210-63-209-21.static.apol.com.tw) (Ping timeout: 264 seconds)
13:49:26 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
13:49:47 <sshine> what if you did the analysis during compilation?
13:49:48 <merijn> By having happy indepedent you analyse the grammar once and then encode the resulting parser. If you wanna embed happy you'll end up either 1) doing the analysis in TH at compile time to only analyse once, or 2) pay the cost each time
13:50:04 <sshine> yes okay.
13:53:02 <dminuoso> sshine: Look at parsley perhaps, so libraries that do static analysis at TH time is doable
13:53:10 <dminuoso> https://github.com/J-mie6/ParsleyHaskell
13:53:21 <kuribas> is there a way to hide a phantom type parameter?
13:53:29 <kuribas> without an existential?
13:54:17 × borne quits (~fritjof@200116b864c6f800cebf0c02893372bd.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
13:54:28 <kuribas> I suppose I should make a new type without the parameter then...
13:56:49 <kuribas> ah wait, I already have a simpler type I can use :)
13:57:45 <kuribas> I guess newtype + coerce would be the generic answer
13:58:14 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
13:59:33 × ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection)
13:59:38 <dminuoso> That's the equivalent of `undefined` as a proof for type-level programming, isnt it? :)
13:59:48 <kuribas> yeah
14:00:11 <kuribas> coerce seems to circumvent type level safety (but not value level safety)
14:02:57 urodna joins (~urodna@unaffiliated/urodna)
14:03:16 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds)
14:04:14 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 260 seconds)
14:05:36 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds)
14:08:47 kam1 joins (~kam1@24.231.108.143)
14:09:13 <dminuoso> fsvo of "safety"
14:09:29 hackage hasbolt-extras 0.0.1.5 - Extras for hasbolt library https://hackage.haskell.org/package/hasbolt-extras-0.0.1.5 (ozzzzz)
14:09:29 <dminuoso> If the newtype guarantees some preconditions on the value, then a coerce can break "value level safety" too
14:09:32 jlamothe joins (~jlamothe@198.251.55.207)
14:09:42 kostic_ joins (~kostic@51.194.80.91)
14:10:34 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
14:10:34 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
14:10:34 mouseghost joins (~draco@wikipedia/desperek)
14:14:13 <merijn> Preventing Coercible from working is pretty trivial, though
14:14:23 <merijn> So not really
14:14:29 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
14:14:48 Kaiepi joins (~Kaiepi@47.54.252.148)
14:14:49 <merijn> You can only coerce newtypes when their constructor is in scope and they're used in a role that allows it
14:15:09 <solonarv> coerce only works when the constructors of all newtypes involved in the coercion are in scope, and in that case you were already able to dig in and break the invariants
14:15:24 <merijn> solonarv: Too slow, n00b ;)
14:15:45 Rembane hands out swords
14:16:19 <solonarv> if a library exports 'newtype SortedList a = SortedList { getSortedList :: [a] }' (with the obvious-given-the-name invariant) there is no difference between 'SortedList [3,1,2]' and 'coerce [3,1,2]', really - the presence of 'coerce' doesn't allow you to do things you couldn't already do
14:18:46 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 268 seconds)
14:20:17 ulidtko|k joins (~ulidtko@194.54.80.38)
14:20:37 × ulidtko|kk quits (~ulidtko@194.54.80.38) (Read error: Connection reset by peer)
14:24:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
14:25:54 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection)
14:26:00 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38)
14:26:18 bitmapper joins (uid464869@gateway/web/irccloud.com/x-icrmchothviupllr)
14:30:13 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:30:36 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:31:09 nbloomf joins (~nbloomf@2600:1700:ad14:3020:e8a6:fffb:d62d:21f1)
14:32:11 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
14:32:20 Kaiepi joins (~Kaiepi@47.54.252.148)
14:35:34 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
14:36:12 × drewolson quits (~drewolson@64.227.24.16) (Quit: The Lounge - https://thelounge.chat)
14:36:24 drewolson joins (~drewolson@64.227.24.16)
14:37:26 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
14:39:38 × geekosaur quits (ac3a5304@172.58.83.4) (Remote host closed the connection)
14:41:08 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
14:41:49 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds)
14:42:01 arybczak joins (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c)
14:42:44 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 260 seconds)
14:44:52 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:e8a6:fffb:d62d:21f1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:46:11 coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl)
14:46:31 × hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
14:48:18 <ezzieyguywuf> hoooray, ghc 8.10 hit in gentoo today!
14:50:09 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:50:56 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
14:52:54 fendor doesn't know the context but happily takes a sword
14:55:32 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:55:46 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 268 seconds)
14:57:31 superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
14:57:59 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
15:02:02 <superstar64> does `-XStrict` affect the prelude?
15:04:01 <superstar64> or does it stay lazy?
15:04:15 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
15:04:37 × _ashbreeze_ quits (~mark@184-157-32-85.dyn.centurytel.net) (Ping timeout: 260 seconds)
15:05:17 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
15:05:51 <solonarv> any extension generally only affects a module if it's enabled when compiling that module, and this is certainly true for Strict
15:07:17 <solonarv> it's purely a syntax extension (inserts a number of '!'s all over the modules it's enabled in, basically)
15:07:32 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
15:07:36 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds)
15:09:08 hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
15:09:51 × p3n quits (~p3n@217.198.124.246) (Remote host closed the connection)
15:11:43 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 258 seconds)
15:11:44 kostic_ joins (~kostic@51.194.80.91)
15:12:34 christo joins (~chris@81.96.113.213)
15:14:30 jespada joins (~jespada@90.254.245.49)
15:18:51 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
15:19:08 Kaiepi joins (~Kaiepi@47.54.252.148)
15:22:24 <wz1000> Is there anything like LogicT, but with the ability to dynamically reorder/reprioritise the computation?
15:22:45 fendor_ joins (~fendor@178.165.130.57.wireless.dyn.drei.com)
15:23:14 <wz1000> at some point, I want to be able to set the priority of the current branch, so that it is re-scheduled after all branches with a higher priority
15:23:55 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:25:13 × fendor quits (~fendor@77.119.131.23.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
15:25:13 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
15:25:17 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
15:25:28 Kaiepi joins (~Kaiepi@47.54.252.148)
15:27:29 GRemLin joins (~GRemLin@45.32.110.226)
15:28:00 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
15:29:36 × toorevitimirp quits (~tooreviti@117.182.182.252) (Ping timeout: 240 seconds)
15:31:20 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
15:32:09 × al3x27 quits (~plovs@85.254.75.83) (Ping timeout: 268 seconds)
15:32:51 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
15:33:49 Forlorn joins (~Forlorn@unaffiliated/forlorn)
15:33:52 <Forlorn> "The purpose of the state monad is to hide the passing of state between _functions." -- but doesn't that just make it as abstract and more _confusing and unreadable just like when working with OOP? And also less _explicit?
15:34:02 × hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
15:34:10 <Forlorn> Is5
15:35:13 <Forlorn> isn't it better to make things more clear and where you can easily interpret and grasp something and where certainty stands despitte all possible doubt?
15:35:26 fendor_ is now known as fendor
15:35:31 <Forlorn> despite*
15:35:52 <merijn> Yes, no, maybe, it depends
15:37:42 <merijn> There are no "one size fits all" solutions
15:38:03 <merijn> The State monad can both make things easier or harder, depending on what you're doing with it
15:38:09 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
15:38:23 <Forlorn> merijn, When would it make things "easier".
15:38:30 <Forlorn> ?
15:39:40 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
15:41:53 <solonarv> easier, because you don't have to explicitly mention the state all the time, and since you're not handling the state explicitly, you can't as easily accidentally keep working on an old state
15:42:11 <merijn> If there's some state that needs to be shared between a bunch of deeply nested structures or if there's no other convenient way to propagate the state
15:43:00 <solonarv> I've also found it very convenient combined with lens's state-y operators, for writing VMs and such
15:44:41 <AWizzArd> Are class MyClass a b c | a b -> c where and class MyClass a b c | b a -> c where identical? Or does the order before -> matter?
15:45:43 <merijn> AWizzArd: I *think* they should be identical
15:45:53 <solonarv> half-made-up example: interpret (Add src dest) = do Just x <- preuse (vmMem . ix sx); vmMem . ix dest += x; vmPC += 1
15:45:55 <merijn> AWizzArd: Since they mean that 'a' and 'b' together uniquely determine C
15:45:56 <AWizzArd> I would think so too.
15:46:04 <AWizzArd> yeah, my interpretation
15:46:14 <AWizzArd> merijn: thx
15:46:44 <solonarv> I can imagine that the order might come into play if you are doing weird things with INCOHERENT instances, but apart from that I don t think it should matter
15:47:09 <merijn> At that point you've got yourself to blame ;)
15:47:35 <solonarv> oh for sure :D
15:47:52 p-core joins (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz)
15:47:53 <solonarv> INCOHERENT also makes (A, B) and (B, A) not mean the same thing in constraints sometimes
15:48:23 <adamCS> Anyone know when the very awesome and amazing ghcup will add 8.10.3? I did something very dumb--upgraded to Big Sur on my laptop--and I think 8.10.3 will make everything work again. I tried to install by hand from the binary distribution but all the OS security stuff seems to get in the way even if I click "Allow" on everything. So I think I need to wait for ghcup...
15:49:21 <merijn> adamCS: There's a magical command you need to run, I think? ping carter (I think he knew?)
15:50:35 <adamCS> merijn: Like, there's a way to do it without waiting for it to just magically show up in the list? I assumed it was some file it pulls on startup and that one needed updating...
15:51:21 <merijn> adamCS: I meant fixing the bindist to work
15:51:41 <merijn> It has to do with notarisation, iirc
15:52:04 <carter> theres an xattr command
15:52:06 <merijn> But I'm a smart cookie, so I don't upgrade to Big Sur yet ;)
15:52:10 <adamCS> merijn: Oh. That'd be useful as well.
15:52:11 <carter> for removing foreign
15:52:17 <adamCS> merijn: No need to rub it in!
15:52:19 <carter> man xattr
15:52:24 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
15:53:41 <carter> xattr -c ./ghc*
15:55:00 <adamCS> carter: Thanks! Still gets stuck on ghc-pkg
15:55:17 <carter> you didnt recurisvely do it?
15:55:28 <carter> adamCS: you need to do the entire zip
15:55:36 <carter> and then unpack
15:55:53 <adamCS> got it. I'll try that!
15:56:16 kam1 joins (~kam1@24.231.108.143)
15:56:48 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds)
15:56:53 × nemron quits (~nemron@2a02:810b:c7bf:fdb8:61d2:5f6c:bc78:4d37) (Quit: Textual IRC Client: www.textualapp.com)
15:57:21 × Graypup_ quits (Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in)
15:59:08 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
15:59:14 <adamCS> carter, merijn: It's working. Thank you!
15:59:16 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
15:59:21 Graypup_ joins (Graypup@lfcode.ca)
16:00:10 vfaronov joins (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
16:01:12 <merijn> \o/
16:01:21 Rudd0 joins (~Rudd0@185.189.115.103)
16:01:25 mastarija joins (~mastarija@93-138-112-136.adsl.net.t-com.hr)
16:02:01 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
16:03:42 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:03:54 <adamCS> and now the great rebuild of all the libraries commences...
16:04:14 × qwsd quits (~tema@217.118.92.215) (Ping timeout: 272 seconds)
16:04:46 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
16:07:26 dandart1 joins (~Thunderbi@home.dandart.co.uk)
16:07:54 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 260 seconds)
16:07:54 dandart1 is now known as dandart
16:09:21 <kuribas> :t lift
16:09:23 <lambdabot> (MonadTrans t, Monad m) => m a -> t m a
16:09:29 <kuribas> what does lift require Monad m?
16:09:37 <kuribas> why?
16:10:07 <kuribas> liftA2 doesn't...
16:10:30 <merijn> How are those two related?
16:10:43 <kuribas> ok, maybe not :)
16:11:45 orion joins (~orion@c-76-19-238-5.hsd1.nh.comcast.net)
16:11:45 × orion quits (~orion@c-76-19-238-5.hsd1.nh.comcast.net) (Changing host)
16:11:45 orion joins (~orion@unaffiliated/orion)
16:11:59 <kuribas> lift in the lift type looks arbitrary...
16:12:47 <kuribas> why not put the Monad constraint in the instance?
16:13:35 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
16:14:05 <orion> In theory, if GHC is configured to output LLVM, would I be able to compile applications on and for an IBM POWER9 processor?
16:14:17 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:16:09 <kuribas> IMO ReaderT could have a Monoid instance as well
16:18:04 × Betelgeuse1 quits (~Betelgeus@185.204.1.185) (Remote host closed the connection)
16:18:33 <kuribas> orion: it's not that easy
16:18:56 <kuribas> orion: ghc has a large runtime as well
16:19:09 <orion> The runtime is written in C though, yes?
16:19:47 <kuribas> I think so...
16:21:24 bitmagie joins (~Thunderbi@200116b806b59b006c2fdba00c21d3bd.dip.versatel-1u1.de)
16:21:34 <merijn> orion: Part of the runtime is
16:21:45 <merijn> orion: Also "probably not"
16:24:08 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
16:24:31 al3x27 joins (~plovs@85.254.75.83)
16:25:08 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:25:43 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
16:25:57 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
16:26:34 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
16:30:01 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 265 seconds)
16:30:49 × mastarija quits (~mastarija@93-138-112-136.adsl.net.t-com.hr) (Quit: Leaving)
16:32:35 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
16:32:40 UltimateNate joins (~UltimateN@s91904426.blix.com)
16:32:46 Kaiepi joins (~Kaiepi@47.54.252.148)
16:34:52 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
16:37:16 hekkaidekapus] joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
16:38:09 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
16:38:23 × hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:39:21 <monochrom> "written in C" has little information. The hardest part is "written for the OS".
16:39:57 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:40:22 superstar64 parts (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) ()
16:42:16 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds)
16:42:19 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 260 seconds)
16:43:27 dandart joins (~Thunderbi@home.dandart.co.uk)
16:43:28 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds)
16:44:02 <orion> merijn: Thanks.
16:47:51 danso joins (~dan@69-165-210-185.cable.teksavvy.com)
16:49:50 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
16:51:07 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:51:31 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:51:58 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
16:52:05 × xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
16:52:15 iekfkk joins (~username@117.200.6.222)
16:52:17 <iekfkk> hi
16:52:32 × orzo quits (joe@lasker.childrenofmay.org) (Ping timeout: 258 seconds)
16:52:34 <iekfkk> do we need OOP or structs ... as most languages have them.
16:52:42 orzo joins (joe@lasker.childrenofmay.org)
16:52:49 × duairc quits (~shane@ana.rch.ist) (Ping timeout: 260 seconds)
16:53:03 <Rembane> iekfkk: Hi. No.
16:53:04 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
16:53:06 <monochrom> structs yes, OOP no.
16:53:07 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
16:53:23 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
16:54:04 <iekfkk> why would haskell has structs
16:54:17 <merijn> Why wouldn't it?
16:54:23 <iekfkk> are they even needed for a purely functional approach
16:54:30 duairc joins (~shane@ana.rch.ist)
16:54:33 <merijn> iekfkk: Define "purely functional"
16:54:58 <Vulfe_> a struct is essentially the same thing as a product type
16:55:06 <iekfkk> i mean just using functions that accept input and return output, avoiding structs
16:55:23 <merijn> Vulfe_: That's not gonna be super helpful for someone asking this question :)
16:55:32 <Vulfe_> merijn: fair
16:55:37 <merijn> iekfkk: Why is that input/output not allowed to be a struct?
16:55:42 <monochrom> The question itself was not helpful in the first place.
16:55:51 <iekfkk> struct has data members and is not a function, can't functions do that functionality thereby making struct superficial
16:55:56 <monochrom> Or rather, based on an unhelpful premise.
16:56:01 <iekfkk> because i don't like struct
16:56:07 <merijn> iekfkk: Also, "just using functions" is not how anyone in this channel would define "purely functional"
16:56:12 <Vulfe_> then think about records as product types instead
16:56:16 <monochrom> My output is a tuple, so I need a product type.
16:56:18 <merijn> iekfkk: Not everything is a function in functional programming
16:56:19 <Vulfe_> because they are that
16:56:34 <Vulfe_> a product type is determined by its projection operators
16:56:37 <merijn> iekfkk: See also: http://conal.net/blog/posts/everything-is-a-function-in-haskell
16:56:38 <Vulfe_> it doesn't really get more functional than that
16:56:40 × bitmagie quits (~Thunderbi@200116b806b59b006c2fdba00c21d3bd.dip.versatel-1u1.de) (Quit: bitmagie)
16:56:59 Kaeipi joins (~Kaiepi@47.54.252.148)
16:57:36 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
16:57:47 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds)
16:58:05 <monochrom> Sometimes I need an existential type. An existential type is most useful when it is the existential quantifier wrapping over a product type.
16:58:31 <monochrom> If there is no product type, then existential quantification is useless.
16:58:33 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
16:59:32 <monochrom> If you don't like tuples, you don't have to use them. Go on with your simplistic Int->Bool programming.
17:00:25 geekosaur joins (42d52137@66.213.33.55)
17:01:53 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
17:03:16 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:06:49 × lyxia quits (~lyxia@poisson.chat) (Ping timeout: 264 seconds)
17:08:13 <solonarv> iekfkk: yes, you can forgo all data types ("structs") and work with functions exclusively. But this is very inconvenient to actually accomplish practical tasks with, and adding data types to a theory isn't all that complicated, so Haskell has them (has had them from the very start, even its direct ancestors had them)
17:08:39 <iekfkk> no i want data types but not structs
17:08:46 <iekfkk> reminds me of OOP
17:08:53 <solonarv> please explain what you mean by "struct"
17:09:03 <iekfkk> in julia we have them
17:09:42 <solonarv> please also explain what you mean by "data type"
17:10:08 kritzefitz joins (~kritzefit@212.86.56.80)
17:10:22 lyxia joins (~lyxia@poisson.chat)
17:10:23 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
17:10:24 <travv0> structs have nothing to do with OOP
17:10:32 <solonarv> from where I'm standing, "struct" is just the word C and C-family languages use for product types (i.e. a subset of data types) that have named fields
17:10:42 <solonarv> C isn't even object-oriented!
17:10:51 <iekfkk> struct Employee \n name::String address:String id:Int end \n john = Employee("john","nyc",8283) john.address john.name ... you get it that struct
17:11:01 <merijn> solonarv: In C++ struct is just another word for "class" (with slightly different rules for visibility)
17:11:23 <iekfkk> solonarv: yes fieldnames they are called in julia
17:11:48 <solonarv> merijn: yeah, I took a C++ class last semester :p
17:11:49 <iekfkk> but do we even need them in haskell?
17:12:08 <solonarv> "need"? no, all you *need* is lambda
17:12:16 <solonarv> or machine code if that's your preference
17:13:10 <merijn> You don't even need computers!
17:13:16 <geekosaur> this is a strange discussion
17:13:19 <merijn> Free yourself, sheople!
17:13:37 <merijn> geekosaur: Well, mostly a very confused one, I think :)
17:13:49 <solonarv> and if that's what you mean by "struct", then yes, Haskell has them - although they're called "records" here. You can't to john.name , currently, but there's a somewhat controversial GHC extension adding that syntax which I think is set to release sometime soon
17:15:22 kam1 joins (~kam1@24.231.108.143)
17:16:20 <Vulfe_> if you don't like OOP then you can learn lenses and then feel superior about it
17:16:56 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
17:17:54 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:20:05 × coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
17:20:36 <solonarv> if you don't like OOP then remember that 'thing.fieldName' is not what OOP is about
17:20:48 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
17:22:43 <glguy> I like having choices
17:23:05 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:23:43 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
17:23:58 jamm joins (~jamm@unaffiliated/jamm)
17:24:21 plutoniix joins (~q@ppp-27-55-88-126.revip3.asianet.co.th)
17:27:26 <koz_> solonarv: It's not really all that soon. RDP missed 9.0, so it's 9.2 at the earliest.
17:28:34 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
17:32:44 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:8163:ba97:5d66:959b)
17:33:12 <solonarv> koz_: oh good, I won't have to see that blight for a few more months :p
17:33:27 <koz_> solonarv: A lot more months if anything.
17:35:57 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection)
17:36:14 <solonarv> every time I look at the various proposals and issues around records I get sad, I get the impression that the implementation is just sort of going in random directions and piling on ad-hoc features
17:37:13 × asheshambasta quits (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
17:40:59 Younder joins (~john@33.51-174-155.customer.lyse.net)
17:43:21 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
17:44:15 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
17:44:18 jonkri joins (~jonkri@pontarius/jon)
17:45:31 <kuribas> is a methodless typeclass a good replacement for a Type Family?
17:45:38 <jonkri> Hi! I'm trying to understand the Persistent answer here: <https://stackoverflow.com/questions/30062707/foreign-key-constraints-in-yesod-persistent>. Why doesn't "Foreign User authorfk author" work? I'm trying to specify a foreign key in this way, but a foreign key contraint is not being generated when Persistent migrates the database. Thanks!
17:46:20 <kuribas> I need: type family IsNullable where IsNullable NotNull a = a; IsNullable Nullable a = Maybe a
17:47:03 <dolio> That doesn't seem like a class.
17:47:25 × plutoniix quits (~q@ppp-27-55-88-126.revip3.asianet.co.th) (Ping timeout: 240 seconds)
17:47:58 <kuribas> dolio: class FromNullable nullable a b; instance FromNullable Nullable a (Maybe a); instance FromNullable NotNull a a
17:49:02 <kuribas> dolio: that may need a functional dependency
17:49:23 <kuribas> which isn't boring haskell either I suppose
17:50:25 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 240 seconds)
17:50:40 Wamanuz joins (~wamanuz@90-230-67-56-no84.tbcn.telia.com)
17:50:53 <solonarv> it does need a fundep, but why do you want a class?
17:51:09 <kuribas> so restrict to boring haskell...
17:51:13 <solonarv> (the fundep is 'a nullable -> b')
17:51:17 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
17:51:40 <dolio> This doesn't sound like a good reason.
17:52:02 <solonarv> I'm not convinced that fundeps are any more boring than type families, given that you can use FDs to replicate what TFs do - *including* all of the potential type astronaut wizardry
17:52:35 <kuribas> good point :)
17:53:30 <solonarv> your question demonstrates the issue perfectly: you have a type family, but you propose encoding it as a FD instead; this doesn't make it any less (potentially) confusing!
17:53:43 <kuribas> that's true
17:54:24 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
17:54:37 <dminuoso> Strange, usually people do it the other way around..
17:54:50 <dminuoso> Switch from fundems to tyfams because of better ergonomics in many cases...
17:55:26 <dolio> Yeah, the other thing is, the way that type families stuff works generally makes more sense than fundeps.
17:55:37 <koz_> Also, every time someone brings up 'boring Haskell' or anything similar, I want to punch a bear.
17:56:07 <koz_> Since it's at best extremely nebulous and at worst twists things into unrecognizable messes because of some kind of minimalism fetish.
17:56:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
17:56:21 <koz_> (wow, I'm starting to sound like monochrom)
17:56:22 <dolio> Like, fundeps work in a weird, "just inform inference" sort of way. They're missing behavior that an actual "functional dependency" would imply.
17:56:26 <Younder> koz_, Drink one instead, less damaging to you health ;)
17:56:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:56:43 <koz_> Younder: How does one _drink_ a bear? What next-level RUSSIA is this?
17:56:46 <kuribas> koz_: I like the boring haskell sentiment, just not religiously...
17:57:01 Wuzzy joins (~Wuzzy@p549c9519.dip0.t-ipconnect.de)
17:57:06 <dminuoso> And even if you do want the typeclass, chances are an associated tyfam is a bit nicer. :)
17:57:10 <dolio> E.G. if you have `FromNullable n a b` and `FomNullable n a c`, you cannot deduce that `b = c`.
17:58:20 <iekfkk> are records in the default lang without extension. why not remove them
17:58:29 <dminuoso> iekfkk: Why would we remove records?
17:58:32 <iekfkk> we dont' need those stinking records
17:58:40 <iekfkk> we will use functions
17:58:57 <dminuoso> iekfkk: There's a lot of associated benefits, from it.
17:59:06 <iekfkk> idk
17:59:14 <kuribas> koz_: if I got rid of the null checking, everything would be Maybe. Possibly but ugly.
17:59:27 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
17:59:29 <dminuoso> iekfkk: Imagine you have a sum type with 10 fields, and you want to construct it. Using record syntax, it's less likely you make a mistake. Same story with pattern matching.
17:59:29 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
17:59:39 <koz_> kuribas: Who said anything about getting rid of null checking? I wasn't objecting to that - just to 'boring Haskell'.
17:59:43 <koz_> But in any case, you do you.
17:59:58 plutoniix joins (~q@node-uln.pool-125-24.dynamic.totinternet.net)
18:00:30 <koz_> iekfkk: While we're at it, why not remove numbers too? We don't need those stinking numbers! We will use functions.
18:00:31 <dminuoso> iekfkk: An unrelated part, you get niceties like Generics working really well with that. Being able to derive FromJSON or ToJSON is rather comfortable.
18:00:58 <iekfkk> koz_: records are like classes
18:01:05 <kuribas> koz_: I find many haskell libraries overengineered.
18:01:18 <iekfkk> exactly overengineering
18:01:41 <koz_> kuribas: I do too. Doesn't change my mind about 'boring Haskell' or anything similar.
18:01:47 <merijn> This entire conversation feels rather pointless. Don't like records? Don't use them.
18:02:01 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 264 seconds)
18:02:04 <koz_> merijn: Pointless conversations? In _my_ #haskell? Never! :P
18:02:04 <phaazon> ^
18:02:09 <phaazon> I meant ^ merijn
18:02:24 <merijn> Don't like Haskell because it has records? Don't use Haskell. Problem solved.
18:02:47 <dolio> The important part is that 'boring haskell' isn't about what extensions you turn on. It's about how complicated the thing you write with those extensions is.
18:03:07 <kuribas> and avoiding those extensions unless really needed.
18:04:25 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
18:04:30 <dolio> Trying to do something complicated by mangling it into older extensions is going to make it more complicated, not less.
18:04:32 <iekfkk> https://stackoverflow.com/questions/5367167/haskell-record-syntax#5520803
18:04:51 <merijn> dolio: More generally, I think it's useful to think in terms of "power-to-weight" ratio of extensions and complexity rather than some weird binary zealotry
18:04:53 <iekfkk> if the early Haskellers had their way, we might've never had record syntax in the first place. The idea was apparently pushed onto Haskell by people who were already used to C-like syntax, and were more interested in getting C-like things into Haskell rather than doing things "the Haskell way".
18:06:00 <merijn> iekfkk: This line of "questioning" is neither interesting nor productive
18:06:04 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
18:06:48 <koz_> maerwald: Is ghcup gonna get an update due to the release of GHC 8.10.3?
18:06:51 <merijn> "Imagine if the foundations of English were entirely different!" <- nice thought experiment, not helpful when communicating with the British
18:08:48 <iekfkk> this raises serious discussion about practicality of struct to make an app and GUItk
18:09:12 × knupfer quits (~Thunderbi@200116b82c2bd800516fbdbd3eb5c414.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
18:09:20 <koz_> iekfkk: How are those things even _remotely_ related?
18:09:27 <iekfkk> making an app and lib that makes it guitk is all that matters to a software person
18:09:37 koz_ is a software person.
18:09:43 <iekfkk> koz_: because apps are everything
18:09:44 <Philonous> jonkri, I've tried the code locally, and it creates the foreign constraint just fine
18:09:48 <koz_> Neither of those things matters to me.
18:10:07 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:10:43 <koz_> Also, what's QualifiedDo all about?
18:10:54 <iekfkk> you say how is programming and gui software related, obvious what's the use of programming then if you can't make an app. Is your view different than mine? are you talking about not making an app?
18:11:03 <iekfkk> i just see programming as an app maker
18:12:01 <koz_> iekfkk: Your exact claim was, and I quote, 'this raises serious discussion about practicality of struct to make an app and GUItk'. I was inquiring how you go from 'struct' to 'making an app and GUItk'.
18:12:12 <koz_> Because the logical sequence there is not clear to me.
18:12:20 <Feuermagier> i have a treenode, that can either be a node or a leaf. how do I check the type of the object?
18:12:29 <koz_> Feuermagier: Pattern match?
18:12:33 <merijn> Feuermagier: Pattern matching
18:12:34 <iekfkk> because if we can make an app without struct, then the conclusion is struct is useless... that's my thinking
18:12:46 <koz_> iekfkk: I can make 'an app' without numbers too.
18:12:47 <geekosaur> ...
18:12:50 magma joins (~magma@host-79-22-138-220.retail.telecomitalia.it)
18:12:50 <koz_> Does that make _numbers_ useless?
18:12:52 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
18:13:02 <Feuermagier> can i just n == Node ?
18:13:12 <koz_> Feuermagier: No, because that doesn't make sense.
18:13:14 <merijn> koz_: *points at "no feeding"-sign*
18:13:17 <koz_> You want pattern matching.
18:13:38 <iekfkk> koz_: no not effectively not even remotely using assembly as it won't be portable, even with C it's a nightmare , and then someone said like a child we can make it with machinecode !!
18:13:56 <koz_> How does one summon mods? I think we broke the bot.
18:14:16 <Philonous> jonkri, The answer given in under the stack overflow question is just wrong, persistent has supported explicit Primary and Foreign keys for a long time
18:14:17 <iekfkk> koz_: but structs are not as fundamental to making apps as numbers are
18:14:59 <iekfkk> i'd be in deep sh** if there are no numbers, as they are prerequisite
18:15:26 <Feuermagier> isLeaf :: Tree a -> Boolean --- isLeaf t | t == Leaf = true
18:15:34 <Feuermagier> like this?
18:15:36 <geekosaur> no
18:15:40 <koz_> Feuermagier: No.
18:15:46 <jle`> Feuermagier: have you tried pattern matching?
18:16:04 <Feuermagier> is pattern mathing the thing with the | ?
18:16:09 <koz_> Feuermagier: Nope.
18:16:12 <jle`> not quite, that's a guard
18:16:13 <koz_> Those are called guards.
18:16:18 <jle`> isLeaf Leaf = True
18:16:23 <jle`> isLeaf (Node _ _ _) = False
18:16:23 <koz_> jle`: Something something soda?
18:16:25 <jonkri> Philonous: Thank you. :)
18:16:32 <jle`> or however many arguments Node has
18:16:33 <jonkri> I'd better go back and check my code again, then. :)
18:16:46 <Feuermagier> oh, | seemed like something that well... matches patterns
18:16:55 <jle`> Feuermagier: what pattern does it match?
18:17:02 <geekosaur> this is a pattern of constructors
18:17:12 <Feuermagier> the one i write in its check function
18:17:13 <geekosaur> not e.g. regex
18:17:24 <jle`> ah, you mean the boolean
18:17:37 <jle`> yeah, pattern here is "how you could construct a tree"
18:17:47 <jle`> data Tree a = Node a (Tree a) (Tree a) | Leaf
18:17:54 <merijn> jle`: Pro tip, record syntax works on non-records!
18:18:03 <jle`> so you can either match on the `Node _ _ _` pattern, or the `Leaf` pattern
18:18:10 <merijn> jle`: So you can write "isLeaf Node{} = False" to match regardless of argument count
18:18:14 <jle`> merijn: heh, wasn't sure that would be appropriate for a newcomer D:
18:18:50 <jle`> Feuermagier: so your code would be like: `isLeaf (Node a b c) = ..,; isLeaf Leaf = ...`
18:19:15 <merijn> Or, better yet, don't have an isLeaf at all and use pattern matching insead of using isLeaf ;)
18:21:54 <jonkri> Philonous: Could it be that my primary key is a UUID, or that my foreign key column is a Maybe value (that is, that the foreign key column is nullable)?
18:22:20 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
18:23:12 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
18:23:34 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
18:24:03 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
18:24:34 <jonkri> Philonous: Here's what the code looks like: <https://pastebin.com/quFCYqqQ>.
18:25:56 <Philonous> jonkri, UUID is definitely not the problem, I've used them as foreign references a lot
18:26:08 borne joins (~fritjof@200116b864c6f800c0a3d285e8e687f4.dip.versatel-1u1.de)
18:26:45 <jonkri> Philonous: Also, I'm using migrateAll for the Persistent migration.
18:27:30 hackage countable-inflections 0.3.0 - Countable Text Inflections https://hackage.haskell.org/package/countable-inflections-0.3.0 (tippenein)
18:27:39 <shapr> migrateAny
18:27:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
18:28:09 <Philonous> jonkri, I'm assuming "migrateAll" is the name you've given to the migration via mkMigrate?
18:29:07 dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce)
18:29:15 <merijn> jonkri: oof, optional foreign key? Not sure persistent supports that
18:29:26 <Philonous> Just ran that code, it seems it does
18:29:40 × hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
18:29:44 <merijn> jonkri: I would also recommend reconsidering using persistent, tbh :)
18:30:04 <Philonous> I think the problem might be the backend, which actually creates the migration, I just checked with sqlite
18:30:23 <merijn> The backend is responsible for migrations, yes
18:30:30 <merijn> It's also not particularly sophisticated
18:30:41 <Philonous> jonkri, No, come to think of it, I've used optional foreign keys in the past, can't be the problem either
18:30:43 <merijn> Certainly don't expect to be able to arbitrary migrations
18:31:06 <Philonous> Yeah, I've moved to manual migrations because I don't trust it
18:31:24 × Guest98308 quits (sid30093@gateway/web/irccloud.com/x-xltcvhbyjparvqrq) (Changing host)
18:31:25 Guest98308 joins (sid30093@musicbrainz/user/ocharles)
18:31:33 Guest98308 is now known as ocharles
18:31:36 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
18:31:39 <Philonous> Much better to have them in source control, you can always see what's going on instead of hoping that persistent guesses the right migration
18:32:03 <merijn> Philonous: I use semi-manual migrations piggy backing on persistent, but that's like 3.2k LOC right there just for migrations
18:32:30 × cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Remote host closed the connection)
18:32:32 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:32:38 <merijn> jonkri: Which database are you using?
18:32:49 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
18:33:00 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
18:33:23 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
18:34:04 <jonkri> I'm using https://hackage.haskell.org/package/esqueleto-3.4.0.1/docs/Database-Esqueleto.html#v:runMigration. migrateAll is defined through Esqueleto somehow.
18:34:13 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds)
18:34:22 <jonkri> merijn: I'm using PostgreSQL.
18:34:24 <merijn> ah, I don't use esqueleto, just persistent
18:34:31 christo joins (~chris@81.96.113.213)
18:34:43 <merijn> jonkri: Well, at least you got that going for you!
18:35:07 <merijn> jonkri: hmm, this migration is adding a foreign key to an existing database?
18:35:10 <Philonous> I'm pretty sure that's just a re-export from persistent
18:35:20 <jonkri> I have a feeling I'm doing something extremely silly here, and is totally wasting your time...!
18:35:57 <Philonous> "migrateAll" is defined by "mkMigration", it's the string parameter you pass to it
18:36:10 <Philonous> mkMigrate, I mean
18:36:15 <jonkri> The foreign key should be visible through \d in psql, right?
18:36:22 <Philonous> Yes
18:36:39 × thecoffemaker quits (~thecoffem@unaffiliated/thecoffemaker) (Ping timeout: 260 seconds)
18:37:30 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
18:37:50 avdb joins (~avdb@gateway/tor-sasl/avdb)
18:38:53 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
18:39:19 <jonkri> I'm realizing now that the version I'm using of Persistent is very old. 2.7.3.1. That's almost 3 years.
18:39:28 <jonkri> I should upgrade it and see if that solves the problem.
18:39:47 <Philonous> Can't hurt, but it should still work
18:40:02 <merijn> eh...
18:40:18 <merijn> I know at least 2 major updates to foreign key stuff in persistent in the past 2 years, so...
18:40:35 <Philonous> Oh ok then
18:40:37 <merijn> I wouldn't be so sure if he's using a 3 year old version and you are not :p
18:40:45 × Wamanuz quits (~wamanuz@90-230-67-56-no84.tbcn.telia.com) (Remote host closed the connection)
18:41:05 <jonkri> merijn: Interesting! Why did you think I should reconsider Persistent, by the way? Was that just for the migrations, or in general?
18:41:10 Wamanuz joins (~wamanuz@90-230-67-56-no84.tbcn.telia.com)
18:42:34 <merijn> jonkri: In general. It seems like such a nice and convenient way to write your schema. No messing with SQL and setup, yay! But I've basically built my own entire migration and query logic on top of it because it didn't expose all the details I needed (not to mention a number of PRs to persistent)
18:42:42 hiroaki joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
18:42:56 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds)
18:43:22 <merijn> jonkri: And having looked at the current API design I find it *incredibly* hard to use properly, there's a number of exposed functions/features that can leak resources and using them without leaking is non-obvious
18:44:46 <jonkri> merijn: I see! Thanks for the info. :)
18:45:04 <solonarv> koz_: QualifiedDo is "like RebindableSyntax, but only for that one 'do' block" - I haven't looked into it in great detail but it seems like a very nice extension to me
18:45:24 <merijn> jonkri: I'd probably use sqlite-simple and postgres-simple directly in the future
18:45:43 <merijn> jonkri: But I've got too much code to be willing to rewrite it now >.>
18:45:47 <Philonous> Also no joins, unless you use esqueleto, which is pretty good for what it does, but then you're writing SQL in Haskell, and it's not such a great fit. So sometimes you need to drop down to SQL anyway
18:46:03 <merijn> Also, SQL is just pretty good
18:46:03 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
18:46:09 <kuribas> jonkri, merijn I may find some time this holiday to port my library to hdbc
18:46:29 <merijn> The sooner you embrace the love of SQL, the better! :p
18:46:34 <kuribas> the typed layer looks a bit like esqueleto, but cleaner :)
18:46:44 <kuribas> merijn: my library is just SQL btw
18:46:45 knupfer joins (~Thunderbi@i5E86B42D.versanet.de)
18:46:49 <kuribas> a thin layer above it
18:47:00 <merijn> kuribas: Eh, hdbc (I've heard) has pretty abysmal performance :)
18:47:10 <kuribas> merijn: ah :(
18:47:15 <kuribas> what should I use then?
18:47:26 juuandyy joins (~juuandyy@90.166.144.65)
18:47:32 <Philonous> I've been fiddling about with code that automatically batches requests a la Haxl, but directly on top of persistent, so less futzing about.
18:48:07 <merijn> kuribas: In the sense of a general backend? I don't think one really exists?
18:48:13 <Philonous> Which means in common cases you can avoid n+1 queries without having to write custom joins
18:48:41 <kuribas> merijn: I have currently mysql, which according to these channels only our company uses :)
18:48:54 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 272 seconds)
18:49:03 <kuribas> Philonous: for generic SQL?
18:49:36 <Philonous> Anything that esqueleto can target, at this point
18:49:44 brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net)
18:50:33 <kuribas> open source?
18:50:37 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 264 seconds)
18:51:05 avdb joins (~avdb@gateway/tor-sasl/avdb)
18:51:06 justan0theruser joins (~justanoth@unaffiliated/justanotheruser)
18:52:55 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
18:53:13 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
18:53:49 <kuribas> Philonous: I am writing a graphql server based on SQL rewriting
18:54:18 <kuribas> at least, a graphql server library that would support it.
18:54:36 <Philonous> It's not realeased anywhere, there's a few problems I need to look into more.
18:54:53 <kuribas> as the graphql seems to follow a less flexible imperative model, and morpheus is all TH magick.
18:55:35 AlexanderEliseev joins (b0c3cefe@176.195.206.254)
18:57:12 × AlexanderEliseev quits (b0c3cefe@176.195.206.254) (Remote host closed the connection)
18:57:21 <kuribas> merijn: maybe better, I document my library better, post it on reddit, and hope someone else ports it to postgresql :-)
19:00:00 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
19:00:59 hackage tasty-silver 3.2.1 - A fancy test runner, including support for golden tests. https://hackage.haskell.org/package/tasty-silver-3.2.1 (PhilippHausmann)
19:01:27 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
19:01:38 × Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
19:02:04 Mikagami joins (~MOSCOS@122.54.107.175)
19:02:58 EdFletcher parts (~EdFletche@unaffiliated/edfletchert137) ("Leaving")
19:03:03 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
19:03:25 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
19:03:33 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:01 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
19:06:49 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
19:09:05 × alx741 quits (~alx741@186.178.110.239) (Quit: alx741)
19:09:23 alx741 joins (~alx741@186.178.110.239)
19:14:47 ADG1089__ joins (~aditya@223.235.77.1)
19:15:13 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 264 seconds)
19:15:41 bisickcor joins (~username@117.200.10.75)
19:15:42 Cthalupa joins (~cthulhu@47.186.47.75)
19:15:59 hackage graphula 2.0.0.2 - A declarative library for describing dependencies between data https://hackage.haskell.org/package/graphula-2.0.0.2 (PatrickBrisbin)
19:17:08 jathan joins (~jathan@69.61.93.38)
19:18:16 × iekfkk quits (~username@117.200.6.222) (Ping timeout: 240 seconds)
19:21:18 joehillen parts (joehillen@unaffiliated/joehillen) ()
19:21:39 geekosaur joins (42d52137@66.213.33.55)
19:22:48 pipi joins (cab83936@202.184.57.54)
19:24:03 × pipi quits (cab83936@202.184.57.54) (Remote host closed the connection)
19:24:21 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
19:25:52 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
19:30:08 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.7.1)
19:31:21 Merfont joins (~Kaiepi@47.54.252.148)
19:31:24 <dsal> Is there an annotation I can use to tell GHC that a pattern, while incomplete, is still correct/total/
19:31:26 × Kaeipi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
19:32:52 <dsal> Currently sledging in a `{-# OPTIONS_GHC -Wno-incomplete-patterns #-}`, but it'd be nice to be more local.
19:35:01 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds)
19:35:13 <xerox_> dsal: I have had the same question
19:36:05 <dsal> Surely it must exist. I'd rather litter my code with annotations that it's correct than add pattern captures and cases for things that are impossible and I have to respond with error or something anyway.
19:36:30 <merijn> dsal: Something more local would be "foo _ = error "can't happen""
19:37:10 <xerox_> that's exactly the line you feel worst about adding :D
19:37:23 <dsal> Yeah, I have one of those. I guess satisfying the compiler and providing a better error message when impossible happens at the same time is probably fine.
19:40:30 hackage cherry-core-alpha 0.2.0.0 - The core library for Cherry Haskell. https://hackage.haskell.org/package/cherry-core-alpha-0.2.0.0 (terezasokol)
19:40:55 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
19:42:10 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
19:42:27 <geekosaur> not the most self-descriptive of packages
19:43:15 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
19:44:00 <dsal> cherry core sounds like the pits
19:44:44 kritzefitz joins (~kritzefit@212.86.56.80)
19:47:03 <cohn> xD
19:47:24 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
19:47:25 texasmyn_ joins (~texasmyns@23.82.14.34)
19:48:05 × knupfer quits (~Thunderbi@i5E86B42D.versanet.de) (Ping timeout: 240 seconds)
19:48:10 xiinotulp joins (~q@node-uov.pool-125-24.dynamic.totinternet.net)
19:49:37 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
19:50:18 × texasmynsted quits (~texasmyns@185.232.22.12) (Ping timeout: 256 seconds)
19:51:27 × plutoniix quits (~q@node-uln.pool-125-24.dynamic.totinternet.net) (Ping timeout: 256 seconds)
19:52:52 × StoneToad quits (~StoneToad@104-192-232-50.ppp.storm.ca) (Ping timeout: 272 seconds)
19:52:52 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
19:53:27 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
19:53:30 StoneToad joins (~StoneToad@104-192-232-50.ppp.storm.ca)
19:53:51 <Philonous> dsal, COMPLETE pragmas work for that
19:54:38 <dsal> Philonous: Yeah, that's what I was looking for. I was searching for "total" and similar.
19:54:39 × dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 272 seconds)
19:54:58 × ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection)
19:55:09 <Philonous> It's not necessarily what you want, though, since it's sort of "global"
19:55:22 ADG1089__ joins (~aditya@223.235.77.1)
19:55:41 <Philonous> But if there's a specific set of constructors or pattern synonyms that you want considered complete it's what you're looking for
19:56:29 <dsal> Yeah, it looks like most options are worse than just "error with a good reason this was impossible
19:56:30 <dsal> "
19:57:23 × ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection)
19:57:45 ADG1089__ joins (~aditya@223.235.77.1)
19:58:02 <Philonous> I think {-# COMPLETE" #-} is mostly useful for pattern synonyms since they are opaque to the pattern match checker, but maybe some clever use could get you there
19:58:27 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 272 seconds)
19:59:18 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
20:00:56 × ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection)
20:01:18 ADG1089__ joins (~aditya@223.235.77.1)
20:02:36 × juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 240 seconds)
20:03:21 <fuzzypixelz> when I'm writing haskell I often end up with functions like:
20:03:28 <fuzzypixelz> > f =map (bimap unwords (unwords . take 2) . splitAt 1 . words) . splitOn "," . unwords . drop 4 . words
20:03:30 <lambdabot> <hint>:1:3: error: <hint>:1:3: error: parse error on input ‘=’
20:04:11 <fuzzypixelz> > map (bimap unwords (unwords . take 2) . splitAt 1 . words) . splitOn "," . unwords . drop 4 . words
20:04:13 <lambdabot> <[Char] -> [([Char],[Char])]>
20:04:31 <fuzzypixelz> Then I have no idea how to simplify them
20:04:55 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
20:05:16 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
20:05:52 nineonine joins (~nineonine@50.216.62.2)
20:06:02 × wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 264 seconds)
20:06:54 <hololeap> fuzzypixelz: maybe focus on making the code more readable/intelligable rather than making it as few lines as possible
20:08:10 <solonarv> split it up: dropNWords n = unwords . drop n . words; firstThreeWords xs = case words xs of (x:y:z:_) -> (x, y ++ z) ; f = map firstThreeWords . splitOn "," . dropNWords 4
20:08:24 <hololeap> also, it kind of looks like you might benefit from using a parser library
20:08:35 <solonarv> (probably add a sensible failure case to firstThreeWords, and choose better names)
20:08:52 <solonarv> but this is also about the level of complexity where I'd jump ship to a parser combinator library
20:09:02 jneira joins (5127ad83@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.131)
20:09:21 <fuzzypixelz> huh, this is AOC day 7
20:09:35 <fuzzypixelz> an example of a parser library please?
20:09:40 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection)
20:09:42 <hololeap> parsec
20:09:44 <solonarv> I use parser combinators to parse all the AoC inputs
20:09:49 <solonarv> megaparsec is my go-to
20:09:57 <hololeap> not sure what's available for AoC
20:10:11 <merijn> hololeap: Whatever you install locally...
20:10:18 <solonarv> whatever you want, your code runs on your own machine (not on the AoC servers)
20:10:22 <fuzzypixelz> hololeap: yes you can do whatever
20:10:25 <hololeap> oh, didn't know that
20:10:53 <hololeap> then yeah, megaparsec is what i would choose as well
20:11:02 <fuzzypixelz> thanks for reminding me (informing me) that parser libraries exit
20:11:17 <fuzzypixelz> um parsec vs megaparsec?
20:11:19 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
20:11:22 <Feuermagier> I have an operation that might return "Nothing" - I need to perform further functions if I get a "Just", otherwise I need to abort and return "Nothing". How do I elegantly chain functions where any might fail and return "Nothing"?
20:11:36 xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com)
20:11:38 <shapr> I need "how to convert your attoparsec code to megaparsec" tutorial.
20:11:55 <shapr> Feuermagier: what about the maybe monad?
20:12:31 <Feuermagier> shapr, haven't heard about those. will look it up.
20:13:11 <xerox_> :t asum
20:13:12 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
20:13:36 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 240 seconds)
20:13:48 evanjs- joins (~evanjs@075-129-098-007.res.spectrum.com)
20:15:22 dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce)
20:16:21 <solonarv> % :t (>>=) @Maybe -- Feuermagier , sound like a useful type?
20:16:22 <yahb> solonarv: Maybe a -> (a -> Maybe b) -> Maybe b
20:17:26 <hololeap> fuzzypixelz: https://github.com/mrkkrp/megaparsec#comparison-with-other-solutions
20:18:07 <shapr> yeah, I just need to port over all my existing code so I know what to use in place of say, decimal
20:19:22 <hololeap> shapr: Text.Megaparsec.Char.Lexer.decimal ?
20:20:02 juuandyy joins (~juuandyy@90.166.144.65)
20:20:42 <hololeap> or i guess you would probably want Text.Megaparsec.Byte.Lexer.decimal if you're working with ByteStrings
20:20:52 × ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection)
20:21:19 ADG1089__ joins (~aditya@223.235.77.1)
20:22:19 wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
20:22:57 coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl)
20:23:41 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
20:24:09 <shapr> hololeap: I dunno, last year I tried to get started with megaparsec and switched back to attoparsec for reasons I've forgotton :-(
20:24:29 <shapr> Attoparsec is not error friendly, that's for sure.
20:24:36 <hololeap> if you're dealing with incremental input, attoparsec is really the only choice
20:25:12 <shapr> haven't done that yet, I started using attoparsec before megaparsec was a thing
20:25:42 × Merfont quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
20:26:04 Merfont joins (~Kaiepi@47.54.252.148)
20:26:18 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
20:26:20 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Client Quit)
20:26:39 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
20:26:46 × lep-delete quits (~lep@94.31.81.93) (Read error: Connection reset by peer)
20:27:02 lep-delete joins (~lep@94.31.81.93)
20:27:08 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
20:27:11 lep-delete is now known as test
20:27:15 <hololeap> megaparsec is pretty easy to learn. the semantics are very similar to attoparsec, with a few exceptions (attoparsec always backtracks on failure; with megaparsec, you sometimes have to use the `try` combinator)
20:27:41 test is now known as Guest31393
20:27:49 Guest31393 is now known as lep-delete
20:28:42 <hololeap> i actually don't understand why megaparsec doesn't backtrack on failure like attoparsec does. it seems more natural to me to automatically backtrack
20:28:57 <geekosaur> because worst case it's unbounded
20:29:01 <merijn> hololeap: Because it's far less efficient
20:29:28 <merijn> Also, makes it much harder to sensible error reporting
20:29:41 <merijn> You wanna commit as hard as possible as fast as possible for best errors
20:29:52 Janni joins (~jan@134.3.46.18)
20:30:07 <hololeap> hm, ok
20:30:10 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
20:30:26 <glguy> attoparsec only backtracks up to <|>, but its <|> is still biased, it won't backtrack on success
20:30:47 × Janni quits (~jan@134.3.46.18) (Client Quit)
20:30:55 <merijn> See also ezyang's post on "try a or b considered harmful": http://blog.ezyang.com/2014/05/parsec-try-a-or-b-considered-harmful/
20:31:01 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
20:31:14 <merijn> glguy: Yes, but if the top part of your parser is a bunch of alternatives it means it can backtrack all the way back to the start
20:31:16 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
20:31:28 <glguy> attoparsec's <|> means you have to structure your parser differently when you want to commit earlier
20:31:50 <glguy> merijn: yeah, but it's wrong/misleading to just say "it always backtracks"
20:32:12 <glguy> it just don't have the input consumption commits optimization
20:32:15 <merijn> glguy: to be fair, no one said that :p
20:32:21 <glguy> people say it all the time, to be fair
20:32:31 <merijn> glguy: hololeap said "it always backtracks on failure" :)
20:32:46 <glguy> I'm not picking on hololeap
20:33:26 shapr picks on lambdabot
20:34:46 <glguy> oh well, sounds like I wasn't adding anything; back to work
20:35:06 × juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
20:35:18 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
20:36:12 <sm[m]> I for one am happy to see regular discussion of the finer points of parsing in Haskell
20:37:33 glguy wonders what portion of parser combinator questions in december here are due to aoc
20:37:54 iekfkk joins (~username@117.200.13.21)
20:37:58 <sm[m]> a sign it's becoming more mainstream and easier to get productive with
20:38:13 <sm[m]> glguy I'm guessing all of them :)
20:38:14 <merijn> glguy: ~95%? :p
20:38:41 <dminuoso> sm[m]: The parsing discussions only happen in december, though.
20:39:00 <dminuoso> In January, we're back to talking about adjunctions and homotopy type theory.
20:39:02 <glguy> The rest of the year we're using happy :nod:
20:39:06 <dminuoso> heh
20:39:41 <glguy> I'm using happy to generate ReadP parsers to parse my inputs so I can use all the things
20:40:45 × bisickcor quits (~username@117.200.10.75) (Ping timeout: 240 seconds)
20:45:38 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 264 seconds)
20:50:29 fxg joins (~fxg@unaffiliated/fxg)
20:51:11 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
20:52:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:54:30 thecoffemaker joins (~thecoffem@unaffiliated/thecoffemaker)
20:54:58 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
20:54:58 emmanuel_erc joins (~user@2603-7000-9600-01c9-0000-0000-0000-0adc.res6.spectrum.com)
20:55:41 rprije joins (~rprije@202.168.43.92)
20:56:30 hackage hspec-expectations-json 1.0.0.2 - Hspec expectations for JSON Values https://hackage.haskell.org/package/hspec-expectations-json-1.0.0.2 (PatrickBrisbin)
20:57:38 <shapr> great hspec tations
20:57:51 × coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
20:57:56 × Merfont quits (~Kaiepi@47.54.252.148) (Read error: No route to host)
20:58:01 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
20:58:17 Merfont joins (~Kaiepi@47.54.252.148)
20:58:22 × dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 260 seconds)
20:58:25 × fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 246 seconds)
20:58:49 × hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
20:59:11 hekkaidekapus] joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
21:00:00 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
21:00:10 × mounty quits (~mounty@210.1.196.133) (Ping timeout: 256 seconds)
21:00:35 dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce)
21:02:03 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:02:12 <monochrom> heh
21:03:01 <hololeap> merijn: thanks for the blog post, it's very informative
21:03:14 cyphase joins (~cyphase@unaffiliated/cyphase)
21:04:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:05:59 hackage ejdb2-binding 0.3.0.1 - Binding to EJDB2 C library, an embedded JSON noSQL database https://hackage.haskell.org/package/ejdb2-binding-0.3.0.1 (buro)
21:08:03 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
21:09:29 × xcmw quits (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:10:01 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
21:10:51 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:14:27 xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com)
21:15:44 Deide joins (~Deide@217.155.19.23)
21:15:55 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
21:16:01 × xcmw quits (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) (Client Quit)
21:18:19 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
21:18:44 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Quit: Leaving)
21:19:03 dominik joins (~weechat@2001:a61:3412:1a01:9665:9cff:fe4d:b4d0)
21:22:17 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
21:23:22 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
21:23:36 × lisq quits (~quassel@lis.moe) (Quit: lisq)
21:23:46 lisq joins (~quassel@lis.moe)
21:24:23 <kritzefitz> I recently spent days trying to improve performance in a concurrent application. Today I realized that I have a section in my code that sequentially checks various STM variables and loops if none of them have interesting content. I replaced that section with one proper STM action that checks all the variables and retries if nothing interesting happened and suddenly the performance problem is gone. Now I feel kinda stupid.
21:26:21 texasmynsted joins (~texasmyns@99.96.221.112)
21:27:27 <dminuoso> merijn: eitherP is also a nice primitive in attoparsec. :)
21:27:31 × lisq quits (~quassel@lis.moe) (Client Quit)
21:27:41 lisq joins (~quassel@lis.moe)
21:28:04 <dminuoso> But, I guess it's just a take on <|>
21:28:35 <dminuoso> Guess what Im really saying is, this should be selective :p
21:30:51 geekosaur joins (42d52137@66.213.33.55)
21:32:44 <shapr> kritzefitz: is it on github?
21:33:37 <shapr> or gitlab, or sr.ht or ..
21:34:13 <kritzefitz> shapr, not yet. But I was planning to put it onto Gitlab anyway, so if you like to take a look, I can just upload it now.
21:34:22 <shapr> yay!
21:34:30 shapr hoards more Haskell repos
21:34:45 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 268 seconds)
21:36:39 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
21:38:03 sm[m] thinks shapr is actually a dragon
21:38:18 <shapr> when it comes to Haskell source, sure
21:39:57 N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c)
21:41:07 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-kgydrswmdfhxhpyo)
21:41:32 <kritzefitz> shapr: https://gitlab.com/Kritzefitz/reflex-gi-gtk
21:41:41 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds)
21:42:42 <kritzefitz> shapr, I'm still getting the API and implementation into shape, so don't expect too much in terms of documentation.
21:42:42 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
21:42:44 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
21:42:49 sgibber2018 joins (~arch-gibb@208.85.237.137)
21:43:54 × dominik quits (~weechat@2001:a61:3412:1a01:9665:9cff:fe4d:b4d0) (Quit: WeeChat 2.8)
21:46:56 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds)
21:47:19 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 258 seconds)
21:47:39 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Read error: Connection reset by peer)
21:48:11 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
21:48:33 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
21:50:34 × geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection)
21:50:47 <int-e> shapr: so what happens when somebody comes and take a byte?
21:51:37 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Ping timeout: 246 seconds)
21:51:57 × jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3)
21:53:24 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
21:54:11 jathan joins (~jathan@69.61.93.38)
21:55:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection)
21:56:19 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
21:57:08 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Client Quit)
21:57:14 cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
21:59:16 × fendor quits (~fendor@178.165.130.57.wireless.dyn.drei.com) (Remote host closed the connection)
21:59:46 knupfer joins (~Thunderbi@200116b82c2bd8009cf6cefffeb16eb0.dip.versatel-1u1.de)
22:00:04 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
22:00:27 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:00:45 × knupfer quits (~Thunderbi@200116b82c2bd8009cf6cefffeb16eb0.dip.versatel-1u1.de) (Remote host closed the connection)
22:00:52 fendor joins (~fendor@178.165.130.57.wireless.dyn.drei.com)
22:00:55 knupfer joins (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de)
22:01:44 mounty joins (~mounty@2001:8000:2f59:0:dc99:8f7f:11be:dca1)
22:02:16 × dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Remote host closed the connection)
22:02:18 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
22:02:37 dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce)
22:02:42 × knupfer quits (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) (Client Quit)
22:02:51 knupfer joins (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de)
22:03:03 × knupfer quits (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) (Client Quit)
22:03:12 knupfer joins (~Thunderbi@200116b82c2bd80058d8cab548bcb510.dip.versatel-1u1.de)
22:03:42 × arybczak quits (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c) (Quit: Konversation terminated!)
22:06:45 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
22:06:45 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
22:06:45 neiluj joins (~jco@unaffiliated/neiluj)
22:09:29 pavonia joins (~user@unaffiliated/siracusa)
22:10:21 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
22:10:24 kam1 joins (~kam1@24.231.108.143)
22:10:29 × ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection)
22:11:36 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:13:47 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:17:00 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:17:23 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:18:01 × knupfer quits (~Thunderbi@200116b82c2bd80058d8cab548bcb510.dip.versatel-1u1.de) (Quit: knupfer)
22:18:10 knupfer joins (~Thunderbi@i5E86B42D.versanet.de)
22:21:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
22:23:03 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
22:23:19 son0p joins (~son0p@181.136.122.143)
22:23:28 × mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 268 seconds)
22:23:46 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:25:45 leungbk joins (~user@2603-8000-f144-2028-88ca-9c13-d300-2ffb.res6.spectrum.com)
22:29:18 <ezzieyguywuf> is it possible to `./setup clean` a single module in the build plan?
22:29:23 × N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Remote host closed the connection)
22:29:42 <merijn> build plans are about packages, not modules, so...no?
22:29:46 × texasmyn_ quits (~texasmyns@23.82.14.34) (Ping timeout: 246 seconds)
22:30:06 × kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 256 seconds)
22:30:16 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:30:30 <ezzieyguywuf> thought that might be the case
22:30:55 <ezzieyguywuf> anyone here familiar with elm? trying to figure out if I can compile/install it without an internet connection
22:31:26 <ezzieyguywuf> but the Develop.StaticFiles.Build module requires a connection to download ~/.elm from the interwebs or w/e
22:36:11 × vfaronov quits (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
22:36:27 hololeap is very curious what would run elm that doesn't have an internet connection
22:37:21 <ezzieyguywuf> hololeap: I'm trying to *install* elm, not run it...
22:37:29 <ezzieyguywuf> i.e. trying to package it
22:39:03 N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c)
22:39:33 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
22:40:15 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
22:40:30 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
22:40:52 <hololeap> so you have an air-gapped machine that you copied the elm source to? (not being critical just curious)
22:41:49 <ezzieyguywuf> hololeap: the packaging system I'm using implements a "network sandbox" during installation for security purposes
22:41:50 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-tihixihqvmmwogqg) (Quit: Connection closed for inactivity)
22:41:50 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
22:42:10 <ezzieyguywuf> it uses the network to download the released tarball and then expects the entire installation to work without need of the network
22:42:16 <ezzieyguywuf> I think it's a reasonable restriction
22:42:31 <hololeap> ok, so portage with the network sandbox feature turned on, amirite?
22:42:56 Tario joins (~Tario@201.192.165.173)
22:43:37 <ezzieyguywuf> hololeap: yes you are rite
22:45:03 × dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 268 seconds)
22:45:13 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds)
22:45:58 × N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 258 seconds)
22:48:30 <fuzzypixelz> earlier someone suggested I use a parser when I sowed a really complecated function
22:48:40 <fuzzypixelz> for example, for aoc day 7
22:48:53 <fuzzypixelz> I need to "parse" a string like "light red bags contain 1 bright white bag, 2 muted yellow bags."
22:49:41 <hololeap> ezzieyguywuf: the best course of action is probably to submit a bug/PR for that package on the gentoo-haskell repo. i think it's generally considered bad practice for a package to want to break the network sandbox.
22:49:53 <fuzzypixelz> here I might need to save the type of bag in the beginning, the bags it can contain and their numbers
22:50:06 <fuzzypixelz> how can a library like parsec help here?
22:51:29 <glguy> fuzzypixelz: https://github.com/glguy/advent2020/blob/2fd663d49a622cf74661b52d89a0f6ea5c78a8fd/execs/Day07.hs#L27-L37
22:51:39 <glguy> That's how I used megaparsec to parse that
22:51:42 <ezzieyguywuf> hololeap: I'm working on fixing it in gentoo-haskell
22:52:21 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:54:01 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:8163:ba97:5d66:959b) (Quit: Leaving)
22:54:19 <ezzieyguywuf> hololeap: that's why I'm asking if there's a way to tweak the elm installation to not require the network
22:55:03 × fendor quits (~fendor@178.165.130.57.wireless.dyn.drei.com) (Remote host closed the connection)
22:56:01 × kam1 quits (~kam1@24.231.108.143) (Ping timeout: 246 seconds)
22:56:21 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
22:56:37 × knupfer quits (~Thunderbi@i5E86B42D.versanet.de) (Ping timeout: 264 seconds)
22:58:06 lordyod2 joins (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net)
22:58:37 × lordyod quits (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
22:58:37 lordyod2 is now known as lordyod
23:01:12 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds)
23:01:23 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
23:06:12 dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce)
23:06:32 × solonarv quits (~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) (Ping timeout: 256 seconds)
23:06:53 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
23:07:15 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:08:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d)
23:09:17 o1lo01ol1o joins (~o1lo01ol1@89.214.139.246)
23:10:35 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
23:11:58 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
23:12:01 xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com)
23:13:19 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
23:15:13 × neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 264 seconds)
23:17:13 N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c)
23:18:04 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
23:18:19 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:19:50 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
23:20:15 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
23:20:49 nineonine joins (~nineonine@50.216.62.2)
23:21:50 × wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds)
23:22:19 Tops2 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de)
23:23:02 × N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 260 seconds)
23:23:57 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:25:43 nineonine joins (~nineonine@50.216.62.2)
23:26:08 × Tops21 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
23:26:20 wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5)
23:26:38 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection)
23:29:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
23:32:43 mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716)
23:32:44 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:34:26 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
23:34:47 × Tops2 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Read error: Connection reset by peer)
23:35:00 Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
23:36:19 × leungbk quits (~user@2603-8000-f144-2028-88ca-9c13-d300-2ffb.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50))
23:36:26 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
23:36:46 toxikos joins (uid438942@gateway/web/irccloud.com/x-wiojjvxxqjpnnnsa)
23:36:58 nineonine joins (~nineonine@50.216.62.2)
23:37:13 N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c)
23:38:39 toxikos parts (uid438942@gateway/web/irccloud.com/x-wiojjvxxqjpnnnsa) ()
23:38:48 × Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Client Quit)
23:38:57 × o1lo01ol1o quits (~o1lo01ol1@89.214.139.246) (Remote host closed the connection)
23:39:43 o1lo01ol1o joins (~o1lo01ol1@89.214.139.246)
23:40:01 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:40:11 nineonine joins (~nineonine@50.216.62.2)
23:41:39 <hololeap> ok, so TemplateHaskell allows GHC to make network calls during a compile?
23:42:50 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:43:30 nineonine joins (~nineonine@50.216.62.2)
23:44:30 × o1lo01ol1o quits (~o1lo01ol1@89.214.139.246) (Ping timeout: 256 seconds)
23:44:31 <glguy> With Template Haskell you're running an arbitrary program that generates some Haskell syntax.
23:46:16 nineonin_ joins (~nineonine@50.216.62.2)
23:46:16 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
23:46:43 × N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 268 seconds)
23:47:11 × cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Quit: cosimone)
23:48:53 <hololeap> gross :(
23:49:06 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
23:49:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
23:49:33 <glguy> Yeah, it's a bad idea, so don't do it
23:50:29 Varis joins (~Tadas@unaffiliated/varis)
23:50:32 <hololeap> apparently elm does it, that's what ezzieyguywuf was asking about
23:51:38 <hololeap> i looked into it and sure enough when compiling elm-compiler with GHC, it made a network call
23:54:04 × UltimateNate quits (~UltimateN@s91904426.blix.com) (Remote host closed the connection)
23:54:35 × wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 258 seconds)
23:55:24 jedws joins (~jedws@121.209.189.201)
23:57:55 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
23:58:21 <monochrom> The Q monad is a MonadIO.
23:58:45 N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c)
23:59:06 <monochrom> Since day one I already made a joke about launching a movie player when TH is compiling.
23:59:23 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)

All times are in UTC on 2020-12-22.