Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,042 events total
2021-08-11 06:45:45 lep- is now known as lep
2021-08-11 06:46:10 jneira joins (~jneira@212.8.115.226)
2021-08-11 06:53:20 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 06:54:40 vysn joins (~vysn@user/vysn)
2021-08-11 06:58:10 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 06:58:51 Pickchea joins (~private@user/pickchea)
2021-08-11 07:00:38 lortabac joins (~lortabac@2a01:e0a:541:b8f0:fe6f:ef7e:c421:8ab8)
2021-08-11 07:01:22 acidjnk_new joins (~acidjnk@p200300d0c72b9574c56a490b8c03a837.dip0.t-ipconnect.de)
2021-08-11 07:03:51 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
2021-08-11 07:13:04 epolanski joins (uid312403@id-312403.brockwell.irccloud.com)
2021-08-11 07:14:18 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
2021-08-11 07:14:24 MorrowM joins (~Morrow@176.12.208.59)
2021-08-11 07:17:10 thyriaen joins (~thyriaen@dynamic-078-054-169-242.78.54.pool.telefonica.de)
2021-08-11 07:18:14 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
2021-08-11 07:28:01 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 07:30:11 adam1 joins (~adam@2001-b011-4007-0cae-c534-472f-0009-0a8c.dynamic-ip6.hinet.net)
2021-08-11 07:34:40 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
2021-08-11 07:34:47 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 07:37:27 Matthias_ joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
2021-08-11 07:37:41 <Axman6> macos might have other tools, like otool or something
2021-08-11 07:38:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 07:39:45 × azeem quits (~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Ping timeout: 248 seconds)
2021-08-11 07:40:16 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
2021-08-11 07:40:50 × Matthias1 quits (~Matthias1@2603-8001-b545-4900-c870-813e-66c7-5f1f.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-08-11 07:42:22 azeem joins (~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 07:42:57 × MorrowM quits (~Morrow@176.12.208.59) (Ping timeout: 248 seconds)
2021-08-11 07:49:58 × Guest71 quits (~Guest71@46.97.169.79) (Ping timeout: 246 seconds)
2021-08-11 07:54:16 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
2021-08-11 07:54:41 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds)
2021-08-11 07:54:50 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 07:59:50 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 08:02:09 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-11 08:04:17 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-08-11 08:05:27 hendursa1 joins (~weechat@user/hendursaga)
2021-08-11 08:06:29 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 08:08:30 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-11 08:10:41 yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se)
2021-08-11 08:11:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 08:17:37 allbery_b joins (~geekosaur@xmonad/geekosaur)
2021-08-11 08:17:37 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 08:17:40 allbery_b is now known as geekosaur
2021-08-11 08:19:05 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
2021-08-11 08:19:32 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-11 08:19:43 <kuribas> Is it bad to write a function memoize :: (a -> IO b) -> IO (a -> b)?
2021-08-11 08:19:57 gehmehgeh joins (~user@user/gehmehgeh)
2021-08-11 08:20:24 <Taneb> A little
2021-08-11 08:20:30 <kuribas> as opposed to (a -> IO b) -> IO (a -> IO b)?
2021-08-11 08:20:50 <Taneb> It pretty much forces you to have effects happen in pure code
2021-08-11 08:21:22 <merijn> kuribas: You can't write that function
2021-08-11 08:21:29 <merijn> kuribas: I know, because I have tried
2021-08-11 08:21:36 <kuribas> hmm
2021-08-11 08:21:37 <merijn> Over and over and over and over and over and over and over
2021-08-11 08:21:51 <kuribas> hehe
2021-08-11 08:21:53 <merijn> Which makes sense
2021-08-11 08:22:03 <merijn> because the IO can depend on the value of the input 'a'
2021-08-11 08:22:12 <merijn> So you can't "do the IO first" and get back a function
2021-08-11 08:22:25 <merijn> That requires proving the IO in "a -> IO b" doesn't depend on 'a'
2021-08-11 08:22:34 <merijn> And I dunno the abstraction for that
2021-08-11 08:22:36 <kuribas> I can use unsafePerformIO?
2021-08-11 08:22:41 <merijn> How?
2021-08-11 08:22:53 <merijn> I mean, sure
2021-08-11 08:23:00 <kuribas> ah wait...
2021-08-11 08:23:14 <merijn> You can do "\f -> return (\x -> unsafePerformIO (f x))" but that's not what you meant, right?
2021-08-11 08:23:35 <merijn> Might as well skip the return if you do that :p
2021-08-11 08:24:08 × thyriaen quits (~thyriaen@dynamic-078-054-169-242.78.54.pool.telefonica.de) (Remote host closed the connection)
2021-08-11 08:24:37 <kuribas> that's what I meant...
2021-08-11 08:25:30 spirit_ joins (~spirit@122.164.113.81)
2021-08-11 08:26:11 × jneira quits (~jneira@212.8.115.226) (Quit: Client closed)
2021-08-11 08:26:12 <kuribas> like this? https://gist.github.com/kuribas/6d63a4b9be2ac210162b4c9ee2ab10ca
2021-08-11 08:27:48 jneira joins (~jneira@212.8.115.226)
2021-08-11 08:29:04 × jneira quits (~jneira@212.8.115.226) (Client Quit)
2021-08-11 08:29:24 jneira joins (~jneira@212.8.115.226)
2021-08-11 08:29:28 <merijn> kuribas: Why even bother with the wrapping code returning IO at that point
2021-08-11 08:29:39 <merijn> Just, like, unsafePerformIO the whole thing and call it a day
2021-08-11 08:29:55 <kuribas> merijn: because it is still somewhat morally acceptable...
2021-08-11 08:30:26 <Taneb> kuribas: I don't think it's that morally acceptable
2021-08-11 08:30:45 <kuribas> Because IO is returning a function whos value depends on future IO. But there is no contract that says IO cannot do this right?
2021-08-11 08:31:04 <kuribas> The contract is that a pure function should be pure, that is, return the same value for the same inputs.
2021-08-11 08:31:05 <merijn> kuribas: Eh, yes there is
2021-08-11 08:31:18 <merijn> kuribas: Like, this violates literally *every* part of purity in *many* horrific ways
2021-08-11 08:31:26 <kuribas> No it doesn't?
2021-08-11 08:31:28 <Taneb> If I use that I can now pass a pure function as an argument to another function, such that when I call the supposedly pure function IO effects might mysteriousl happen
2021-08-11 08:31:28 <kuribas> IO isn't pure...
2021-08-11 08:31:33 <merijn> kuribas: Yes it is
2021-08-11 08:31:39 <merijn> kuribas: That's the entire freaking point of having IO
2021-08-11 08:32:00 <kuribas> I mean, executing an IO action isn't pure...
2021-08-11 08:32:21 <merijn> kuribas: executing IO is guaranteed to be ordered with respect to other
2021-08-11 08:32:24 <merijn> *IO*
2021-08-11 08:32:42 <merijn> You have completely ripped any sense of ordering out of the execution model
2021-08-11 08:32:48 <kuribas> execpt if you have threads?
2021-08-11 08:32:51 <kuribas> except for lazy IO?
2021-08-11 08:32:58 <merijn> And made it so that a pure function "a -> b" can execute IO
2021-08-11 08:33:08 <kuribas> I mean, IO code can call C that has a timer and does an action at a random time...
2021-08-11 08:33:11 <Taneb> kuribas: memoize2 (\x -> putStrLn x >> length x) >>= \f -> print (f "hello" == f "hello"); what does this print
2021-08-11 08:33:14 <merijn> kuribas: Lazy IO violates purity and there's a reason why it's called* *unsafe*InterleaveIO
2021-08-11 08:33:20 <merijn> kuribas: Because lazy IO *is* unsafe
2021-08-11 08:33:33 <merijn> kuribas: Threads are still well ordered with respect to IO in the same thread
2021-08-11 08:33:34 <Cajun> isnt IO the way of purely (in the language representation) dealing with impure concepts?
2021-08-11 08:34:04 <kuribas> yes
2021-08-11 08:34:05 <merijn> Like, I don't mind people doing *wildly* unsafe things

All times are in UTC.