2020/12/31

2020-12-31 00:01:13 +0100 <tdammers> justsomeguy: concrete use case: I have a wrapper around mlocked memory for storing crypto secrets (mlocking means the memory is locked into a fixed location in physical RAM and will not be swapped out or moved elsewhere, which is tremendously useful, because it means you can't accidentally leak those secrets to the swap disk or to unallocated memory)
2020-12-31 00:01:43 +0100 <tdammers> for that to work, though, I need to also make sure that before I munlock that RAM, it gets wiped, so that I don't leave secrets lingering around in unallocated RAM
2020-12-31 00:02:11 +0100 <dsal> merijn: Do you have an example of nested optparse-applicative subparsers?
2020-12-31 00:02:26 +0100 <tdammers> so I need to have a way of saying "hey look, I have this reference here, but I want it erased now", and from that point on, the memory is no longer usefully accessible
2020-12-31 00:02:40 +0100 <Athas> tdammers: you could also do that with an ST-style monad design, right?
2020-12-31 00:02:46 +0100 <tdammers> well yes, sort of
2020-12-31 00:02:54 +0100 <Athas> I'm not saying it wouldn't be more clumsy.
2020-12-31 00:03:04 +0100 <merijn> dsal: Eh, yes...but I wrote bunch of wrapper code to hide it away, so, eh, also no? :P
2020-12-31 00:03:11 +0100 <tdammers> there is a problem though
2020-12-31 00:03:29 +0100 <dsal> merijn: Heh. OK. I'll figure out what I'm doing here.
2020-12-31 00:03:32 +0100 <merijn> You can try and reverse engineer it from the wrapper code :p
2020-12-31 00:03:35 +0100 <tdammers> we can do the deterministic cleanup, and we can mark the reference as "useless"; but this information isn't tracked at the type level
2020-12-31 00:03:51 +0100 <tdammers> that is, to the type checker, a "live" reference looks the same as a "useless" reference
2020-12-31 00:04:00 +0100 <merijn> dsal: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Commands.hs
2020-12-31 00:04:39 +0100 <merijn> dsal: Conveniently, there's a datatype that corresponds to commands with and without subcommands, so you just gotta follow the logic for implementing each in that file :p
2020-12-31 00:05:07 +0100 <dsal> Thanks. I think the thing I'm doing right now doesn't actually need that, but I kind of want to understand it better.
2020-12-31 00:05:22 +0100 <tdammers> we can approximate linear types with singletons and an effect system modelled with type-level sets, but it's incredibly baroque, still kind of awkward, and not even foolproof
2020-12-31 00:07:21 +0100 <Athas> I expect that the RHS of many linear functions start with unsafePerformIO.
2020-12-31 00:08:26 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 00:08:41 +0100mastarija(~mastarija@93-136-141-206.adsl.net.t-com.hr) (Quit: Leaving)
2020-12-31 00:08:55 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2020-12-31 00:09:28 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-12-31 00:09:49 +0100 <monochrom> :)
2020-12-31 00:10:24 +0100 <tdammers> yup
2020-12-31 00:10:25 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 264 seconds)
2020-12-31 00:12:28 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 00:18:41 +0100b4er(~b5er_@91.193.4.138) (Ping timeout: 265 seconds)
2020-12-31 00:20:22 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 00:21:27 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-12-31 00:23:35 +0100loller_(uid358106@gateway/web/irccloud.com/x-etlpbnyndplofboo)
2020-12-31 00:24:00 +0100Mikagami(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-31 00:24:24 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-31 00:25:39 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2020-12-31 00:27:20 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 00:32:56 +0100worc3131(~quassel@cpc88896-oxfd27-2-0-cust200.4-3.cable.virginm.net) (Ping timeout: 256 seconds)
2020-12-31 00:34:07 +0100frankdma`frankdmartinez
2020-12-31 00:34:59 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-12-31 00:35:03 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Client Quit)
2020-12-31 00:37:44 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 00:38:26 +0100myname_(~sevenk@64.85.149.202)
2020-12-31 00:38:34 +0100 <myname_> hello
2020-12-31 00:38:50 +0100ces(~ces@fsf/member/ces) (Quit: WeeChat 3.0)
2020-12-31 00:39:15 +0100myname_(~sevenk@64.85.149.202) (Client Quit)
2020-12-31 00:39:46 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-12-31 00:40:18 +0100seventhousand(~sevenk@64.85.149.202)
2020-12-31 00:40:28 +0100Melanie_(~Melanie@192-0-134-138.cpe.teksavvy.com) (Quit: leaving)
2020-12-31 00:40:59 +0100nbloomf(~nbloomf@76.217.43.73)
2020-12-31 00:41:02 +0100nbloomf(~nbloomf@76.217.43.73) (Client Quit)
2020-12-31 00:41:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-12-31 00:45:39 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 00:45:41 +0100MOSCOS(~MOSCOS@152.32.70.55)
2020-12-31 00:46:00 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 00:46:07 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-31 00:46:22 +0100Tario(~Tario@201.192.165.173)
2020-12-31 00:46:48 +0100kuribas(~user@ptr-25vy0i8109xerw15t0a.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-31 00:46:58 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 00:47:11 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2020-12-31 00:47:14 +0100 <Squarism> i never tried the optics library. I heard it has less dependencies than lens which would fit my ghcjs app well. Do you recommend switching?
2020-12-31 00:47:25 +0100 <frankdmartinez> Is there a way to make an alias for `<*>`? I can do `let myMap = map` and `let myPure = pure`. What I try to do `let appliedTo = <*>`, I get a message: "parse error on input ‘<*>’".
2020-12-31 00:47:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 00:49:26 +0100Mikagami(~MOSCOS@122.54.107.175) (Ping timeout: 272 seconds)
2020-12-31 00:49:53 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-31 00:50:45 +0100MOSCOS(~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
2020-12-31 00:51:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 00:51:19 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-12-31 00:51:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2020-12-31 00:53:13 +0100 <ephemient> wrap infix operators in parentheses to make it an expression without applying it to args, e.g. `let appliedTo = (<*>)`
2020-12-31 00:53:48 +0100 <dsal> Squarism: there's also microlens. optics is a bit of a different style.
2020-12-31 00:54:15 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-31 00:54:28 +0100 <frankdmartinez> ephemient: Of course! How silly of me! Thank you!
2020-12-31 00:55:10 +0100 <Squarism> dsal, oh ok.
2020-12-31 00:55:10 +0100 <monochrom> Furthermore, "(!!!!!) = (<*>)" if you want a symbolic alias.
2020-12-31 00:55:36 +0100 <frankdmartinez> BTW, is it fair to say, since `<*>` is canonically pronounced "applied over", is it correct to say `<$>` is pronounced "mapped over"?
2020-12-31 00:55:59 +0100 <dsal> I've never heard either pronounced. heh
2020-12-31 00:56:04 +0100 <frankdmartinez> monochrom: Wait, what?
2020-12-31 00:56:05 +0100 <monochrom> I skip the "over" and the "ed". app, fmap.
2020-12-31 00:56:50 +0100 <frankdmartinez> dsal: I am taking https://wiki.haskell.org/Pronunciation as "canon" in this case.
2020-12-31 00:57:00 +0100 <monochrom> > let (!!!!!) = (<*>) in [sin, cos] !!!!! [0, pi/2]
2020-12-31 00:57:03 +0100 <ephemient> `ap = (<*>)` (for Monads)
2020-12-31 00:57:03 +0100 <lambdabot> [0.0,1.0,1.0,6.123233995736766e-17]
2020-12-31 00:57:52 +0100 <dsal> frankdmartinez: Oh weird. I've never seen that. I just type haskell into my editor. Never tried doing dictation.
2020-12-31 00:58:00 +0100 <frankdmartinez> monochrom: That hurts my head trying to parse that; what is happining?
2020-12-31 00:58:14 +0100 <ephemient> I never pronounce them either. just `<*>` etc. is fine
2020-12-31 00:58:46 +0100 <frankdmartinez> dsal: I'm the sort of person who reads his code to himself as he types to make sure it sounds right (I've been burnt too many times to not do that.)
2020-12-31 00:58:48 +0100 <ephemient> frankdmartinez: same as `let x !!!!! y = x <*> y`
2020-12-31 00:59:31 +0100 <frankdmartinez> ephemient: Ohhhhhhh, got it. Thanks.
2020-12-31 00:59:57 +0100 <monochrom> I minimally respect asking about wording code because given that "1+2" has a wording "one plus two" I guess it is fair to ask about a counterpart to "x <*> y".
2020-12-31 01:00:22 +0100 <monochrom> But I always remind that you are not a modem, you are not supposed to convert code to voice.
2020-12-31 01:04:40 +0100 <monochrom> Because by the time you get to the complexity of "(x * sqrt (y + z)) / (2 * e**(sin (x * pi / t)))" it becomes counterproductive to "try to understand it by reading out loud". No, reading it out loud is more confusing.
2020-12-31 01:06:11 +0100 <monochrom> The productive thing to do is to visualize that as an expression tree, and focus on a subtree or focus on the big picture (it's just "foo / bar" FSVO foo and bar) as needed.
2020-12-31 01:09:21 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 01:10:17 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
2020-12-31 01:11:01 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2020-12-31 01:11:41 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 01:16:48 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2020-12-31 01:19:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 01:20:14 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm)
2020-12-31 01:23:32 +0100 <arahael> monochrom: Not "one and two"? ;)
2020-12-31 01:23:44 +0100arahaelnever pronounces either.
2020-12-31 01:24:47 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 272 seconds)
2020-12-31 01:25:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 01:28:46 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 265 seconds)
2020-12-31 01:32:26 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-31 01:34:25 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 264 seconds)
2020-12-31 01:36:10 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 01:38:28 +0100acidjnk_new(~acidjnk@p200300d0c704e799613ed27d32309497.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2020-12-31 01:38:31 +0100 <monochrom> You can always put two and two together to get four, and this is robust wrt how you interpret "and" as addition, multiplication, or exponentiation :)
2020-12-31 01:38:52 +0100alx741(~alx741@181.196.68.142) (Ping timeout: 260 seconds)
2020-12-31 01:40:54 +0100arahaelthus concludes that 2 <> 2 == 4
2020-12-31 01:43:24 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-31 01:43:41 +0100 <MarcelineVQ> good job everyone
2020-12-31 01:44:05 +0100 <dolio> Works for every hyper operation, too.
2020-12-31 01:45:18 +0100 <monochrom> "Freedom is the freedom to write 2 <> 2 == 4, and with a fountain pen while we're at it."
2020-12-31 01:47:03 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-12-31 01:47:47 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 01:47:51 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-31 01:48:23 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 01:49:04 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-31 01:49:10 +0100urek(~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e)
2020-12-31 01:49:13 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 01:49:21 +0100urek(~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e) (Remote host closed the connection)
2020-12-31 01:49:41 +0100olligobber(~olligobbe@unaffiliated/olligobber)
2020-12-31 01:50:26 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-31 01:51:44 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-31 01:51:46 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 01:52:02 +0100 <boxscape> % (+ x) = (+++ x)
2020-12-31 01:52:02 +0100 <yahb> boxscape: ; <interactive>:124:2: error: Parse error in pattern: +x
2020-12-31 01:52:13 +0100 <boxscape> hm you can't use sections to define an operator?
2020-12-31 01:52:16 +0100 <boxscape> on the lhs
2020-12-31 01:52:46 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net)
2020-12-31 01:52:54 +0100alx741(~alx741@186.178.110.198)
2020-12-31 01:53:24 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds)
2020-12-31 01:53:46 +0100 <monochrom> No.
2020-12-31 01:53:49 +0100 <boxscape> sad :(
2020-12-31 01:53:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 01:55:08 +0100chipc(~chipc@217.146.82.202) (Remote host closed the connection)
2020-12-31 01:57:00 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-31 01:59:28 +0100aveltras(uid364989@gateway/web/irccloud.com/x-twzhylkueocqmpyy) (Quit: Connection closed for inactivity)
2020-12-31 01:59:39 +0100polyrain(~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f)
2020-12-31 02:01:19 +0100 <seventhousand> hello
2020-12-31 02:01:35 +0100 <seventhousand> Why can I not scroll up to see chat history
2020-12-31 02:01:35 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
2020-12-31 02:02:06 +0100 <rom1504> seventhousand: no chat history feature in irc
2020-12-31 02:02:12 +0100 <seventhousand> Interesting
2020-12-31 02:02:16 +0100 <seventhousand> never used one before
2020-12-31 02:02:20 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2020-12-31 02:02:22 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb)
2020-12-31 02:02:38 +0100 <rom1504> irc servers just relays messages to users, that's it
2020-12-31 02:02:56 +0100 <boxscape> seventhousand you can see logs here though https://ircbrowse.tomsmeding.com/browse/haskell?events_page=2276
2020-12-31 02:03:19 +0100polyrain(~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f) (Client Quit)
2020-12-31 02:04:41 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) (Client Quit)
2020-12-31 02:06:13 +0100paintcan`(~user@cpe-69-206-241-99.nyc.res.rr.com)
2020-12-31 02:06:44 +0100paintcan(~user@cpe-69-206-241-99.nyc.res.rr.com) (Remote host closed the connection)
2020-12-31 02:07:10 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 02:10:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th)
2020-12-31 02:10:26 +0100threestrikes(~threestri@ec2-3-236-237-32.compute-1.amazonaws.com)
2020-12-31 02:11:03 +0100threestrikes(~threestri@ec2-3-236-237-32.compute-1.amazonaws.com) (Client Quit)
2020-12-31 02:11:36 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 240 seconds)
2020-12-31 02:12:54 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2020-12-31 02:14:34 +0100seventhousand(~sevenk@64.85.149.202) (Quit: Lost terminal)
2020-12-31 02:18:17 +0100myname_(~sevenk@64.85.149.202)
2020-12-31 02:21:08 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 02:25:18 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 02:26:07 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-12-31 02:28:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-31 02:30:20 +0100Fischmiep(~Fischmiep@46.59.132.43)
2020-12-31 02:32:32 +0100christo(~chris@81.96.113.213)
2020-12-31 02:33:38 +0100Fischmie1(~Fischmiep@149.224.197.30) (Ping timeout: 256 seconds)
2020-12-31 02:34:12 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-31 02:35:12 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2020-12-31 02:35:36 +0100Tops22(~Tobias@dyndsl-095-033-027-207.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-12-31 02:36:16 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.28.247)
2020-12-31 02:37:30 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-31 02:38:51 +0100columbarius(~columbari@i5E86B34F.versanet.de) (Ping timeout: 265 seconds)
2020-12-31 02:39:34 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-31 02:40:49 +0100columbarius(~columbari@mue-88-130-54-032.dsl.tropolys.de)
2020-12-31 02:42:14 +0100ransom(~c4264035@8.47.12.52) (Read error: Connection reset by peer)
2020-12-31 02:42:38 +0100ransom(~c4264035@8.47.12.52)
2020-12-31 02:42:38 +0100ransom(~c4264035@8.47.12.52) (Client Quit)
2020-12-31 02:45:31 +0100suriro(~suriro@178.239.168.171)
2020-12-31 02:52:57 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2020-12-31 02:57:19 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-31 03:03:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 03:08:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-31 03:08:42 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 03:09:09 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Quit: carthia)
2020-12-31 03:09:31 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 03:13:00 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-12-31 03:14:01 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2020-12-31 03:15:25 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds)
2020-12-31 03:16:23 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 03:20:19 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 03:20:50 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315)
2020-12-31 03:21:38 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2020-12-31 03:22:45 +0100frankdmartinez(~user@c-69-249-137-255.hsd1.pa.comcast.net) (Ping timeout: 240 seconds)
2020-12-31 03:26:01 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-12-31 03:26:39 +0100frankdmartinez(~user@5.181.234.188)
2020-12-31 03:27:53 +0100myname_(~sevenk@64.85.149.202) (Quit: Lost terminal)
2020-12-31 03:29:00 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net)
2020-12-31 03:30:51 +0100xiinotulp(~q@node-us0.pool-125-24.dynamic.totinternet.net)
2020-12-31 03:31:26 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-12-31 03:33:12 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Ping timeout: 260 seconds)
2020-12-31 03:33:16 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds)
2020-12-31 03:33:50 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 03:33:55 +0100argento(~argent0@168.227.97.23)
2020-12-31 03:34:09 +0100argento(~argent0@168.227.97.23) (Remote host closed the connection)
2020-12-31 03:35:00 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-31 03:35:01 +0100plutoniix(~q@node-uil.pool-125-24.dynamic.totinternet.net) (Ping timeout: 264 seconds)
2020-12-31 03:39:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 03:40:22 +0100Iceland_jack(~user@31.124.48.169)
2020-12-31 03:47:18 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
2020-12-31 03:49:22 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-31 03:50:26 +0100xff0x_(~fox@2001:1a81:5361:7200:b495:b5df:7e6c:e9db) (Ping timeout: 268 seconds)
2020-12-31 03:51:05 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-31 03:51:26 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-31 03:51:44 +0100xff0x_(~fox@2001:1a81:5398:2d00:1f27:11b6:17e5:8c13)
2020-12-31 03:52:05 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-31 03:52:26 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-31 03:57:59 +0100drbean(~drbean@TC210-63-209-60.static.apol.com.tw)
2020-12-31 04:03:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 04:07:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2020-12-31 04:11:41 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2020-12-31 04:11:41 +0100lagothrixGuest74714
2020-12-31 04:11:41 +0100Guest74714(~lagothrix@unaffiliated/lagothrix) (Killed (kornbluth.freenode.net (Nickname regained by services)))
2020-12-31 04:11:41 +0100xirhtogallagothrix
2020-12-31 04:14:00 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds)
2020-12-31 04:14:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 04:14:31 +0100Kronic(~Kronic___@84.203.96.46)
2020-12-31 04:17:43 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-12-31 04:20:11 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-31 04:21:45 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-31 04:24:29 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-31 04:27:01 +0100jedws(~jedws@121.209.189.201)
2020-12-31 04:27:33 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-31 04:27:33 +0100matryoshka`(~matryoshk@184.75.223.227)
2020-12-31 04:28:34 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer)
2020-12-31 04:30:40 +0100frankdmartinez(~user@5.181.234.188) (Remote host closed the connection)
2020-12-31 04:30:56 +0100frankdmartinez(~user@5.181.234.188)
2020-12-31 04:31:45 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds)
2020-12-31 04:35:27 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 04:44:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 04:46:28 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-12-31 04:46:28 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-12-31 04:46:28 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-31 04:47:05 +0100eacameron(uid256985@gateway/web/irccloud.com/x-galbhouawynbrsup) (Quit: Connection closed for inactivity)
2020-12-31 04:48:00 +0100jacks2(~bc815220@217.29.117.252)
2020-12-31 04:48:05 +0100 <jacks2> hi
2020-12-31 04:48:08 +0100 <jacks2> :t 1e6
2020-12-31 04:48:10 +0100 <lambdabot> Fractional p => p
2020-12-31 04:48:12 +0100christo(~chris@81.96.113.213)
2020-12-31 04:48:19 +0100 <boxscape> hi
2020-12-31 04:48:26 +0100 <koz_> Yo.
2020-12-31 04:48:26 +0100 <jacks2> why is it a Fractional and not Num?
2020-12-31 04:48:36 +0100 <boxscape> % :seti -XNumDecimals
2020-12-31 04:48:36 +0100 <yahb> boxscape:
2020-12-31 04:48:41 +0100 <boxscape> % :t 1e6
2020-12-31 04:48:41 +0100 <yahb> boxscape: Num p => p
2020-12-31 04:48:53 +0100 <boxscape> it can be Num with an extension
2020-12-31 04:49:06 +0100 <jacks2> ah ok, good
2020-12-31 04:49:12 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 04:49:15 +0100 <boxscape> when the language was designed I guess people didn't consider that you might want to write integers in scientific notation
2020-12-31 04:49:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 04:49:45 +0100 <dsal> I pretty much only write integers in scientific notation.
2020-12-31 04:49:59 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
2020-12-31 04:50:11 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 04:51:16 +0100 <boxscape> % :t 1.6666e2
2020-12-31 04:51:16 +0100 <yahb> boxscape: Fractional p => p
2020-12-31 04:51:39 +0100 <boxscape> jacks2 note that it will still be Fractional if there are more decimal places than would make sense for an integer
2020-12-31 04:52:40 +0100 <jacks2> % :t 1.66e6
2020-12-31 04:52:40 +0100 <yahb> jacks2: Num p => p
2020-12-31 04:52:47 +0100 <jacks2> yeah, that's what I'd expect
2020-12-31 04:55:37 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
2020-12-31 04:56:19 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2020-12-31 04:57:43 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 05:00:11 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-hcdctxhyzchiutea) (Quit: Connection closed for inactivity)
2020-12-31 05:00:16 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-31 05:01:16 +0100theDon(~td@94.134.91.51) (Ping timeout: 240 seconds)
2020-12-31 05:02:06 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
2020-12-31 05:02:37 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2020-12-31 05:03:07 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
2020-12-31 05:03:12 +0100drbean(~drbean@TC210-63-209-60.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
2020-12-31 05:03:18 +0100theDon(~td@94.134.91.182)
2020-12-31 05:03:21 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca)
2020-12-31 05:03:27 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2020-12-31 05:03:55 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 246 seconds)
2020-12-31 05:05:56 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 05:14:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 05:16:22 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-31 05:18:45 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315)
2020-12-31 05:19:00 +0100frankdmartinez(~user@5.181.234.188) (Quit: switching to a gui client)
2020-12-31 05:20:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 05:20:42 +0100frankdmartinez(~frankdmar@5.181.234.188)
2020-12-31 05:24:54 +0100jmchael(~jmchael@81.174.205.210) (Ping timeout: 260 seconds)
2020-12-31 05:26:51 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-31 05:30:19 +0100 <jacks2> is there a more concise way of writing this? instance (FromJSON a, FromJSON b, FromJSONKey a, FromJSONKey b, Ord a, Ord b) => FromJSON (MyType a b)
2020-12-31 05:31:39 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-lomouarpoiwiahvm) ()
2020-12-31 05:35:15 +0100 <boxscape> if that's a patter you encounter often you could write something like `type FromJSON' = (FromJSON a, FromJSONKey a, Ord a)` and then `instance (FromJSON' a, FromJSON' b) => FromJSON (MyType a b)`
2020-12-31 05:35:24 +0100 <boxscape> jacks2 ^
2020-12-31 05:35:29 +0100 <boxscape> s/patter/pattern
2020-12-31 05:35:53 +0100 <boxscape> (I think that does require -XConstraintKinds though)
2020-12-31 05:36:19 +0100 <jacks2> I only do this once, probably not worth it
2020-12-31 05:36:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-31 05:36:28 +0100 <MarcelineVQ> You could but then you have to search for that alias, I think being explicit is clearer here for current and future you
2020-12-31 05:38:34 +0100 <jacks2> actually I also have to use same signature in the read function, so it might be worth it
2020-12-31 05:38:40 +0100 <jacks2> and in the write function
2020-12-31 05:38:59 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-31 05:47:22 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
2020-12-31 05:47:25 +0100xiinotulp(~q@node-us0.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2020-12-31 05:49:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-31 05:49:37 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 05:50:00 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm) (Quit: Connection closed for inactivity)
2020-12-31 05:50:50 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi)
2020-12-31 05:51:09 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds)
2020-12-31 05:51:50 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 05:52:15 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-12-31 05:53:26 +0100solonarv(~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
2020-12-31 05:54:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-31 05:56:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2020-12-31 06:04:40 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-31 06:05:11 +0100MOSCOS(~MOSCOS@152.32.70.55)
2020-12-31 06:07:45 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-12-31 06:08:04 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-12-31 06:08:22 +0100Mikagami(~MOSCOS@122.54.107.175) (Ping timeout: 260 seconds)
2020-12-31 06:09:25 +0100MOSCOS(~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
2020-12-31 06:20:03 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 06:21:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 06:22:10 +0100hoofmaster(18740acc@unaffiliated/hoofmaster)
2020-12-31 06:22:15 +0100 <hoofmaster> clack clop clack clop
2020-12-31 06:22:18 +0100 <hoofmaster> neiiiiiiiiiiiiiiiigh
2020-12-31 06:22:21 +0100hoofmasterhuffs
2020-12-31 06:22:44 +0100 <dsal> This channel is about curry, not furry
2020-12-31 06:23:37 +0100hoofmastergallops
2020-12-31 06:24:39 +0100 <MarcelineVQ> hoofmaster, tell me your tail
2020-12-31 06:24:57 +0100hoofmasterclops over to MarcelineVQ
2020-12-31 06:24:58 +0100 <boxscape> the furry cow herd correspondence
2020-12-31 06:25:01 +0100hoofmasterneighs in ear
2020-12-31 06:25:08 +0100hoofmastergallops away
2020-12-31 06:26:27 +0100 <MarcelineVQ> Truly a saga for the ages books, the mournful ballad of a high-mountain packer, too powerful to live and too rare to die.
2020-12-31 06:26:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 06:27:08 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-12-31 06:27:10 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 06:36:03 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-31 06:36:04 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-31 06:36:19 +0100Tario(~Tario@201.192.165.173)
2020-12-31 06:36:27 +0100ericsagnes(~ericsagne@2405:6580:0:5100:408c:5ab0:3607:c803) (Ping timeout: 258 seconds)
2020-12-31 06:45:59 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 06:46:11 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 268 seconds)
2020-12-31 06:46:50 +0100dyeplexer(~lol@unaffiliated/terpin)
2020-12-31 06:47:16 +0100jluttine(~jluttine@87-95-146-110.bb.dnainternet.fi) (Ping timeout: 240 seconds)
2020-12-31 06:48:06 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 06:48:08 +0100jluttine(~jluttine@87-95-146-110.bb.dnainternet.fi)
2020-12-31 06:48:48 +0100ericsagnes(~ericsagne@2405:6580:0:5100:93a5:a77a:27e2:f365)
2020-12-31 06:50:01 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
2020-12-31 06:50:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-12-31 06:52:00 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 06:52:58 +0100Tario(~Tario@201.192.165.173)
2020-12-31 06:53:01 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 264 seconds)
2020-12-31 06:54:13 +0100 <dyeplexer> Why is the "accumulator" argument and "current element" argument in the updation argument-functions in the fold/scan functions swapped?
2020-12-31 06:54:40 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 06:54:48 +0100 <dyeplexer> foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b, foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
2020-12-31 06:55:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 06:55:28 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 06:55:34 +0100 <dyeplexer> I am asking fot the rational behind the orders (b -> a -> b) and (a -> b -> b) in the above definitions
2020-12-31 06:55:43 +0100 <dyeplexer> *for the rationale
2020-12-31 06:56:05 +0100 <dsal> @hoogle asum
2020-12-31 06:56:06 +0100 <lambdabot> Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a
2020-12-31 06:56:06 +0100 <lambdabot> Data.Conduit.Combinators asum :: (Monad m, Alternative f) => ConduitT (f a) o m (f a)
2020-12-31 06:56:06 +0100 <lambdabot> Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a
2020-12-31 06:56:10 +0100 <dsal> I'm never going to remember where asum is.
2020-12-31 06:56:27 +0100 <jle`> dyeplexer: the a -> b -> b makes sense for foldr, but i don't know about any explanation for foldl
2020-12-31 06:57:00 +0100 <dyeplexer> Okay
2020-12-31 06:57:04 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 06:57:10 +0100 <dsal> Folding right: thing -> accumulator Folding left accumulator <- thing
2020-12-31 06:57:26 +0100 <jle`> dyeplexer: foldr f z (for lists, at least), it replaces the consturctors of a list
2020-12-31 06:57:39 +0100 <jle`> dyeplexer: it repaces (:) with f, and [] with z
2020-12-31 06:57:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-31 06:58:07 +0100 <boxscape> > foldr (+) [a,b,c,d]
2020-12-31 06:58:09 +0100 <lambdabot> error:
2020-12-31 06:58:09 +0100 <lambdabot> • Could not deduce (Num [Expr]) arising from a use of ‘+’
2020-12-31 06:58:09 +0100 <lambdabot> from the context: Foldable t
2020-12-31 06:58:12 +0100 <boxscape> > foldr (+) z [a,b,c,d]
2020-12-31 06:58:14 +0100 <jle`> dyeplexer: so foldr f q (x:y:z:[]) is x `f` y `f` z `f` q
2020-12-31 06:58:15 +0100 <lambdabot> a + (b + (c + (d + z)))
2020-12-31 06:58:20 +0100 <boxscape> > foldl (+) z [a,b,c,d]
2020-12-31 06:58:22 +0100 <lambdabot> z + a + b + c + d
2020-12-31 06:58:29 +0100 <jle`> so it just goes down (x:y:z:[]) and swaps the :'s for f and [] for z
2020-12-31 06:58:46 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2020-12-31 06:59:07 +0100 <dyeplexer> ah okay got it. Thanks
2020-12-31 07:00:22 +0100 <jle`> for foldl it's a bit arbitrary i think, but foldl can be thought of imperatively updating the b with an 'a' input
2020-12-31 07:00:30 +0100 <jle`> successive a's
2020-12-31 07:01:16 +0100 <jle`> so maybe b -> a -> b makes sense in that light... here's the b we have, the new a we see, now give the new updated b
2020-12-31 07:01:24 +0100 <jle`> but really (a -> b -> b) would work the same way, idk
2020-12-31 07:02:23 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-31 07:03:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-31 07:04:20 +0100 <boxscape> if you look at (((z - a) - b) - c), you couldn't write it this way if you used (a -> b -> b)
2020-12-31 07:05:19 +0100 <jle`> ah, that's fair
2020-12-31 07:06:11 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 07:06:18 +0100 <jle`> the enw inputs are successively added, foldl f q [x,y,z] = (f q x) y) z, updating the accumulator (starting with q) with each item on the right like that
2020-12-31 07:08:10 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-31 07:10:44 +0100Tario(~Tario@201.192.165.173)
2020-12-31 07:11:18 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 256 seconds)
2020-12-31 07:11:28 +0100rmk236(~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193)
2020-12-31 07:15:13 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 07:17:35 +0100Tario(~Tario@201.192.165.173) (Read error: Connection timed out)
2020-12-31 07:17:57 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2020-12-31 07:18:11 +0100 <dyeplexer> Okay
2020-12-31 07:18:39 +0100Tario(~Tario@201.192.165.173)
2020-12-31 07:19:03 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-31 07:20:58 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-31 07:23:37 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft)
2020-12-31 07:24:51 +0100 <dyeplexer> Yes. the currying was the problem. Implementing foldl and foldr myself cleared my doubts.
2020-12-31 07:24:58 +0100Vanilla[m](danielm_14@gateway/shell/matrix.org/x-dgeqldxyrkfpeufk)
2020-12-31 07:29:22 +0100 <dyeplexer> (or establishing the recursion)
2020-12-31 07:29:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-31 07:31:13 +0100hoofmaster(18740acc@unaffiliated/hoofmaster) (Quit: "neiiiiiiiiiiiiigh")
2020-12-31 07:37:16 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2020-12-31 07:37:19 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Ping timeout: 260 seconds)
2020-12-31 07:38:15 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection)
2020-12-31 07:39:02 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-31 07:40:05 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 07:40:06 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.28.247) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 07:41:47 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-31 07:43:38 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 272 seconds)
2020-12-31 07:44:30 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
2020-12-31 07:45:30 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2020-12-31 07:48:03 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-31 07:48:05 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
2020-12-31 07:54:14 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 07:56:18 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 07:57:43 +0100rayyyy1(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2020-12-31 07:58:02 +0100frankdmartinez(~frankdmar@5.181.234.188) (Quit: frankdmartinez)
2020-12-31 07:58:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 07:59:22 +0100coot(~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl)
2020-12-31 08:03:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-31 08:04:35 +0100da39a3ee5e6b4b0d(~da39a3ee5@183.88.111.61)
2020-12-31 08:14:58 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-31 08:17:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d)
2020-12-31 08:20:37 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-31 08:22:32 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 260 seconds)
2020-12-31 08:22:50 +0100jacks2(~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout))
2020-12-31 08:34:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 08:34:18 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 08:34:26 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-31 08:35:49 +0100guest122`(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2020-12-31 08:37:37 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 08:38:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2020-12-31 08:39:54 +0100 <boxscape> hm, ironic, I'm testing out the new 9.0rc candidate but found a ghc panic that already existed in 8.10
2020-12-31 08:40:23 +0100 <boxscape> oh, except, it's a different panic, interesting
2020-12-31 08:40:45 +0100 <boxscape> oh no never mind it's the same panic
2020-12-31 08:46:18 +0100kenran(~kenran@87.123.205.142)
2020-12-31 08:53:54 +0100loller_(uid358106@gateway/web/irccloud.com/x-etlpbnyndplofboo) (Quit: Connection closed for inactivity)
2020-12-31 08:54:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-12-31 08:55:03 +0100mp___(~mp@hell.cx)
2020-12-31 08:57:07 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d)
2020-12-31 09:00:09 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-31 09:01:51 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 268 seconds)
2020-12-31 09:03:51 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
2020-12-31 09:04:36 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
2020-12-31 09:05:26 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 09:05:48 +0100coot(~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-31 09:08:45 +0100da39a3ee5e6b4b0d(~da39a3ee5@183.88.111.61) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 09:09:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds)
2020-12-31 09:15:31 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th)
2020-12-31 09:18:36 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-31 09:19:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-31 09:20:21 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2020-12-31 09:20:37 +0100Kaiepi(~Kaiepi@47.54.252.148)
2020-12-31 09:24:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-31 09:27:13 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 264 seconds)
2020-12-31 09:30:27 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
2020-12-31 09:31:11 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 09:32:03 +0100suriro(~suriro@178.239.168.171) (Remote host closed the connection)
2020-12-31 09:32:56 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft) (Quit: Connection closed for inactivity)
2020-12-31 09:33:42 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-31 09:33:42 +0100 <Kronic> I seen linear types went into GHC 9, seems very interesting and I get it, just can't think of many use cases off the top of my head
2020-12-31 09:35:44 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds)
2020-12-31 09:36:51 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2020-12-31 09:37:49 +0100 <arahael> Kronic: In a sentence, can you explain what they are?
2020-12-31 09:40:08 +0100 <Kronic> Restricted to one sentence, I guess it's a type that is evaluated once? In the docs I read I remember that they used the term consumed, but I'm assumming that meant something in the order of evaluated
2020-12-31 09:40:23 +0100 <Kronic> I guess you can go from a to b, but not b back to a ?
2020-12-31 09:42:02 +0100 <idnar> `if s == Just "pending" || isNothing s …` I don't like this somehow.
2020-12-31 09:42:25 +0100 <arahael> Kronic: Hmm, yes... That does seem fairly fringe.
2020-12-31 09:42:56 +0100 <Kronic> Oh, if you were asking for an explanation of them from me then I'm not the guy to ask, https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-linear-types.rst they've a proposal here if you wanna read it
2020-12-31 09:45:55 +0100 <arahael> It's intriguing... But ultimately beyond me.
2020-12-31 09:46:25 +0100 <Kronic> They've some good motivational examples there, I'm sure someone here more knowledgeable would explain it if you had a more specific question :)
2020-12-31 09:52:22 +0100acidx1(~acidx@185.163.110.125)
2020-12-31 09:57:20 +0100 <arahael> It seems well written, I'm sure I should put some effort into reading it properly, then I might have some sensible questions. :)
2020-12-31 09:57:31 +0100 <arahael> But right now I'm thoroughly in holday mode. :(
2020-12-31 10:01:50 +0100mp___(~mp@hell.cx) (Ping timeout: 264 seconds)
2020-12-31 10:02:38 +0100Hatsue[m](berbermanm@gateway/shell/matrix.org/x-rvoesmgeaopbcbkh)
2020-12-31 10:03:00 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 10:03:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 10:04:54 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
2020-12-31 10:06:28 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:07:15 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 10:07:23 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 10:07:44 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:08:24 +0100son0p(~son0p@181.58.39.182)
2020-12-31 10:08:35 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-31 10:11:33 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-31 10:13:28 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:14:44 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:15:56 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:17:02 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 10:18:01 +0100iqubic(~user@c-67-171-38-72.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2020-12-31 10:18:25 +0100b4er(~b5er_@91.193.4.138)
2020-12-31 10:19:44 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:20:30 +0100heatsink(~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Remote host closed the connection)
2020-12-31 10:20:35 +0100landonf(landonf@mac68k.info) (Excess Flood)
2020-12-31 10:21:01 +0100landonf(landonf@mac68k.info)
2020-12-31 10:22:46 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 246 seconds)
2020-12-31 10:23:10 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
2020-12-31 10:24:04 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:25:11 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:26:37 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2020-12-31 10:29:34 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 10:31:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 10:32:07 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:33:35 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-iakwekdkzgcrclln) (Quit: Connection closed for inactivity)
2020-12-31 10:35:52 +0100crblmr(~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds)
2020-12-31 10:36:03 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-31 10:37:55 +0100crblmr(~carbolyme@matrix.dropacid.net)
2020-12-31 10:40:00 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:40:11 +0100iqubic(~user@2601:602:9500:4870:b553:c156:aded:724d)
2020-12-31 10:48:11 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:50:16 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:51:07 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 246 seconds)
2020-12-31 10:51:16 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 10:53:29 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-12-31 10:53:31 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 10:55:02 +0100mp___(mp@hell.cx)
2020-12-31 10:58:31 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-31 10:58:52 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-12-31 11:02:15 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 11:03:41 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-31 11:04:23 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-31 11:04:47 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:21b2:5ddc:6b14:f7c0) (Ping timeout: 258 seconds)
2020-12-31 11:04:58 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-31 11:05:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-31 11:07:27 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 11:09:55 +0100fendor(~fendor@77.119.128.173.wireless.dyn.drei.com)
2020-12-31 11:10:13 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi) (Quit: Connection closed for inactivity)
2020-12-31 11:12:07 +0100 <idnar> :t \f v -> do x <- readTVar v; x' <- f v; writeTVar v x'
2020-12-31 11:12:09 +0100 <lambdabot> error:
2020-12-31 11:12:09 +0100 <lambdabot> Variable not in scope: readTVar :: t -> m a0
2020-12-31 11:13:51 +0100 <idnar> :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f v; Control.Concurrent.STM.TVar.writeTVar v x'
2020-12-31 11:13:53 +0100 <lambdabot> (GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM ()
2020-12-31 11:14:19 +0100 <idnar> :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f x; Control.Concurrent.STM.TVar.writeTVar v x'
2020-12-31 11:14:20 +0100 <lambdabot> (a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM ()
2020-12-31 11:16:06 +0100 <idnar> @hoogle (a -> STM a) -> TVar a -> STM ()
2020-12-31 11:16:07 +0100 <lambdabot> Control.Concurrent.Async.Lifted mapConcurrently_ :: (Foldable t, MonadBaseControl IO m) => (a -> m b) -> t a -> m ()
2020-12-31 11:16:08 +0100 <lambdabot> Control.Concurrent.Async.Lifted.Safe mapConcurrently_ :: (Foldable t, MonadBaseControl IO m, Forall (Pure m)) => (a -> m b) -> t a -> m ()
2020-12-31 11:16:08 +0100 <lambdabot> Prelude mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
2020-12-31 11:16:46 +0100Franciman(~francesco@host-95-250-152-231.retail.telecomitalia.it)
2020-12-31 11:16:51 +0100__monty__(~toonn@unaffiliated/toonn)
2020-12-31 11:17:38 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0)
2020-12-31 11:20:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219)
2020-12-31 11:22:40 +0100heatsink_(~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b)
2020-12-31 11:25:42 +0100heatsink(~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Ping timeout: 260 seconds)
2020-12-31 11:26:33 +0100Juviee(2ebf899a@46.191.137.154)
2020-12-31 11:26:48 +0100kuribas(~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be)
2020-12-31 11:27:27 +0100heatsink_(~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b) (Ping timeout: 260 seconds)
2020-12-31 11:28:48 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-31 11:32:18 +0100 <Juviee> Hello there! I can't solve one simple task. While using list comprehensions with predicates, I can use as predicate x `mod` 3 == 0 condition, but only if in main body of list comprehension I use integer conversions. When I try to multiply body to floating-point number, It doesnt work, and compiler complains on predicate. So I tried to modify
2020-12-31 11:32:19 +0100 <Juviee> predicate to ( ( floor x ) mod 3) == 0, but then compiler thinks I try to put in "floor" function three arguments, despite I used brackets. What can I do, instead of bypassing this problem with stepped by three interval or smth?
2020-12-31 11:33:10 +0100inkbottle(~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr)
2020-12-31 11:33:22 +0100 <Juviee> Like: [x * 2 | x <- [1 .. 45], x `mod` 3 == 0] -- works, [x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0]
2020-12-31 11:33:28 +0100 <Juviee> and second don't work
2020-12-31 11:33:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 11:34:31 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2020-12-31 11:34:34 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2020-12-31 11:37:15 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 11:37:26 +0100 <kuribas> Juviee: you cannot combine float and int operations.
2020-12-31 11:37:35 +0100 <kuribas> Juviee: you need to cast to float first
2020-12-31 11:37:39 +0100 <kuribas> :t realToFrac
2020-12-31 11:37:41 +0100 <lambdabot> (Real a, Fractional b) => a -> b
2020-12-31 11:37:49 +0100 <kuribas> > realToFrac (1::Int)
2020-12-31 11:37:51 +0100 <lambdabot> 1.0
2020-12-31 11:38:22 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-31 11:38:35 +0100 <kuribas> > [realToFrac x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0]
2020-12-31 11:38:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 11:38:37 +0100 <lambdabot> [16.44,32.88,49.32000000000001,65.76,82.2,98.64000000000001,115.080000000000...
2020-12-31 11:42:29 +0100 <__monty__> Juviee: Also, you're missing the backticks around mod in the second instance, which changes how the expression is parsed.
2020-12-31 11:44:05 +0100 <Kronic> Btw, you can do [3,6..45] instead of using mod at all
2020-12-31 11:47:42 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu)
2020-12-31 11:49:42 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-31 11:52:14 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2020-12-31 11:55:11 +0100 <pie_> how can I convert a ForeignPtr to a Ptr? I want to pass some things from c code back to c code
2020-12-31 11:55:21 +0100 <pie_> (also I dont know how to ensure the finalizers dont get run)
2020-12-31 11:55:36 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 11:55:47 +0100 <pie_> (I'm using someone else's library)
2020-12-31 11:56:43 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-31 11:56:47 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 12:01:56 +0100mp___(mp@hell.cx) (Ping timeout: 265 seconds)
2020-12-31 12:02:11 +0100 <ski> > [all (== "pending") ms | ms <- [Just "pending",Just "done",Nothing]] -- idnar ?
2020-12-31 12:02:14 +0100 <lambdabot> [True,False,True]
2020-12-31 12:02:58 +0100 <xerox_> :t all
2020-12-31 12:02:59 +0100 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
2020-12-31 12:04:08 +0100michalz(~user@185.246.204.93)
2020-12-31 12:05:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 12:05:35 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2020-12-31 12:05:51 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 12:05:53 +0100 <pie_> ok i found this https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Unsafe.html#v:unsafeFore… , now the question is I dont quite understand how to make the last occurence safe when leaving the haskell code
2020-12-31 12:06:15 +0100 <idnar> ski: ended up with `case s of Just x | x /= "pending" -> … ; _ -> …`
2020-12-31 12:06:44 +0100 <ski> dyeplexer : the rationale is to think of combining the sequence of elements, one at the time, with an accumulator state / rest summary, either coming from the left, or coming from the right
2020-12-31 12:07:05 +0100 <ski> idnar : sure, if you find it clearer
2020-12-31 12:12:51 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 12:12:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-12-31 12:13:39 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-31 12:16:41 +0100acidx1(~acidx@185.163.110.125) (Remote host closed the connection)
2020-12-31 12:16:41 +0100 <pie_> also the code uses https://hackage.haskell.org/package/singletons-2.7/docs/Data-Singletons-TH.html#v:genSingletons , and I have no idea how to fix this:
2020-12-31 12:16:49 +0100 <dyeplexer> ski: yes. But I think comes with the trade-off of uniformity. I would have to look up the type definition of the functions again an again to get it right each time I forget about this while I'm new to Haskell and haven't "instilled" this thought process in my brain, or forget about Haskell and pick it up again later. That's why I had the question in the first place.
2020-12-31 12:17:25 +0100 <dyeplexer> *but I think this
2020-12-31 12:17:26 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-12-31 12:19:21 +0100 <dyeplexer> Maybe this is a non-issue in the long run because I might have to look up the type definition anyway. idk at the moment,
2020-12-31 12:22:33 +0100 <pie_> actually, let me change the question, https://bpa.st/KPTA the type that is in the error is different from the type GHCi gives???
2020-12-31 12:22:33 +0100 <pie_> > :t translationUnitCursor
2020-12-31 12:22:33 +0100 <pie_> translationUnitCursor :: TranslationUnit -> Cursor
2020-12-31 12:22:35 +0100 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
2020-12-31 12:24:55 +0100 <pie_> how do i even debug this, im throwing :info :k and :t haphazardly at stuff and its not getting any clearer
2020-12-31 12:25:09 +0100 <pie_> hell, CursorK doesnt even seem to be in scope
2020-12-31 12:25:28 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-31 12:29:08 +0100 <tomsmeding> pie_: what's Cursor defined as
2020-12-31 12:29:44 +0100 <pie_> > :t Cursor
2020-12-31 12:29:45 +0100 <pie_> Cursor :: Leaf TranslationUnit CXCursor -> Cursor
2020-12-31 12:29:46 +0100 <pie_> tomsmeding: one sec
2020-12-31 12:29:47 +0100 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
2020-12-31 12:30:07 +0100 <tomsmeding> also ghc doesn't always try to qualify stuff in error messages, so the fact that CursorK isn't in scope in ghci doesn't really say much
2020-12-31 12:30:26 +0100 <pie_> tomsmeding: newtype Cursor = Cursor (Leaf TranslationUnit CXCursor) deriving (Child, Clang)
2020-12-31 12:30:50 +0100 <pie_> (I dont think I found cursork in the source either, its probably related to the genSingletons stuff)
2020-12-31 12:31:30 +0100 <pie_> this is the library btw https://hackage.haskell.org/package/clang-pure
2020-12-31 12:31:51 +0100 <pie_> i had to move the internal things to exposed in the cabal to poke at it though
2020-12-31 12:32:31 +0100 <tomsmeding> CursorK is just a newtype wrapper around Cursor, apparently: https://hackage.haskell.org/package/clang-pure-0.2.0.6/docs/src/Language.C.Clang.Cursor.Typed.html…
2020-12-31 12:32:43 +0100knupfer(~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de)
2020-12-31 12:32:44 +0100knupfer(~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de) (Client Quit)
2020-12-31 12:33:01 +0100knupfer(~Thunderbi@87.123.206.212)
2020-12-31 12:33:30 +0100 <pie_> oh, i was only grepping a subdirectory *facepalm*
2020-12-31 12:33:41 +0100 <tomsmeding> pie_: there are two translationUnitCursor definitions with different types: https://tomsmeding.com/ss/get/tomsmeding/n72aqp
2020-12-31 12:33:45 +0100 <tomsmeding> that might be your issue
2020-12-31 12:34:00 +0100 <tomsmeding> hint: the 's' key on a haddocks page opens a search box ;)
2020-12-31 12:34:13 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2020-12-31 12:34:15 +0100 <pie_> yeah, thanks ;_;
2020-12-31 12:37:26 +0100spake(~spake@178.162.204.214)
2020-12-31 12:37:26 +0100 <Kronic> Need some cabal help: I have library definition which exports 3 or 4 related modules, All listed under a subfolder in hs-source-dirs: src/Lib, e.g. one is called Lib.A -- I have named them in the module statement Lib.A and the file is called A.hs located inside that Lib folder, but for some reason it cannot find it. Does the name have to be the same or how do achieve this naming scheme like I see other libraries use ?
2020-12-31 12:37:50 +0100 <pie_> tomsmeding: are you able to help maybe with my finalizer question:?
2020-12-31 12:38:20 +0100 <pie_> I dont know how this is supposed to help, if I'm returning from haskell permanently https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Safe.html#v:touchForeign…
2020-12-31 12:38:26 +0100 <tomsmeding> pie_: is that about ForeignPtr's? I have absolutely no idea how they work :D
2020-12-31 12:38:37 +0100 <pie_> ok xD
2020-12-31 12:39:12 +0100 <tomsmeding> Kronic: hs-source-dirs: src
2020-12-31 12:39:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 12:39:33 +0100 <tomsmeding> if you use src/Lib as the source directory, then the file has relative path A.hs, meaning it gets module name A, not Lib.A
2020-12-31 12:41:42 +0100 <Kronic> Ahh that makes sense, and is easier. Thank you tom
2020-12-31 12:43:53 +0100 <pie_> i mean, how would i even theoretically solve this
2020-12-31 12:44:32 +0100 <pie_> i need to somehow tell haskell that a variable will be live even though it will never actually be returned to, because the c++ is calling haskell, not the other way around
2020-12-31 12:44:58 +0100 <Kronic> What's your use case ?
2020-12-31 12:48:45 +0100 <pie_> i want to test some cpp that consumes a pointer to something
2020-12-31 12:48:57 +0100 <pie_> that somehting is a bunch of stuff already implemented on the haskell side
2020-12-31 12:49:06 +0100 <pie_> so I want my cpp program to get it from haskell
2020-12-31 12:49:37 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 12:50:01 +0100 <Kronic> Hmm, well if you're considering FFI there is probably good reason, but have you considered just sending it over the wire or something? It'll be a lot less painful I would imagine
2020-12-31 12:51:09 +0100 <pie_> well its a pointer into clang stuff managed by the haskell code
2020-12-31 12:51:18 +0100 <pie_> dont think i can serialize that :P
2020-12-31 12:51:37 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162)
2020-12-31 12:52:08 +0100 <pie_> actually, bitonic, ping? 'xD
2020-12-31 12:53:07 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-31 12:53:09 +0100 <idnar> @hoogle (Void, Void) -> Void
2020-12-31 12:53:10 +0100 <lambdabot> Sound.Tidal.Utils delta :: Num a => (a, a) -> a
2020-12-31 12:53:10 +0100 <lambdabot> DSP.Basic norm2sqr :: Num a => (a, a) -> a
2020-12-31 12:53:10 +0100 <lambdabot> Prelude fst :: (a, b) -> a
2020-12-31 12:53:55 +0100 <pie_> this sounds like what i want blog.ezyang.com/2010/07/managing-foreign-pointers-effectively/ " you can use a StablePtr to keep your ForeignPtr from ever being garbage collected"
2020-12-31 12:54:16 +0100 <pie_> kind of makes sense if im interpreting this correctly, i can just wrap the foreignptr in a stableptr?
2020-12-31 12:55:04 +0100mp___(mp@hell.cx)
2020-12-31 12:55:39 +0100Alleria(~textual@mskresolve-a.mskcc.org)
2020-12-31 12:56:02 +0100AlleriaGuest21562
2020-12-31 12:58:00 +0100 <idnar> @hoogle Either Void Void -> Void
2020-12-31 12:58:01 +0100 <lambdabot> Data.Either.Utils fromEither :: Either a a -> a
2020-12-31 12:58:01 +0100 <lambdabot> Data.Either.Extra fromEither :: Either a a -> a
2020-12-31 12:58:01 +0100 <lambdabot> Extra fromEither :: Either a a -> a
2020-12-31 12:59:55 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
2020-12-31 13:02:24 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 13:02:52 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2020-12-31 13:03:54 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-31 13:06:16 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
2020-12-31 13:09:01 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
2020-12-31 13:09:28 +0100 <pie_> oh cool , i got it to compile, lets see if it crashes
2020-12-31 13:09:38 +0100 <pie_> cool i got a pointer :D
2020-12-31 13:09:53 +0100 <ski> dyeplexer : yes, it's not obviously the only sensible way to have it
2020-12-31 13:09:57 +0100 <ski> SML has it as
2020-12-31 13:10:07 +0100 <ski> val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
2020-12-31 13:10:13 +0100 <ski> val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
2020-12-31 13:10:19 +0100 <ski> while O'Caml has
2020-12-31 13:10:25 +0100 <ski> val fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list -> 'b)
2020-12-31 13:10:31 +0100 <ski> val fold_right : ('a -> 'b -> 'b) -> ('a list -> 'b -> 'b)
2020-12-31 13:10:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 264 seconds)
2020-12-31 13:12:06 +0100 <dyeplexer> I see
2020-12-31 13:12:13 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 13:12:37 +0100 <ski> so with SML, they've the same signature, so you can just swap one out for the other (one could debate whether that's a good thing). it does give you that `foldl f z (rev xs)' is equal to `foldr f z xs', though
2020-12-31 13:13:05 +0100 <ski> while the O'Caml ones go with the same parameter ordering for the callback as the Haskell ones
2020-12-31 13:13:11 +0100 <ski> @type foldl
2020-12-31 13:13:12 +0100 <lambdabot> Foldable t => (b -> a -> b) -> b -> t a -> b
2020-12-31 13:13:15 +0100 <ski> @type foldr
2020-12-31 13:13:17 +0100 <lambdabot> Foldable t => (a -> b -> b) -> b -> t a -> b
2020-12-31 13:13:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 13:13:52 +0100byorgey(~byorgey@155.138.238.211) (Quit: Lost terminal)
2020-12-31 13:14:18 +0100 <ski> while also swapping the order of the list and right-most / initial value, in the `fold_right' case. this means that one can compose them with themselves, like
2020-12-31 13:14:40 +0100 <ski> val fold_left o fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list list -> 'b)
2020-12-31 13:14:58 +0100 <ski> val fold_right o fold_right : ('a -> 'b -> 'b) -> ('a list list -> 'b -> 'b)
2020-12-31 13:14:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 13:15:01 +0100 <pie_> now to figure out how to build this thing...
2020-12-31 13:16:10 +0100 <ski> for Haskell, to do that, you'd do
2020-12-31 13:16:19 +0100 <ski> @type foldl . foldl
2020-12-31 13:16:20 +0100 <lambdabot> (Foldable t1, Foldable t2) => (b -> a -> b) -> b -> t1 (t2 a) -> b
2020-12-31 13:16:22 +0100 <ski> but
2020-12-31 13:16:39 +0100 <ski> @type foldr . flip . foldr
2020-12-31 13:16:40 +0100 <lambdabot> (Foldable t1, Foldable t2) => (a -> b -> b) -> b -> t1 (t2 a) -> b
2020-12-31 13:18:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
2020-12-31 13:20:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 13:21:41 +0100 <ski> dyeplexer : so there's three different positives here, (a) mnemonic of "injecting" the initial value either from the left, or from the right (Haskell,O'Caml); (b) same callback signature, making it easier to state relation between the two (SML); (c) being able to self-compose the folds (O'Caml. Haskell could have had this, if the initial value and list parameters were swapped)
2020-12-31 13:22:12 +0100Torro(Torro@gateway/vpn/protonvpn/torro)
2020-12-31 13:22:27 +0100 <ski> (a) is inconsistent with (b), can't have both. btw, (a) is what causes the following to keep the list element ordering in the expression :
2020-12-31 13:22:43 +0100 <ski> > foldl f z [a,b,c,d]
2020-12-31 13:22:46 +0100 <lambdabot> f (f (f (f z a) b) c) d
2020-12-31 13:22:47 +0100 <ski> > foldr f z [a,b,c,d]
2020-12-31 13:22:50 +0100 <lambdabot> f a (f b (f c (f d z)))
2020-12-31 13:23:09 +0100 <ski> > foldl (**) z [a,b,c,d]
2020-12-31 13:23:12 +0100 <lambdabot> (((z**a)**b)**c)**d
2020-12-31 13:23:28 +0100 <ski> > foldr (/) z [a,b,c,d]
2020-12-31 13:23:31 +0100 <lambdabot> a / (b / (c / (d / z)))
2020-12-31 13:27:17 +0100Entertainment(~entertain@104.246.132.210)
2020-12-31 13:28:36 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 13:30:43 +0100 <Squarism> Doesnt micro-lens allow me to auto-create Prism's for my sum types? How do they mean one should create a Traversal involving sum type constructors?
2020-12-31 13:33:06 +0100 <dyeplexer> Got it. Thanks.
2020-12-31 13:33:08 +0100 <ski> (i guess SML could also have made their self-composable. but they decided to make the callback tupled, while accepting the initial value and the list curriedly. presumably the former is because an expression like `op +' (corresponding to `(+)' in Haskell), is tupled. generally O'Caml tends to prefer curried style more, while many standard library operations in SML are tupled. i think because tupled were more
2020-12-31 13:33:10 +0100Entertainment(~entertain@104.246.132.210) ()
2020-12-31 13:33:14 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-12-31 13:33:14 +0100 <ski> efficient in existing implementations back then in SML, while O'Caml had efficient curried ones from early on at least)
2020-12-31 13:34:09 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
2020-12-31 13:34:18 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 13:34:33 +0100Entertainment(~entertain@104.246.132.210)
2020-12-31 13:34:39 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 13:34:57 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
2020-12-31 13:36:00 +0100 <int-e> That's the cost of having a spine :)
2020-12-31 13:36:30 +0100 <ski> (although some common ones, like e.g. `map', and `foldl' and `foldr' themselves (but not the callback parameter) are still curried, probably because it's just so useful to e.g. be able to do `map (map f) xss' or `map (foldl f z) xss', &c.)
2020-12-31 13:40:52 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 13:41:35 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 13:43:25 +0100geekosaur(ac3a8c6e@172.58.140.110)
2020-12-31 13:45:36 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Quit: Connection closed)
2020-12-31 13:47:52 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303)
2020-12-31 13:48:02 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
2020-12-31 13:51:46 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-31 13:52:34 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 13:53:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 13:54:57 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib)
2020-12-31 13:55:00 +0100mirai67(~serijima7@5.76.196.62)
2020-12-31 13:55:16 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
2020-12-31 13:59:43 +0100madjest62(~Android@31-161-159-42.mobile.kpn.net)
2020-12-31 14:01:27 +0100mp___(mp@hell.cx) (Ping timeout: 260 seconds)
2020-12-31 14:03:42 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
2020-12-31 14:04:41 +0100mirai67(~serijima7@5.76.196.62) ("Leaving")
2020-12-31 14:14:14 +0100Guest21562(~textual@mskresolve-a.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-31 14:14:27 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 14:18:55 +0100Alleria(~textual@zrcout.mskcc.org)
2020-12-31 14:18:57 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds)
2020-12-31 14:19:18 +0100AlleriaGuest38620
2020-12-31 14:20:51 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 14:23:12 +0100 <Juviee> kuribas: Thanks a lot for help! I though I need to mess with predicate, and solution were in a body. That's explains a lot!
2020-12-31 14:25:10 +0100knupfer(~Thunderbi@87.123.206.212) (Ping timeout: 272 seconds)
2020-12-31 14:25:13 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-12-31 14:25:50 +0100jneira(5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Quit: Connection closed)
2020-12-31 14:25:52 +0100 <Juviee> Kronic: thank you, I already did that, but it was important for me to solve the problem this way, to know types better
2020-12-31 14:30:13 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu) (Quit: Connection closed for inactivity)
2020-12-31 14:31:05 +0100 <pie_> tomsmeding: thanks again for getting me unstuck :D looks like im makign progress , i have my cpp code executing the haskell now and it gets the pointer succesfully, not sure if the pointer is actually good yet but the information is flowing.
2020-12-31 14:31:37 +0100cyphase(~cyphase@unaffiliated/cyphase) (Ping timeout: 246 seconds)
2020-12-31 14:34:53 +0100Shiranai(beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143)
2020-12-31 14:35:32 +0100 <Shiranai> Hello, silly question, is there some way to tell stack to install a "global", default ghc and ghci? I'm on Windows if that matters
2020-12-31 14:35:59 +0100 <geekosaur> no, it wants to retain full control
2020-12-31 14:36:09 +0100cyphase(~cyphase@unaffiliated/cyphase)
2020-12-31 14:36:14 +0100son0p(~son0p@181.136.122.143)
2020-12-31 14:36:33 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 14:37:18 +0100 <Shiranai> thanks, I want to use the LSP for haskell in vscode, so there's no way? There doesn't seem to be any way for me to point to the correct binaries inside stack
2020-12-31 14:38:15 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-31 14:38:39 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 14:39:42 +0100 <geekosaur> I thought vscode knew about stack. But I don't know details
2020-12-31 14:42:26 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 14:45:00 +0100pavonia(~user@unaffiliated/siracusa)
2020-12-31 14:45:10 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
2020-12-31 14:46:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting)
2020-12-31 14:46:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 14:49:18 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 14:49:57 +0100christo(~chris@81.96.113.213)
2020-12-31 14:53:30 +0100spake(~spake@178.162.204.214) (Remote host closed the connection)
2020-12-31 14:54:32 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-12-31 14:55:01 +0100mp___(mp@hell.cx)
2020-12-31 15:00:18 +0100frankdmartinez(~frankdmar@5.181.234.188)
2020-12-31 15:01:07 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
2020-12-31 15:01:32 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 260 seconds)
2020-12-31 15:02:58 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
2020-12-31 15:03:51 +0100jmchael(~jmchael@81.174.205.210)
2020-12-31 15:04:49 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-12-31 15:05:51 +0100 <tomsmeding> Shiranai: it might be worth trying to write a hie.yaml
2020-12-31 15:06:22 +0100 <tomsmeding> see e.g. https://github.com/mpickering/hie-bios#stack
2020-12-31 15:06:47 +0100 <tomsmeding> (hie-bios is the compiler detection engine underlying ghcide, which underlies HLS, which is used by the vscode plugin :D )
2020-12-31 15:06:57 +0100 <ph88_> whats the proper key combination to get ghci out of an infinite loop ?
2020-12-31 15:07:04 +0100 <tomsmeding> ctrl-C?
2020-12-31 15:07:11 +0100 <Shiranai> ctrl-d would kill the process
2020-12-31 15:07:19 +0100 <geekosaur> ctrl-c
2020-12-31 15:07:29 +0100 <tomsmeding> pie_: nice! good luck!
2020-12-31 15:07:34 +0100 <geekosaur> ctrl-d sends end-of-file which is unlikely to do anything here
2020-12-31 15:07:49 +0100 <ph88_> hhmm ok .. i use git bash terminal on windows and it responds kind of funky after a ctrl-c
2020-12-31 15:07:51 +0100 <Shiranai> o mb then
2020-12-31 15:08:02 +0100 <__monty__> I've had trouble getting GHCi to stop with ^C too.
2020-12-31 15:08:19 +0100 <tomsmeding> that might be an interaction with windows
2020-12-31 15:08:21 +0100 <__monty__> Seems to only work if I'm quick enough to notice the looping.
2020-12-31 15:08:27 +0100 <__monty__> I'm not on windows.
2020-12-31 15:08:34 +0100 <geekosaur> sadly, ghc/ghci only checks for it during alloction so a loop that doesn't allocate can't be interrupted
2020-12-31 15:08:42 +0100 <tomsmeding> does it quit if you ^C twice, __monty__ ?
2020-12-31 15:08:47 +0100urodna(~urodna@unaffiliated/urodna)
2020-12-31 15:08:53 +0100 <__monty__> tomsmeding: Not even if I hold down ^C.
2020-12-31 15:09:12 +0100 <__monty__> Probably running into what geekosaur mentions.
2020-12-31 15:09:13 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8)
2020-12-31 15:09:20 +0100 <ph88^> thats interesting Geekingfrog
2020-12-31 15:09:23 +0100 <ph88^> geekosaur,
2020-12-31 15:09:29 +0100 <ph88^> sorry Geekingfrog :/
2020-12-31 15:10:08 +0100hexreel(~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7)
2020-12-31 15:10:46 +0100Rudd0^(~Rudd0@185.189.115.103) (Ping timeout: 272 seconds)
2020-12-31 15:11:37 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 15:12:19 +0100 <Shiranai> tomsmeding: checked the hie-bios stuff but I don't think ghcide can be configured as such sadly http://prntscr.com/wdofbj it seems it it's another alternative somehow, and there's no vscode way to link to the hie.yaml, I think. If I were to write it in the installation folder I'd probably lose it after an LSP update
2020-12-31 15:12:45 +0100 <merijn> Shiranai: ghcide *definitely* uses hie-bios
2020-12-31 15:12:46 +0100 <Shiranai> guess I'll just install the haskell platform too then
2020-12-31 15:13:02 +0100 <tomsmeding> Shiranai: you put that hie.yaml file in your project folder (next to the stack.yaml file); it will be picked up automatically
2020-12-31 15:13:14 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:b472:19b8:2fa3:f30b) (Ping timeout: 264 seconds)
2020-12-31 15:13:20 +0100 <tomsmeding> possibly you need to restart haskell-language-server, which perhaps means restarting vscode (don't know)
2020-12-31 15:13:25 +0100 <lassulus> hi, my ByteString shows umlauts like this: "f\195\188nfgr\195\182\195\159ten" is there a way to convert them to their correct representation inside a text? I tried decodeUtf8 but that just converted them to "f\252nfgr\246\223ten"
2020-12-31 15:13:30 +0100 <ph88^> both git bash and powershell have problems with ghci :*(
2020-12-31 15:13:31 +0100DavidEichmann(~david@98.27.93.209.dyn.plus.net)
2020-12-31 15:13:48 +0100 <merijn> lassulus: If you decode to Text and see \252 your problem is "applying show to text"
2020-12-31 15:14:03 +0100 <merijn> > Data.Text.pack "ü"
2020-12-31 15:14:05 +0100 <lambdabot> error:
2020-12-31 15:14:06 +0100 <lambdabot> Not in scope: ‘Data.Text.pack’
2020-12-31 15:14:06 +0100 <lambdabot> No module named ‘Data.Text’ is imported.
2020-12-31 15:14:08 +0100 <geekosaur> lassulus, that has nothing to do with converion, it's what show does
2020-12-31 15:14:08 +0100 <merijn> hmm
2020-12-31 15:14:15 +0100 <merijn> > "ü"
2020-12-31 15:14:17 +0100 <lambdabot> "\252"
2020-12-31 15:14:22 +0100 <merijn> > text "ü"
2020-12-31 15:14:24 +0100 <lambdabot> ü
2020-12-31 15:14:30 +0100 <merijn> See also in yahb
2020-12-31 15:14:34 +0100 <merijn> % print "ü"
2020-12-31 15:14:35 +0100 <yahb> merijn: "\252"
2020-12-31 15:14:41 +0100 <merijn> % putStrLn "ü"
2020-12-31 15:14:41 +0100 <yahb> merijn: ü
2020-12-31 15:14:46 +0100 <Shiranai> I ohhh my bad, I wasn't using the yamls in my project folder, thought they were meant to be in the installation folder, thanks
2020-12-31 15:15:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 15:15:07 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-31 15:15:29 +0100 <Shiranai> ph88^: what problems you having? I'm using the normal cmd and it's fine
2020-12-31 15:16:13 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-31 15:16:25 +0100olligobber(~olligobbe@unaffiliated/olligobber) (Ping timeout: 246 seconds)
2020-12-31 15:17:09 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 15:19:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds)
2020-12-31 15:20:19 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-31 15:21:56 +0100christo(~chris@81.96.113.213)
2020-12-31 15:22:42 +0100Guest20891(~AntiSpamM@195.140.213.38)
2020-12-31 15:23:36 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3)
2020-12-31 15:27:12 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8) (Ping timeout: 260 seconds)
2020-12-31 15:27:13 +0100madjest62(~Android@31-161-159-42.mobile.kpn.net) (Read error: Connection reset by peer)
2020-12-31 15:27:41 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-31 15:27:59 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 15:28:48 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-31 15:31:25 +0100Torro(Torro@gateway/vpn/protonvpn/torro) (Read error: Connection reset by peer)
2020-12-31 15:31:27 +0100christo(~chris@81.96.113.213)
2020-12-31 15:31:43 +0100t3xp4t(~texinwien@213162073014.public.t-mobile.at)
2020-12-31 15:39:23 +0100darjeeling_(~darjeelin@122.245.217.190) (Ping timeout: 256 seconds)
2020-12-31 15:40:05 +0100usr25(~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds)
2020-12-31 15:40:08 +0100geekosaur(ac3a8c6e@172.58.140.110) (Remote host closed the connection)
2020-12-31 15:42:41 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-31 15:43:51 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com) ()
2020-12-31 15:44:59 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com)
2020-12-31 15:45:11 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit)
2020-12-31 15:46:19 +0100phasespace_(~sar@89-162-33-21.fiber.signal.no)
2020-12-31 15:46:32 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com)
2020-12-31 15:46:56 +0100phasespace(~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 240 seconds)
2020-12-31 15:47:40 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:61d8:4dbb:1763:5965)
2020-12-31 15:47:54 +0100seliopou_(seliopou@entropy.tmok.com)
2020-12-31 15:48:10 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit)
2020-12-31 15:48:14 +0100seliopou(seliopou@entropy.tmok.com) (Read error: Connection reset by peer)
2020-12-31 15:48:30 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com)
2020-12-31 15:48:54 +0100seliopou_(seliopou@entropy.tmok.com) (Client Quit)
2020-12-31 15:49:10 +0100lmk(57b15d95@p57b15d95.dip0.t-ipconnect.de)
2020-12-31 15:50:01 +0100 <kuribas> is there an easy way to get a portable binary? Like a docker image with ghc and alpine linux?
2020-12-31 15:50:03 +0100seliopou(seliopou@entropy.tmok.com)
2020-12-31 15:50:41 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-31 15:51:24 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 15:51:31 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3) (Ping timeout: 258 seconds)
2020-12-31 15:52:07 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-31 15:52:26 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 15:52:42 +0100darjeeling_(~darjeelin@115.215.41.150)
2020-12-31 15:52:55 +0100 <merijn> kuribas: full static (so Alpine for musl toolchain) executable should work across any linux distro with a binary compatible kernel (which, given linux' conservative changes in kernel should be "most of them")
2020-12-31 15:54:09 +0100 <kuribas> merijn: but how do I get a ghc for alpine with musl?
2020-12-31 15:55:24 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-31 15:55:32 +0100 <exarkun> is ghc known to work well with alpine/musl? I know some other language runtimes run into problems with divergence between musl and glibc behavior.
2020-12-31 15:56:26 +0100coffeeturtle(~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net)
2020-12-31 15:56:58 +0100 <Rembane> A couple of years ago there were known bugs in the interaction between GHC and Alpine.
2020-12-31 15:57:32 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-12-31 15:57:36 +0100coffeeturtle(~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net) (Client Quit)
2020-12-31 15:58:27 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-31 15:59:01 +0100mp___(mp@hell.cx) (Ping timeout: 264 seconds)
2020-12-31 15:59:51 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-31 16:00:40 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-31 16:01:24 +0100Tops2(~Tobias@dyndsl-095-033-019-027.ewe-ip-backbone.de)
2020-12-31 16:01:37 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-31 16:01:40 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 265 seconds)
2020-12-31 16:03:22 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-12-31 16:03:39 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 268 seconds)
2020-12-31 16:04:10 +0100 <exarkun> I thought it was allowed to incompletely initialize a record type and then fill in the missing fields later but I get a runtime error "Missing field in record construction ...". Did I misunderstand or does this just mean I tried to use one of the uninitialized fields?
2020-12-31 16:04:32 +0100 <exarkun> Also is there a better pattern for incrementally constructing a value than this?
2020-12-31 16:08:28 +0100 <Kronic> Depends on the case I guess
2020-12-31 16:10:05 +0100 <kuribas> exarkun: probably you used one of the fields
2020-12-31 16:10:20 +0100 <kuribas> exarkun: but incompletely initialized fields are a code smell.
2020-12-31 16:10:31 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-31 16:10:47 +0100 <kuribas> exarkun: you can use Maybe if the field can be empty
2020-12-31 16:11:30 +0100 <kuribas> exarkun: or break down the record into parts that you assemble later.
2020-12-31 16:11:41 +0100 <exarkun> All the fields will eventually be required to have a value
2020-12-31 16:11:54 +0100 <exarkun> And there's an annoyingly large number of them
2020-12-31 16:12:27 +0100 <kuribas> exarkun: if you need to leave them uninitialized, better to use defaults then.
2020-12-31 16:12:36 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Client Quit)
2020-12-31 16:12:46 +0100 <Kronic> How many fields are there out of interest ?
2020-12-31 16:12:55 +0100 <exarkun> 11 right now, not sure if I missed any ... although trying to figure out where I accessed this particularly field, I've realized that maybe I have to initialize all of them with some starting value anyway (and then update them over time rather than giving them their value at one point)
2020-12-31 16:13:08 +0100 <Kronic> why not just use let in syntax?
2020-12-31 16:13:38 +0100 <kuribas> or with recordWildCards: let PartialStruct1{..} = getPartial1; PartialStruct2{..} = getPartial2 in CompleteStruct{..}
2020-12-31 16:13:44 +0100 <exarkun> There are 3 in particular that are annoying and have their value computed over the course of reading an arbitrarily large amount of input
2020-12-31 16:14:12 +0100 <exarkun> computed separately from each other
2020-12-31 16:14:34 +0100 <exarkun> meanwhile a couple other fields get used ... although I could probably get away from that
2020-12-31 16:14:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8d66:925f:69c5:e3bc)
2020-12-31 16:15:03 +0100 <exarkun> that partial idea might be viable though
2020-12-31 16:16:00 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 272 seconds)
2020-12-31 16:16:03 +0100obihann(~jhann@142.177.168.17) (Quit: Lost terminal)
2020-12-31 16:16:25 +0100pera(~pera@unaffiliated/pera)
2020-12-31 16:17:04 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
2020-12-31 16:19:15 +0100Torro(Torro@gateway/vpn/protonvpn/torro)
2020-12-31 16:19:45 +0100jneira(5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180)
2020-12-31 16:21:22 +0100ADG1089__(~aditya@223.235.213.117) (Quit: Konversation terminated!)
2020-12-31 16:21:41 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-12-31 16:23:06 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-31 16:23:08 +0100fendor_(~fendor@77.119.130.207.wireless.dyn.drei.com)
2020-12-31 16:25:50 +0100fendor(~fendor@77.119.128.173.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2020-12-31 16:26:07 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
2020-12-31 16:26:22 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-31 16:26:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 16:28:44 +0100christo(~chris@81.96.113.213)
2020-12-31 16:31:31 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-31 16:35:51 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
2020-12-31 16:37:03 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2020-12-31 16:38:58 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-31 16:41:48 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
2020-12-31 16:42:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 16:42:53 +0100matryoshka`(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-31 16:44:25 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-zlylaysqfazhvjvl)
2020-12-31 16:45:21 +0100Kronic(~Kronic___@84.203.96.46) (Read error: Connection reset by peer)
2020-12-31 16:45:57 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 260 seconds)
2020-12-31 16:48:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-31 16:48:51 +0100 <ph88^> Shiranai, the normal command from the 80ties ? :/
2020-12-31 16:48:57 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 16:49:35 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-31 16:49:48 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-31 16:49:57 +0100 <Shiranai> yes haha, it's old as hell but does it really matter? I just use it for stack commands lol
2020-12-31 16:50:17 +0100 <ph88^> lol ok i try
2020-12-31 16:50:27 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-31 16:54:25 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 240 seconds)
2020-12-31 16:55:53 +0100machinedgod(~machinedg@24.105.81.50)
2020-12-31 16:58:09 +0100cheater(~user@unaffiliated/cheater)
2020-12-31 17:00:30 +0100aenesidemus(~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net)
2020-12-31 17:04:26 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2020-12-31 17:04:37 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-31 17:05:31 +0100Rudd0(~Rudd0@185.189.115.103)
2020-12-31 17:09:25 +0100 <madjestic> hey guys. Do you know if `massiv` supports mixed types for tuples? Like does it support `[(Int, [Float])]` for example? What would the type signature look like?
2020-12-31 17:10:24 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Remote host closed the connection)
2020-12-31 17:12:47 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
2020-12-31 17:13:14 +0100lep-delete(~lep@94.31.81.93) (Read error: Connection reset by peer)
2020-12-31 17:13:43 +0100phasespace(~sar@89-162-33-21.fiber.signal.no)
2020-12-31 17:14:48 +0100usr25(~usr25@unaffiliated/usr25) (Remote host closed the connection)
2020-12-31 17:15:28 +0100 <Shiranai> are guards syntactic sugar? If so, what are they compiling too. Same thing for pattern matching.
2020-12-31 17:15:46 +0100phasespace_(~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 246 seconds)
2020-12-31 17:16:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 17:17:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 17:17:41 +0100Torro(Torro@gateway/vpn/protonvpn/torro) (Quit: bye)
2020-12-31 17:17:53 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-31 17:20:26 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 17:21:25 +0100lep-delete(~lep@94.31.81.93)
2020-12-31 17:21:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
2020-12-31 17:21:49 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2020-12-31 17:21:54 +0100michalz(~user@185.246.204.93) (Remote host closed the connection)
2020-12-31 17:28:15 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 17:28:32 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-31 17:29:26 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2020-12-31 17:30:36 +0100solonarv(~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr)
2020-12-31 17:31:49 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 17:33:55 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-31 17:35:42 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-12-31 17:35:43 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-12-31 17:37:44 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 17:37:44 +0100 <nf> Shiranai: write a simple program and compile it with -ddump-simpl to see what it gets desugared into
2020-12-31 17:38:18 +0100 <Shiranai> nf: nice, didn't know that one thanks
2020-12-31 17:39:56 +0100Iceland_jack(~user@31.124.48.169) (Remote host closed the connection)
2020-12-31 17:40:53 +0100lmk(57b15d95@p57b15d95.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-12-31 17:41:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 17:41:15 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-iowlmahgyhczxsfi)
2020-12-31 17:41:27 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 17:46:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-31 17:47:31 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-31 17:48:31 +0100 <tomsmeding> madjestic: I don't think you can have an array element type that includes another array
2020-12-31 17:49:03 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-31 17:49:26 +0100 <tomsmeding> or maybe I'm wrong
2020-12-31 17:50:20 +0100 <tomsmeding> madjestic: did you try and did it not work?
2020-12-31 17:51:25 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2020-12-31 17:52:49 +0100usr25(~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
2020-12-31 17:53:49 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2020-12-31 17:54:17 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-31 17:55:07 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2020-12-31 18:00:56 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-100.cust.tzulo.com)
2020-12-31 18:01:28 +0100geekosaur(42d52137@66.213.33.55)
2020-12-31 18:02:33 +0100 <Shiranai> Any way to run ghc inside stack with compiler options? Been trying it for a while and can't find that in the docs neither
2020-12-31 18:02:49 +0100 <Shiranai> (without a whole cabal/stack setup, just a single file)
2020-12-31 18:04:28 +0100kuribas(~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-31 18:05:47 +0100 <geekosaur> use -- to separate stack options from ghc options, in stack exec -- ghc ...
2020-12-31 18:07:28 +0100ransom(~c4264035@8.47.12.52)
2020-12-31 18:12:28 +0100chenshen(~chenshen@2620:10d:c090:400::5:27de)
2020-12-31 18:12:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 18:12:38 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection)
2020-12-31 18:17:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 18:17:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 18:18:14 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-emygrcoqztsqoawx)
2020-12-31 18:18:30 +0100 <Shiranai> geekosaur: thanks, it worked
2020-12-31 18:19:48 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2020-12-31 18:21:05 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2020-12-31 18:21:34 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2020-12-31 18:21:50 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2020-12-31 18:22:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
2020-12-31 18:23:04 +0100pera(~pera@unaffiliated/pera) (Quit: leaving)
2020-12-31 18:23:24 +0100 <dexterfoo> I made a FP expanding brain meme. what do you think? https://i.imgur.com/FvaVFZx.jpg
2020-12-31 18:26:59 +0100pera(~pera@unaffiliated/pera)
2020-12-31 18:29:36 +0100aveltras(uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf)
2020-12-31 18:32:24 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-31 18:32:38 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Read error: Connection timed out)
2020-12-31 18:32:51 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2020-12-31 18:32:54 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-31 18:33:03 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2020-12-31 18:34:15 +0100 <Shiranai> I've been checking the desugared version of some stuff and saw that pattern matching and guards are just case-of expressions. I can't seem to see what let-in becomes though, it seems that the let expressions just get replaced whenever they appear in the in expression? Wouldn't that cause possible double computations?
2020-12-31 18:35:09 +0100 <Shiranai> i.e. `let a=myExpensiveComputation(x) in a+a`
2020-12-31 18:35:31 +0100 <Shiranai> if that's just `myExpensiveComputation(x)+myExpensiveComputation(x)` the function could be computed twice?
2020-12-31 18:37:20 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 18:40:24 +0100 <monochrom> This is why I would oppose to considering -ddump-simpl as desugaring. The output isn't even a subset of Haskell. It doesn't even have Haskell semantics. It's an entirely different language. (If you hear people say "core", that's the name of this language.)
2020-12-31 18:40:55 +0100 <monochrom> If anything, -ddump-ds-preopt is the closest to what usually people consider desugaring.
2020-12-31 18:43:19 +0100 <monochrom> And the particular question "are guards syntax sugar", IMO it belongs to the class of it-doesn't-matter.
2020-12-31 18:44:25 +0100 <ephemient> `let a = expensive in a + a` doesn't say the computation happens only once; neither does `expensive + expensive` say the computation happens twice
2020-12-31 18:44:39 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds)
2020-12-31 18:44:43 +0100 <Shiranai> I kinda agree it doesn't matter really but I was asking it because of one I hoped it mattered: what are the minimum syntax that allow me to have full semantics?
2020-12-31 18:45:15 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-12-31 18:45:41 +0100 <Shiranai> ephemient: so how could I tell? Just accept there's some weird haskell magic or are there some good rules of thumb?
2020-12-31 18:46:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 18:46:36 +0100 <ephemient> as far as pure code is concerned, there's no observable difference either way
2020-12-31 18:47:04 +0100 <monochrom> when you don't observe time and memory spent
2020-12-31 18:48:13 +0100 <ephemient> in practice, if it's a CAF then GHC will probably float it up to be evaluated once, and if it's not then it probably won't, afaik
2020-12-31 18:49:13 +0100afreak(~wut@ec2-3-122-177-136.eu-central-1.compute.amazonaws.com)
2020-12-31 18:49:49 +0100 <Shiranai> ok thanks
2020-12-31 18:52:14 +0100 <afreak> https://kopy.io/e5lMS#rdTNNczDxdOEh5 how could i speed up this Text-building process ? it seems to be very slow, was faster when i did it with String actually
2020-12-31 18:53:09 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-31 18:53:16 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-31 18:55:45 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-31 18:58:03 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-31 18:58:21 +0100 <monochrom> The Haskell 2010 Report can be interpreted as suggesting one answer to a minimum syntax. For example, it explains guards in terms of if-then-else, and it explains if-then-else in terms of "case ... True-> ... False-> ...". But it does not commit itself to that, it just says "your compiler just has to be indistinguishable from this model".
2020-12-31 18:58:39 +0100 <monochrom> (indistinguishable when as a black box)
2020-12-31 18:59:59 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
2020-12-31 18:59:59 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
2020-12-31 18:59:59 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-31 19:00:40 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-31 19:01:18 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 19:03:02 +0100hexreel(~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7) (Ping timeout: 260 seconds)
2020-12-31 19:03:10 +0100 <monochrom> I find myself using "this is syntax sugar for that" as a pedagogic tool only, not as a this-is-the-truth tool.
2020-12-31 19:04:01 +0100 <monochrom> For example, to explain to a student how and why [1,2,3] matches the pattern x:y:zs, I explain that [1,2,3] is syntax sugar for 1:2:3:[].
2020-12-31 19:05:16 +0100 <monochrom> This is a useful use of "syntax sugar" because a lot of students can't figure this one out on their own, they need me to spell out "it is secretly 1:2:3:[]".
2020-12-31 19:06:10 +0100 <dolio> Turning definitions with guards into some other form can be quie complex, though.
2020-12-31 19:06:28 +0100 <Shiranai> thanks, I hadn't seen it that way but I see now that the property of is-sugar-of is relative to the compiler
2020-12-31 19:06:50 +0100ccqw(~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net)
2020-12-31 19:06:52 +0100carsenal(484d31da@static-72-77-49-218.pitbpa.fios.verizon.net)
2020-12-31 19:08:03 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-31 19:08:40 +0100 <carsenal> does anyone know if there's any way to get a full arm build of ghc, cabal, and stack?
2020-12-31 19:08:59 +0100 <carsenal> I'm about to bite the bullet and try to compile ghc from source, so I'd hate to hear there are binaries out there
2020-12-31 19:09:08 +0100 <dolio> E.G. it is not as simple as saying, "guards turn into this," because guards interact with multi-clause pattern matching definitions.
2020-12-31 19:09:15 +0100 <monochrom> I agree that since case's pattern matching, even the most basic version, is so general, may as well use it to cover if-then-else and guards. Whether you're theorizing semantics or writing a practical compiler.
2020-12-31 19:09:49 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
2020-12-31 19:10:12 +0100 <Shiranai> yeah now I am curious if the four are equivalent, if-then-else, guards, pattern matching and case-of
2020-12-31 19:10:22 +0100ccqw(~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net) (Changing host)
2020-12-31 19:10:22 +0100ccqw(~ccqw@unaffiliated/ccqw)
2020-12-31 19:10:50 +0100 <exarkun> does https://hoogle.haskell.org/ seem particularly slow to anyone else
2020-12-31 19:10:53 +0100 <monochrom> But in principle, you can always do the awkward, why-would-you-do-this thing of the reverse explaining or compiling pattern matching in terms of if-then-else, isJust isRight isLeft, and fromJust fromRight fromLeft.
2020-12-31 19:11:19 +0100 <monochrom> Hell, I have seen academic papers doing that when theorizing ADT. (Annoyed me greatly.)
2020-12-31 19:12:12 +0100 <Shiranai> exarkun: seems fast as always for me
2020-12-31 19:12:26 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-31 19:12:39 +0100 <monochrom> (All the more annoying because the paper is great otherwise.)
2020-12-31 19:13:09 +0100 <monochrom> (And was written in this the 21st century of our lord.)
2020-12-31 19:13:30 +0100 <Shiranai> haha yeah I can see how that works, idk I think of this constantly as my main interest is logic and there's a need for the "minimal" axioms. Maybe something like that for them?
2020-12-31 19:13:42 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-31 19:14:12 +0100 <monochrom> (I.e., a pre-1990 paper that explains ADT in terms of predicates and selectors would be normal, back then few people have heard of Haskell or even ML.)
2020-12-31 19:15:34 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-31 19:16:39 +0100 <monochrom> My http://www.vex.net/~trebla/haskell/crossroad.xhtml#philosophy explains why if you're from the logic angle, all the more reason to take case-of as fundamental, because it perfectly matches natural deduction.
2020-12-31 19:17:37 +0100carsenal(484d31da@static-72-77-49-218.pitbpa.fios.verizon.net) (Remote host closed the connection)
2020-12-31 19:18:39 +0100hexreel(~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca)
2020-12-31 19:19:08 +0100 <exarkun> Shiranai: ty
2020-12-31 19:20:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 19:22:16 +0100knupfer(~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de)
2020-12-31 19:22:41 +0100knupfer(~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-31 19:22:54 +0100knupfer(~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de)
2020-12-31 19:23:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 19:30:23 +0100ccqw(~ccqw@unaffiliated/ccqw) ("Just this.")
2020-12-31 19:30:25 +0100ccqw(~ccqw@unaffiliated/ccqw)
2020-12-31 19:31:13 +0100Shiranai(beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) (Ping timeout: 246 seconds)
2020-12-31 19:31:41 +0100ccqw(~ccqw@unaffiliated/ccqw) (Quit: Just this.)
2020-12-31 19:35:29 +0100 <Squarism> Im lookin at https://github.com/well-typed/optics . Im unfamiliar with the set of cabal.* files in the root. Im guessing this is some new feature in cabal 3 allowing multimodule compilation?
2020-12-31 19:38:18 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-12-31 19:42:04 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-31 19:43:41 +0100p-core(~Thunderbi@koleje-wifi-0045.koleje.cuni.cz)
2020-12-31 19:48:12 +0100orion(~orion@unaffiliated/orion) (Ping timeout: 256 seconds)
2020-12-31 19:49:57 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-31 19:50:00 +0100 <__monty__> Multi-package I believe. Not sure how new it is.
2020-12-31 19:50:03 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds)
2020-12-31 19:50:06 +0100 <sm[m]> Just https://cabal.readthedocs.io/en/3.4/cabal-project.html files I think Squarism
2020-12-31 19:50:24 +0100 <sm[m]> serving a similar role to stack.yaml (locking down versions & options)
2020-12-31 19:50:42 +0100 <Squarism> thanks!
2020-12-31 19:51:13 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
2020-12-31 19:51:17 +0100Lord_of_Life_Lord_of_Life
2020-12-31 19:51:28 +0100 <sm[m]> ah, and in this case declaring all of the local packages' cabal
2020-12-31 19:51:29 +0100 <sm[m]> files
2020-12-31 19:52:20 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-31 19:53:38 +0100frankdmartinez(~frankdmar@5.181.234.188) (Quit: frankdmartinez)
2020-12-31 19:54:56 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 19:56:10 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2020-12-31 19:56:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 19:57:35 +0100kderme(2eb0d7c7@ppp046176215199.access.hol.gr)
2020-12-31 20:01:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-31 20:03:31 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-31 20:03:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection)
2020-12-31 20:03:43 +0100 <__monty__> sm[m]: Aren't version constraints what *.cabal is for?
2020-12-31 20:03:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-31 20:04:14 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-12-31 20:04:19 +0100 <sm[m]> yes, but usually it defines a range of versions
2020-12-31 20:04:31 +0100carsenal(~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net)
2020-12-31 20:04:54 +0100 <sm[m]> sometimes you want to remember or enforce a specific set of versions for everything
2020-12-31 20:05:09 +0100 <sm[m]> possibly across multiple packages
2020-12-31 20:05:51 +0100 <sm[m]> one .cabal file deals with only one package
2020-12-31 20:06:02 +0100 <__monty__> Got it.
2020-12-31 20:06:50 +0100carsenal(~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net) (Client Quit)
2020-12-31 20:09:05 +0100knupfer(~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-12-31 20:09:36 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2020-12-31 20:10:05 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 20:10:08 +0100 <tomsmeding> like package.json vs package-lock.json in the NodeJS world, and Cargo.toml vs Cargo.lock in the Rust world
2020-12-31 20:10:25 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-31 20:10:25 +0100 <tomsmeding> kind of, because here the lock file is optional
2020-12-31 20:11:00 +0100 <sm[m]> isn't there an additional "freeze" file, corresponding to lock files ?
2020-12-31 20:12:03 +0100 <sm[m]> cabal.project.freeze, created by cabal freeze
2020-12-31 20:12:47 +0100 <tomsmeding> ah right, that's true
2020-12-31 20:13:06 +0100 <tomsmeding> but then cabal.project doesn't really have "locking down versions" in its role, does it?
2020-12-31 20:13:11 +0100 <sm[m]> I forget why you need that as well.. I guess it's convenient to use cabal.project for different things
2020-12-31 20:14:02 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib) (Quit: Connection closed for inactivity)
2020-12-31 20:14:11 +0100 <tomsmeding> "package.cabal is for everyone, cabal.project is for your local development setup"?
2020-12-31 20:14:20 +0100 <sm[m]> I think cabal.project is one of the four "project files" which are combined, and probably it's usually not the one where you lock down versions
2020-12-31 20:14:46 +0100 <__monty__> Yeah, cabal.project.local is for local changes.
2020-12-31 20:15:01 +0100 <__monty__> cabal.project is still for everyone in a multi-package project I guess.
2020-12-31 20:15:05 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-31 20:15:11 +0100 <sm[m]> the manual says cabal.project.freeze (the output of cabal v2-freeze) and cabal.project.local (the output of cabal v2-configure), which could be improved
2020-12-31 20:15:16 +0100 <__monty__> The freeze file is probably separate because it's generated by cabal?
2020-12-31 20:15:49 +0100 <__monty__> Didn't remember cabal.project.local is generated too though.
2020-12-31 20:17:15 +0100texasmynsted(~texasmyns@99.96.221.112) (Remote host closed the connection)
2020-12-31 20:17:59 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2020-12-31 20:18:10 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-kavyfortterppjsq)
2020-12-31 20:21:05 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-12-31 20:22:44 +0100chenshen(~chenshen@2620:10d:c090:400::5:27de) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-12-31 20:23:58 +0100foobar2(89537310@137-83-115-16.starry-inc.net)
2020-12-31 20:28:00 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2020-12-31 20:31:53 +0100 <monochrom> "cabal configure" generates cabal.project.local. "cabal freeze" generates cabal.project.freeze.
2020-12-31 20:32:12 +0100hexreel(~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2020-12-31 20:32:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 20:33:42 +0100 <monochrom> You are still free to edit them or roll your own. Just be aware that the next "configure" or "freeze" can overwrite them. But! In the case of "configure", a backup is made, you can recover.
2020-12-31 20:39:42 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2020-12-31 20:43:32 +0100hexreel(~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca)
2020-12-31 20:44:13 +0100geekosaur(42d52137@66.213.33.55)
2020-12-31 20:45:12 +0100aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-31 20:45:32 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
2020-12-31 20:46:24 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-31 20:47:27 +0100johs(sid246410@gateway/web/irccloud.com/x-ngyseqelgtwcfjec) (Ping timeout: 260 seconds)
2020-12-31 20:47:27 +0100ReinH__(sid179972@gateway/web/irccloud.com/x-gpfwmlgqwhiukqzi) (Ping timeout: 260 seconds)
2020-12-31 20:48:02 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-mzkaypjsiixomsyk) (Ping timeout: 260 seconds)
2020-12-31 20:48:02 +0100elvishjerricco(sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 260 seconds)
2020-12-31 20:48:06 +0100kini(~kini@unaffiliated/kini) (Read error: Connection reset by peer)
2020-12-31 20:48:16 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-31 20:48:37 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-12-31 20:48:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds)
2020-12-31 20:48:37 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0) (Ping timeout: 260 seconds)
2020-12-31 20:48:37 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds)
2020-12-31 20:48:37 +0100joel135(sid136450@gateway/web/irccloud.com/x-jrkdlopfrcmkshuh) (Ping timeout: 260 seconds)
2020-12-31 20:48:37 +0100d0liver(sid363046@gateway/web/irccloud.com/x-jbrqqdcqtnzurjyt) (Ping timeout: 260 seconds)
2020-12-31 20:48:38 +0100aplainze1akindaplainzetakind
2020-12-31 20:49:00 +0100elvishjerricco(sid237756@NixOS/user/ElvishJerricco)
2020-12-31 20:49:00 +0100johs(sid246410@gateway/web/irccloud.com/x-tafdqtulgzplanux)
2020-12-31 20:49:07 +0100ReinH__(sid179972@gateway/web/irccloud.com/x-ooppghpllredfipz)
2020-12-31 20:49:12 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-a876-e3dc-1017-f48b.res6.spectrum.com) (Ping timeout: 260 seconds)
2020-12-31 20:49:12 +0100natim87(sid286962@gateway/web/irccloud.com/x-dhthcfdaholuyfwt) (Ping timeout: 260 seconds)
2020-12-31 20:49:17 +0100jess(jess@freenode/staff/jess) (Quit: Leaving)
2020-12-31 20:49:20 +0100jess(jess@freenode/staff/jess)
2020-12-31 20:49:24 +0100kini(~kini@unaffiliated/kini)
2020-12-31 20:49:29 +0100natim87(sid286962@gateway/web/irccloud.com/x-nksbbmqvaevagztw)
2020-12-31 20:49:58 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0)
2020-12-31 20:50:00 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-msgsyimkpfzfdplm)
2020-12-31 20:50:18 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-12-31 20:50:25 +0100d0liver(sid363046@gateway/web/irccloud.com/x-aesspnxmupkvbzzz)
2020-12-31 20:50:26 +0100texasmynsted(~texasmyns@99.96.221.112)
2020-12-31 20:50:33 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-6148-1689-ef18-302b.res6.spectrum.com)
2020-12-31 20:50:33 +0100joel135(sid136450@gateway/web/irccloud.com/x-ejidscycomljbwvk)
2020-12-31 20:53:01 +0100 <Squarism> im testing out Optics library here. Im missing "preview :: Traversal' s a -> (Maybe a)". Closest thing in Optics seems to be toListOf ?
2020-12-31 20:53:15 +0100hexreel(~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2020-12-31 20:54:02 +0100texasmynsted(~texasmyns@99.96.221.112) (Remote host closed the connection)
2020-12-31 20:54:09 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 260 seconds)
2020-12-31 20:54:45 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-31 20:57:11 +0100jneira(5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 268 seconds)
2020-12-31 21:01:04 +0100brettgilio(~brettgili@brettgilio.com) (Quit: Long live IRC! <https://brettgilio.com/irc.html>)
2020-12-31 21:04:08 +0100 <Squarism> Like with lens i could write : preview ( someFld . _Just . ix 0) which would return a Maybe x. How would one do this with Optics?
2020-12-31 21:04:11 +0100texasmynsted(~texasmyns@99.96.221.112)
2020-12-31 21:05:38 +0100frankdmartinez(~frankdmar@5.181.234.188)
2020-12-31 21:05:44 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42)
2020-12-31 21:06:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-31 21:07:19 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42) (Client Quit)
2020-12-31 21:07:48 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-31 21:08:48 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-31 21:09:21 +0100aveltras(uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf) (Quit: Connection closed for inactivity)
2020-12-31 21:09:36 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-31 21:11:39 +0100brettgilio(~brettgili@brettgilio.com)
2020-12-31 21:12:37 +0100brown121407(~brown1214@fsf/member/brown121407) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-31 21:12:54 +0100brown121407(~brown1214@121407.xyz)
2020-12-31 21:12:54 +0100brown121407(~brown1214@121407.xyz) (Changing host)
2020-12-31 21:12:54 +0100brown121407(~brown1214@fsf/member/brown121407)
2020-12-31 21:14:18 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-31 21:14:54 +0100krisfris(uid479465@gateway/web/irccloud.com/x-exroizldsqhfnehu) (Quit: Connection closed for inactivity)
2020-12-31 21:15:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-31 21:15:34 +0100 <frankdmartinez> Is there a way in GHCI to “call up” the definition of a class/instance?
2020-12-31 21:16:11 +0100 <monochrom> class yes, ":info Num" for example.
2020-12-31 21:17:07 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303)
2020-12-31 21:17:12 +0100 <monochrom> :info on a class name or type name also tells you who is an instance of whom. But no implementation, just "yes X is an instance of Y".
2020-12-31 21:17:22 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2020-12-31 21:17:26 +0100brown121407(~brown1214@fsf/member/brown121407) (Client Quit)
2020-12-31 21:18:03 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-31 21:18:28 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 256 seconds)
2020-12-31 21:19:29 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42)
2020-12-31 21:21:07 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42) (Client Quit)
2020-12-31 21:23:18 +0100Torro(Torro@gateway/vpn/protonvpn/torro)
2020-12-31 21:24:32 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-12-31 21:30:14 +0100o1lo01ol_(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2020-12-31 21:31:26 +0100orion(~orion@c-76-19-238-5.hsd1.ma.comcast.net)
2020-12-31 21:31:26 +0100orion(~orion@c-76-19-238-5.hsd1.ma.comcast.net) (Changing host)
2020-12-31 21:31:26 +0100orion(~orion@unaffiliated/orion)
2020-12-31 21:32:59 +0100danish(~kvirc@109.58.42.178.mobile.3.dk)
2020-12-31 21:33:19 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-rgbhauuevaaekwgg)
2020-12-31 21:33:39 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42)
2020-12-31 21:34:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 21:35:19 +0100brown121407(~brown1214@121407.xyz)
2020-12-31 21:35:19 +0100brown121407(~brown1214@121407.xyz) (Changing host)
2020-12-31 21:35:19 +0100brown121407(~brown1214@fsf/member/brown121407)
2020-12-31 21:36:29 +0100 <frankdmartinez> monochrom: Thanks; though I think it is a bit off in some spots. For example, `:info Applicative Maybe` gives this text which is not very informative => “instance Applicative Maybe -- Defined in ‘GHC.Base’”
2020-12-31 21:37:09 +0100 <frankdmartinez> So, I guess that is in keeping with the `But no implementation, just "yes X is an instance of Y”` you mentioned, right?
2020-12-31 21:40:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-31 21:41:56 +0100dandart(~Thunderbi@home.dandart.co.uk)
2020-12-31 21:43:14 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-12-31 21:43:33 +0100 <idnar> @hoogle Bifunctor f => (a -> b) -> f a a -> f b b
2020-12-31 21:43:34 +0100 <lambdabot> Relude.Extra.Bifunctor bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b
2020-12-31 21:43:58 +0100chenshen(~chenshen@2620:10d:c090:400::5:4a42) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2020-12-31 21:47:27 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
2020-12-31 21:50:05 +0100kupi(uid212005@gateway/web/irccloud.com/x-pwwljkdtgciejnte)
2020-12-31 21:50:44 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2020-12-31 21:52:39 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 21:54:21 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2020-12-31 21:54:30 +0100Guest38620(~textual@zrcout.mskcc.org) (Ping timeout: 256 seconds)
2020-12-31 21:56:02 +0100notzmv(~user@unaffiliated/zmv)
2020-12-31 22:01:30 +0100 <glguy> Squarism, toListOf :: Is k A_Fold => Optic' k is s a -> s -> [a]
2020-12-31 22:01:55 +0100 <glguy> Squarism, it was exported by Optics
2020-12-31 22:02:01 +0100 <glguy> but it was defined in Optics.Fold
2020-12-31 22:04:20 +0100 <foobar2> I have what's likely a very dumb configuration/setup problem I'd like help debugging. I'm on OSX. I've used the instructions suggested at https://www.haskell.org/ghcup/, and pulled stack down via homebrew. I've added .cabal/bin and .ghcup/bin to my path.
2020-12-31 22:05:06 +0100 <foobar2> When I run `stack build` I get simply `The Haskell Tool Stack`. No matter what arguments I put after that, I seem to always get only that output.
2020-12-31 22:05:32 +0100 <monochrom> stack would not be using anything you got by ghcup.
2020-12-31 22:05:46 +0100 <glguy> foobar2, I don't use stack, but the .cabal ghcup and .ghcup stuff you said won't be related. stack lives in its own world
2020-12-31 22:05:53 +0100 <Squarism> glguy, i realised the composition is done using "%" instead of "."
2020-12-31 22:05:54 +0100 <monochrom> And anything you got from ghcup would not be using stack or anything you got from stack, conversely.
2020-12-31 22:06:04 +0100 <Squarism> But I have one question though
2020-12-31 22:06:05 +0100 <foobar2> Ah. Okay. Terrific. That cuts out a lot of my problem.
2020-12-31 22:06:08 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9)
2020-12-31 22:06:12 +0100 <foobar2> problem-space.
2020-12-31 22:06:34 +0100 <monochrom> At this point first you choose which one you want to focus on, ghcup or stack? Then you troubleshoot just one.
2020-12-31 22:06:43 +0100 <Squarism> by composing i can create AffineTraversal'. But with just a single Lens, how do I convert that to an AffineTraversal?
2020-12-31 22:06:47 +0100 <foobar2> stack.
2020-12-31 22:07:17 +0100 <foobar2> monochrom I'm in my directory with my stack.yaml and stack.yaml.lock files. I guess I was expecting `stack build` to visibly *output* something.
2020-12-31 22:07:19 +0100 <monochrom> OK then you have to wait for another stack user. I don't know stack.
2020-12-31 22:07:31 +0100 <Squarism> glguy, do you happen to know that?
2020-12-31 22:08:11 +0100 <zzz> happy new year everyone!
2020-12-31 22:08:18 +0100 <foobar2> zzz !!!
2020-12-31 22:08:23 +0100 <glguy> Squarism: I'll have to look; I haven't used this library
2020-12-31 22:09:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 22:11:17 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2020-12-31 22:11:37 +0100Juviee(2ebf899a@46.191.137.154) (Remote host closed the connection)
2020-12-31 22:12:00 +0100 <zzz> happy new year everyone
2020-12-31 22:12:23 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-31 22:12:55 +0100 <koz_> zzz: Same to you!
2020-12-31 22:13:07 +0100 <glguy> Squarism, what are you trying to do with this AffineTraversal'? I'd have expected you to be able to use a lens somewhere that needed on
2020-12-31 22:13:09 +0100 <glguy> one*
2020-12-31 22:14:02 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:9853:f638:e207:b1cf)
2020-12-31 22:14:03 +0100Alleria(~textual@2603-7000-3040-0000-f863-b1d6-d130-6615.res6.spectrum.com)
2020-12-31 22:14:14 +0100 <Squarism> when composint prism and lens (using (%)) you get an AffineTraversal. So thats what i need to throw around as i rely on both
2020-12-31 22:14:19 +0100 <Squarism> glguy, ^
2020-12-31 22:14:26 +0100 <glguy> castOptic :: forall destKind srcKind is s t a b. Is srcKind destKind => Optic srcKind is s t a b -> Optic destKind is s t a b
2020-12-31 22:14:27 +0100AlleriaGuest40492
2020-12-31 22:14:28 +0100 <glguy> Does that help?
2020-12-31 22:15:05 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2020-12-31 22:15:19 +0100 <glguy> I'd think you'd only need to do that if you were storing one, though; otherwise you'd rely on the typeclass machinery
2020-12-31 22:15:43 +0100 <tomsmeding> foobar2: what is the out of 'which stack', 'file $(which stack)', 'stack --version' ?
2020-12-31 22:15:56 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-12-31 22:16:18 +0100 <Squarism> glguy, just found it too. Yeah, that does the trick
2020-12-31 22:17:39 +0100 <foobar2> tomsmeding those are, respectively `16:16:08$ which stack``/Users/me/Library/Haskell/bin/stack``16:16:13$ file $(which stack)``/Users/me/Library/Haskell/bin/stack: Mach-O 64-bit executable x86_64``16:16:19$ stack --version``The Haskell Tool Stack`
2020-12-31 22:18:09 +0100 <sm[m]> hehe
2020-12-31 22:18:20 +0100 <tomsmeding> lol
2020-12-31 22:18:28 +0100 <sm[m]> maerwald played a trick ?
2020-12-31 22:18:58 +0100 <tomsmeding> foobar2: ls -sh $(which stack)
2020-12-31 22:19:03 +0100 <tomsmeding> that is to say, how large is the file :p
2020-12-31 22:19:45 +0100 <tomsmeding> because that's not the expected --version output
2020-12-31 22:19:48 +0100 <sm[m]> just kidding. foobar2's stack executable seems very strange
2020-12-31 22:20:01 +0100 <foobar2> `1984 /Users/jhemann/Library/Haskell/bin/stack`
2020-12-31 22:20:26 +0100 <foobar2> No, anything I give it as input, it comes back "The Haskell Tool Stack"
2020-12-31 22:20:49 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-31 22:20:50 +0100 <tomsmeding> ... okay I apparently don't know the right flags for BSD ls. Can you look at the file in whatever way you want and tell me how large it is? is that 1.984 MB?
2020-12-31 22:20:55 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2020-12-31 22:21:16 +0100 <tomsmeding> because mine is 60MB, and while linux != mac, the difference in file size won't be _that_ large
2020-12-31 22:21:22 +0100 <sm[m]> the real stack is about 33Mb on mac, foobar2
2020-12-31 22:21:27 +0100 <__monty__> `du -h $(which stack)`
2020-12-31 22:21:51 +0100 <sm[m]> (or, 60Mb for the brew-installed one)
2020-12-31 22:22:56 +0100 <tomsmeding> foobar2: please try reinstalling stack :p
2020-12-31 22:22:57 +0100 <sm[m]> foobar2: also, brew doesn't usually install stack there. Did you install some cask ?
2020-12-31 22:23:01 +0100theDon(~td@94.134.91.182) (Ping timeout: 264 seconds)
2020-12-31 22:23:30 +0100 <tomsmeding> hm, wait that Library/Haskell path makes me think it's a Haskell Platform install
2020-12-31 22:23:33 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
2020-12-31 22:23:39 +0100 <sm[m]> or, that's an old executable that's shadowing brew's stack
2020-12-31 22:23:44 +0100 <tomsmeding> from my mac days
2020-12-31 22:23:46 +0100 <foobar2> it's 992K
2020-12-31 22:23:47 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-31 22:23:50 +0100 <boxscape> hm listening to a Chris Allen Haskell talk about how static types aren't bad and can't tell whether he said "Taekwondo" or "Typekwondo"
2020-12-31 22:24:34 +0100 <dmj`> boxscape: probably a deep fake
2020-12-31 22:24:46 +0100 <boxscape> could be!
2020-12-31 22:24:57 +0100 <tomsmeding> foobar2: IIRC brew can show the list of files in a package, perhaps via some flag on 'brew info'? Try to find out that way where brew think it's stored the stack executable
2020-12-31 22:25:03 +0100 <tomsmeding> it's probably not in Library/Haskell
2020-12-31 22:25:03 +0100 <foobar2> sm[m] no I got a warning from brew specifically, `Warning: Treating stack as a formula. For the cask, use homebrew/cask/stack`
2020-12-31 22:25:25 +0100 <sm[m]> it'll be in /usr/local/bin/stack, tomsmeding
2020-12-31 22:25:36 +0100 <tomsmeding> fair point
2020-12-31 22:25:47 +0100 <sm[m]> foobar2: what does "type -a stack" show
2020-12-31 22:26:01 +0100shinobi(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2020-12-31 22:26:11 +0100tomsmedingTIL type -a, thanks sm[m]
2020-12-31 22:26:12 +0100 <shinobi> what is <*> called?
2020-12-31 22:26:23 +0100 <foobar2> stack is /Users/me/Library/Haskell/bin/stackstack is /usr/local/bin/stack
2020-12-31 22:26:25 +0100 <travv0> tie fighter
2020-12-31 22:26:39 +0100 <shinobi> +1
2020-12-31 22:26:54 +0100 <tomsmeding> foobar2: I think the first one is a remnant from a Haskell Platform installation, is that possible?
2020-12-31 22:27:10 +0100 <sm[m]> foobar2: probably the fix is "rm -rf /Users/me/Library/Haskell". You didn't show the dates on that one I think
2020-12-31 22:27:14 +0100 <foobar2> tomsmeding yes, that is quite likely. It was in a bad state; I had hoped this would blow it away
2020-12-31 22:27:32 +0100 <tomsmeding> do sm[m]'s suggestion, but perhaps move it to a backup location first
2020-12-31 22:28:12 +0100 <foobar2> oh. Well, it's gone now.
2020-12-31 22:28:16 +0100 <tomsmeding> :D
2020-12-31 22:28:23 +0100 <sm[m]> it's the end of the year, be bold! >:)
2020-12-31 22:28:24 +0100 <tomsmeding> ghcup and brew are a better way anyway
2020-12-31 22:28:34 +0100 <sm[m]> now: "hash stack"
2020-12-31 22:28:39 +0100 <sm[m]> and all should be well
2020-12-31 22:28:45 +0100 <foobar2> YOLO.
2020-12-31 22:29:16 +0100 <tomsmeding> sm[m]: is that 'hash' necessary?
2020-12-31 22:29:20 +0100theorbtwo(~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net)
2020-12-31 22:29:24 +0100 <foobar2> I don't know what `hash stack` should output, if anything. But `stack --version` now says something useful
2020-12-31 22:29:27 +0100 <tomsmeding> foobar2: you may want to remove that Library/Haskell/bin folder from your PATH
2020-12-31 22:29:29 +0100 <foobar2> and `stack build` starts to build
2020-12-31 22:29:45 +0100 <sm[m]> tomsmeding: I often find it so, after removing something in $PATH. I use bash, though
2020-12-31 22:29:58 +0100 <sm[m]> it frequently trips up beginners
2020-12-31 22:30:06 +0100 <tomsmeding> foobar2: 'hash stack' updates your shell's cache of where that executable is located, saving it from searching the PATH each time
2020-12-31 22:30:22 +0100 <foobar2> that's another worthwhile bit to know.
2020-12-31 22:30:29 +0100 <tomsmeding> but you should only need to run it if you ran it in the previous configuration already, because otherwise it won't cache it at all AFAIK
2020-12-31 22:30:34 +0100 <foobar2> thank you all; it seems like I'm in much better shape.
2020-12-31 22:30:45 +0100 <tomsmeding> just in time for the new year :)
2020-12-31 22:30:57 +0100theDon(~td@94.134.91.248)
2020-12-31 22:30:58 +0100 <sm[m]> high fives all round
2020-12-31 22:31:53 +0100tomsmedingwonders what even was that other stack executable
2020-12-31 22:31:57 +0100geekosaur(42d52137@66.213.33.55)
2020-12-31 22:32:33 +0100 <tomsmeding> int main() { printf("The Haskell Tool Stack\n"); } certainly compiles to something smaller than 1 MB
2020-12-31 22:33:02 +0100 <sm[m]> foobar2: we're going to have to ask you to restore from backups so we can do forensics
2020-12-31 22:33:23 +0100 <sm[m]> (not really)
2020-12-31 22:33:28 +0100 <tomsmeding> hah 'putStrLn "The Haskell Tool Stack"' becomes 2.7 MB here
2020-12-31 22:33:41 +0100 <foobar2> Yeah, it was definitely the Haskell Tool Stack.
2020-12-31 22:33:46 +0100 <foobar2> If there's one thing I was able to deduce.
2020-12-31 22:33:53 +0100 <tomsmeding> X doubt
2020-12-31 22:34:05 +0100 <sm[m]> it was a hell of a tool, anyway :)
2020-12-31 22:34:28 +0100 <gentauro> tomsmeding: why so big? It's not a self-contained executable right?
2020-12-31 22:34:29 +0100 <sm[m]> You always knew what it would do.
2020-12-31 22:35:14 +0100sm[m]thinks: a WIP placeholder in old Haskell Platform
2020-12-31 22:35:33 +0100 <tomsmeding> gentauro: '$ printf 'main :: IO ()\nmain = putStrLn "The Haskell Tool Stack"\n' >a.hs; ghc -O2 a.hs -o a; ls -sh a' gives 2.7M here :p
2020-12-31 22:35:57 +0100tomsmedingthinks sm[m] is correct
2020-12-31 22:35:59 +0100 <sm[m]> gentauro: the runtime system, I guess
2020-12-31 22:36:11 +0100 <geekosaur> base and rts are linked stattically by default
2020-12-31 22:36:47 +0100 <geekosaur> plus what those drag in which will include ghc-prim, integer-gmp, etc.
2020-12-31 22:37:11 +0100 <gentauro> geekosaur: if I write a huge lib, but only point to a few independent `modules` in my .cabal file
2020-12-31 22:37:15 +0100 <gentauro> will GHC strip the rest?
2020-12-31 22:38:09 +0100 <monochrom> Yes.
2020-12-31 22:38:13 +0100 <gentauro> iirc from using `packages.yaml` all are automatically added
2020-12-31 22:38:19 +0100 <geekosaur> if linked statically the linker will strip the rest, yes, but there are hard references to e.g. integer-gmp in the runtime
2020-12-31 22:38:29 +0100 <gentauro> but since I moved to `cabal` files, I have to state them myself
2020-12-31 22:40:19 +0100 <gentauro> geekosaur: I remembered this blog post from Athas https://futhark-lang.org/blog/2020-04-13-statically-linking-the-futhark-compiler.html
2020-12-31 22:40:56 +0100 <gentauro> tomsmeding: have you tried `ldd` on your executable?
2020-12-31 22:41:02 +0100 <gentauro> just to see how much stuff is linked?
2020-12-31 22:41:24 +0100p-core(~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) (Remote host closed the connection)
2020-12-31 22:42:01 +0100 <tomsmeding> gentauro: linux-vdso, lib{m, ncursesw, rt, util, dl, pthread, gmp, c}, and the loader
2020-12-31 22:42:02 +0100 <geekosaur> ldd only shows dynamic stuff, which will all be small
2020-12-31 22:42:08 +0100 <tomsmeding> but yes what geekosaur says
2020-12-31 22:42:45 +0100tomsmedingwonders what even libutil is, that sounds even worse than an exported Util module from a haskell package
2020-12-31 22:43:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-31 22:44:01 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2020-12-31 22:44:33 +0100geekosaur(42d52137@66.213.33.55) (Remote host closed the connection)
2020-12-31 22:46:40 +0100 <ephemient> libutil is part of glibc, it contains forkpty & friends
2020-12-31 22:47:00 +0100 <ephemient> yeah it's a pretty bad name
2020-12-31 22:47:57 +0100 <tomsmeding> I found that out using objdump indeed, interesting thing
2020-12-31 22:49:19 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 246 seconds)
2020-12-31 22:49:54 +0100 <gentauro> tomsmeding: are you trying to reduce the size of Haskell executables?
2020-12-31 22:49:55 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-31 22:52:07 +0100 <tomsmeding> no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB; I saw that a putStrLn-only haskell executable becomes 2.8MB for me, and I was puzzled what that weird executable even was
2020-12-31 22:52:14 +0100 <monochrom> The RTS is 2.6MB
2020-12-31 22:52:39 +0100 <tomsmeding> gentauro: conversation starts here: https://ircbrowse.tomsmeding.com/browse/haskell?id=228683&timestamp=1609448660#t1609448660
2020-12-31 22:53:05 +0100 <tomsmeding> monochrom: well that makes sense then :)
2020-12-31 22:53:25 +0100 <monochrom> e.g., look for <prefix>/lib/ghc-8.8.4/rts/libHSrts-ghc8.8.4.so
2020-12-31 22:54:12 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-31 22:54:43 +0100 <monochrom> I use the *.so file size as my proxy measure because the alternative is libHSrts.a which is 7.7MB which doesn't make empirical sense. :)
2020-12-31 22:55:03 +0100mp___(mp@hell.cx)
2020-12-31 22:55:09 +0100 <tomsmeding> 2.5MB for me, but yes
2020-12-31 22:55:18 +0100 <monochrom> So I guess the *.a format contains much stuff that doesn't make it to the exe.
2020-12-31 22:55:46 +0100 <tomsmeding> or perhaps objects that are discarded when linking because they're unused? (guessing)
2020-12-31 22:56:40 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-12-31 22:57:24 +0100 <monochrom> A basic, very likely premise is that actual code in the *.a and actual code in the *.so should be more or less equivalent.
2020-12-31 22:58:03 +0100 <monochrom> So if they have more or less equivalent code but vastly different file sizes, I would go with the smaller size just for Shannon information theory sake.
2020-12-31 22:59:36 +0100 <ephemient> the *.a contains a separate *.o for each compilation unit (e.g. each rts/*.c file) while the *.so merges everything together
2020-12-31 23:00:09 +0100 <ephemient> in theory a statically linked executable can discard unused sections while a dynamically linked executable can't, but I don't know if that even makes sense in the RTS
2020-12-31 23:00:15 +0100 <tomsmeding> monochrom: my .a is 7.7M and gzip's to 2.2M, whereas my .so is 2.5M and gzip's to 1.0M
2020-12-31 23:02:39 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection)
2020-12-31 23:03:48 +0100Shiranai(beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143)
2020-12-31 23:04:39 +0100 <gentauro> 22:52 < tomsmeding> no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB;
2020-12-31 23:04:44 +0100 <gentauro> but he is on a mac right?
2020-12-31 23:04:49 +0100 <gentauro> so maybe that's the diff?
2020-12-31 23:04:50 +0100 <foobar2> Yes.
2020-12-31 23:04:58 +0100 <foobar2> To the mac question.
2020-12-31 23:05:27 +0100 <gentauro> maybe OSX handles stuff different? I recall the implemenation of POSIX is not the same as the one in Linux
2020-12-31 23:05:32 +0100 <tomsmeding> I'd be surprised if the RTS is more than twice as small on mac than on linux, but sure that could explain the difference
2020-12-31 23:05:34 +0100 <gentauro> so maybe other stuff is not the same?
2020-12-31 23:05:37 +0100 <tomsmeding> oh fair
2020-12-31 23:05:58 +0100 <tomsmeding> but the real stack is not 1MB ;)
2020-12-31 23:06:02 +0100 <tomsmeding> on no platfor
2020-12-31 23:06:02 +0100 <tomsmeding> m
2020-12-31 23:06:06 +0100 <gentauro> hmmm
2020-12-31 23:06:15 +0100 <gentauro> foobar2: did you download it from the NSA website? :)
2020-12-31 23:06:20 +0100kderme(2eb0d7c7@ppp046176215199.access.hol.gr) (Ping timeout: 245 seconds)
2020-12-31 23:06:24 +0100 <gentauro> muhahahaa
2020-12-31 23:06:35 +0100 <Shiranai> Hello, I'm revisiting haskell from the category point of view and I'm having doubts with respect to the `Functor` typesclass. To make a concrete point, is `[]` really a functor? I think I am not understanding correctly the source and target categories. What's the preimage of [1,2] for example?
2020-12-31 23:06:49 +0100 <tomsmeding> I'd at least expect them to be competent enough to make the executable _work_ under normal usage :P
2020-12-31 23:08:20 +0100 <gentauro> tomsmeding: I think it's kind of funny that Okasaki teaches at West Point
2020-12-31 23:08:35 +0100 <koz_> gentauro: Purely functional missiles.
2020-12-31 23:08:46 +0100 <gentauro> how many (army) cadetes are absolute beasts at Haskell?
2020-12-31 23:08:55 +0100 <monochrom> [] is really a functor. The source and the target categories are the same, objects are Haskell types, morphisms are Haskell functions.
2020-12-31 23:08:56 +0100 <gentauro> I wonder how much stuff is coded for the army in Haskell :)
2020-12-31 23:09:24 +0100jathan(~jathan@69.61.93.38) (Quit: WeeChat 2.3)
2020-12-31 23:09:48 +0100 <koz_> monochrom: Something something Functor is an endofunctor on Hask something?
2020-12-31 23:09:53 +0100 <foobar2> gentauro at least one! https://www.cambridge.org/core/journals/journal-of-functional-programming/article/abs/theoretical-…
2020-12-31 23:09:54 +0100 <monochrom> yes
2020-12-31 23:09:58 +0100 <koz_> s/Functor/any instance of Functor/ I guess
2020-12-31 23:10:01 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-31 23:10:12 +0100 <koz_> I am not smart at the category theory.
2020-12-31 23:10:25 +0100 <koz_> I can merely ape those which are like GPT-2.
2020-12-31 23:10:31 +0100 <Shiranai> I see, I was thinking of each type as a category, the whole haskell type as a category makes more sense, thanks
2020-12-31 23:10:36 +0100 <gentauro> foobar2: that's Okasaki. He is a profesor at West Point :)
2020-12-31 23:10:43 +0100 <gentauro> that's what I'm saying ;)
2020-12-31 23:11:01 +0100 <koz_> I now have a theory for the origin of 'launch missiles' as an example of an irreversible IO action. :P
2020-12-31 23:11:26 +0100 <gentauro> Shiranai: normally ski is really helpfull with these kind of questions ;)
2020-12-31 23:11:42 +0100 <foobar2> gentauro I meant that the cadet he describes in that paper is also a beast at haskell
2020-12-31 23:12:08 +0100 <koz_> I actually stumbled across something by Okasaki I genuinely did not know he ever dealt with recently.
2020-12-31 23:12:56 +0100 <gentauro> foobar2: Cadet K xD
2020-12-31 23:13:45 +0100 <monochrom> Yes, that's the one in which he showed off how to define "push", "pop" "1", "2", "3", maybe also "begin" and "end" I forgot, such that "begin push 1 push 2 push 3 pop end" gives you 3 intuitively.
2020-12-31 23:14:06 +0100 <koz_> Also, monochrom, I have a vaguely-relevant CT question: Bartosz states that morphisms in the skeleton F of FinSet correspond to functions between finite sets. He then states that there is a unique morphism from 0 to n (aka the empty set is the initial object). I assume that 0 -> n corresponds to functions from the empty set to a finite set of cardinality n - but how can any such function exist?
2020-12-31 23:14:21 +0100 <monochrom> and which demonstrates how to get type inference to take exponential time.
2020-12-31 23:15:07 +0100 <koz_> monochrom: Wait, this was from 'Techniques for Embedding Postfix Languages in Haskell' right?
2020-12-31 23:15:19 +0100 <tomsmeding> koz_: 'absurd' is such a function, right?
2020-12-31 23:15:28 +0100 <tomsmeding> (I know no CT, just answering your last sentence :p)
2020-12-31 23:15:28 +0100 <koz_> tomsmeding: Void -> a, sure.
2020-12-31 23:15:36 +0100 <koz_> Yeah, now that I think about it, I get it now.
2020-12-31 23:15:37 +0100 <b4er> Why would such a function not exist?
2020-12-31 23:15:50 +0100 <monochrom> I think no, because "begin push 1 push 2 pop etc" isn't postfix.
2020-12-31 23:15:51 +0100 <koz_> If we take the combinatorial view of functions, a function from the empty set to anything would be... the empty set.
2020-12-31 23:15:58 +0100 <koz_> Never mind, answered my own question, rofl.
2020-12-31 23:16:41 +0100 <koz_> I'm reading Bartosz's thing on Lawvere theories.
2020-12-31 23:16:54 +0100 <koz_> https://bartoszmilewski.com/2017/08/26/lawvere-theories/ for anyone who wants to read along.
2020-12-31 23:17:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 23:18:03 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-12-31 23:18:14 +0100jathan(~jathan@69.61.93.38)
2020-12-31 23:21:50 +0100 <Shiranai> koz_: have you read all the book up to there?
2020-12-31 23:22:21 +0100 <koz_> Shiranai: What book are you referring to?
2020-12-31 23:22:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-31 23:22:55 +0100 <Shiranai> Bartosz made a book out of his blogposts, it's called "Category Theory for Programmers"
2020-12-31 23:23:10 +0100 <Shiranai> the blogpost you mentioned is the before-last chapter
2020-12-31 23:24:04 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2020-12-31 23:24:09 +0100 <koz_> Shiranai: I... didn't notice that. I've read some of it a while back, but definitely not the whole thing.
2020-12-31 23:24:47 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer)
2020-12-31 23:25:51 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-31 23:26:17 +0100 <Shiranai> I see, I've been wanting to read it for a while but I think I don't have enough math knowledge to fully appreciate it
2020-12-31 23:26:37 +0100 <koz_> Shiranai: The early stuff requires basically no real 'math knowledge' of any sort.
2020-12-31 23:26:47 +0100 <koz_> That's one of the nice parts of category theory in general.
2020-12-31 23:27:10 +0100 <koz_> If you write Haskell, a lot of it will feel _very_ familiar.
2020-12-31 23:29:44 +0100 <monochrom> It is a two-edged sword to require no real knowledge, especially when because it stays so broadly general.
2020-12-31 23:30:22 +0100 <koz_> Yes, exactly.
2020-12-31 23:30:30 +0100 <koz_> Category theory is _pedantically_ general.
2020-12-31 23:30:37 +0100 <Shiranai> I know the basics of cat theory, up to yonneda's lemma from a math perspective, but those other cool stuff like topoi, comonads, etc seem to have some convoluted math meaning
2020-12-31 23:30:57 +0100 <koz_> At least how Bartosz presents it, it's all 'hey, Set has this cool thing, but it's specific to set, can we generalize away?'.
2020-12-31 23:31:06 +0100 <koz_> Shiranai: They can be _interpreted_ to have such a meaning.
2020-12-31 23:31:18 +0100 <koz_> But that's the whole point - category theory is designed to be the ultimate generalization.
2020-12-31 23:31:29 +0100 <b4er> You kind of need to know set theory and abstract algebra knowledge, otherwise you'll quickly loose track I imagine
2020-12-31 23:32:00 +0100 <monochrom> I think we haven't used topoi in this community.
2020-12-31 23:32:04 +0100 <koz_> b4er: At least from what I've read, set theory isn't necessary beyond like, really simple stuff.
2020-12-31 23:32:24 +0100 <koz_> At least in my view, if you say 'set theory' we're talking at least ultrafilters.
2020-12-31 23:32:54 +0100 <koz_> Can't speak for abstract algebra because unsurprisingly, I don't know it.
2020-12-31 23:33:11 +0100 <koz_> (because my maths education can be politely described as 'patchwork', and impolitely described as 'woefully incomplete')
2020-12-31 23:34:02 +0100 <Shiranai> hmm may I ask how do you know ultrafilters but not abstract algebra? The places I learned ultrafilters always were looking at the algebraic side
2020-12-31 23:34:24 +0100 <koz_> Shiranai: It's called 'I picked up random concepts in random places because I didn't come to computing from a maths or science pathway'.
2020-12-31 23:34:27 +0100 <koz_> I'm a historian by training.
2020-12-31 23:34:35 +0100 <exarkun> "encountered an exception while trying to report an exception." :/
2020-12-31 23:34:40 +0100 <Shiranai> oh that's really interesting haha
2020-12-31 23:34:54 +0100 <Shiranai> I'm an economist, so yeah missing a lot of stuff too
2020-12-31 23:35:20 +0100Franciman(~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving)
2020-12-31 23:35:29 +0100 <koz_> It was kinda... survival theory basically. I picked up the parts I needed, only to the extent needed, frequently absent the context I didn't need at that very moment.
2020-12-31 23:35:40 +0100 <koz_> Basically, if you ask me to deal with _anything_ continuous, my brain explodes.
2020-12-31 23:35:54 +0100 <koz_> I barely understand _limits_, just to give you some idea of how bad the situation is.
2020-12-31 23:36:10 +0100 <koz_> (and I basically only got that far when I reframed them into logic)
2020-12-31 23:36:16 +0100 <boxscape> you just need to have the right definition of "continuous". I.e. the definition where continuous == computable
2020-12-31 23:36:27 +0100 <monochrom> Here is a bomb for you. The identity function is continuous.
2020-12-31 23:36:35 +0100 <b4er> Maybe you don't need set theory by your definition then, yeah. But as an example that article you cited mentions things like empty set, power set, isomorphisms etc. in the first few paragraphs. Kind of helps to know math imo
2020-12-31 23:37:40 +0100 <koz_> b4er: I mean... yeah, in the most literal sense, sure. But empty and power set are just definitions (helped by the fact that set theory is also super general), and isomorphism is actually a category theory notion (or rather, it's given its best treatment there).
2020-12-31 23:37:57 +0100 <b4er> I don't think I ever read something on category theory that didn't mention Set.
2020-12-31 23:38:12 +0100 <koz_> b4er: Set is just used as a source of things we wanna generalize.
2020-12-31 23:38:23 +0100 <boxscape> (hm, actually, while all computable functions are continuous, maybe not all continuous functions are computable)
2020-12-31 23:38:42 +0100 <koz_> boxscape and monochrom: I meant 'continuous' in the sense of 'not discrete'.
2020-12-31 23:38:55 +0100 <boxscape> it's really the same thing if you look at it in the right light
2020-12-31 23:39:00 +0100 <Shiranai> not all continuous functions are computable in the calculus sense, mainly because there an uncountable number of them
2020-12-31 23:39:29 +0100 <koz_> boxscape: I welcome anyone who can make me understand things involving 'anything beyond limits'. Many folks have tried, and I just lack any mental machinery to go into anything.
2020-12-31 23:39:38 +0100 <koz_> Heck, differentiation and integration make my head explode.
2020-12-31 23:39:49 +0100 <koz_> Anything _built_ on those? Zero hope in my case.
2020-12-31 23:40:00 +0100 <boxscape> Shiranai that makes sense, yeah
2020-12-31 23:40:29 +0100 <Shiranai> koz_: maybe you just need some non standard analysis
2020-12-31 23:40:32 +0100 <Shiranai> :)
2020-12-31 23:40:40 +0100 <koz_> Shiranai: Suggestions very welcome, seriously.
2020-12-31 23:40:46 +0100 <koz_> I have tried every damn take on calculus there is.
2020-12-31 23:40:47 +0100 <b4er> You might want to look at the topological definition in terms of neighbourhoods.
2020-12-31 23:40:50 +0100 <koz_> None of them sit in my head.
2020-12-31 23:41:07 +0100 <boxscape> koz_ have you read about how the derivative of a regular type is its type of one-hole contexts?
2020-12-31 23:41:09 +0100 <Shiranai> seriously though then, have you tried non standard analysis?
2020-12-31 23:41:10 +0100 <koz_> My only attempt to resolve any problem is 'reduce it to logic and hope that works'.
2020-12-31 23:41:12 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-31 23:41:26 +0100 <koz_> Shiranai: Again, suggestions of sources I can learn this from?
2020-12-31 23:41:44 +0100 <koz_> boxscape: I have heard, yes. I have no intuition for derivatives, so this might as well be gibberish.
2020-12-31 23:42:14 +0100 <boxscape> hmm
2020-12-31 23:42:23 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2020-12-31 23:42:51 +0100 <boxscape> to be fair even for someone who knows a lot about derivatives I think at least the title sounds like gibberish at first
2020-12-31 23:42:52 +0100 <Shiranai> koz_: it's basically calculus without limits, by using infinitesimals. May be easier to wrap your head around for some people http://www.math.wisc.edu/~keisler/calc.html
2020-12-31 23:44:18 +0100 <koz_> boxscape: The fact is, I am aware of this construction, and I'm aware that it relates to derivatives... somehow. But it's basically a special snowflake - knowing this gives me nothing.
2020-12-31 23:44:27 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-31 23:44:27 +0100 <boxscape> that's fair
2020-12-31 23:44:33 +0100 <koz_> I'm sure I could make more sense of it, but I've never gotten anywhere.
2020-12-31 23:44:38 +0100 <koz_> Shiranai: Thank you! Will read.
2020-12-31 23:44:42 +0100 <Shiranai> in the 50s and 60s, I believe, a group of mathematicians wanted to change the epsilon-delta to this but noone really wanted. There were no proven pedagogical benefits so it was ignored pretty much other than for researchers
2020-12-31 23:44:50 +0100 <b4er> Shiranai, it looks the same just with different notation?
2020-12-31 23:44:53 +0100 <Shiranai> you're welcome
2020-12-31 23:44:59 +0100 <Shiranai> b4er: no!
2020-12-31 23:45:05 +0100 <Shiranai> the semantics are completely distinct
2020-12-31 23:45:27 +0100 <Shiranai> for example, in the derivative definition you are actually computing a fraction
2020-12-31 23:45:37 +0100 <Shiranai> with terms having infinitesimals
2020-12-31 23:45:45 +0100 <Shiranai> not computing a limit of a fraction
2020-12-31 23:45:45 +0100 <koz_> Yeah, whereas with limits, you play this fun game of getting rid of h on the bottom.
2020-12-31 23:46:00 +0100 <koz_> Because we can't divide by actual zero.
2020-12-31 23:46:26 +0100 <Shiranai> yup, can't divide by zero but can divide by infinitesimals because magic
2020-12-31 23:46:36 +0100 <koz_> Because infinitesimals are not technically zero!
2020-12-31 23:46:47 +0100 <koz_> (or rather, are technically not zero)
2020-12-31 23:47:04 +0100 <ephemient> well, limit h→0 is not zero either
2020-12-31 23:47:19 +0100 <Shiranai> ^^
2020-12-31 23:47:43 +0100 <koz_> ephemient: Yeah, indeed, because limits 'don't really exist'.
2020-12-31 23:47:57 +0100 <koz_> It just says 'we can get as close as we like to it by picking the right argument'.
2020-12-31 23:48:05 +0100 <koz_> (that's essentially epsilon-delta in a nutshell)
2020-12-31 23:48:16 +0100 <b4er> But The example with x^3 and the derivation of st(dy/dx) is basically computing the limit?
2020-12-31 23:48:18 +0100 <Shiranai> Personally I prefer thinking about limits, infinitesimals just seem weird. Values smaller than any real number but not 0 just is too weird
2020-12-31 23:48:22 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Read error: Connection reset by peer)
2020-12-31 23:48:24 +0100 <b4er> I fail to see the difference :S
2020-12-31 23:48:39 +0100 <koz_> Shiranai: I have zero problems with weirdness.
2020-12-31 23:48:44 +0100 <ephemient> as far as I'm concerned, they're equivalent in power
2020-12-31 23:48:56 +0100 <koz_> If it makes sense in my head and gives me a model I can work with and prove things from, bring on the weirdness I say.
2020-12-31 23:48:57 +0100 <ephemient> weirdness is ok as long as it's justified and consistent
2020-12-31 23:49:05 +0100 <Shiranai> b4er: I'd say it's kind of a syntactic difference? It is in fact a theorem that both calculus with limits and with infinitesimals are equivalent
2020-12-31 23:49:16 +0100 <Shiranai> so yeah some stuff will end looking the same
2020-12-31 23:49:33 +0100 <Shiranai> but not every stuff (can't give an example of what's not alike of the top of my head)
2020-12-31 23:49:51 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2020-12-31 23:50:16 +0100dandart(~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
2020-12-31 23:50:28 +0100 <koz_> And frankly, the real line is full of so much weirdness anyway, what's one more thing?
2020-12-31 23:50:41 +0100kderme(2eb0d7c7@ppp046176215199.access.hol.gr)
2020-12-31 23:50:42 +0100 <koz_> (any interval of the real line for example, is more infinite than the rationals)
2020-12-31 23:50:48 +0100 <koz_> (thanks, Cantor's diagonal argument)
2020-12-31 23:51:10 +0100 <koz_> (ok, any non-empty interval, fine)
2020-12-31 23:51:17 +0100 <tomsmeding> koz_: what's your working definition of R?
2020-12-31 23:51:47 +0100 <monochrom> One reason to switch is if it saves work. (But I think this one doesn't.) Another reason to switch is if it is more compatible with your personality, e.g., some people are more happy with "for all e>0 there exists d>0", some other are more happy with "just do algebra and use (dx)^2=0, shoot upon sight, shoot to kill".
2020-12-31 23:51:51 +0100 <koz_> tomsmeding: I... basically don't really have one? If you put a gun to my head, I'd go with Dedekind cuts, but it's not a 'working definition' in the sense that I couldn't prove much from it.
2020-12-31 23:51:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-31 23:52:05 +0100 <tomsmeding> (really I shouldn't enter this discussion because my understanding of math is firmly in the conventional framework)
2020-12-31 23:52:28 +0100 <ephemient> well reals based on dedekind cuts aren't too super useful directly, although it is useful that limits are kind of built in
2020-12-31 23:52:46 +0100 <ephemient> but you just have to prove that everything real-like is isomorphic and then you're good
2020-12-31 23:54:04 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 246 seconds)
2020-12-31 23:54:05 +0100 <tomsmeding> I found it fairly enlightening when I got how R can be defined as the limits of Cauchy (""convergent"") sequences of elements of Q
2020-12-31 23:54:23 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2020-12-31 23:54:32 +0100 <tomsmeding> but then, that's the firmly conventional view which you've probably already discarded :p
2020-12-31 23:54:52 +0100 <koz_> tomsmeding: Cauchy sequences is something I definitely encountered (curiously enough in a _theory of computation_ class of all places).
2020-12-31 23:54:59 +0100 <monochrom> Next controversy for you all: The Banach-Tarski Theorem (yes, theorem, not paradox) shows which one of the following two to be the actually weird one? Axiom of choice; continuity of R^3.
2020-12-31 23:55:17 +0100 <koz_> monochrom: Maybe I'm just weird, but AC doesn't bother me.
2020-12-31 23:55:29 +0100 <koz_> I excuse it by saying 'infinity is weird and ahuman, just deal'.
2020-12-31 23:55:45 +0100 <monochrom> Then either the continuity of R^3 bothers you, or Banach-Tarski doesn't bother you :)
2020-12-31 23:55:48 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-31 23:55:59 +0100 <koz_> I don't really consider the reals particularly 'real'.
2020-12-31 23:56:05 +0100 <monochrom> \∩/
2020-12-31 23:56:08 +0100 <ephemient> I'm fine with either AC or ¬AC
2020-12-31 23:56:20 +0100 <koz_> ephemient: Yes, I too agree with ZFC on this. :P
2020-12-31 23:56:25 +0100 <Shiranai> I don't like AC because it generates a lot of non constructive proofs
2020-12-31 23:56:36 +0100 <Shiranai> if fact it implies LEM
2020-12-31 23:56:46 +0100 <monochrom> See? I think the real weirdness is in R, even though continuity is so bloody convenient.
2020-12-31 23:56:53 +0100 <koz_> Shiranai: I mean, sure? However, mathematics is mostly non-constructive anyway.
2020-12-31 23:57:06 +0100 <koz_> So the way I see it is this: everyone is LEMming it up with their ZFC, so I just gotta deal.
2020-12-31 23:57:21 +0100 <koz_> I would _prefer_ if everything were constructive, but I'm a computer person, so of course.
2020-12-31 23:57:31 +0100 <Shiranai> yup sadly haha, I just prefer the constructive side of it but I agree half of my knowledge disappears if you take away AC
2020-12-31 23:57:55 +0100 <koz_> monochrom: Yes, R is weird.
2020-12-31 23:58:03 +0100 <koz_> And I think that's probably where my mental block lies.
2020-12-31 23:58:13 +0100 <koz_> I simply _can't_ use the same tools I can use for Q, or Z, or N, in it.
2020-12-31 23:58:34 +0100 <koz_> Basically, the cardinality of my mental universe stops at aleph-null. :P
2020-12-31 23:58:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
2020-12-31 23:59:10 +0100mp___(mp@hell.cx) (Ping timeout: 256 seconds)
2020-12-31 23:59:30 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)