2021/10/02

2021-10-02 00:01:04 +0000emf(~emf@2620:10d:c090:400::5:113f)
2021-10-02 00:01:28 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 00:03:45 +0000 <orzo> probably unsafeIOToPrim is acceptable since the GADT includes the state argument and calling "new" will still be a type error if you use it with ST
2021-10-02 00:04:06 +0000 <orzo> hm
2021-10-02 00:04:12 +0000 <orzo> but it wont be a type error
2021-10-02 00:04:22 +0000 <orzo> there i go tricking myself again
2021-10-02 00:04:24 +0000 <monochrom> janus: BTW my perspective is that "do { pattern <- xxx; ... }" is as justified as "[ ... | pattern <- xxx, ...]"
2021-10-02 00:04:31 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 00:05:12 +0000 <monochrom> > [ x | Just x <- [Nothing, Just 4, Nothing, Just 5] ]
2021-10-02 00:05:14 +0000 <lambdabot> [4,5]
2021-10-02 00:06:07 +0000Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-10-02 00:06:17 +0000hexfive(~eric@50.35.83.177)
2021-10-02 00:06:30 +0000hexfive(~eric@50.35.83.177) (Client Quit)
2021-10-02 00:10:13 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 00:10:48 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 00:13:42 +0000pfurla(~pfurla@216.151.180.130)
2021-10-02 00:16:23 +0000pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-10-02 00:17:26 +0000notzmv(~zmv@user/notzmv)
2021-10-02 00:17:38 +0000Stotteren(~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
2021-10-02 00:18:30 +0000hendursaga(~weechat@user/hendursaga) (Quit: hendursaga)
2021-10-02 00:18:58 +0000hendursaga(~weechat@user/hendursaga)
2021-10-02 00:22:27 +0000 <monochrom> https://github.com/treblacy/hasdoc newly improved :)
2021-10-02 00:23:54 +0000nvmd(~nvmd@user/nvmd) (Quit: Later, nerds.)
2021-10-02 00:26:58 +0000lavaman(~lavaman@98.38.249.169)
2021-10-02 00:30:37 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-10-02 00:34:47 +0000ss4(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-10-02 00:36:07 +0000ph88(~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-10-02 00:36:30 +0000ph88(~ph88@2a02:8109:9e00:7e5c:1cbc:efbb:c578:a980)
2021-10-02 00:39:40 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-10-02 00:40:31 +0000Topsi(~Tobias@dyndsl-095-033-023-177.ewe-ip-backbone.de)
2021-10-02 00:42:16 +0000 <orzo> awpr: I got my gl vector to compile using only ioToPrim and unsafeInterleaveIO and GADT matching
2021-10-02 00:43:28 +0000 <awpr> huh. I don't immediately see how that's possible
2021-10-02 00:44:04 +0000 <orzo> it's probably an infinite loop
2021-10-02 00:44:12 +0000 <orzo> i used fix
2021-10-02 00:44:16 +0000 <orzo> heh
2021-10-02 00:44:48 +0000 <awpr> oh, to match the output before you construct it? I expect that's a loop, yeah
2021-10-02 00:44:50 +0000 <orzo> i was trying to use unsafeInterleaveIO to avoid looping but that's probably not right
2021-10-02 00:45:30 +0000 <orzo> a give away is there was no place for me to call error
2021-10-02 00:45:30 +0000 <orzo> heh
2021-10-02 00:47:46 +0000 <awpr> out of curiosity, is this doing something like glGenBuffers+glBindBuffer+glMapBuffer to "create" the buffer?
2021-10-02 00:48:17 +0000 <orzo> yeah but not glMap
2021-10-02 00:48:28 +0000 <orzo> glBufferData
2021-10-02 00:48:51 +0000 <orzo> i did use glMapBuffer for some other calls
2021-10-02 00:49:21 +0000Psybur(~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
2021-10-02 00:49:33 +0000 <orzo> i'm probably just wating time now trying to make a sanish MVector instance
2021-10-02 00:49:51 +0000 <orzo> but its ammusing anwyay
2021-10-02 00:50:07 +0000 <awpr> hmm... I'm not very familiar with the GL APIs, does that mean each element write has to update the whole buffer?
2021-10-02 00:50:15 +0000 <orzo> no
2021-10-02 00:50:31 +0000 <orzo> there's a lot of different calls for manipulating buffers
2021-10-02 00:52:43 +0000hgolden_(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
2021-10-02 00:53:27 +0000 <awpr> as far as updating the contents, I'm only finding APIs for "write the whole buffer" and "map the buffer into host address space", am I missing some?
2021-10-02 00:53:54 +0000 <orzo> yes
2021-10-02 00:54:22 +0000 <orzo> glBufferSubData
2021-10-02 00:54:46 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 00:54:57 +0000 <awpr> ah, okay. and that interacts with the hefty internal global state of OpenGL
2021-10-02 00:55:36 +0000 <awpr> just wondering whether "map immediately on creation and keep the pointer" could avoid the internal state enough to be ST-compatible
2021-10-02 00:56:54 +0000 <orzo> i don't think much would go wrong with ST if you use it within IO and have a GL context active
2021-10-02 00:57:01 +0000acidjnk_new(~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 00:57:01 +0000acidjnk_new3(~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 00:57:37 +0000 <orzo> none of this will work without a GL context initialized
2021-10-02 00:57:58 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 00:58:00 +0000 <orzo> that's some kind of thread-local state
2021-10-02 00:58:11 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 00:58:58 +0000 <orzo> it seems odd to put requirements like that on pure non-monadic code
2021-10-02 00:59:11 +0000 <awpr> yeah, agree that's a problem
2021-10-02 01:00:56 +0000lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-10-02 01:04:14 +0000Lycurgus(~juan@98.4.112.204) (Ping timeout: 260 seconds)
2021-10-02 01:05:39 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 01:11:25 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 01:11:25 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 01:12:17 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-10-02 01:13:03 +0000zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-10-02 01:13:24 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-10-02 01:16:49 +0000xff0x(~xff0x@2001:1a81:53fd:8200:7263:a828:f9a7:9516) (Ping timeout: 252 seconds)
2021-10-02 01:18:22 +0000_xor(~xor@74.215.232.67) (Quit: WeeChat 3.2.1)
2021-10-02 01:18:45 +0000xff0x(~xff0x@2001:1a81:5237:ef00:6acb:a523:9d13:873c)
2021-10-02 01:18:52 +0000_xor(~xor@74.215.232.67)
2021-10-02 01:20:51 +0000zaquest(~notzaques@5.128.210.178)
2021-10-02 01:20:57 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 01:20:57 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 01:26:49 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 01:26:49 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 01:29:09 +0000 <orzo> awpr: what if i use unsafeInterleaveIO to make the basicUnsafeNew constructor lazy and all the read and write routines have an implicit check that PrimState m ~ RealWorld because they use ioToPrim
2021-10-02 01:29:25 +0000alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-02 01:30:04 +0000betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
2021-10-02 01:30:53 +0000 <orzo> the uncertainty comes from how it decides (PrimState m ~ RealWorld) is okay based on the GADT match and the constructor was created in the lazy constructor call that used unsafeCoerce
2021-10-02 01:30:56 +0000neurocyte01320(~neurocyte@94.46.83.234)
2021-10-02 01:30:56 +0000neurocyte01320(~neurocyte@94.46.83.234) (Changing host)
2021-10-02 01:30:56 +0000neurocyte01320(~neurocyte@user/neurocyte)
2021-10-02 01:30:59 +0000ec(~ec@gateway/tor-sasl/ec)
2021-10-02 01:32:25 +0000tlaxkit(~hexchat@170.253.34.130) (Quit: Leaving)
2021-10-02 01:33:10 +0000 <awpr> that doesn't actually achieve any checking if I'm understanding it correctly
2021-10-02 01:33:19 +0000neurocyte0132(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-10-02 01:33:19 +0000neurocyte01320neurocyte0132
2021-10-02 01:33:51 +0000 <awpr> if it's actually `unsafeCoerce`, then all it's doing is providing a lie as proof that whatever `PrimState` is `RealWorld`
2021-10-02 01:34:11 +0000 <awpr> and then consuming that lie to retroactively justify the lie
2021-10-02 01:35:03 +0000 <monochrom> @quote monochrom unsafeCoerce
2021-10-02 01:35:03 +0000 <lambdabot> monochrom says: isTrue = (unsafeCoerce :: Either a b -> Bool) . (unsafeCoerce :: Maybe c -> Either a b) . (unsafeCoerce :: Bool -> Maybe c)
2021-10-02 01:35:11 +0000 <monochrom> Very safe and honest. >:)
2021-10-02 01:36:21 +0000 <orzo> well
2021-10-02 01:36:42 +0000 <geekosaur> unsafeCoerce can be safe if and only if the type level says something valid. if you're using it because you can't say what you want at the type level, now you have two problems
2021-10-02 01:36:59 +0000 <orzo> is there anything worthwhile to get from post-poning actual IO to a point where a constructor could be matched
2021-10-02 01:37:47 +0000mikoto-chan(~mikoto-ch@83.137.2.243) (Ping timeout: 252 seconds)
2021-10-02 01:37:56 +0000 <orzo> the read/write functions are fine the way they are relying on a GADT pattern match to decide the state is RealWorld
2021-10-02 01:38:19 +0000 <orzo> it's not their fault
2021-10-02 01:38:22 +0000 <orzo> heh
2021-10-02 01:38:57 +0000 <orzo> if i made an alternative constructor and disallowed the basicUnsafeNew call, they'd be fine protection
2021-10-02 01:39:14 +0000 <awpr> yeah, in isolation they're fine. but I don't think there's any way to get around the issue of `basicUnsafeNew`; nothing tells it what `m` is, and the only thing that tells the later methods what `m` is is `basicUnsafeNew`, which itself didn't know to begin with
2021-10-02 01:39:14 +0000 <orzo> and that call does have unsafe in the title ;)
2021-10-02 01:39:21 +0000 <geekosaur> I was actually consideriing suggesting that
2021-10-02 01:39:27 +0000 <geekosaur> smart constructor
2021-10-02 01:39:30 +0000mikoto-chan(~mikoto-ch@83.137.2.253)
2021-10-02 01:39:46 +0000 <orzo> well it wont let me use data-vector-growable out of the box to disallow basicUnsafeNew
2021-10-02 01:39:47 +0000 <awpr> yeah, an alternative IO-only constructor could be safe. but would it _work_ in the context you want to use it in?
2021-10-02 01:39:50 +0000 <awpr> yeah, that
2021-10-02 01:40:08 +0000 <orzo> the data-vector-growable package is not big tho
2021-10-02 01:40:45 +0000 <awpr> does this whole situation also have issues with GHC's threaded runtime? or is this somehow dealing with that by using pinned threads etc.
2021-10-02 01:41:06 +0000 <orzo> no issues
2021-10-02 01:41:12 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-02 01:41:17 +0000 <orzo> i'm actually using gtk to get my gl context
2021-10-02 01:41:58 +0000 <awpr> "using gtk" meaning "running inside a callback from gtk"? then it might be pinned to the GTK thread
2021-10-02 01:42:33 +0000harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26)
2021-10-02 01:43:09 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-02 01:43:23 +0000 <orzo> gtk documents when you can use the gl context
2021-10-02 01:43:36 +0000 <orzo> they have a call to bring it into scope when it is not
2021-10-02 01:44:06 +0000 <orzo> but yeah, i don't feel confident i can use it from multiple threads
2021-10-02 01:44:22 +0000 <awpr> ok, sounds like they've explicitly dealt with the issues and documented how to avoid breaking it
2021-10-02 01:46:51 +0000 <orzo> i have a thought to add safety
2021-10-02 01:48:20 +0000 <orzo> class MVector v a -- it has two arguments v and a.
2021-10-02 01:49:06 +0000 <orzo> I could force the a to be something that includes some proof maybe
2021-10-02 01:49:44 +0000 <orzo> when you actually write to the vector, kyou'll be forced to include the proof
2021-10-02 01:49:58 +0000 <orzo> and everything else can be lazy to that point
2021-10-02 01:53:45 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-02 01:53:59 +0000Topsi(~Tobias@dyndsl-095-033-023-177.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-10-02 01:54:25 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-02 01:54:33 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 01:54:38 +0000vysn(~vysn@user/vysn) (Ping timeout: 260 seconds)
2021-10-02 01:55:11 +0000yinghua(~yinghua@181.228.40.183) (Quit: Leaving)
2021-10-02 01:57:57 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 01:57:57 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de)
2021-10-02 01:59:40 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 02:00:12 +0000TDANG(~TDANG@inet-177-7.ets.org)
2021-10-02 02:00:53 +0000mikoto-chan(~mikoto-ch@83.137.2.253) (Read error: Connection reset by peer)
2021-10-02 02:00:58 +0000 <TDANG> Hi. Please take a look at this code snipet
2021-10-02 02:01:18 +0000 <TDANG> data GiveParams = GiveParams
2021-10-02 02:01:19 +0000 <TDANG> { gpBeneficiary :: !PubKeyHash
2021-10-02 02:01:21 +0000 <TDANG> , gpDeadline :: !POSIXTime
2021-10-02 02:01:22 +0000 <TDANG> , gpAmount :: !Integer
2021-10-02 02:01:24 +0000 <TDANG> } deriving (Generic, ToJSON, FromJSON, ToSchema)
2021-10-02 02:01:25 +0000 <TDANG> give :: AsContractError e => GiveParams -> Contract w s e ()
2021-10-02 02:01:27 +0000 <TDANG> give gp = do
2021-10-02 02:01:28 +0000 <TDANG> let dat = VestingDatum
2021-10-02 02:01:31 +0000 <TDANG> { beneficiary = gpBeneficiary gp
2021-10-02 02:01:31 +0000 <TDANG> , deadline = gpDeadline gp
2021-10-02 02:01:33 +0000 <TDANG> }
2021-10-02 02:01:36 +0000 <TDANG> My concern: beneficiary = gpBeneficiary gp
2021-10-02 02:01:40 +0000 <monochrom> Ugh you already know you should use a pastebin.
2021-10-02 02:01:53 +0000 <TDANG> How should I understand this statement?
2021-10-02 02:02:54 +0000 <boxscape_> instead of posting multiple lines of code directly, it's appropriate to paste them into something like https://paste.tomsmeding.com/ and then paste a link to the result here
2021-10-02 02:03:01 +0000 <TDANG> Can you guide me how to use pastebin?
2021-10-02 02:03:25 +0000 <boxscape_> 1. go to https://paste.tomsmeding.com/ 2. paste code 3. copy link and paste link here
2021-10-02 02:04:08 +0000 <TDANG> https://paste.tomsmeding.com/oyfqUuyj
2021-10-02 02:04:52 +0000 <boxscape_> 👍
2021-10-02 02:05:18 +0000 <TDANG> Can you help me with this statement: beneficiary = gpBeneficiary gp
2021-10-02 02:05:35 +0000 <boxscape_> what is your question about that statement?
2021-10-02 02:06:11 +0000 <TDANG> I mean, what does this statement mean: beneficiary = gpBeneficiary gp
2021-10-02 02:06:47 +0000mikoto-chan(~mikoto-ch@83.137.2.245)
2021-10-02 02:07:22 +0000 <TDANG> gp is of type GiveParams, correct?
2021-10-02 02:07:42 +0000 <boxscape_> VestingDatum is a record with the fields beneficiary and deadline. `VestingDatum { beneficiary = gpBeneficiary gp, deadline = gpDeadline gp}` creates a new VestingDatum value with the beneficiary field having the value gpBeneficiary gp
2021-10-02 02:07:51 +0000 <boxscape_> correc
2021-10-02 02:07:52 +0000 <boxscape_> t
2021-10-02 02:08:07 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 02:08:07 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 02:08:07 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 02:08:19 +0000 <boxscape_> GiveParams is also a record, and the expression `gpBeneficiary gp` extracts the gpBeneficiary field from the gp value
2021-10-02 02:08:55 +0000 <boxscape_> so the line in question means that the newly created VestingDatum will have the same beneficiary as the gpBeneficiary of the GiveParams value
2021-10-02 02:09:48 +0000 <TDANG> expression `gpBeneficiary gp` extracts the gpBeneficiary field from the gp value : do you have any document for this?
2021-10-02 02:11:44 +0000 <boxscape_> TDANG: I don't have a standard document at hand, but the learn you a haskell section on "Record syntax" on this page seems alright http://learnyouahaskell.com/making-our-own-types-and-typeclasses
2021-10-02 02:11:57 +0000 <boxscape_> (scroll down to "Record syntax")
2021-10-02 02:11:59 +0000alx741(~alx741@181.196.69.214) (Quit: alx741)
2021-10-02 02:12:10 +0000 <TDANG> Oh, I found one: https://sodocumentation.net/haskell/topic/1950/record-syntax
2021-10-02 02:12:23 +0000 <boxscape_> yeah that seems good, too
2021-10-02 02:12:55 +0000 <TDANG> https://paste.tomsmeding.com/pCRT7pFH
2021-10-02 02:13:58 +0000 <TDANG> Ya, cool. Thanks a lot ;-)
2021-10-02 02:14:04 +0000 <boxscape_> welcome
2021-10-02 02:14:16 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-02 02:14:31 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2.1)
2021-10-02 02:22:24 +0000pavonia(~user@user/siracusa)
2021-10-02 02:28:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 02:32:43 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 02:34:09 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 02:38:22 +0000 <TDANG> 1 bit concern: gpBeneficiary gp
2021-10-02 02:38:52 +0000 <TDANG> this statement may be translated as : function gpBeneficiary with parameter gp
2021-10-02 02:39:02 +0000 <boxscape_> yes
2021-10-02 02:39:20 +0000 <boxscape_> (technically it's an expression, not a statement)
2021-10-02 02:39:26 +0000 <TDANG> how can we differentciate with extraction a property from a record var
2021-10-02 02:39:35 +0000 <TDANG> ya, expression
2021-10-02 02:40:12 +0000 <boxscape_> when you define `data GiveParam = GiveParam { gpBeneficiary :: ... }`, the extractor `gpBeneficiary` *is* a function
2021-10-02 02:40:21 +0000 <boxscape_> so you can't really differentiate it from a function
2021-10-02 02:40:38 +0000jaitoon2(~Jaitoon@94.46.244.24) (Quit: Leaving)
2021-10-02 02:40:44 +0000 <boxscape_> you can figure out where it was defined
2021-10-02 02:40:56 +0000 <boxscape_> and then there you can see whether it comes from a record or was defined as a regular function
2021-10-02 02:41:30 +0000 <TDANG> oh, nice. This is a correct way to trace the origin
2021-10-02 02:42:02 +0000 <boxscape_> right
2021-10-02 02:42:18 +0000terrorjack(~terrorjac@static.3.200.12.49.clients.your-server.de) (Read error: Connection reset by peer)
2021-10-02 02:43:39 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 02:43:43 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-10-02 02:46:01 +0000chisui(~chisui@200116b8683fc700cf2a945a88454e85.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
2021-10-02 02:57:58 +0000doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
2021-10-02 02:59:14 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-02 02:59:58 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-02 03:00:50 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2021-10-02 03:01:04 +0000adium(adium@user/adium) (Killed (NickServ (GHOST command used by adium55!~adium55@2804:14d:149a:8ad4:31b5:99c4:c7a3:6ed4)))
2021-10-02 03:01:23 +0000td_(~td@94.134.91.208) (Ping timeout: 252 seconds)
2021-10-02 03:02:44 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-10-02 03:02:50 +0000adium_(adium@user/adium)
2021-10-02 03:03:04 +0000td_(~td@94.134.91.111)
2021-10-02 03:06:07 +0000adium_adium
2021-10-02 03:12:38 +0000rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-10-02 03:18:42 +0000mbuf(~Shakthi@27.58.139.33)
2021-10-02 03:22:40 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-02 03:28:16 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-10-02 03:30:25 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2021-10-02 03:30:37 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-02 03:31:01 +0000mei(~mei@user/mei) (Ping timeout: 252 seconds)
2021-10-02 03:35:55 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 03:38:32 +0000boxscape_(~boxscape_@mue-88-130-59-180.dsl.tropolys.de) (Quit: Connection closed)
2021-10-02 03:43:56 +0000CnnibisIndicaCannabisIndica
2021-10-02 03:47:50 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 03:47:50 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 03:47:50 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 03:53:01 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 04:08:56 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-02 04:11:14 +0000rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-10-02 04:11:50 +0000phma_(~phma@host-67-44-209-109.hnremote.net)
2021-10-02 04:14:38 +0000phma(~phma@host-67-44-209-109.hnremote.net) (Ping timeout: 260 seconds)
2021-10-02 04:16:37 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-02 04:16:52 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-02 04:19:55 +0000geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-10-02 04:24:42 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 04:29:22 +0000hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-10-02 04:33:14 +0000fizzsegfaultbuzz(~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 252 seconds)
2021-10-02 04:46:20 +0000thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 250 seconds)
2021-10-02 04:52:58 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 04:53:22 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 04:59:05 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 05:02:32 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-02 05:08:01 +0000pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-10-02 05:10:38 +0000pfurla(~pfurla@216.151.180.130) (Ping timeout: 252 seconds)
2021-10-02 05:12:16 +0000emf(~emf@2620:10d:c090:400::5:113f) (Quit: emf)
2021-10-02 05:13:30 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-10-02 05:14:27 +0000zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-10-02 05:16:34 +0000turlando(~turlando@user/turlando) (Ping timeout: 252 seconds)
2021-10-02 05:16:55 +0000turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-10-02 05:16:55 +0000turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-10-02 05:16:55 +0000turlando(~turlando@user/turlando)
2021-10-02 05:18:32 +0000 <c_wraith> anyone know what the status of the GHC 9.2 release candidate is?
2021-10-02 05:19:14 +0000martin02(~silas@141.84.69.76) (Ping timeout: 246 seconds)
2021-10-02 05:19:40 +0000 <c_wraith> the current RC fixes a couple bugs that make using type application a lot nicer.
2021-10-02 05:19:51 +0000martin02(~silas@141.84.69.76)
2021-10-02 05:20:00 +0000 <c_wraith> It'd be cool to see it officially released
2021-10-02 05:27:50 +0000slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-10-02 05:39:25 +0000mikoto-chan(~mikoto-ch@83.137.2.245) (Read error: Connection reset by peer)
2021-10-02 05:45:03 +0000mikoto-chan(~mikoto-ch@83.137.2.245)
2021-10-02 05:46:46 +0000vysn(~vysn@user/vysn)
2021-10-02 05:56:11 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-10-02 06:07:46 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 06:12:22 +0000chomwitt(~chomwitt@ppp-2-85-111-14.home.otenet.gr)
2021-10-02 06:14:38 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 06:20:45 +0000benin0369323016(~benin@183.82.205.238)
2021-10-02 06:21:33 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-02 06:23:54 +0000ec(~ec@gateway/tor-sasl/ec)
2021-10-02 06:27:36 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 06:29:56 +0000acidjnk_new3(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de)
2021-10-02 06:33:10 +0000acidjnk_new(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 06:33:10 +0000acidjnk(~acidjnk@p200300d0c703cb484c2e41891c292fdb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 06:33:28 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de)
2021-10-02 06:38:30 +0000juhp(~juhp@128.106.188.220) (Quit: juhp)
2021-10-02 06:38:31 +0000iridium__(~iridium@122.175.138.158)
2021-10-02 06:38:44 +0000juhp(~juhp@128.106.188.220)
2021-10-02 06:42:36 +0000emf(~emf@2620:10d:c090:400::5:113f)
2021-10-02 06:43:41 +0000xiongxin(~quassel@113.116.33.66)
2021-10-02 06:50:21 +0000mikoto-chan(~mikoto-ch@83.137.2.245) (Read error: Connection reset by peer)
2021-10-02 06:51:10 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 06:52:58 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-10-02 06:53:07 +0000emf(~emf@2620:10d:c090:400::5:113f) (Quit: emf)
2021-10-02 06:53:20 +0000mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-10-02 06:53:50 +0000emf(~emf@2620:10d:c090:400::5:113f)
2021-10-02 06:55:12 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-02 06:55:53 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 06:56:22 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-02 06:57:53 +0000ubert(~Thunderbi@178.115.52.70.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-10-02 07:00:34 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 07:02:46 +0000mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-10-02 07:04:52 +0000mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-10-02 07:07:07 +0000rtjure(~rtjure@bras-79-132-17-74.comnet.bg)
2021-10-02 07:14:05 +0000falafel(~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com)
2021-10-02 07:14:29 +0000aegon(~mike@174.127.249.180) (Remote host closed the connection)
2021-10-02 07:18:10 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org) (Remote host closed the connection)
2021-10-02 07:19:15 +0000emf(~emf@2620:10d:c090:400::5:113f) (Quit: emf)
2021-10-02 07:20:05 +0000emf(~emf@2620:10d:c090:400::5:113f)
2021-10-02 07:21:36 +0000iridium__(~iridium@122.175.138.158) (Changing host)
2021-10-02 07:21:36 +0000iridium__(~iridium@user/iridium/x-1824934)
2021-10-02 07:22:57 +0000max22-(~maxime@2a01cb088335980038ece50ee02a7251.ipv6.abo.wanadoo.fr)
2021-10-02 07:25:58 +0000gehmehgeh(~user@user/gehmehgeh)
2021-10-02 07:29:07 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 07:29:46 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 07:30:10 +0000emf(~emf@2620:10d:c090:400::5:113f) (Quit: emf)
2021-10-02 07:30:44 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org)
2021-10-02 07:32:42 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2021-10-02 07:33:04 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2021-10-02 07:35:46 +0000xiongxin(~quassel@113.116.33.66) (Ping timeout: 252 seconds)
2021-10-02 07:35:46 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-10-02 07:42:59 +0000jakalx(~jakalx@base.jakalx.net) ()
2021-10-02 07:47:40 +0000dajoer(~david@user/gvx)
2021-10-02 07:49:13 +0000voldial(~user@195.179.201.175) (Changing host)
2021-10-02 07:49:13 +0000voldial(~user@user/voldial)
2021-10-02 07:51:26 +0000jakalx(~jakalx@base.jakalx.net)
2021-10-02 07:52:54 +0000falafel(~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Remote host closed the connection)
2021-10-02 07:53:14 +0000falafel(~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com)
2021-10-02 07:55:01 +0000benin0369323016(~benin@183.82.205.238) (Remote host closed the connection)
2021-10-02 08:01:04 +0000ryantrinkle(~ryan@50.239.20.147) (Read error: Connection reset by peer)
2021-10-02 08:05:28 +0000hendursa1(~weechat@user/hendursaga)
2021-10-02 08:07:01 +0000mbuf(~Shakthi@27.58.139.33) (Quit: Leaving)
2021-10-02 08:08:48 +0000hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-02 08:10:04 +0000jinsun(~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-02 08:15:11 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-10-02 08:17:33 +0000allbery_b(~geekosaur@xmonad/geekosaur)
2021-10-02 08:17:33 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-10-02 08:17:36 +0000allbery_bgeekosaur
2021-10-02 08:18:05 +0000falafel(~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Ping timeout: 264 seconds)
2021-10-02 08:18:21 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 08:19:24 +0000CookE[](~thedawn@user/thedawn)
2021-10-02 08:19:24 +0000fef(~thedawn@user/thedawn)
2021-10-02 08:20:24 +0000xiongxin(~quassel@113.116.33.66)
2021-10-02 08:21:00 +0000fef(~thedawn@user/thedawn) (Client Quit)
2021-10-02 08:22:30 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 08:24:56 +0000_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-10-02 08:25:25 +0000kuribas(~user@ptr-25vy0i8gk2vqd1giqyv.18120a2.ip6.access.telenet.be)
2021-10-02 08:26:41 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection)
2021-10-02 08:37:37 +0000nfd(~nfd@user/nfd)
2021-10-02 08:38:21 +0000jakalx(~jakalx@base.jakalx.net) ()
2021-10-02 08:44:22 +0000hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-02 08:45:37 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 08:46:37 +0000Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-10-02 08:50:07 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds)
2021-10-02 08:52:55 +0000mei(~mei@user/mei)
2021-10-02 08:57:30 +0000qbt(~edun@user/edun)
2021-10-02 08:58:10 +0000werneta_(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-10-02 09:00:07 +0000jakalx(~jakalx@base.jakalx.net)
2021-10-02 09:00:14 +0000qbt(~edun@user/edun) (Client Quit)
2021-10-02 09:03:24 +0000VoidNoir0(~VoidNoir0@72.80.203.52)
2021-10-02 09:05:53 +0000Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-10-02 09:23:46 +0000DNH(~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643)
2021-10-02 09:24:40 +0000CookE[](~thedawn@user/thedawn) (Remote host closed the connection)
2021-10-02 09:24:51 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 09:26:09 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 09:26:24 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 09:33:16 +0000acidjnk_new(~acidjnk@pd9e0b933.dip0.t-ipconnect.de)
2021-10-02 09:35:38 +0000thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com)
2021-10-02 09:36:29 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-10-02 09:36:29 +0000acidjnk_new3(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-10-02 09:37:16 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de)
2021-10-02 09:38:31 +0000iridium__(~iridium@user/iridium/x-1824934) (Quit: leaving)
2021-10-02 09:39:41 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-10-02 09:43:19 +0000thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 252 seconds)
2021-10-02 09:45:21 +0000DNH(~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-02 09:47:36 +0000hendursa1(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-02 09:48:01 +0000alzgh(~alzgh@user/alzgh)
2021-10-02 09:49:34 +0000hendursa1(~weechat@user/hendursaga)
2021-10-02 09:50:30 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 09:55:18 +0000mjs2600_(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 250 seconds)
2021-10-02 09:56:13 +0000xsperry(~xs@cpe-188-129-101-182.dynamic.amis.hr) (Changing host)
2021-10-02 09:56:13 +0000xsperry(~xs@user/xsperry)
2021-10-02 09:57:20 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-10-02 09:58:15 +0000pera(~pera@user/pera)
2021-10-02 09:59:57 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 10:04:30 +0000Debate2021(~Debate202@103.134.42.228)
2021-10-02 10:06:19 +0000Debate2021(~Debate202@103.134.42.228) ()
2021-10-02 10:07:20 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 10:10:07 +0000DNH(~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643)
2021-10-02 10:12:04 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds)
2021-10-02 10:14:24 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 10:18:08 +0000jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-10-02 10:23:17 +0000mei(~mei@user/mei) (Quit: mei)
2021-10-02 10:24:43 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 10:25:05 +0000mei(~mei@user/mei)
2021-10-02 10:25:40 +0000pera(~pera@user/pera) (Ping timeout: 252 seconds)
2021-10-02 10:27:21 +0000 <tomjaguarpaw> I know of four popular streaming libraries: conduit, pipes, streaming, streamly. Are there any others?
2021-10-02 10:33:11 +0000CiaoSen(~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-10-02 10:43:29 +0000pera(~pera@user/pera)
2021-10-02 10:50:57 +0000mestre(~mestre@191.177.175.57)
2021-10-02 10:52:37 +0000pera(~pera@user/pera) (Ping timeout: 252 seconds)
2021-10-02 10:53:46 +0000DNH(~DNH@2a02:8108:1100:16d8:f5a0:763f:a395:5643) (Quit: Textual IRC Client: www.textualapp.com)
2021-10-02 10:56:54 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 11:00:08 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 11:00:53 +0000alx741(~alx741@181.196.69.214)
2021-10-02 11:01:29 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 11:01:57 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 11:02:55 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 11:04:14 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 11:05:17 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 11:05:26 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 11:06:27 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 11:08:04 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
2021-10-02 11:09:02 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds)
2021-10-02 11:11:36 +0000AlexNoo_(~AlexNoo@178.34.162.155)
2021-10-02 11:13:05 +0000Alex_test(~al_test@178.34.161.150) (Ping timeout: 252 seconds)
2021-10-02 11:13:53 +0000 <zincy_> transient?
2021-10-02 11:14:00 +0000 <zincy_> https://hackage.haskell.org/package/transient
2021-10-02 11:14:11 +0000AlexZenon(~alzenon@178.34.161.150) (Ping timeout: 252 seconds)
2021-10-02 11:14:27 +0000 <zincy_> Not sure about popular though
2021-10-02 11:15:17 +0000AlexNoo(~AlexNoo@178.34.161.150) (Ping timeout: 252 seconds)
2021-10-02 11:15:34 +0000Cajun(~Cajun@user/cajun)
2021-10-02 11:16:19 +0000CiaoSen(~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 11:16:21 +0000phma_phma
2021-10-02 11:17:23 +0000Alex_test(~al_test@178.34.162.155)
2021-10-02 11:18:14 +0000AlexZenon(~alzenon@178.34.162.155)
2021-10-02 11:28:53 +0000sagax(~sagax_nb@user/sagax) (Ping timeout: 264 seconds)
2021-10-02 11:31:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 11:33:21 +0000BestSteve(~beststeve@220-135-3-239.HINET-IP.hinet.net) (Quit: WeeChat 3.2)
2021-10-02 11:42:41 +0000max22-(~maxime@2a01cb088335980038ece50ee02a7251.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
2021-10-02 11:43:24 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 11:43:58 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 11:48:19 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds)
2021-10-02 11:56:06 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 12:06:52 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 12:12:04 +0000tabaqui(~root@46.39.45.162) (Quit: WeeChat 3.3)
2021-10-02 12:15:27 +0000fusion86(~fusion@2a02-a44c-e6e5-1-1753-33de-9d65-536a.fixed6.kpn.net)
2021-10-02 12:16:20 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 12:16:27 +0000snekism(~user@88.160.31.174)
2021-10-02 12:19:22 +0000slowButPresent(~slowButPr@user/slowbutpresent)
2021-10-02 12:19:50 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-02 12:22:25 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 12:24:03 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 12:26:13 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-10-02 12:26:54 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 12:28:50 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds)
2021-10-02 12:30:31 +0000 <maerwald> tomjaguarpaw: and only 2 of them have good performance :p
2021-10-02 12:30:37 +0000max22-(~maxime@2a01cb08833598003de9b0144dce98c8.ipv6.abo.wanadoo.fr)
2021-10-02 12:31:35 +0000jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-10-02 12:33:13 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 12:34:24 +0000jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-10-02 12:44:37 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 12:49:16 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds)
2021-10-02 12:50:38 +0000AlexNoo_AlexNoo
2021-10-02 12:52:01 +0000mestre(~mestre@191.177.175.57) (Quit: leaving)
2021-10-02 12:55:40 +0000ph88(~ph88@2a02:8109:9e00:7e5c:1cbc:efbb:c578:a980) (Remote host closed the connection)
2021-10-02 13:03:23 +0000Alex_test(~al_test@178.34.162.155) (Quit: ;-)
2021-10-02 13:03:33 +0000AlexZenon(~alzenon@178.34.162.155) (Quit: ;-)
2021-10-02 13:03:56 +0000AlexNoo(~AlexNoo@178.34.162.155) (Quit: Leaving)
2021-10-02 13:09:55 +0000renzhi(~xp@2607:fa49:6500:b100::1d9d)
2021-10-02 13:10:16 +0000MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-10-02 13:10:51 +0000CiaoSen(~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-10-02 13:11:43 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 13:13:00 +0000MQ-17J(~MQ-17J@8.6.144.233)
2021-10-02 13:17:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 13:22:33 +0000AlexZenon(~alzenon@178.34.162.155)
2021-10-02 13:22:43 +0000AlexNoo(~AlexNoo@178.34.162.155)
2021-10-02 13:28:30 +0000Alex_test(~al_test@178.34.162.155)
2021-10-02 13:34:30 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-10-02 13:37:07 +0000rembo10(~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-02 13:37:19 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 13:38:00 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 13:39:37 +0000rembo10(~rembo10@wally.codeshy.com)
2021-10-02 13:40:10 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 13:42:28 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-02 13:44:02 +0000ryantrinkle(~ryan@50.239.20.147)
2021-10-02 13:46:13 +0000jinsun(~quassel@user/jinsun)
2021-10-02 13:49:02 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
2021-10-02 13:49:33 +0000 <tomjaguarpaw> maerwald: which two?
2021-10-02 13:49:42 +0000 <maerwald> tomjaguarpaw: streamly and streaming
2021-10-02 13:50:10 +0000 <tomjaguarpaw> Depends what you mean by good! https://github.com/haskell-streaming/streaming/issues/109
2021-10-02 13:50:41 +0000 <tomjaguarpaw> streamly is the only one I have found that does not have quadratic edge cases
2021-10-02 13:51:11 +0000jinsun(~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-02 13:53:04 +0000CiaoSen(~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 13:53:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 13:57:04 +0000jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-10-02 13:57:27 +0000jpds(~jpds@gateway/tor-sasl/jpds)
2021-10-02 14:02:08 +0000fendor(~fendor@91.141.55.34.wireless.dyn.drei.com)
2021-10-02 14:02:22 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 14:05:54 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 260 seconds)
2021-10-02 14:07:28 +0000 <maerwald> yeah, I personally am only interested in streamly
2021-10-02 14:07:33 +0000 <maerwald> but the API is still a bit rough
2021-10-02 14:08:07 +0000 <tomjaguarpaw> It does seem to be the best thought-through
2021-10-02 14:08:26 +0000 <kuribas> conduit is the easiest to use.
2021-10-02 14:08:43 +0000 <tomjaguarpaw> Why is that?
2021-10-02 14:09:03 +0000norskal(~norskal@101.175.64.73)
2021-10-02 14:09:22 +0000 <kuribas> streamly is a bit awkward, it's like using a list, except it's not a list...
2021-10-02 14:10:08 +0000 <maerwald> kuribas: what??
2021-10-02 14:10:09 +0000 <kuribas> conduit you wait for the input, then yield some output.
2021-10-02 14:10:14 +0000 <maerwald> conduit is over-engineered :p
2021-10-02 14:10:59 +0000azimut_(~azimut@gateway/tor-sasl/azimut)
2021-10-02 14:11:24 +0000 <maerwald> streamly actually is based on streams
2021-10-02 14:11:49 +0000 <kuribas> conduit is more like coroutines
2021-10-02 14:12:09 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-10-02 14:12:46 +0000 <kuribas> streamly claims it's as easy as using lists, but you cannot just pattern matching on a streamly stream.
2021-10-02 14:13:24 +0000 <tomjaguarpaw> That's strange. There's nothing that should stop you from doing that. Do they really not have it in their API?
2021-10-02 14:14:06 +0000 <maerwald> I'm not even sure what that means
2021-10-02 14:14:21 +0000 <tomjaguarpaw> Yeah, here: https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:uncons
2021-10-02 14:14:52 +0000 <kuribas> that's not the same simplicity as pattern matching on a list.
2021-10-02 14:15:00 +0000 <maerwald> eh
2021-10-02 14:15:13 +0000 <maerwald> turn the stream into a list then
2021-10-02 14:15:30 +0000 <kuribas> maerwald: then you loose the stream, what is the point?
2021-10-02 14:15:41 +0000 <maerwald> well, not sure what's your problem here
2021-10-02 14:15:47 +0000 <tomjaguarpaw> It is about as simple as pattern matching on a list!
2021-10-02 14:16:38 +0000iridium__(~iridium@user/iridium/x-1824934)
2021-10-02 14:16:40 +0000 <geekosaur> sounds to me like a pattern synonym might iron out any problems anyway?
2021-10-02 14:17:06 +0000 <maerwald> this seems to be more of a case people having trouble navigating the streamly docs and I agree it isn't easy
2021-10-02 14:17:13 +0000 <tomjaguarpaw> I'm not sure what kuribas is objecting to but the uncons has to happen in a monad
2021-10-02 14:17:43 +0000 <kuribas> what I object to is that it isn't a list. If you pattern match twice, you may get different elements.
2021-10-02 14:18:04 +0000 <maerwald> because a stream may run actions, yes
2021-10-02 14:18:12 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-02 14:18:28 +0000 <kuribas> so "it's as easy as using a list", is false IMO.
2021-10-02 14:18:49 +0000 <maerwald> that seems like a fabricated complaint :p
2021-10-02 14:19:09 +0000 <kuribas> whereas conduit is just, read a value from upstream, yield it downstream.
2021-10-02 14:20:22 +0000 <kuribas> well, do something in between first of course.
2021-10-02 14:20:46 +0000 <maerwald> except you need all sorts of odd combinators, while streamly's Monad instance actually makes sense
2021-10-02 14:21:10 +0000Guest28(~Guest28@2a02:120b:c3f4:72c0:2322:7cf4:1b7d:710b)
2021-10-02 14:21:55 +0000 <maerwald> you might also wanna check out the Unfold type in streamly
2021-10-02 14:22:38 +0000 <kuribas> yeah, then there are also folds, lot's of concepts, it's just more complicated that the conduit way of doing things.
2021-10-02 14:22:58 +0000 <maerwald> sounds more to me like you're used to conduit and hence find it easier
2021-10-02 14:23:05 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 14:23:06 +0000 <maerwald> https://github.com/composewell/streamly#an-overview-of-the-types-used-in-these-examples
2021-10-02 14:23:10 +0000 <maerwald> not many types you have to understand
2021-10-02 14:23:18 +0000 <maerwald> basically 4
2021-10-02 14:23:50 +0000 <kuribas> I am not saying it's worse, it may have a good usecase, but I find the conduit interface easier to understand.
2021-10-02 14:24:03 +0000Guest28(~Guest28@2a02:120b:c3f4:72c0:2322:7cf4:1b7d:710b) (Client Quit)
2021-10-02 14:24:03 +0000 <maerwald> I find it mind-boggling whenever I look at it
2021-10-02 14:24:23 +0000geekosaurgot lost almost immediately trying to understand the API
2021-10-02 14:24:37 +0000 <maerwald> one day I figure out how conduit works, 2 weeks later I don't anymore
2021-10-02 14:24:38 +0000 <kuribas> geekosaur: conduit?
2021-10-02 14:24:42 +0000 <maerwald> it's so unintuitive
2021-10-02 14:24:42 +0000 <geekosaur> yeh
2021-10-02 14:25:18 +0000 <tomjaguarpaw> I'm curious why a streamly Unfold m a b is not just an a -> SerialT m b
2021-10-02 14:26:05 +0000 <maerwald> `forall s. Unfold (s -> m (Step s b)) (a -> m s)`
2021-10-02 14:26:10 +0000 <kuribas> tomjaguarpaw: because of the applicative?
2021-10-02 14:27:40 +0000xiongxin(~quassel@113.116.33.66) (Ping timeout: 252 seconds)
2021-10-02 14:27:46 +0000 <tomjaguarpaw> I don't understand either response
2021-10-02 14:28:05 +0000xiongxin(~quassel@113.116.33.66)
2021-10-02 14:28:22 +0000cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-10-02 14:28:24 +0000 <maerwald> I don't understand how `a -> SerialT m b` would allow you to define a stepper function
2021-10-02 14:28:46 +0000 <tomjaguarpaw> Do you want to define a stepper function?
2021-10-02 14:29:03 +0000 <tomjaguarpaw> You can't use it for anything other than getting b s out
2021-10-02 14:29:54 +0000 <maerwald> In the stepper, you have Yield, Skip and Stop
2021-10-02 14:30:21 +0000 <tomjaguarpaw> What can you do with it that you can't do with an a -> SerialT m b ?
2021-10-02 14:30:28 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 14:30:28 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 14:30:28 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 14:31:46 +0000 <kuribas> tomjaguarpaw: maybe it's for performance? Streamly tries very hard to be performant.
2021-10-02 14:32:05 +0000cheater(~Username@user/cheater)
2021-10-02 14:32:13 +0000 <tomjaguarpaw> Yes, possible
2021-10-02 14:32:46 +0000 <kuribas> it even has a plugin that remove intermediate structures.
2021-10-02 14:33:13 +0000 <tomjaguarpaw> "Unfold is an example of an abstraction that we have created to achieve high performance when mapping streams on streams. Unfold allows stream generation to be optimized well by the compiler through stream fusion."
2021-10-02 14:33:17 +0000 <tomjaguarpaw> Perhaps that's it
2021-10-02 14:33:58 +0000 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/src/Streamly.Internal.Data.Stream.StreamD.…
2021-10-02 14:34:03 +0000kuribas(~user@ptr-25vy0i8gk2vqd1giqyv.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-10-02 14:34:11 +0000 <maerwald> that's basically what you mean I guess
2021-10-02 14:34:57 +0000 <tomjaguarpaw> maerwald: Right
2021-10-02 14:34:58 +0000 <maerwald> tomjaguarpaw: there's StreamD and StreamK btw
2021-10-02 14:35:06 +0000 <maerwald> maybe Unfold abstracts over that
2021-10-02 14:35:46 +0000Guest80(~Guest80@186.122.61.47)
2021-10-02 14:35:48 +0000 <maerwald> I asked once and harendra says they have different performance properties
2021-10-02 14:36:55 +0000 <maerwald> "GHC is able to INLINE and fuse direct style better, providing better performance than CPS implementation."
2021-10-02 14:37:25 +0000 <tomjaguarpaw> Makes sense
2021-10-02 14:37:34 +0000 <maerwald> so you can defer the decision or so
2021-10-02 14:37:44 +0000 <tomjaguarpaw> Unfold is likely subject to the same O(n^2) behaviour I have reported on the other libraries though
2021-10-02 14:37:57 +0000 <tomjaguarpaw> The point of CPS is to right-associate the binds
2021-10-02 14:38:04 +0000Lycurgus(~juan@98.4.112.204)
2021-10-02 14:40:44 +0000iridium__(~iridium@user/iridium/x-1824934) (Quit: leaving)
2021-10-02 14:42:08 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 14:43:05 +0000hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-10-02 14:46:25 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds)
2021-10-02 14:50:17 +0000acidjnk_new3(~acidjnk@pd9e0b933.dip0.t-ipconnect.de)
2021-10-02 14:51:00 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-10-02 14:53:40 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-10-02 14:53:50 +0000ubert(~Thunderbi@178.115.76.58.wireless.dyn.drei.com)
2021-10-02 14:54:55 +0000 <hololeap> is there any way to customize `cabal init` to, say, also copy in a .gitignore file?
2021-10-02 14:56:17 +0000 <maerwald> cabal init && cp gitignore
2021-10-02 14:56:19 +0000 <maerwald> :p
2021-10-02 14:56:45 +0000 <hololeap> that's too much typing!
2021-10-02 14:56:51 +0000 <maerwald> oh dear
2021-10-02 14:56:55 +0000 <maerwald> but it's unix :)
2021-10-02 14:57:01 +0000 <hololeap> i'm kidding
2021-10-02 14:57:50 +0000 <hololeap> however, it seems to be pulling in files from some kind of skel directory, so could this be modified?
2021-10-02 15:02:34 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 15:05:18 +0000acidjnk_new(~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-10-02 15:05:18 +0000acidjnk_new3(~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-10-02 15:05:57 +0000 <fusion86> Hey all, this should be a very simple thing but I can't figure out how to convert a Float -> Word8. Anyone got any tips :)
2021-10-02 15:07:02 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 260 seconds)
2021-10-02 15:09:39 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 15:09:54 +0000 <nitrix> [Word8] or Word8?
2021-10-02 15:11:23 +0000 <nitrix> A Float wont fit in a Word8 unless it's quite small.
2021-10-02 15:12:21 +0000 <hpc> there's no single thing that could be "converting" - perhaps you want to round the float?
2021-10-02 15:16:20 +0000mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-10-02 15:17:10 +0000alx741(~alx741@181.196.69.214) (Ping timeout: 252 seconds)
2021-10-02 15:21:25 +0000Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-10-02 15:21:41 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 15:22:28 +0000 <fusion86> A Word8, I have 4 floats which I need to convert to a `V4 Word8`. This is because I use two libraries which both have their own `Color` data type.
2021-10-02 15:23:04 +0000 <geekosaur> that's going to be more than just a simple conversion
2021-10-02 15:23:28 +0000 <geekosaur> the Word8s will be 0-255, the Floats could be 0-1 or some other representation
2021-10-02 15:24:55 +0000 <fusion86> The floats are 0-1, so I started with doing `r * 255` but at that point it still is a float. I pretty much just want to ignore the decimals (or round, but that doesn't matter in the grand scale of things) and get a Word8.
2021-10-02 15:26:30 +0000 <geekosaur> :t floor
2021-10-02 15:26:31 +0000 <lambdabot> (RealFrac a, Integral b) => a -> b
2021-10-02 15:26:46 +0000justsomeguy(~justsomeg@user/justsomeguy)
2021-10-02 15:27:13 +0000 <justsomeguy> Is it possible to create a datatype that for only the characters 'a'..'z'?
2021-10-02 15:27:28 +0000 <geekosaur> not with some evil type level horkery
2021-10-02 15:27:37 +0000Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2021-10-02 15:27:39 +0000 <geekosaur> haskell doesn't really support subtyping
2021-10-02 15:27:41 +0000 <hpc> or a newtype wrapper where you control the api
2021-10-02 15:28:16 +0000 <hpc> or if you like typing, data Letter = A | B | C | ...
2021-10-02 15:30:01 +0000alx741(~alx741@186.178.109.221)
2021-10-02 15:31:08 +0000 <dsal> justsomeguy: you can approximate it with a type that allows for all characters, but doesn't export a constructor and has a smart constructor that only allows a subset. And maybe pattern synonyms or something.
2021-10-02 15:32:08 +0000machinedgod(~machinedg@24.105.81.50) (Quit: Lost terminal)
2021-10-02 15:32:08 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 15:32:31 +0000 <fusion86> Neat, `floor` is the function I was looking for. Thanks :)
2021-10-02 15:32:37 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-10-02 15:33:20 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 15:34:32 +0000 <geekosaur> hm, also I think you want * 256, into a larger type than Word8, then subtract 1 if the result is 256. but then I'd suspect 0-1 actually never returns 1
2021-10-02 15:38:07 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 15:38:29 +0000CannabisIndica(~herb@user/mesaboogie) (Ping timeout: 264 seconds)
2021-10-02 15:38:48 +0000machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2021-10-02 15:39:59 +0000 <monochrom> > round (0.99 * 255) :: Word8
2021-10-02 15:40:00 +0000 <lambdabot> 252
2021-10-02 15:40:37 +0000 <geekosaur> right, I'm thinking you lose a little dynamic range with * 255
2021-10-02 15:40:54 +0000 <monochrom> > round (0.9999 * 255) :: Word8
2021-10-02 15:40:55 +0000 <lambdabot> 255
2021-10-02 15:41:04 +0000 <geekosaur> it's the safer and easier option though
2021-10-02 15:41:08 +0000 <monochrom> > floor (0.9999 * 256) :: Word8
2021-10-02 15:41:09 +0000 <lambdabot> 255
2021-10-02 15:41:47 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 15:41:50 +0000 <monochrom> "0.9999 * 25[5,6]" is already done in a larger type :)
2021-10-02 15:42:35 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 265 seconds)
2021-10-02 15:46:42 +0000Ranhir(~Ranhir@157.97.53.139)
2021-10-02 15:47:44 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de)
2021-10-02 15:47:46 +0000acidjnk_new(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de)
2021-10-02 15:50:17 +0000raym(~raym@user/raym) (Ping timeout: 252 seconds)
2021-10-02 15:53:15 +0000 <tomsmeding> > 1.0 * 256
2021-10-02 15:53:16 +0000 <lambdabot> 256.0
2021-10-02 15:53:30 +0000 <tomsmeding> > floor (1.0 * 256) :: Word8
2021-10-02 15:53:31 +0000 <lambdabot> 0
2021-10-02 15:53:40 +0000xiongxin(~quassel@113.116.33.66) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-02 15:53:58 +0000 <hpc> > floor (1.0 * 255) :: Word8
2021-10-02 15:54:00 +0000 <lambdabot> 255
2021-10-02 15:54:24 +0000 <tomsmeding> Yeah probably better to *255
2021-10-02 15:54:51 +0000 <fusion86> The library from where I am converting the color uses `int / 255` which is why I went with that.
2021-10-02 15:55:09 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-02 15:55:16 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 15:55:24 +0000 <tomsmeding> Sounds good
2021-10-02 15:55:51 +0000raym(~raym@user/raym)
2021-10-02 15:56:20 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-10-02 15:57:29 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-02 15:58:02 +0000 <fusion86> I have a function which translates/converts from 1 coordinate system to another, it internally uses `gameWidth / 2` every time the function is called. I assume that this division is calculated every time the function is called. gameWidth is a constant though, so is it possible to also make the result a constant somewhere? Pretty much a `constexpr` from c++, does something like that exist?
2021-10-02 15:58:19 +0000 <fusion86> A single division wont actually slow my program, but it's the principle
2021-10-02 15:59:47 +0000 <monochrom> If you have a "foo = gameWidth/2" in a suitable scope, the compiler is forced to reuse it.
2021-10-02 16:00:07 +0000 <monochrom> If you don't, the optimizer may still do it for you, or maybe not, it depends.
2021-10-02 16:00:09 +0000erinvanderveen[4(~erinvande@2001:470:69fc:105::e8f3) (Quit: You have been kicked for being idle)
2021-10-02 16:00:32 +0000harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Quit: Leaving)
2021-10-02 16:00:46 +0000 <monochrom> In both cases, don't assume.
2021-10-02 16:01:25 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-02 16:01:49 +0000 <monochrom> These days, people don't even have a good idea what C and C++ optimizers do. (They just use Dunning-Kruger to congratulate themselves that they think they do.) So nevermind the even less familiar GHC.
2021-10-02 16:03:07 +0000fizzsegfaultbuzz(~segfaultf@135-180-0-138.static.sonic.net)
2021-10-02 16:03:09 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 16:03:10 +0000 <fusion86> Hm, I guess I'll just not worry about that then, because in the end a single division wont actually be noticeable (even if run 10 times a second)
2021-10-02 16:03:13 +0000 <nitrix> I agree with monochrom, profile if it's important. I will say though, there a big chance it does gets optimized, that's a fairly trivial reduction for SSA (which GHC has).
2021-10-02 16:04:10 +0000 <monochrom> Even 30 years ago, if you look at a C loop (or Fortran for that matter) like "for (i = 0; i < n; i++) { ... a[i] ... }" and think "a + i*sizeof(whatever)" has an expensive multiplication and you "need" to hand-optimize that to manual pointer games,...
2021-10-02 16:04:25 +0000 <monochrom> NO, the C optimizer already does that for you.
2021-10-02 16:05:04 +0000justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2021-10-02 16:05:20 +0000 <monochrom> Even 30 years ago, when people continued to perpetuate the fantasy that recursion always takes up stack space...
2021-10-02 16:05:29 +0000 <monochrom> NO, gcc already does TCO for you.
2021-10-02 16:06:38 +0000 <monochrom> If you have neither read compiler-generated asm code or taken a course on code optimization...
2021-10-02 16:06:43 +0000 <monochrom> Assume that you're wrong.
2021-10-02 16:07:09 +0000 <hpc> and if you have, you're probably still wrong
2021-10-02 16:07:27 +0000 <monochrom> And I haven't even touched the toggling story of cache locality.
2021-10-02 16:07:30 +0000 <hpc> citation: optimization of UB
2021-10-02 16:07:51 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2021-10-02 16:08:33 +0000 <monochrom> Yeah, if you think, like I did, that "n = 1; c = 0; while (n != 0) { n *= 2; c++}" helps me count how many bits the machine word has...
2021-10-02 16:08:55 +0000MQ-17J(~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds)
2021-10-02 16:08:57 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2021-10-02 16:09:01 +0000 <monochrom> gcc -O2 optimizes that to "mylabel : jmp mylabel"
2021-10-02 16:10:09 +0000 <monochrom> What's funny is that -O1 goes only so far as "increment c 32 times" or something.
2021-10-02 16:10:23 +0000 <int-e> should've used unsigned int
2021-10-02 16:10:29 +0000 <monochrom> I did.
2021-10-02 16:10:30 +0000 <nitrix> fusion86, I would be more careful about memory reads or writes. On a cache miss, just one of those can completely outweight one order, sometimes two orders, the amount of multiplications. Skeletal animation for example has a lot of matrix multiplication and it's much faster to just recompute them each frame than fetching from memory the precomputed result (if they change often enough, like every frame, but not often enough to remain in cache).
2021-10-02 16:10:52 +0000 <nitrix> fusion86, Game development is fun like that. I've never done it in Haskell so I'm sure that'll have its own set of surprises.
2021-10-02 16:11:33 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 16:11:33 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 16:11:33 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 16:11:45 +0000 <int-e> monochrom: you didn't
2021-10-02 16:12:33 +0000Null_A(~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b)
2021-10-02 16:12:41 +0000 <geekosaur> isn't this the one you pasted the C source and resulting asm from some years ago?
2021-10-02 16:12:48 +0000 <monochrom> Yes.
2021-10-02 16:12:58 +0000 <int-e> monochrom: with `int` it's undefined behavior; `unsigned int` is specified to work modulo 2^w where w is the bit size of the int.
2021-10-02 16:13:11 +0000CnnibisIndica(~herb@user/mesaboogie)
2021-10-02 16:13:55 +0000 <int-e> > 2^30 * 2 :: Int
2021-10-02 16:13:56 +0000 <lambdabot> 2147483648
2021-10-02 16:14:02 +0000 <int-e> > 2^62 * 2 :: Int
2021-10-02 16:14:03 +0000 <lambdabot> -9223372036854775808
2021-10-02 16:14:29 +0000 <monochrom> I mean C.
2021-10-02 16:16:01 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 16:16:15 +0000 <fusion86> The game framework we need to use is pretty high level (Gloss) so I assume that most performance is lost there. I also hacked sdl2_ttf into the project to render some neat text, so that's probably also a large performance hit (though I didn't test)
2021-10-02 16:16:30 +0000 <int-e> monochrom: I guess you may have triggered a compiler bug at some point but... I'm not aware of gcc ever getting this particular case wrong.
2021-10-02 16:18:20 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 16:22:53 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 264 seconds)
2021-10-02 16:25:16 +0000dajoer(~david@user/gvx) (Quit: leaving)
2021-10-02 16:25:28 +0000q_implies_not_q(~p_implies@host-46-33.ilcujsm.champaign.il.us.clients.pavlovmedia.net)
2021-10-02 16:26:06 +0000bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-10-02 16:30:09 +0000CnnibisIndicaCannabisIndica
2021-10-02 16:32:47 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-10-02 16:33:11 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 16:37:31 +0000q_implies_not_q(~p_implies@host-46-33.ilcujsm.champaign.il.us.clients.pavlovmedia.net) (Quit: Leaving)
2021-10-02 16:38:52 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-10-02 16:41:23 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-10-02 16:41:59 +0000cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-10-02 16:43:05 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-10-02 16:43:56 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-10-02 16:44:08 +0000ubert(~Thunderbi@178.115.76.58.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-02 16:44:52 +0000ubert(~Thunderbi@178.115.76.58.wireless.dyn.drei.com)
2021-10-02 16:49:10 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 16:53:14 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 16:55:54 +0000snekism(~user@88.160.31.174) (Remote host closed the connection)
2021-10-02 16:56:23 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 16:56:23 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 16:56:23 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 16:56:24 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-10-02 16:57:00 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 16:59:10 +0000TDANG_(~TDANG@216.63.184.7)
2021-10-02 16:59:16 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-10-02 17:02:20 +0000TDANG(~TDANG@inet-177-7.ets.org) (Ping timeout: 252 seconds)
2021-10-02 17:03:23 +0000fusion86(~fusion@2a02-a44c-e6e5-1-1753-33de-9d65-536a.fixed6.kpn.net) (Remote host closed the connection)
2021-10-02 17:03:55 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-10-02 17:06:11 +0000econo(uid147250@user/econo)
2021-10-02 17:06:21 +0000jaitoon(~Jaitoon@2a02:c7f:a5f:1d00:3434:15c8:b68c:cba1)
2021-10-02 17:09:22 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 17:11:52 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-10-02 17:12:54 +0000cheater(~Username@user/cheater)
2021-10-02 17:19:11 +0000chisui(~chisui@200116b868bc9f00884a12b19ab3b2f3.dip.versatel-1u1.de)
2021-10-02 17:19:17 +0000 <awpr> a few weeks ago we were looking into a case of a Gloss program being pretty slow, and it turned out it uses the legacy OpenGL API that calls into OpenGL once for every vertex, and pushes/pops the geometry transform matrix stack for every translation. it might just have a performance ceiling when there's a lot of geometry
2021-10-02 17:20:51 +0000 <Hecate> damn
2021-10-02 17:27:47 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 17:28:49 +0000__monty__(~toonn@user/toonn)
2021-10-02 17:29:50 +0000Pacra(~Pacra@pool-100-11-34-209.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
2021-10-02 17:32:08 +0000hueso(~root@user/hueso)
2021-10-02 17:36:19 +0000Zer000(~phil@64.137.132.26)
2021-10-02 17:36:37 +0000 <maerwald> awpr: ah the thing with a max stack of 30 or so?
2021-10-02 17:38:09 +0000 <awpr> hmm, I never thought about there being a limit, but I guess that makes sense. in this case the problem was more that it was expensive to do a separate matrix multiply and GL FFI call for basically every polygon
2021-10-02 17:44:49 +0000 <awpr> oh, fusion86 already left anyway. I'm just responding into the void :/
2021-10-02 17:49:11 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 17:49:22 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-10-02 17:49:56 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2021-10-02 17:52:21 +0000charukiewicz(~quassel@108.210.196.136) (Quit: No Ping reply in 180 seconds.)
2021-10-02 17:53:22 +0000ss4(~wootehfoo@user/wootehfoot)
2021-10-02 17:53:49 +0000charukiewicz(~quassel@108.210.196.136)
2021-10-02 17:53:50 +0000kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net)
2021-10-02 17:54:20 +0000hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-10-02 17:54:59 +0000hendursaga(~weechat@user/hendursaga)
2021-10-02 17:55:53 +0000kimjetwav(~user@2607:fea8:235f:9730:49e1:79a9:994b:782d) (Remote host closed the connection)
2021-10-02 17:56:10 +0000kimjetwav(~user@2607:fea8:235f:9730:48ad:b7dd:9c1e:6d8d)
2021-10-02 17:56:40 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2021-10-02 17:58:11 +0000mekeor[m](~mekeormat@2001:470:69fc:105::17e4)
2021-10-02 17:59:53 +0000 <mekeor[m]> is there a package on hackage which provides a function f of type `String -> String` which evaluates arithmetic expressions? e.g. `f "1+2"` would equal `"3"`.
2021-10-02 18:00:06 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 18:00:18 +0000 <geekosaur> hint? mueval?
2021-10-02 18:00:49 +0000 <geekosaur> (mueval is based on hint but provides protections, for example it accepts arbitrary Haskell expressions but disallows IO)
2021-10-02 18:01:19 +0000myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Quit: Leaving)
2021-10-02 18:01:22 +0000kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
2021-10-02 18:02:14 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2021-10-02 18:02:32 +0000 <geekosaur> I don't know of one limited to arithmetic evaluations, but those are kinda uninteresting anyway: at minimum you often want simple functions
2021-10-02 18:03:11 +0000 <geekosaur> and that gets you into how you best structure them for your needs since there's several possible ways to do it, each with its own shortcomings
2021-10-02 18:03:13 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 18:03:27 +0000max22-(~maxime@2a01cb08833598003de9b0144dce98c8.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-10-02 18:06:08 +0000 <mekeor[m]> well, i actually really just want an arithmetic calculator. but thanks anyway
2021-10-02 18:07:09 +0000kayvank(~user@52-119-115-185.public.monkeybrains.net)
2021-10-02 18:07:36 +0000kayvank(~user@52-119-115-185.public.monkeybrains.net) (Client Quit)
2021-10-02 18:09:00 +0000__monty__(~toonn@user/toonn)
2021-10-02 18:10:14 +0000 <monochrom> Hutton's Haskell textbook has an arithmetic calculator.
2021-10-02 18:10:19 +0000 <mekeor[m]> i once wrote such a package myself, but it does not support paranthesis x)
2021-10-02 18:10:58 +0000 <monochrom> Since it is known upfront that there are only like 5 operations, it can easily be represented as vanilla data.
2021-10-02 18:11:43 +0000wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
2021-10-02 18:11:43 +0000wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
2021-10-02 18:11:43 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 18:17:26 +0000 <mekeor[m]> monochrom: you mean, i could check if the input-string matches the regex [0-9\.+-*/^] before i pass it to "hint"?
2021-10-02 18:18:17 +0000 <monochrom> No, Hutton's book doesn't use hint.
2021-10-02 18:18:18 +0000 <geekosaur> no, I think he's saying you avoid the problems I mentioned with writing your own if you're not supporting bindings, functions, etc.
2021-10-02 18:18:41 +0000 <monochrom> It doesn't use regexes either.
2021-10-02 18:23:15 +0000Lycurgus(~juan@98.4.112.204)
2021-10-02 18:24:40 +0000 <[exa]> mekeor[m]: calculators are kinda 5-line exercise in megaparsec, I guess if you google megaparsec tutorials you'll find one
2021-10-02 18:27:20 +0000snekism(~user@88.160.31.174)
2021-10-02 18:32:00 +0000aegon(~mike@174.127.249.180)
2021-10-02 18:34:37 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-10-02 18:38:38 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-10-02 18:39:02 +0000max22-(~maxime@2a01cb0883359800842b86a07baa5676.ipv6.abo.wanadoo.fr)
2021-10-02 18:46:52 +0000Sgeo(~Sgeo@user/sgeo)
2021-10-02 18:50:41 +0000nfd(~nfd@user/nfd) (Ping timeout: 252 seconds)
2021-10-02 18:53:47 +0000max22-(~maxime@2a01cb0883359800842b86a07baa5676.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-10-02 18:58:22 +0000 <aegon> i'm looking for a good matrix library in haskell for standard glm type functionality, I found hmatrix but it doesn't have a notion of quaternions which I have to interact with quite a lot and writing a quaternion to matrix function is not trivial. is there a composable library with this that provides those things or does anyone know of a different matrix lib in haskell that fits the bill better for
2021-10-02 18:58:28 +0000 <aegon> geometric operations
2021-10-02 18:59:51 +0000 <aegon> oh linear might be better
2021-10-02 19:00:27 +0000justsomeguy(~justsomeg@user/justsomeguy)
2021-10-02 19:00:30 +0000 <Lycurgus> quaternions are their own thing, there's several hs pkgs iirc
2021-10-02 19:01:05 +0000 <aegon> well, they are hteir own things but going from linear to rotation matrix is a normal operation in my domain
2021-10-02 19:01:08 +0000 <aegon> and vice versa
2021-10-02 19:01:08 +0000 <Lycurgus> usually filed under classical nick nacks
2021-10-02 19:01:28 +0000 <aegon> s/linear/quaternion/g
2021-10-02 19:02:10 +0000 <Lycurgus> math bric a brac
2021-10-02 19:02:13 +0000terrorjack(~terrorjac@static.3.200.12.49.clients.your-server.de)
2021-10-02 19:02:27 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 19:02:57 +0000 <aegon> maybe theres a quaternion library that gives me a list of lists that is the rotation matrix equivalent
2021-10-02 19:04:13 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-02 19:04:31 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-02 19:04:48 +0000Null_A(~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) (Remote host closed the connection)
2021-10-02 19:05:10 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-10-02 19:07:09 +0000 <aegon> linear / linear-accelerate seem to have all the bells and whistles needed
2021-10-02 19:10:09 +0000ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2021-10-02 19:10:26 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2021-10-02 19:21:00 +0000Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-10-02 19:22:42 +0000Lorra(~lorenzo@2001:a61:be4:201:2c70:ff42:b0f:e800)
2021-10-02 19:28:53 +0000shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-10-02 19:30:58 +0000shriekingnoise(~shrieking@186.137.144.80)
2021-10-02 19:32:32 +0000Lorra(~lorenzo@2001:a61:be4:201:2c70:ff42:b0f:e800) (Quit: Konversation terminated!)
2021-10-02 19:37:25 +0000yinghua(~yinghua@181.228.40.183)
2021-10-02 19:38:27 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-10-02 19:39:42 +0000gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-02 19:39:57 +0000tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-10-02 19:40:31 +0000gehmehgeh(~user@user/gehmehgeh)
2021-10-02 19:45:36 +0000fendor(~fendor@91.141.55.34.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-02 19:48:29 +0000fendor(~fendor@91.141.55.34.wireless.dyn.drei.com)
2021-10-02 19:48:30 +0000fendor_(~fendor@91.141.55.34.wireless.dyn.drei.com)
2021-10-02 19:48:31 +0000fendor__(~fendor@91.141.55.34.wireless.dyn.drei.com)
2021-10-02 19:57:03 +0000fendor__(~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving)
2021-10-02 19:57:06 +0000fendor_(~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving)
2021-10-02 19:57:13 +0000fendor(~fendor@91.141.55.34.wireless.dyn.drei.com) (Quit: Leaving)
2021-10-02 19:58:01 +0000snekism`(~user@88.160.31.174)
2021-10-02 19:59:55 +0000snekism(~user@88.160.31.174) (Ping timeout: 252 seconds)
2021-10-02 20:04:52 +0000azeem(~azeem@2a00:801:428:f4e3:face:8eed:b26f:ce9c) (Ping timeout: 252 seconds)
2021-10-02 20:04:56 +0000juhp(~juhp@128.106.188.220) (Ping timeout: 252 seconds)
2021-10-02 20:05:49 +0000 <hololeap> what ever happened to ski?
2021-10-02 20:08:31 +0000juhp(~juhp@128.106.188.220)
2021-10-02 20:08:40 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 20:12:33 +0000norskal(~norskal@101.175.64.73) (Quit: Ping timeout (120 seconds))
2021-10-02 20:13:00 +0000 <hpc> he got simplified to sk
2021-10-02 20:15:42 +0000_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-10-02 20:18:01 +0000mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-10-02 20:19:51 +0000fr33domlover1fr33domlover
2021-10-02 20:20:21 +0000justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-10-02 20:29:32 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 20:34:59 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 20:35:26 +0000rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
2021-10-02 20:45:11 +0000rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
2021-10-02 20:54:26 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 246 seconds)
2021-10-02 20:55:01 +0000 <zwro[m]> what do we call it when we do `a <- someMonad`?
2021-10-02 20:55:07 +0000 <zwro[m]> "unbinding"?
2021-10-02 20:55:57 +0000 <[exa]> "binding" actually
2021-10-02 20:56:13 +0000 <Hecate> zwro[m]: nothing more than binding :)
2021-10-02 20:56:21 +0000 <Hecate> https://en.wikibooks.org/wiki/Haskell/do_notation
2021-10-02 20:57:16 +0000 <zwro[m]> ok makes sense
2021-10-02 20:58:01 +0000 <zwro[m]> my intuition was that the real binding happens in the next line
2021-10-02 20:58:11 +0000 <[exa]> in certain cases you might say it's a bit like "unwrapping", but with many monads that's misleading
2021-10-02 20:58:37 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org) (Remote host closed the connection)
2021-10-02 20:59:11 +0000 <zwro[m]> yeah. i was considering "lifting" and gave up on it for the same reason
2021-10-02 20:59:12 +0000 <[exa]> it gets rewritten to something like `... someMonad >>= \a -> ...nextline...`, so yeah, technically `a` is bound for the next line
2021-10-02 21:00:12 +0000 <[exa]> (name "lifting" is usually reserved for the other direction, making a function work through some extra semantics)
2021-10-02 21:01:13 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-10-02 21:01:53 +0000eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-10-02 21:02:03 +0000 <zwro[m]> yeah... words are confusing
2021-10-02 21:02:13 +0000 <[exa]> (like, `map f` is the function `f` lifted to work on lists, and the actual name can be seen e.g. in `liftA2`)
2021-10-02 21:03:24 +0000ubert(~Thunderbi@178.115.76.58.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-02 21:03:49 +0000 <zwro[m]> liftA2 f a b = f <$> a <*> , right?
2021-10-02 21:04:03 +0000 <zwro[m]> ^ missed the b at the end
2021-10-02 21:04:04 +0000 <[exa]> yes that should work
2021-10-02 21:04:21 +0000 <awpr> the funnest part of all this is that "map" seems to have come from the definition of a functor "... along with a map of morphisms in C to morphisms in D", in which context it just means "a function"
2021-10-02 21:04:56 +0000 <zwro[m]> well, functions are maps
2021-10-02 21:05:37 +0000 <awpr> right, it was used as a totally generic term and then accidentally acquired a very specific meaning by being used as the name of a class method
2021-10-02 21:05:54 +0000 <awpr> if that's actually how the etymology happened, anyway
2021-10-02 21:06:11 +0000 <zwro[m]> and now we even have fmap
2021-10-02 21:06:35 +0000 <zwro[m]> words...
2021-10-02 21:06:43 +0000 <[exa]> mapmap from now on
2021-10-02 21:07:05 +0000 <zwro[m]> aha fair. that's why i like lambda calculos. names are irrelevant
2021-10-02 21:07:24 +0000 <zwro[m]> what's in a name? said the bard
2021-10-02 21:07:33 +0000 <awpr> if we started using lambda calculus for large scale software development, names would instantly become relevant
2021-10-02 21:07:36 +0000Lycurgus(~juan@98.4.112.204)
2021-10-02 21:08:21 +0000 <awpr> `Endo`, `Endo`, wherefore art thou `Endo`?
2021-10-02 21:08:55 +0000 <[exa]> needs starwars memes with endor
2021-10-02 21:09:19 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 21:11:34 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org)
2021-10-02 21:12:05 +0000 <zwro[m]> let a = Nothing:a in a
2021-10-02 21:12:57 +0000 <zwro[m]> ^ in the Merchant of Venice, this is an insult
2021-10-02 21:13:39 +0000zebrag(~chris@user/zebrag)
2021-10-02 21:13:45 +0000kimjetwav(~user@2607:fea8:235f:9730:48ad:b7dd:9c1e:6d8d) (Remote host closed the connection)
2021-10-02 21:14:46 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 250 seconds)
2021-10-02 21:15:55 +0000unmanbearpig(~unmanbear@user/unmanbearpig) (Ping timeout: 252 seconds)
2021-10-02 21:16:26 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-10-02 21:16:52 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-10-02 21:17:21 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-02 21:17:37 +0000zero(~yin@user/zero) ()
2021-10-02 21:17:46 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-10-02 21:18:18 +0000zzz(~yin@user/zero)
2021-10-02 21:18:23 +0000Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-10-02 21:20:23 +0000jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-10-02 21:21:45 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 21:27:44 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org) (Remote host closed the connection)
2021-10-02 21:31:32 +0000Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-10-02 21:35:46 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2021-10-02 21:35:50 +0000Guest80(~Guest80@186.122.61.47) (Quit: Connection closed)
2021-10-02 21:36:03 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-02 21:39:07 +0000unmanbearpig(~unmanbear@user/unmanbearpig)
2021-10-02 21:43:49 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-10-02 21:44:06 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1)
2021-10-02 21:44:21 +0000acidjnk_new3(~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de)
2021-10-02 21:47:28 +0000 <zzz> "You speak an infinite deal of nothing!"
2021-10-02 21:48:05 +0000acidjnk_new(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2021-10-02 21:48:05 +0000acidjnk(~acidjnk@p200300d0c703cb481ce6ffa2a003826c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2021-10-02 21:48:23 +0000acidjnk(~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de)
2021-10-02 21:51:40 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 21:55:40 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 21:58:46 +0000machinedgod(~machinedg@24.105.81.50)
2021-10-02 22:00:08 +0000ByronJohnson(~bairyn@mail.digitalkingdom.org)
2021-10-02 22:00:10 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-10-02 22:03:51 +0000jinsun(~quassel@user/jinsun)
2021-10-02 22:14:52 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-10-02 22:15:03 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2021-10-02 22:15:13 +0000vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-10-02 22:28:47 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-02 22:28:47 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-02 22:28:47 +0000wroathe(~wroathe@user/wroathe)
2021-10-02 22:29:08 +0000max22-(~maxime@2a01cb0883359800513140971d4ae4c5.ipv6.abo.wanadoo.fr)
2021-10-02 22:37:49 +0000slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-10-02 22:39:14 +0000 <awpr> `lens` speaks poniards, and every term `s t a b`s
2021-10-02 22:58:35 +0000Techcable(~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in)
2021-10-02 22:59:09 +0000Techcable(~Techcable@168.235.93.147)
2021-10-02 23:00:38 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-10-02 23:01:48 +0000norskal(~norskal@101.175.64.73)
2021-10-02 23:04:00 +0000 <aegon> [exa]: that description of lifting is great
2021-10-02 23:05:37 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-02 23:06:29 +0000geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2021-10-02 23:09:20 +0000slowButPresent(~slowButPr@user/slowbutpresent)
2021-10-02 23:10:13 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-10-02 23:10:50 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 23:14:25 +0000harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26)
2021-10-02 23:15:40 +0000acidjnk_new3(~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-10-02 23:15:46 +0000acidjnk(~acidjnk@p200300d0c703cb484c7d47010f4c2dbe.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-10-02 23:17:34 +0000hyiltiz(~quassel@31.220.5.250)
2021-10-02 23:17:39 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
2021-10-02 23:18:19 +0000harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Remote host closed the connection)
2021-10-02 23:20:37 +0000jokleinn(~jokleinn@user/jokleinn)
2021-10-02 23:22:23 +0000TranquilEcho(~grom@user/tranquilecho)
2021-10-02 23:22:24 +0000max22-(~maxime@2a01cb0883359800513140971d4ae4c5.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-10-02 23:28:14 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2021-10-02 23:34:25 +0000hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-02 23:40:01 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-02 23:50:23 +0000Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-10-02 23:51:37 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection)
2021-10-02 23:52:09 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-02 23:54:34 +0000thyriaen(~thyriaen@x4db7dca5.dyn.telefonica.de)