2022/06/11

2022-06-11 00:00:16 +0200mimmy(~mimmy@S0106f81d0f5b3c63.vs.shawcable.net) (Ping timeout: 246 seconds)
2022-06-11 00:06:17 +0200 <hololeap> type family Wear t f a where; Wear Bare f a = a; Wear Covered f a = f a
2022-06-11 00:06:28 +0200 <hololeap> from Barbies.Bare
2022-06-11 00:06:47 +0200 <hololeap> anyway, it's the only place I've seen it standardized into a library like that
2022-06-11 00:06:59 +0200 <hololeap> although beam uses it quite a bit
2022-06-11 00:07:09 +0200 <hololeap> they just rolled their own
2022-06-11 00:09:53 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 00:11:15 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-11 00:11:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-11 00:16:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-06-11 00:16:56 +0200acidjnk_new(~acidjnk@p200300d0c7068b7704a00ff9b0caad64.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-06-11 00:17:49 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 258 seconds)
2022-06-11 00:18:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 00:18:56 +0200 <Bulby[m]> i see there are llvm libs but none of them seem actively maintained
2022-06-11 00:20:37 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 00:23:48 +0200 <hololeap> don't you just pass -fllvm to ghc?
2022-06-11 00:23:50 +0200 <hololeap> https://downloads.haskell.org/~ghc/9.0.2/docs/html/users_guide/codegens.html#llvm-code-generator-f…
2022-06-11 00:25:30 +0200 <Bulby[m]> i mean like libs for writing compilers in haskell
2022-06-11 00:25:49 +0200 <Bulby[m]> i was curious as I saw in it a search result for liftM
2022-06-11 00:27:04 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
2022-06-11 00:29:16 +0200 <edwardk> Bulby[m]: i tend to just use hsc2hs and inline-c-cpp and roll what i need as i need it
2022-06-11 00:29:25 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 00:29:26 +0200 <hololeap> in regards to Pointed/Apply and Applicative. I don't see much value in Pointed, but I do see a lot of value in inserting Apply into the Monad typeclass hierarchy, e.g. Functor -> Apply -> Applicative -> Monad
2022-06-11 00:30:41 +0200 <edwardk> hololeap: Pointed mostly becomes useful as a member of the hierarchy if you want to allow for lenses-that-might-fail-but-never-give-back-more-than-one-thing. so "AffineTraversals" want Pointed functors.
2022-06-11 00:31:17 +0200 <edwardk> but if you're adding Apply/Semiapplicative, give me Bind/Semimonad as well
2022-06-11 00:31:44 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 00:31:49 +0200 <Bulby[m]> btw, is there a language that handles law classes well
2022-06-11 00:31:56 +0200 <edwardk> no
2022-06-11 00:31:57 +0200 <hololeap> yeah, fair 'nuff
2022-06-11 00:32:23 +0200 <edwardk> jacques carette at one point had a nice type theory for it, but it was weird and classical
2022-06-11 00:32:26 +0200 <hpc> "monad" already means one, so "semimonad" is a pretty silly-looking word
2022-06-11 00:33:17 +0200 <hololeap> SemigroupoidInCategoryOfEndomorphisms?
2022-06-11 00:33:28 +0200 <hpc> what kind of things have (<*>) but not pure?
2022-06-11 00:33:35 +0200 <hololeap> Map
2022-06-11 00:33:47 +0200 <edwardk> lots of comonads
2022-06-11 00:34:09 +0200 <hpc> ah, that makes sense
2022-06-11 00:34:13 +0200 <edwardk> Map k is my usual example as well
2022-06-11 00:34:35 +0200 <Bulby[m]> why would a map not have pure
2022-06-11 00:34:42 +0200 <edwardk> pure x = ???
2022-06-11 00:34:56 +0200 <edwardk> what keys do you put in the map?
2022-06-11 00:35:00 +0200 <Bulby[m]> M.singleton ?
2022-06-11 00:35:09 +0200 <Bulby[m]> oh
2022-06-11 00:35:11 +0200 <edwardk> you need a key and a value. what key gets set
2022-06-11 00:35:20 +0200 <geekosaur> singleton doesn't help you conjure up a key
2022-06-11 00:35:24 +0200 <edwardk> the (<*>) is zippy
2022-06-11 00:35:36 +0200 <edwardk> it matches like keys up and applies the operation to the values in them
2022-06-11 00:35:40 +0200 <Bulby[m]> and `k` is polymorphic
2022-06-11 00:35:46 +0200 <hpc> yeah, i can see (<*>) being really useful with Map
2022-06-11 00:35:48 +0200 <edwardk> but there's no 'everything not named gets this value'
2022-06-11 00:36:21 +0200 <hpc> i am always annoyed in other languages when i have to write loop after loop to make tiny adjustments to some json-ish structure
2022-06-11 00:36:23 +0200 <edwardk> and Map is for finite maps of things, so i probably can't enumerate all possible values of k like i can to make ZipList work
2022-06-11 00:36:37 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-11 00:36:54 +0200 <edwardk> hpc: that instance is why i wrote the old semigroupoids package
2022-06-11 00:37:11 +0200 <Bulby[m]> oh it's you \o/
2022-06-11 00:37:23 +0200 <edwardk> similarly you can >>= for Map, but can't return.
2022-06-11 00:37:30 +0200edwardkwaves
2022-06-11 00:38:11 +0200 <hololeap> I ran into a data type where it naturally has two constructors, and neither of them really make sense as the default, so Apply was much more natural than adding an extra "default" constructor, just to satisfy Applicative laws
2022-06-11 00:38:48 +0200 <edwardk> for every (key,value) in the map generate a fresh map using the user supplied function from the value, then just take the matching key and look it up in the generated map, stitching all those answers into a new map. dropping the entry if it isn't present
2022-06-11 00:40:35 +0200 <hpc> and some way of picking which value to keep if there's more than one
2022-06-11 00:41:01 +0200 <hpc> like (>>= \value -> singleton "some constant" value)
2022-06-11 00:42:03 +0200 <hpc> actually, hmm
2022-06-11 00:42:14 +0200 <hpc> would you use (>>=) for semimonad or would you use join?
2022-06-11 00:42:26 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-06-11 00:42:44 +0200 <hololeap> you can define it using either one
2022-06-11 00:42:51 +0200finsternis(~X@23.226.237.192)
2022-06-11 00:42:56 +0200 <edwardk> hpc: i used (>>-)
2022-06-11 00:43:04 +0200 <hpc> not quite, unless i am mistaken
2022-06-11 00:43:18 +0200 <hpc> you can recover (>>=) from join/fmap but not vice-versa
2022-06-11 00:43:22 +0200 <edwardk> i'm less bullish on join as a member of Monad or whatever due to how badly it interoperates with GND
2022-06-11 00:44:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 00:44:10 +0200 <hpc> oh, i am mistaken
2022-06-11 00:44:12 +0200 <hololeap> join = (>>= id)
2022-06-11 00:44:15 +0200 <hpc> yeah
2022-06-11 00:44:17 +0200 <Bulby[m]> what is GND
2022-06-11 00:44:22 +0200 <hpc> somehow i managed to think join = (>>= pure)
2022-06-11 00:44:22 +0200 <edwardk> generalized newtype deriving
2022-06-11 00:44:24 +0200 <jackdk> GeneralisedNewtypeDeriving
2022-06-11 00:44:25 +0200 <jackdk> snap
2022-06-11 00:44:27 +0200 <hpc> but that's id lol
2022-06-11 00:44:34 +0200 <Bulby[m]> oh
2022-06-11 00:45:00 +0200 <Bulby[m]> fancy id
2022-06-11 00:45:22 +0200 <hpc> the nice thing about type class laws is there's lots of ways to define fancy id
2022-06-11 00:46:09 +0200 <edwardk> lens has a dozen combinators implemented as 'id'
2022-06-11 00:46:17 +0200 <edwardk> at least a dozen
2022-06-11 00:46:57 +0200 <hpc> at one point i considered making an acme package that was all just useful functions that are implemented as unsafeCoerce
2022-06-11 00:47:02 +0200 <Bulby[m]> haha
2022-06-11 00:47:38 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-06-11 00:47:48 +0200 <hpc> isJust = unsafeCoerce -- for example
2022-06-11 00:47:59 +0200 <Bulby[m]> what
2022-06-11 00:48:09 +0200 <hpc> Just and True have the same constructor index
2022-06-11 00:48:14 +0200 <hpc> ditto for Nothing and False
2022-06-11 00:48:15 +0200 <geekosaur> it makes sense if you know how constructor tags work
2022-06-11 00:48:20 +0200 <Bulby[m]> 🤣
2022-06-11 00:48:40 +0200 <geekosaur> @quote unsafeCoerce.*unsafeCoerce
2022-06-11 00:48:40 +0200 <lambdabot> monochrom says: isTrue = (unsafeCoerce :: Either a b -> Bool) . (unsafeCoerce :: Maybe c -> Either a b) . (unsafeCoerce :: Bool -> Maybe c)
2022-06-11 00:48:59 +0200 <c_wraith> also important there - GC information is not stored in types. It's stored in runtime tags
2022-06-11 00:49:05 +0200 <hpc> in acme-php i managed to shoehorn (isn't unsafeCoerce) into the implementation of sortBy
2022-06-11 00:49:12 +0200 <hpc> i am pretty proud of that one
2022-06-11 00:50:12 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-11 00:51:10 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 00:51:17 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds)
2022-06-11 00:51:49 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-06-11 00:54:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 258 seconds)
2022-06-11 00:54:29 +0200alp(~alp@user/alp) (Ping timeout: 255 seconds)
2022-06-11 00:55:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 00:55:50 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
2022-06-11 00:56:23 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 00:57:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 00:59:56 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-06-11 01:00:31 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-06-11 01:00:40 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:518c:c264:c8fd:1f6b) (Ping timeout: 248 seconds)
2022-06-11 01:00:47 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-06-11 01:01:49 +0200 <Bulby[m]> i can't read the docs for acme-php even
2022-06-11 01:02:44 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 01:03:16 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 01:03:31 +0200 <hpc> what kind of acme package would it be if it had documentation
2022-06-11 01:03:37 +0200 <hpc> even the generated stuff still has spoilers
2022-06-11 01:04:52 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-11 01:09:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Remote host closed the connection)
2022-06-11 01:09:12 +0200zaquest(~notzaques@5.130.79.72) (Ping timeout: 248 seconds)
2022-06-11 01:09:34 +0200zaquest(~notzaques@5.130.79.72)
2022-06-11 01:09:39 +0200alp(~alp@user/alp)
2022-06-11 01:11:49 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-06-11 01:12:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 01:13:02 +0200 <Bulby[m]> i find it hilarous that the php website with the discus has the code commented that it says to uncomment and edit
2022-06-11 01:14:13 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 01:14:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 01:14:50 +0200bilegeek(~bilegeek@2600:1008:b006:dc9e:9b3e:98b5:2da3:eff8)
2022-06-11 01:16:23 +0200 <Bulby[m]> wtf why is the website in quirks mode
2022-06-11 01:18:36 +0200 <hpc> haha, i forgot about that page
2022-06-11 01:18:51 +0200 <hpc> turns out if you put html files in the sdist, you can serve them up as regular webpages
2022-06-11 01:19:25 +0200 <Bulby[m]> "storng"
2022-06-11 01:20:01 +0200 <jackdk> hpc: https://hackage.haskell.org/package/acme-dont-1.2/docs/Acme-Dont.html
2022-06-11 01:22:12 +0200nate3(~nate@98.45.169.16)
2022-06-11 01:22:12 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 248 seconds)
2022-06-11 01:24:30 +0200 <hpc> yeah, that's a good one too
2022-06-11 01:25:41 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 01:27:30 +0200nate3(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-06-11 01:28:07 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-06-11 01:28:24 +0200 <Bulby[m]> true or false or file not found
2022-06-11 01:28:27 +0200 <Bulby[m]> amazing
2022-06-11 01:36:21 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-06-11 01:37:54 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
2022-06-11 01:38:12 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 01:38:27 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-06-11 01:42:38 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-06-11 01:47:00 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-11 01:52:53 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
2022-06-11 01:58:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 02:03:11 +0200Tuplanolla(~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Quit: Leaving.)
2022-06-11 02:03:12 +0200kaskal(~kaskal@089144205066.atnat0014.highway.webapn.at)
2022-06-11 02:03:47 +0200kaskal-(~kaskal@213-225-35-123.nat.highway.a1.net) (Ping timeout: 255 seconds)
2022-06-11 02:04:33 +0200Qudit(~user@user/Qudit) (Remote host closed the connection)
2022-06-11 02:05:12 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-06-11 02:06:57 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 02:07:17 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-11 02:08:44 +0200sagax(~sagax_nb@user/sagax) (Ping timeout: 255 seconds)
2022-06-11 02:09:49 +0200Qudit(~user@user/Qudit)
2022-06-11 02:14:17 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-06-11 02:18:11 +0200Mensan23421(~Mensan234@S01069050ca4e3573.cg.shawcable.net)
2022-06-11 02:18:22 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
2022-06-11 02:19:37 +0200Mensan23421(~Mensan234@S01069050ca4e3573.cg.shawcable.net) (Client Quit)
2022-06-11 02:19:57 +0200Mga(~Mga@S01069050ca4e3573.cg.shawcable.net)
2022-06-11 02:20:38 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 02:20:44 +0200vicfred(~vicfred@user/vicfred)
2022-06-11 02:22:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 02:25:44 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds)
2022-06-11 02:27:03 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 02:29:07 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 02:30:04 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-11 02:32:13 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 02:32:36 +0200Kaipei(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-06-11 02:32:50 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2022-06-11 02:32:55 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-06-11 02:33:26 +0200cheater(~Username@user/cheater)
2022-06-11 02:33:31 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-06-11 02:33:52 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-06-11 02:38:51 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 02:39:37 +0200stackdroid18(~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-06-11 02:40:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 02:43:47 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 02:47:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 02:47:20 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-11 02:49:33 +0200k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-06-11 02:50:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
2022-06-11 02:51:18 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-06-11 02:52:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 02:54:17 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 02:54:25 +0200 <Mga> my boyfriend is a staffer
2022-06-11 02:54:29 +0200 <Mga> and contributed of haskell
2022-06-11 02:58:53 +0200 <Mga> i enjoy running simulations
2022-06-11 02:59:07 +0200 <Mga> various inputs, etc. haha.
2022-06-11 03:01:32 +0200causal(~user@50.35.83.177)
2022-06-11 03:02:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 03:03:56 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 03:10:32 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-06-11 03:14:26 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds)
2022-06-11 03:16:39 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-06-11 03:19:20 +0200mimmy_(~mimmy@185.153.179.38) (Ping timeout: 244 seconds)
2022-06-11 03:23:21 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 258 seconds)
2022-06-11 03:24:54 +0200 <dragestil> does anyone know how to get the hls installed from ghcup have brittany support?
2022-06-11 03:25:02 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-06-11 03:25:55 +0200 <dragestil> or, alternatively, is there a way to disable formatting-on-save by hls?
2022-06-11 03:26:54 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-06-11 03:27:57 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 258 seconds)
2022-06-11 03:28:17 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 03:28:56 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
2022-06-11 03:28:58 +0200 <dragestil> in hls configuration, there's formattingProvider, but it seems there's no knob to make hls hands off formatter
2022-06-11 03:30:11 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
2022-06-11 03:30:46 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a)
2022-06-11 03:30:46 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 03:39:03 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-11 03:39:28 +0200simendsj`(~user@78-72-230-58-no2730.tbcn.telia.com)
2022-06-11 03:41:06 +0200simendsjo(~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-06-11 03:42:35 +0200 <Bulby[m]> I'm starting to write a bytecode emitter now -would the preferred way to get opcodes be deriving `Enum` ?
2022-06-11 03:45:51 +0200ChanServ+o litharge
2022-06-11 03:45:52 +0200litharge-bo *!*@151.52.164.1 litharge
2022-06-11 03:48:45 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 03:52:07 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-06-11 03:53:46 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds)
2022-06-11 03:54:02 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds)
2022-06-11 03:54:59 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-06-11 03:55:10 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 03:55:36 +0200Haskelytic(~Haskelyti@37.111.212.211)
2022-06-11 03:56:36 +0200 <Haskelytic> ```isAssociative :: Eq a => (a -> a -> a) -> a -> a -> a -> Bool
2022-06-11 03:56:37 +0200 <Haskelytic> isAssociative (<>) x y z =
2022-06-11 03:56:37 +0200 <Haskelytic>     x <> (y <> z) == (x <> y) <> z
2022-06-11 03:56:38 +0200 <Haskelytic> isSemigroup :: (Eq a, Semigroup a) => a -> a -> a -> Bool
2022-06-11 03:56:38 +0200 <Haskelytic> isSemigroup = isAssociative (<>)
2022-06-11 03:56:39 +0200 <Haskelytic> hasLeftIdentity :: (Eq a, Monoid a) => a -> Bool
2022-06-11 03:56:39 +0200 <Haskelytic> hasLeftIdentity m = mempty <> m == m
2022-06-11 03:56:40 +0200 <Haskelytic> hasRightIdentity :: (Eq a, Monoid a) => a -> Bool
2022-06-11 03:56:40 +0200 <Haskelytic> hasRightIdentity m = m <> mempty == m
2022-06-11 03:56:41 +0200 <Haskelytic> isMonoid :: Test.QuickCheck.Property.Property
2022-06-11 03:56:41 +0200 <Haskelytic> isMonoid = isSemigroup .&&. hasLeftIdentity```
2022-06-11 03:56:51 +0200 <Haskelytic> I'm getting ambiguous type variable for isMonoid
2022-06-11 03:57:22 +0200_xor(~xor@72.49.198.103)
2022-06-11 03:57:30 +0200 <Haskelytic> Ambiguous type variable ‘a1’ arising from a use of ‘isSemigroup’
2022-06-11 03:57:30 +0200 <Haskelytic>   prevents the constraint ‘(Eq a1)’ from being solved.
2022-06-11 03:57:31 +0200 <Haskelytic>   Probable fix: use a type annotation to specify what ‘a1’ should be.
2022-06-11 03:57:31 +0200 <Haskelytic>   These potential instances exist:
2022-06-11 03:57:32 +0200 <Haskelytic>     ...plus 275 instances involving out-of-scope types
2022-06-11 03:57:32 +0200 <Haskelytic>     (use -fprint-potential-instances to see them all)
2022-06-11 03:57:33 +0200 <Haskelytic> • In the first argument of ‘(.&&.)’, namely ‘isSemigroup’
2022-06-11 03:57:33 +0200 <Haskelytic>   In the expression: isSemigroup .&&. hasLeftIdentity
2022-06-11 03:57:34 +0200 <Haskelytic>   In an equation for ‘isMonoid’:
2022-06-11 03:57:34 +0200 <Haskelytic>       isMonoid = isSemigroup .&&. hasLeftIdentitytypecheck(-Wdeferred-type-errors)
2022-06-11 03:57:40 +0200 <dsal> @where patse
2022-06-11 03:57:40 +0200 <lambdabot> I know nothing about patse.
2022-06-11 03:57:43 +0200 <dsal> @where paste
2022-06-11 03:57:43 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-06-11 03:58:05 +0200 <Bulby[m]> @where pasta
2022-06-11 03:58:05 +0200 <lambdabot> I know nothing about pasta.
2022-06-11 03:58:09 +0200 <Bulby[m]> 😔
2022-06-11 04:00:08 +0200z0k(~z0k@206.84.143.2)
2022-06-11 04:00:51 +0200 <Haskelytic> https://paste.tomsmeding.com/NslNe9NQ
2022-06-11 04:00:59 +0200kimjetwav(~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e)
2022-06-11 04:01:31 +0200 <Haskelytic> I'm trying to write a test for monoid properties by composing test for semigroup AND the left/right identity test
2022-06-11 04:02:08 +0200Kaipei(~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds)
2022-06-11 04:02:46 +0200 <Haskelytic> this is for use with QuickCheck
2022-06-11 04:03:28 +0200kimjetwav(~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e) (Client Quit)
2022-06-11 04:04:04 +0200kimjetwav(~user@2607:fea8:2340:da00:b28:9278:475e:6fce)
2022-06-11 04:08:30 +0200 <dsal> @hackage checkers
2022-06-11 04:08:30 +0200 <lambdabot> https://hackage.haskell.org/package/checkers
2022-06-11 04:08:35 +0200 <dsal> Haskelytic: Have you seen this?
2022-06-11 04:13:12 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 248 seconds)
2022-06-11 04:14:02 +0200 <dsal> Haskelytic: It's not really clear to me what you intended `isMonoid` to do. i.e., I agree with the compiler: "what?"
2022-06-11 04:14:42 +0200zebrag(~chris@user/zebrag)
2022-06-11 04:14:45 +0200 <Haskelytic> dsal: I didn't know about this package
2022-06-11 04:15:26 +0200nate3(~nate@98.45.169.16)
2022-06-11 04:15:52 +0200td_(~td@94.134.91.132) (Ping timeout: 248 seconds)
2022-06-11 04:15:55 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 04:15:55 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 04:15:55 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 04:17:21 +0200 <Haskelytic> dsal: Hmm...tbh I just made a wild guess that since `quickCheck :: Testable prop => prop -> IO ()` and `(.&&.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property` I could use conjuction (.&&.) to create a prop that is satisfied if both props are
2022-06-11 04:17:32 +0200 <Haskelytic> I must be misunderstanding something
2022-06-11 04:17:39 +0200 <dsal> How would you use it?
2022-06-11 04:17:44 +0200xacktm(xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-06-11 04:17:52 +0200 <Haskelytic> `quickCheck isMonoid`
2022-06-11 04:17:54 +0200td_(~td@muedsl-82-207-238-090.citykom.de)
2022-06-11 04:18:01 +0200 <dsal> What would that test?
2022-06-11 04:18:32 +0200 <Haskelytic> I presume it would test both properties and only succeed if both succeed
2022-06-11 04:18:52 +0200 <Haskelytic> by both properties I mean the arguments to the .&&.
2022-06-11 04:19:22 +0200 <Haskelytic> namely, `isSemigroup` and  `hasLeftIdentity`
2022-06-11 04:19:24 +0200 <dsal> But the signature doesn't mention any monoids, so it's not clear what you'd expect it to be testing.
2022-06-11 04:19:42 +0200 <dsal> At some point, you need the monoid you intend to test.
2022-06-11 04:19:57 +0200Topsi(~Topsi@dyndsl-095-033-088-183.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-06-11 04:20:22 +0200andreas303(andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds)
2022-06-11 04:21:38 +0200 <Haskelytic> Hmm...wait so when I use conjunction `.&&.`, the types deduced for its args: `isSemigroup` and `hasLeftIdentity` must be something concrete (e.g., `[Int]`)
2022-06-11 04:21:56 +0200even4void(even4void@came.here.for-some.fun) (Ping timeout: 248 seconds)
2022-06-11 04:21:56 +0200mimmy_(~mimmy@23.230.46.220)
2022-06-11 04:22:53 +0200 <dsal> When you call `isSemigroup` at all, you have to have a semigroup.
2022-06-11 04:23:28 +0200 <dsal> It can work on any semigroup, but if the compiler can't figure out which one you mean, it can't do the work.
2022-06-11 04:23:35 +0200 <Haskelytic> Ohhhhh hahahaha I got it now!
2022-06-11 04:23:52 +0200 <Haskelytic> dsal: thanks!
2022-06-11 04:24:16 +0200 <dsal> It's possible to add a type parameter `isMonoid` and pass that along with some language extensions.
2022-06-11 04:24:30 +0200 <dsal> But if you just want to do the work, checkers is OK. It's a bit weird to use, but I use it for exactly this on occasion.
2022-06-11 04:24:40 +0200 <Haskelytic> right
2022-06-11 04:24:44 +0200 <Haskelytic> thanks for the kind pointers
2022-06-11 04:25:12 +0200 <dsal> This uses checkers for similar things: https://github.com/dustin/mqttd/blob/master/test/SubTree.hs
2022-06-11 04:28:08 +0200mimmy_(~mimmy@23.230.46.220) (Ping timeout: 248 seconds)
2022-06-11 04:29:36 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 244 seconds)
2022-06-11 04:33:05 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-11 04:33:51 +0200julian(~julian@20.83.116.49)
2022-06-11 04:34:41 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 04:38:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-06-11 04:39:38 +0200z0k(~z0k@206.84.143.2) (Ping timeout: 258 seconds)
2022-06-11 04:41:22 +0200even4void(even4void@came.here.for-some.fun)
2022-06-11 04:41:49 +0200ketema(~ketema@160.sub-174-211-228.myvzw.com)
2022-06-11 04:42:03 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-06-11 04:42:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-06-11 04:42:03 +0200finn_elijaFinnElija
2022-06-11 04:43:08 +0200 <ketema> @help
2022-06-11 04:43:08 +0200 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2022-06-11 04:43:48 +0200 <ketema> @pointful sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0))
2022-06-11 04:43:48 +0200 <lambdabot> sum (filter divisibleBy3Or5 (unfoldr (\ b -> if (b == 1000) then Nothing else Just (b, (b + 1))) 0))
2022-06-11 04:44:39 +0200 <ketema> @pointful filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1)
2022-06-11 04:44:40 +0200 <lambdabot> filter (\ a0 -> a0 < 10) (unfoldr (\ b -> if (b == 1001) then Nothing else Just (b, (b + 1))) 1)
2022-06-11 04:45:37 +0200xacktm(xacktm@user/xacktm)
2022-06-11 04:46:49 +0200 <ketema> @pl filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1)
2022-06-11 04:46:49 +0200 <lambdabot> filter (< 10) (unfoldr (ap (flip if' Nothing . (1001 ==)) (Just . ap (,) (1 +))) 1)
2022-06-11 04:47:28 +0200 <ketema> @pl sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0))
2022-06-11 04:47:28 +0200 <lambdabot> sum (filter divisibleBy3Or5 (unfoldr (ap (flip if' Nothing . (1000 ==)) (Just . ap (,) (1 +))) 0))
2022-06-11 04:49:35 +0200k8yun(~k8yun@user/k8yun)
2022-06-11 04:50:44 +0200andreas303(andreas303@ip227.orange.bnc4free.com)
2022-06-11 04:57:28 +0200alp(~alp@user/alp) (Ping timeout: 248 seconds)
2022-06-11 04:57:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 04:58:25 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds)
2022-06-11 05:00:02 +0200haasn(~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2022-06-11 05:00:07 +0200k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-06-11 05:00:35 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 05:01:23 +0200haasn(~nand@haasn.dev)
2022-06-11 05:05:17 +0200ketema(~ketema@160.sub-174-211-228.myvzw.com) (Quit: ketema)
2022-06-11 05:07:43 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 05:08:49 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-06-11 05:12:11 +0200Mga52(~Mga@S01069050ca4e3573.cg.shawcable.net)
2022-06-11 05:12:39 +0200Mga52(~Mga@S01069050ca4e3573.cg.shawcable.net) (Client Quit)
2022-06-11 05:15:11 +0200Mga(~Mga@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
2022-06-11 05:18:46 +0200nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-11 05:28:59 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-11 05:42:52 +0200simeon(~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Remote host closed the connection)
2022-06-11 05:43:00 +0200zmt01(~zmt00@user/zmt00) (Quit: Leaving)
2022-06-11 05:44:51 +0200zmt00(~zmt00@user/zmt00)
2022-06-11 05:46:59 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 255 seconds)
2022-06-11 05:55:36 +0200briandaed(~briandaed@109.95.143.14.r.toneticgroup.pl) (Remote host closed the connection)
2022-06-11 05:57:24 +0200mimmy_(~mimmy@23.230.46.221)
2022-06-11 06:00:10 +0200shinjipf(~shinjipf@vmi826685.contaboserver.net) (Quit: Shinji leaves)
2022-06-11 06:02:26 +0200mimmy(~mimmy@23.82.193.83)
2022-06-11 06:03:34 +0200mimmy_(~mimmy@23.230.46.221) (Ping timeout: 246 seconds)
2022-06-11 06:03:38 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
2022-06-11 06:04:10 +0200shinjipf(~shinjipf@2a02:c207:2082:6685::1)
2022-06-11 06:20:22 +0200mimmy(~mimmy@23.82.193.83) (Ping timeout: 246 seconds)
2022-06-11 06:25:08 +0200kitty1(~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 272 seconds)
2022-06-11 06:31:51 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 06:31:55 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
2022-06-11 06:32:45 +0200coot(~coot@213.134.190.95)
2022-06-11 06:35:40 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 244 seconds)
2022-06-11 06:36:02 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
2022-06-11 06:40:34 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 06:43:36 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2022-06-11 06:46:17 +0200kitty1(~kitty@096-039-147-043.res.spectrum.com)
2022-06-11 06:58:59 +0200shriekingnoise(~shrieking@201.231.16.156) (Ping timeout: 255 seconds)
2022-06-11 06:59:45 +0200ubert1(~Thunderbi@p200300ecdf14f99dfb6d2023d109ce6e.dip0.t-ipconnect.de)
2022-06-11 06:59:57 +0200ubert(~Thunderbi@p200300ecdf14f9a1eda1a89be8fd240f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-06-11 06:59:58 +0200ubert1ubert
2022-06-11 07:00:07 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-06-11 07:04:52 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 07:17:39 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-06-11 07:20:19 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-06-11 07:20:29 +0200mimmy(~mimmy@23.82.193.84)
2022-06-11 07:26:46 +0200mimmy(~mimmy@23.82.193.84) (Ping timeout: 258 seconds)
2022-06-11 07:33:06 +0200frost(~frost@user/frost)
2022-06-11 07:34:02 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-06-11 07:36:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 07:37:28 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 248 seconds)
2022-06-11 07:42:09 +0200mimmy(~mimmy@23.82.193.82)
2022-06-11 07:42:25 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 07:42:25 +0200mimmy(~mimmy@23.82.193.82) (Client Quit)
2022-06-11 07:46:39 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 07:49:35 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 08:00:40 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 08:06:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 08:07:20 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 08:08:25 +0200ormaajjaamro
2022-06-11 08:12:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 08:12:14 +0200Haskelytic(~Haskelyti@37.111.212.211) (Quit: Client closed)
2022-06-11 08:19:27 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 08:22:07 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2022-06-11 08:22:21 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-06-11 08:24:17 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds)
2022-06-11 08:24:51 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 08:28:01 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-06-11 08:34:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 08:34:49 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-06-11 08:36:37 +0200irfan(~irfan@user/irfan)
2022-06-11 08:37:43 +0200kenran(~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de)
2022-06-11 08:44:59 +0200acidjnk_new(~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de)
2022-06-11 08:54:27 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 08:58:28 +0200irfan(~irfan@user/irfan) (Quit: leaving)
2022-06-11 08:59:09 +0200alp(~alp@user/alp)
2022-06-11 09:00:55 +0200alp_(~alp@user/alp)
2022-06-11 09:02:19 +0200alp_(~alp@user/alp) (Remote host closed the connection)
2022-06-11 09:02:38 +0200alp_(~alp@user/alp)
2022-06-11 09:03:52 +0200alp(~alp@user/alp) (Ping timeout: 248 seconds)
2022-06-11 09:04:23 +0200alp__(~alp@user/alp)
2022-06-11 09:06:38 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
2022-06-11 09:07:04 +0200alp_(~alp@user/alp) (Ping timeout: 248 seconds)
2022-06-11 09:08:24 +0200yw61(~yw@2.58.65.178)
2022-06-11 09:09:07 +0200alp__(~alp@user/alp) (Ping timeout: 258 seconds)
2022-06-11 09:14:54 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 09:16:10 +0200nate3(~nate@98.45.169.16)
2022-06-11 09:16:22 +0200Teacup(~teacup@user/teacup)
2022-06-11 09:20:06 +0200Teacup(~teacup@user/teacup) (Client Quit)
2022-06-11 09:20:58 +0200nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-11 09:21:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-06-11 09:21:32 +0200Teacup(~teacup@user/teacup)
2022-06-11 09:22:35 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 09:23:41 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-06-11 09:26:48 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 09:29:26 +0200 <hololeap> @let divisibleBy3Or5 x = x `rem` 3 == 0 || x `rem` 5 == 0
2022-06-11 09:29:27 +0200 <lambdabot> Defined.
2022-06-11 09:31:36 +0200 <hololeap> > sum [ x | x <- [0..1000], divisibleBy3Or5 x ]
2022-06-11 09:31:38 +0200 <lambdabot> 234168
2022-06-11 09:33:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 09:33:18 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 09:33:28 +0200kenran(~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-06-11 09:34:43 +0200Teacup(~teacup@user/teacup)
2022-06-11 09:38:04 +0200 <hololeap> why isn't there a MonadWriter instance for Control.Monad.Trans.Writer.CPS
2022-06-11 09:38:52 +0200 <hololeap> is it just a quirk of the libs or does the CPS version work differently somehow
2022-06-11 09:41:18 +0200 <hololeap> also, could someone please point me to a resource that explains in detail why the Strict version of WriterT has memory issues that the CPS version does not have?
2022-06-11 09:43:10 +0200simendsj`(~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 240 seconds)
2022-06-11 09:44:17 +0200 <jackdk> hololeap: that instance exists as of mtl-2.3
2022-06-11 09:45:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 09:45:39 +0200 <hololeap> ok, I'm on 2.2.2
2022-06-11 09:48:07 +0200 <jackdk> this was in the first page of DDG results for "strict writert": https://stackoverflow.com/questions/14644830/what-is-the-point-of-having-a-lazy-strict-version-of-…
2022-06-11 09:48:35 +0200 <jackdk> I imagine that even the strict version may still build a pile of <> thunks
2022-06-11 09:49:54 +0200 <hololeap> ok, but why doesn't CPS have the same problem? I feel like I'm missing something fundamental here
2022-06-11 09:51:13 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 09:51:27 +0200 <hololeap> actually, I don't really understand how dlist works, either
2022-06-11 09:52:33 +0200 <hololeap> I think they would be related
2022-06-11 09:53:01 +0200 <jackdk> You will have to noodle around with the source of the cps WriterT, but note that its version of `writer` forces the <> to WHNF using `seq` before returning a result. This is probably what's avoiding the thunk buildup : https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Writer.CPS.h…
2022-06-11 09:53:56 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-06-11 09:53:59 +0200 <hololeap> oh
2022-06-11 09:56:00 +0200 <jackdk> To understand dlist, spend half an hour performing the transformations yourself: step through the evaluation of `((([1, 2, 3] ++ [4, 5, 6]) ++ [7, 8, 9]) ++ [10, 11, 12])` to get a feel for why it must walk the prefix over and over to generate any result, then evaluate `((( ([1, 2, 3] ++) . ([4, 5, 6] ++) ) . ([7, 8, 9] ++) ) . ([10, 11, 12] ++)) []` by hand, stepping through the evaluation of `(.)` to see how it causes right-associated chain of (++)
2022-06-11 09:56:06 +0200 <tomsmeding> hololeap: paper is completely unrelated, but it happens to contain a description of the core idea of dlist: search for "Example 7.1" in https://arxiv.org/pdf/2205.11368.pdf
2022-06-11 09:56:10 +0200zincy(~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr)
2022-06-11 09:56:17 +0200 <tomsmeding> or that :)
2022-06-11 09:56:20 +0200 <jackdk> (the second expression is the first, but transformed into dlist and back)
2022-06-11 09:56:30 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 09:57:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 09:57:36 +0200Pickchea(~private@user/pickchea)
2022-06-11 09:58:03 +0200Kaipii(~Kaiepi@156.34.47.253)
2022-06-11 09:58:37 +0200 <tomsmeding> (the example in that PDF spreads over the page break, just to be clear)
2022-06-11 09:58:52 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-11 09:59:35 +0200 <hololeap> ok, thanks
2022-06-11 10:00:07 +0200ketema(~ketema@129.sub-174-212-38.myvzw.com)
2022-06-11 10:00:36 +0200 <hololeap> I understand regular concatenation well enough, but not the dlist version. writing it out seems like a good idea
2022-06-11 10:01:15 +0200Kaipei(~Kaiepi@156.34.47.253) (Ping timeout: 258 seconds)
2022-06-11 10:01:52 +0200 <hololeap> actually, it makes intuitive sense already, since each sublist only has to be walked once in the dlist version
2022-06-11 10:02:36 +0200 <tomsmeding> the function compositions do cost time, but that time is proportional to the _number_ of concatenations
2022-06-11 10:06:01 +0200energizer_energizer
2022-06-11 10:21:09 +0200Pickchea(~private@user/pickchea) (Ping timeout: 276 seconds)
2022-06-11 10:23:38 +0200Pickchea(~private@user/pickchea)
2022-06-11 10:27:37 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73)
2022-06-11 10:28:40 +0200acidjnk_new(~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-06-11 10:30:58 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2022-06-11 10:32:30 +0200acidjnk_new(~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de)
2022-06-11 10:37:44 +0200acidjnk_new(~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-06-11 10:44:53 +0200Pickchea(~private@user/pickchea) (Ping timeout: 255 seconds)
2022-06-11 10:47:50 +0200gabriel_1(~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.5)
2022-06-11 10:48:31 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2022-06-11 10:48:33 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-06-11 10:55:53 +0200vglfr(~vglfr@88.155.106.79)
2022-06-11 10:57:07 +0200bilegeek(~bilegeek@2600:1008:b006:dc9e:9b3e:98b5:2da3:eff8) (Quit: Leaving)
2022-06-11 11:00:31 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-06-11 11:00:37 +0200zincy(~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2022-06-11 11:01:38 +0200zaquest(~notzaques@5.130.79.72)
2022-06-11 11:06:27 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73) (Ping timeout: 240 seconds)
2022-06-11 11:06:59 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-06-11 11:08:39 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 11:16:16 +0200yw61(~yw@2.58.65.178) (Quit: Client closed)
2022-06-11 11:19:21 +0200Tuplanolla(~Tuplanoll@91-159-69-63.elisa-laajakaista.fi)
2022-06-11 11:23:29 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 11:25:03 +0200Teacup(~teacup@user/teacup)
2022-06-11 11:29:19 +0200Teacup(~teacup@user/teacup) (Client Quit)
2022-06-11 11:30:47 +0200Teacup(~teacup@user/teacup)
2022-06-11 11:30:49 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 11:31:11 +0200ketema(~ketema@129.sub-174-212-38.myvzw.com) (Quit: ketema)
2022-06-11 11:34:22 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-06-11 11:35:17 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
2022-06-11 11:35:37 +0200Batzy(~quassel@user/batzy)
2022-06-11 11:35:54 +0200Kaipii(~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds)
2022-06-11 11:36:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 11:37:31 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 11:37:49 +0200vglfr(~vglfr@88.155.106.79) (Ping timeout: 246 seconds)
2022-06-11 11:38:58 +0200Teacup(~teacup@user/teacup)
2022-06-11 11:40:25 +0200Pickchea(~private@user/pickchea)
2022-06-11 11:48:12 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 11:48:52 +0200jaamroormaaj
2022-06-11 11:49:34 +0200Teacup(~teacup@user/teacup)
2022-06-11 11:51:51 +0200frost(~frost@user/frost) (Quit: Ping timeout (120 seconds))
2022-06-11 11:52:48 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
2022-06-11 11:54:37 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 12:02:20 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Remote host closed the connection)
2022-06-11 12:09:00 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-11 12:13:39 +0200coot(~coot@213.134.190.95)
2022-06-11 12:19:06 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-11 12:21:58 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 12:23:23 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 12:23:25 +0200img(~img@user/img)
2022-06-11 12:23:51 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-06-11 12:24:31 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-06-11 12:24:35 +0200Kaipii(~Kaiepi@156.34.47.253)
2022-06-11 12:25:12 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-06-11 12:25:23 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-06-11 12:25:46 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-11 12:26:18 +0200coot(~coot@213.134.190.95)
2022-06-11 12:26:22 +0200Teacup(~teacup@user/teacup)
2022-06-11 12:27:45 +0200coot(~coot@213.134.190.95) (Remote host closed the connection)
2022-06-11 12:27:54 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-06-11 12:28:49 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 12:29:27 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-06-11 12:31:10 +0200vglfr(~vglfr@88.155.106.79)
2022-06-11 12:37:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 12:38:23 +0200Vajb(~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Read error: Connection reset by peer)
2022-06-11 12:39:02 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-06-11 12:40:29 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-06-11 12:41:10 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2022-06-11 12:41:27 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-06-11 12:42:49 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-11 12:45:25 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 12:47:29 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 12:47:30 +0200Kaipii(~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
2022-06-11 12:50:17 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-06-11 12:50:45 +0200coot(~coot@213.134.190.95)
2022-06-11 12:50:48 +0200coot(~coot@213.134.190.95) (Remote host closed the connection)
2022-06-11 12:51:45 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-06-11 12:54:14 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a)
2022-06-11 12:55:53 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-11 12:58:16 +0200fr-isotope(uid556229@id-556229.ilkley.irccloud.com)
2022-06-11 13:02:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 13:07:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 255 seconds)
2022-06-11 13:08:14 +0200 <dsp> I have a package that requires a specific base version <4.15. My GHC is 9.0.2 and i am curious how i best go about delivering a lower base, or do i need to downgrade the compiler
2022-06-11 13:09:43 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
2022-06-11 13:14:13 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Leaving)
2022-06-11 13:14:18 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-06-11 13:17:40 +0200nate3(~nate@98.45.169.16)
2022-06-11 13:18:34 +0200 <geekosaur> base is hardwired into the compiler, you must downgrade
2022-06-11 13:20:53 +0200 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history shows what versions of things come with which compilers. base, integer-simple/integer-gmp/ghc-bignum, ghc-prim, ghc, and template-haskell are wired in
2022-06-11 13:22:32 +0200nate3(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-06-11 13:25:12 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 13:26:50 +0200alp(~alp@user/alp)
2022-06-11 13:29:04 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
2022-06-11 13:33:08 +0200 <unit73e> I figured ghcup fixes all my GHC instalation problems
2022-06-11 13:33:33 +0200 <[exa]> ghcup is underrated.
2022-06-11 13:33:54 +0200 <tomsmeding> not by its users :)
2022-06-11 13:37:15 +0200 <[exa]> anyway, re the problem that dsp had before -- is there some kinda switch that would, for a package, just go yolo and ignore the upper bound? (like, this is quite a common source of problems, and the only fix is that all maintainers regularly reupload new dependency bounds)
2022-06-11 13:38:23 +0200 <geekosaur[m]> --allow-newer
2022-06-11 13:40:51 +0200 <[exa]> how come I wasn't able to google this? ._.
2022-06-11 13:40:55 +0200 <[exa]> (thanks a lot! :D )
2022-06-11 13:41:02 +0200chomwitt(~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a) (Ping timeout: 260 seconds)
2022-06-11 13:41:10 +0200 <geekosaur[m]> There's also a more constrained version: --allow-newer=package: dependency [,...]
2022-06-11 13:41:27 +0200 <tomsmeding> can also put allow-newer: in a cabal.project, if that's your schtick
2022-06-11 13:41:42 +0200 <geekosaur[m]> Ugh,minus the extra spaces
2022-06-11 13:42:31 +0200 <[exa]> o cool
2022-06-11 13:43:23 +0200 <tomsmeding> [exa]: HLS uses this extensively (this list was far longer when 9.2 was fresher) https://github.com/haskell/haskell-language-server/blob/master/cabal.project#L66
2022-06-11 13:46:23 +0200Kaipii(~Kaiepi@156.34.47.253)
2022-06-11 13:48:35 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 13:49:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 248 seconds)
2022-06-11 13:50:16 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds)
2022-06-11 13:51:33 +0200Vajb(~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305)
2022-06-11 13:53:17 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds)
2022-06-11 13:57:53 +0200kaskal-(~kaskal@213-147-164-164.nat.highway.webapn.at)
2022-06-11 13:59:15 +0200kaskal(~kaskal@089144205066.atnat0014.highway.webapn.at) (Ping timeout: 256 seconds)
2022-06-11 14:04:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 14:07:42 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 14:07:45 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds)
2022-06-11 14:08:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds)
2022-06-11 14:09:41 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 14:15:29 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 14:16:59 +0200Teacup(~teacup@user/teacup)
2022-06-11 14:17:05 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-06-11 14:17:14 +0200gio123(~gio123@94.137.173.75)
2022-06-11 14:19:47 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-11 14:20:53 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 255 seconds)
2022-06-11 14:22:48 +0200alp(~alp@user/alp) (Ping timeout: 248 seconds)
2022-06-11 14:26:36 +0200alp(~alp@user/alp)
2022-06-11 14:33:55 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-06-11 14:39:40 +0200Teacup(~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
2022-06-11 14:41:17 +0200Teacup(~teacup@user/teacup)
2022-06-11 14:47:01 +0200joo-_(~joo-_@fsf/member/joo--) (Quit: leaving)
2022-06-11 14:47:28 +0200benin(~benin@183.82.179.200) (Quit: The Lounge - https://thelounge.chat)
2022-06-11 14:47:46 +0200Vajb(~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Ping timeout: 250 seconds)
2022-06-11 14:52:50 +0200vglfr(~vglfr@88.155.106.79) (Ping timeout: 255 seconds)
2022-06-11 14:53:24 +0200vglfr(~vglfr@88.155.106.79)
2022-06-11 14:53:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-11 14:54:23 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-06-11 14:54:24 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-06-11 14:58:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-11 15:00:34 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-06-11 15:01:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 15:11:52 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 15:13:35 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 15:14:28 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2022-06-11 15:17:50 +0200fr-isotope(uid556229@id-556229.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-11 15:24:12 +0200jlamothe(~jlamothe@198.251.60.209)
2022-06-11 15:26:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-11 15:28:43 +0200Pickchea(~private@user/pickchea)
2022-06-11 15:29:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-06-11 15:32:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-11 15:36:06 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
2022-06-11 15:42:54 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 15:47:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 15:47:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 15:48:43 +0200__monty__(~toonn@user/toonn)
2022-06-11 15:52:41 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
2022-06-11 15:56:21 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-11 16:01:35 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 16:05:39 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-06-11 16:06:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 16:10:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 272 seconds)
2022-06-11 16:13:49 +0200chreekat2(~b@152.96.94.198)
2022-06-11 16:17:03 +0200julian(~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian)))
2022-06-11 16:22:13 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
2022-06-11 16:24:34 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-11 16:24:51 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-06-11 16:26:44 +0200Pickchea(~private@user/pickchea) (Ping timeout: 244 seconds)
2022-06-11 16:27:40 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-06-11 16:31:50 +0200chreekat2(~b@152.96.94.198) (Ping timeout: 240 seconds)
2022-06-11 16:37:18 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-11 16:40:53 +0200chreekat2(~b@2001:620:130:6092:f0a5:94c4:beca:8e7a)
2022-06-11 16:44:41 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a)
2022-06-11 16:44:55 +0200 <exarkun> Why does the definition of `select` use an irrefutable pattern - `~(ts,fs)`?
2022-06-11 16:45:34 +0200 <exarkun> https://hackage.haskell.org/package/base-4.16.1.0/docs/src/Data-OldList.html#select
2022-06-11 16:46:40 +0200 <shapr> I've been fighting laziness and having vaguely related questions, like why is tails strict
2022-06-11 16:47:03 +0200raym(~raym@user/raym) (Quit: audio problem, rebooting...)
2022-06-11 16:48:40 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
2022-06-11 16:49:26 +0200raym(~raym@user/raym)
2022-06-11 16:49:42 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Quit: Going elsewhere)
2022-06-11 16:50:36 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a)
2022-06-11 16:52:31 +0200 <geekosaur> mm, I was going to say the Report probably specified the strictness of both, but the Report doesn't have anything outside the basic Prelude
2022-06-11 16:56:28 +0200 <geekosaur> my guess re select is that it causes partition to hold all lists completely in memory instead of lazily consuming the original an item at a time
2022-06-11 16:58:45 +0200 <geekosaur> as for tails, I'm not clear that laziness buys anything since it holds the entire original list (maybe minus its first element) anyway
2022-06-11 16:59:05 +0200 <geekosaur> or is even possible
2022-06-11 16:59:47 +0200 <geekosaur> holds it multiple times, even
2022-06-11 17:01:47 +0200 <geekosaur> mrr, clarify that: lack of ~ would cause it to hold everything in memory
2022-06-11 17:02:52 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds)
2022-06-11 17:12:04 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 248 seconds)
2022-06-11 17:14:12 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-06-11 17:15:26 +0200 <geekosaur> yeh, tails does essentially what I would expect, and I don't think it can be made less strict meaningfully because something else would make it strict anyway
2022-06-11 17:15:29 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 17:17:01 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-06-11 17:17:55 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 17:17:55 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 17:17:55 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 17:18:28 +0200emad(~emad@156.214.109.162)
2022-06-11 17:18:49 +0200emad(~emad@156.214.109.162) (Remote host closed the connection)
2022-06-11 17:18:56 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 17:19:11 +0200nate3(~nate@98.45.169.16)
2022-06-11 17:19:52 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 17:24:05 +0200nate3(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-06-11 17:29:55 +0200vglfr(~vglfr@88.155.106.79) (Ping timeout: 246 seconds)
2022-06-11 17:33:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 17:39:37 +0200ec(~ec@gateway/tor-sasl/ec)
2022-06-11 17:41:01 +0200bilegeek(~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
2022-06-11 17:43:04 +0200vglfr(~vglfr@88.155.106.79)
2022-06-11 17:43:52 +0200gmg(~user@user/gehmehgeh)
2022-06-11 17:45:18 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-06-11 17:46:27 +0200califax(~califax@user/califx)
2022-06-11 17:47:16 +0200dextaa(~DV@user/dextaa)
2022-06-11 17:51:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-06-11 17:54:51 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2022-06-11 18:00:06 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-11 18:00:06 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Quit: You have been kicked for being idle)
2022-06-11 18:00:15 +0200noiobeforebed(~noiobefor@2001:470:69fc:105::1:3c2d) (Quit: You have been kicked for being idle)
2022-06-11 18:01:00 +0200doomfume[m](~doomfumeh@2001:470:69fc:105::2:2a62)
2022-06-11 18:06:47 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 255 seconds)
2022-06-11 18:07:55 +0200stackdroid18(14094@user/stackdroid)
2022-06-11 18:09:02 +0200doomfume[m]1(~doomfumem@2001:470:69fc:105::2:2a64)
2022-06-11 18:09:42 +0200kimjetwav(~user@2607:fea8:2340:da00:b28:9278:475e:6fce) (Quit: time to reboot)
2022-06-11 18:13:54 +0200kimjetwav(~user@2607:fea8:2340:da00:dee7:1b6:101c:bb2)
2022-06-11 18:14:12 +0200julian(~julian@20.83.116.49)
2022-06-11 18:19:34 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-dd76-ba9d-2665-21fb.res6.spectrum.com)
2022-06-11 18:22:35 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 18:27:37 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-06-11 18:28:05 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-06-11 18:28:24 +0200chreekat2(~b@2001:620:130:6092:f0a5:94c4:beca:8e7a) (Ping timeout: 272 seconds)
2022-06-11 18:29:52 +0200Sgeo(~Sgeo@user/sgeo)
2022-06-11 18:34:32 +0200gmg(~user@user/gehmehgeh)
2022-06-11 18:35:35 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
2022-06-11 18:35:36 +0200econo(uid147250@user/econo)
2022-06-11 18:36:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 18:36:16 +0200user3(~user@188.253.237.9)
2022-06-11 18:38:27 +0200user3(~user@188.253.237.9) (Client Quit)
2022-06-11 18:39:42 +0200vglfr(~vglfr@88.155.106.79) (Ping timeout: 276 seconds)
2022-06-11 18:40:24 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2022-06-11 18:41:24 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-06-11 18:46:47 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
2022-06-11 18:47:56 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-06-11 18:48:17 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-06-11 19:03:50 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 19:07:23 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 19:07:23 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 19:07:23 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 19:07:31 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-06-11 19:08:08 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 19:08:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 19:09:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-11 19:12:18 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
2022-06-11 19:12:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds)
2022-06-11 19:13:22 +0200Guest10(~Guest10@136.56.166.157)
2022-06-11 19:14:13 +0200Guest10(~Guest10@136.56.166.157) (Client Quit)
2022-06-11 19:14:24 +0200Guest10(~Guest10@136.56.166.157)
2022-06-11 19:15:47 +0200Guest10(~Guest10@136.56.166.157) (Client Quit)
2022-06-11 19:16:59 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-06-11 19:23:39 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-11 19:26:16 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 248 seconds)
2022-06-11 19:35:06 +0200 <Bulby[m]> what do you guys use for binary serialization
2022-06-11 19:35:27 +0200 <geekosaur> binary or cereal are the usual go-tos
2022-06-11 19:36:09 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-06-11 19:36:34 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-11 19:36:47 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 19:36:58 +0200 <Clint> i used to use cereal, then i switched to binary
2022-06-11 19:37:41 +0200 <Bulby[m]> binary is really old ☹️
2022-06-11 19:37:58 +0200 <Bulby[m]> i'll use cereal
2022-06-11 19:38:10 +0200Tuplanolla(~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Ping timeout: 258 seconds)
2022-06-11 19:38:12 +0200 <geekosaur> what, does it have to be updated daily to be usable?
2022-06-11 19:38:18 +0200 <Rembane> Maybe binary is done?
2022-06-11 19:38:56 +0200 <Bulby[m]> it depends on base < 4.13
2022-06-11 19:39:37 +0200 <geekosaur> https://hackage.haskell.org/package/binary says otherwise
2022-06-11 19:39:49 +0200 <geekosaur> >= 4.5.0.0 && < 5
2022-06-11 19:40:18 +0200 <Bulby[m]> oh
2022-06-11 19:40:25 +0200 <geekosaur> maybe check the upper right of the page to see if you're on the latest version vs. the version google picked due to links
2022-06-11 19:40:26 +0200 <Bulby[m]> what are the .9 and .10 versions
2022-06-11 19:40:49 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 19:41:15 +0200 <geekosaur> red is deprecated
2022-06-11 19:41:20 +0200 <geekosaur> it doesn't say why
2022-06-11 19:45:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
2022-06-11 19:47:02 +0200gmg(~user@user/gehmehgeh)
2022-06-11 19:48:42 +0200zer0bitz(~zer0bitz@2001:2003:f444:8f00:911a:9716:9df3:c391)
2022-06-11 19:49:15 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 19:51:45 +0200Tuplanolla(~Tuplanoll@91-159-69-173.elisa-laajakaista.fi)
2022-06-11 19:54:04 +0200 <monochrom> I use binary because it comes with GHC. I use parsec because it comes with GHC. I use mtl because it comes with GHC.
2022-06-11 19:54:19 +0200 <monochrom> They are old but so am I. I am old and wise, and so are they.
2022-06-11 19:54:28 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-06-11 19:54:40 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-06-11 19:54:45 +0200 <monochrom> But you should have figured. I use IRC, too, an old thing.
2022-06-11 19:55:01 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-11 19:55:42 +0200 <monochrom> Whereas newer people chose the subreddit or stackoverflow or the discourse, and will never consider IRC.
2022-06-11 19:56:02 +0200 <monochrom> If you're all about new, perhaps you should bring your questions to them, not us.
2022-06-11 19:57:32 +0200 <[exa]> where do people even get this expectation of old software being worse?
2022-06-11 19:57:57 +0200 <Clint> bitrot
2022-06-11 19:58:01 +0200 <monochrom> I don't blame them. I did that once, too, when I was younger.
2022-06-11 19:58:10 +0200 <Bulby[m]> true, old software is usually better, especially when maintained
2022-06-11 19:58:23 +0200 <hpc> i mean, "old = less good" is true of almost everything
2022-06-11 19:58:28 +0200 <Bulby[m]> by old I mean unmaintained
2022-06-11 19:58:43 +0200 <monochrom> At school, I found out a bug in some software. I emailed the sysadmin and said things like "this software is old".
2022-06-11 19:59:13 +0200 <monochrom> The sysadmins rightfully reply "we acknowledge the bug, but age doesn't always matter".
2022-06-11 19:59:22 +0200 <[exa]> Clint: fair enough
2022-06-11 19:59:34 +0200 <geekosaur[m]> Could you tell us where you got such an old link?
2022-06-11 20:00:03 +0200 <davean> HTTP is old, so we should use Web3 for everything.
2022-06-11 20:00:21 +0200 <monochrom> Please use HTTP 3.14159 :)
2022-06-11 20:00:28 +0200 <Bulby[m]> ok, now on text, encode utf8: it seems it encodes an empty string. does that mean it puts nothing if the text is empty?
2022-06-11 20:00:48 +0200 <[exa]> davean: also computers are like 30+ years now!!11
2022-06-11 20:01:27 +0200 <davean> [exa]: More than that and we should stop using them
2022-06-11 20:01:43 +0200 <[exa]> Bulby[m]: empty unicode string encoded to utf8 should make an empty byte sequence, yes.
2022-06-11 20:01:48 +0200 <darkling> davean: Some days, I could get on board with that idea.
2022-06-11 20:01:50 +0200 <monochrom> We should switch from tcp/ip to x.24
2022-06-11 20:01:50 +0200 <davean> [exa]: you're proving their point, computers are horrid
2022-06-11 20:02:06 +0200 <hpc> this is why i never use imported libraries
2022-06-11 20:02:12 +0200 <hpc> they're always older than the code i am writing right now
2022-06-11 20:02:19 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-11 20:02:28 +0200 <Bulby[m]> hm... that is an issue. does that mean the string doesn't end with a null byte as well
2022-06-11 20:02:41 +0200 <monochrom> This is why I teach programming rather than write programs. :)
2022-06-11 20:03:28 +0200 <monochrom> What null byte? This is not ##c.
2022-06-11 20:03:37 +0200 <davean> Bulby[m]: Huh?
2022-06-11 20:03:41 +0200 <[exa]> Bulby[m]: the null byte is a C and unix convention, completely irrelevant in all other systems
2022-06-11 20:03:56 +0200 <[exa]> esp these that actually remember the size of their strings
2022-06-11 20:04:00 +0200 <monochrom> Hell, not even always a unix convention.
2022-06-11 20:04:09 +0200 <Bulby[m]> well I'm serialzing to binary
2022-06-11 20:04:16 +0200 <davean> and not even a good convention - it has to be broken a lot, because we need string with null bytes in them
2022-06-11 20:04:28 +0200 <Bulby[m]> so I either a. store the length or b. append a null byte
2022-06-11 20:04:34 +0200 <davean> So length tagged strings are normal even in C and Unix
2022-06-11 20:04:51 +0200 <darkling> Either of those will work, but I'd recomment storing the length.
2022-06-11 20:04:58 +0200 <monochrom> So store the length.
2022-06-11 20:04:58 +0200 <[exa]> Bulby[m]: if you need to place the binary representation to some larger bytestream, I suggest you do one of these, yes.
2022-06-11 20:05:00 +0200 <darkling> Advanced developers will store the length first. ;)
2022-06-11 20:05:31 +0200 <[exa]> and please store the length, the terminating zero is a particular piece of mess in any data exchange
2022-06-11 20:06:01 +0200 <Bulby[m]> I assume length of Text is not length in bytes so I have to manually call up encodeUtf8
2022-06-11 20:06:34 +0200 <monochrom> You look at basically every binary file format except C strings, they all given lengths up front.
2022-06-11 20:06:40 +0200 <[exa]> Bulby[m]: yes, lengths of encoding vary a lot (accidentally, length of Text is afaik equal to the data length in utf32)
2022-06-11 20:07:09 +0200coot(~coot@213.134.190.95)
2022-06-11 20:07:15 +0200 <Bulby[m]> i'm getting flashbacks to haxe deserialization 😭
2022-06-11 20:07:49 +0200 <monochrom> If you don't want length, please use "\end{verbatim}" instead of null byte at the end. :)
2022-06-11 20:07:55 +0200 <[exa]> Bulby[m]: is there Binary instance for ByteString?
2022-06-11 20:08:10 +0200 <Bulby[m]> yes
2022-06-11 20:08:29 +0200 <[exa]> darkling: advanced programmers ride on all paradigms at once and store length at the end
2022-06-11 20:08:46 +0200 <monochrom> store checksum and then length at the end :)
2022-06-11 20:09:00 +0200 <Bulby[m]> https://hackage.haskell.org/package/binary-0.8.9.0/docs/src/Data.Binary.Class.html#line-635
2022-06-11 20:09:01 +0200 <Bulby[m]> bytestring stores it's length anyway
2022-06-11 20:09:04 +0200 <[exa]> Bulby[m]: and the Binary instance doesn't encode its length?
2022-06-11 20:09:10 +0200 <[exa]> o nice
2022-06-11 20:09:25 +0200 <[exa]> so just encode to ByteString and serialize the bytestring :]
2022-06-11 20:09:38 +0200 <Bulby[m]> so i can just use Text's encoding method which encodes via put
2022-06-11 20:10:15 +0200 <Bulby[m]> btw what's an int? int64?
2022-06-11 20:10:28 +0200 <Bulby[m]> yeah
2022-06-11 20:10:30 +0200 <[exa]> likely.
2022-06-11 20:11:14 +0200 <Bulby[m]> idk why they store it as int. I guess they don't expect a string longer than 2^63
2022-06-11 20:11:26 +0200img(~img@user/img)
2022-06-11 20:12:08 +0200 <davean> Packagees like 'bytes' have VarInt instances
2022-06-11 20:12:32 +0200 <[exa]> Bulby[m]: you might want to contemplate on the size of that number
2022-06-11 20:12:47 +0200 <Bulby[m]> yeah
2022-06-11 20:13:12 +0200 <Bulby[m]> that was a joke but apparently it wasn't very funny 🥲
2022-06-11 20:13:33 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-06-11 20:13:54 +0200 <[exa]> ah okay. sorry I'm not fun today. :D
2022-06-11 20:14:21 +0200 <geekosaur> encode to ASN.1
2022-06-11 20:14:31 +0200Clinttwitches.
2022-06-11 20:15:20 +0200gmg(~user@user/gehmehgeh)
2022-06-11 20:15:54 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds)
2022-06-11 20:16:36 +0200 <[exa]> Bulby[m]: anyway, I'd say `put . encodeUtf8` should just work
2022-06-11 20:17:02 +0200[exa]finds Data.Text.Binary
2022-06-11 20:17:03 +0200 <Bulby[m]> Text has a binary instance that does exactly that
2022-06-11 20:17:17 +0200 <[exa]> ah
2022-06-11 20:17:21 +0200 <[exa]> all done then
2022-06-11 20:17:22 +0200 <tomsmeding> Bulby[m]: probably no system that bytestring/text supports can handle allocations longer than 2^48 in the first place
2022-06-11 20:17:22 +0200 <[exa]> \o/
2022-06-11 20:17:34 +0200 <tomsmeding> oh it was a joke
2022-06-11 20:17:37 +0200 <tomsmeding> woooosh
2022-06-11 20:17:44 +0200 <Bulby[m]> I was just unsure if it stored the length
2022-06-11 20:17:55 +0200 <[exa]> tomsmeding: it's triggerish right? :D
2022-06-11 20:17:59 +0200 <tomsmeding> yes
2022-06-11 20:18:49 +0200 <[exa]> these young peeps complaining about a completely nonsential possibility of ever having a string bigger than 640kB
2022-06-11 20:18:50 +0200 <davean> tomsmeding: we don't need to allocate them to define them ... I'll send you the exact base 10 representation of 1/3rd ;)
2022-06-11 20:18:58 +0200 <[exa]> oh i mean 2^63.
2022-06-11 20:19:09 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 20:19:18 +0200 <tomsmeding> davean: hm, good point, lazy bytestrings could have interesting lengths
2022-06-11 20:19:51 +0200 <hpc> fun related fact i saw the other day, in rust a vector of () has a fixed size
2022-06-11 20:20:04 +0200 <hpc> it doesn't have to reserve space for any of the values, it just keeps track of the size :D
2022-06-11 20:20:13 +0200 <Bulby[m]> haha
2022-06-11 20:20:17 +0200 <davean> tomsmeding: and we can actually store them when we take into account compression.
2022-06-11 20:20:33 +0200 <[exa]> hpc: kinda wondering what c++ will tell me about std::vector<void>
2022-06-11 20:21:04 +0200 <[exa]> that would be the same case I'd say, except c++ is likely picky about void
2022-06-11 20:21:18 +0200 <tomsmeding> luckily haskell can do the same https://hackage.haskell.org/package/base-4.15.1.0/docs/src/Foreign.Storable.html#line-149
2022-06-11 20:21:36 +0200 <hpc> tomsmeding: haha that's great
2022-06-11 20:21:50 +0200 <tomsmeding> so a Data.Vector.Storable of () will be constant-size :)
2022-06-11 20:22:27 +0200 <tomsmeding> [exa]: void likely won't work, but you could try `struct Unit {}; std::vector<Unit> v;`
2022-06-11 20:23:11 +0200 <tomsmeding> [exa]: sizeof(struct Unit) == 0, so likely it would work
2022-06-11 20:23:36 +0200 <tomsmeding> yay lots of languages getting this right
2022-06-11 20:24:11 +0200 <davean> tomsmeding: in Haskell () isn't information free
2022-06-11 20:24:20 +0200 <[exa]> tomsmeding: haha you sure?
2022-06-11 20:24:30 +0200 <tomsmeding> davean: Vector doesn't care
2022-06-11 20:24:33 +0200 <tomsmeding> [exa]: no
2022-06-11 20:24:39 +0200 <[exa]> I spent quite sime time trying to get a 0-sized struct :D
2022-06-11 20:24:43 +0200 <davean> tomsmeding: *storable* doesn't
2022-06-11 20:24:58 +0200 <davean> tomsmeding: the forcing is critical
2022-06-11 20:25:01 +0200 <tomsmeding> [exa]: as in, that sizeof is correct, but no idea whether that will actually result in constant-size arrays
2022-06-11 20:25:05 +0200 <geekosaur> there's a Vector backed by Storable
2022-06-11 20:25:17 +0200 <tomsmeding> davean: which forcing
2022-06-11 20:25:28 +0200 <tomsmeding> oh, as in, Storable doesn't force but you think it should?
2022-06-11 20:25:37 +0200 <[exa]> maybe it works in C, but in all C++ses I tried the size of empty struct is 1
2022-06-11 20:25:57 +0200 <monochrom> But C++ allows you to hand-code what vector<Unit> does and sidestep the general template.
2022-06-11 20:26:06 +0200 <geekosaur> strictly speaking that Storable definition is wrong because it never forces the value, so it treats _|_ as defined
2022-06-11 20:26:19 +0200 <tomsmeding> [exa]: WAT
2022-06-11 20:26:32 +0200 <tomsmeding> [exa]: compiling as C++ gives sizeof 1, but compiling as C gives sizeof 0
2022-06-11 20:26:36 +0200 <[exa]> yes
2022-06-11 20:26:42 +0200 <tomsmeding> this is the weirdest incompatibility between the two that I've seen in a long while
2022-06-11 20:27:10 +0200 <tomsmeding> geekosaur: right, technically. However I think I would prefer the current definition
2022-06-11 20:27:23 +0200 <[exa]> AFAIK it's because of up/downcasting or something weird that requires RTTI
2022-06-11 20:27:27 +0200 <davean> tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ())
2022-06-11 20:27:30 +0200 <davean> tomsmeding: etc
2022-06-11 20:29:32 +0200 <tomsmeding> [exa]: that _requires RTTI_?
2022-06-11 20:29:47 +0200 <tomsmeding> oh, as in, there should be some place to store some data
2022-06-11 20:29:55 +0200 <tomsmeding> except you can't store anything useful in 1 byte
2022-06-11 20:30:09 +0200 <tomsmeding> (regarding RTTI -- I know bytes are useful in general lol)
2022-06-11 20:30:32 +0200 <[exa]> tomsmeding: yeah, in case someone would to use this as a field in some structure and blablabla C++std blabla, you can't have 2 things at 1 place ever™
2022-06-11 20:30:44 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-06-11 20:30:52 +0200 <tomsmeding> oh hm
2022-06-11 20:31:03 +0200 <tomsmeding> sounds fishy though, union{} exists
2022-06-11 20:31:19 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-11 20:31:27 +0200 <[exa]> I remember deciding to completely forget about the actual reason as soon as I found it on SA
2022-06-11 20:31:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 20:32:15 +0200 <davean> tomsmeding: so its very meaningful that something is or has come from a Data.Vector.Storable
2022-06-11 20:32:44 +0200 <tomsmeding> davean: I'm afraid I'm not completely following
2022-06-11 20:33:06 +0200 <davean> tomsmeding: () in Haskell is a value or a computation\
2022-06-11 20:33:08 +0200 <tomsmeding> the only information in a value of type () is whether it is a bottom, and if so, what bottom it is (the asynchronous error)
2022-06-11 20:33:26 +0200 <tomsmeding> if you put anything else in it, you better ensure _yourself_ that you evaluate it
2022-06-11 20:33:29 +0200 <tomsmeding> in my opinion
2022-06-11 20:33:30 +0200 <davean> tomsmeding: no, it can also be the information about if something is evaluated
2022-06-11 20:33:56 +0200 <tomsmeding> davean: except querying that information forces the evaluation, right?
2022-06-11 20:34:04 +0200 <davean> The *point* of the data A example is that LOOKING at the () enforces an evaluation property
2022-06-11 20:34:11 +0200 <davean> tomsmeding: Thats The Point(tm)
2022-06-11 20:34:17 +0200 <tomsmeding> yes, looking at the () from the deepseq
2022-06-11 20:34:18 +0200 <davean> It tracks the evaluation
2022-06-11 20:34:22 +0200jakalx(~jakalx@base.jakalx.net)
2022-06-11 20:34:33 +0200 <davean> It allows you to - for example - impliment deepseq that doesn't rewalk
2022-06-11 20:34:39 +0200 <davean> Thats a fairly trivial example
2022-06-11 20:34:43 +0200 <tomsmeding> wait what?
2022-06-11 20:35:00 +0200 <davean> () stores if an evaluation *has or has not happened*
2022-06-11 20:35:00 +0200 <tomsmeding> you can't check whether something is a thunk in O(1), right?
2022-06-11 20:35:11 +0200 <tomsmeding> (well, maybe there is some weird ghc internal function for that, but disregarding that)
2022-06-11 20:35:15 +0200 <davean> Don't need that
2022-06-11 20:35:26 +0200 <davean> your deepseq implimentation is "force (normalize A)
2022-06-11 20:35:40 +0200 <tomsmeding> normalize :: A -> A ?
2022-06-11 20:35:42 +0200 <davean> if you've already deepseqed that is O(1)
2022-06-11 20:35:44 +0200 <davean> no
2022-06-11 20:35:49 +0200 <davean> look at my A definition
2022-06-11 20:36:02 +0200 <davean> tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ())
2022-06-11 20:36:03 +0200 <tomsmeding> on *normalizeD you meant maybe?
2022-06-11 20:36:07 +0200 <tomsmeding> *oh
2022-06-11 20:36:12 +0200 <davean> yes, sorry
2022-06-11 20:36:15 +0200 <tomsmeding> right
2022-06-11 20:36:22 +0200 <davean> Usually you'll see this particular one with that cell as "rnf"
2022-06-11 20:36:39 +0200 <tomsmeding> with the invariant on A that the () in 'normalized' depends on the evaluation of 'data'?
2022-06-11 20:36:47 +0200 <tomsmeding> OH
2022-06-11 20:37:05 +0200 <tomsmeding> right, you do what I just said, and then you deepseq the unit instead of the data
2022-06-11 20:37:24 +0200 <davean> You don't need to deep seq it, you just force it, or rnf it
2022-06-11 20:37:31 +0200 <tomsmeding> okay, so you still don't get the _information_ about whether it was evaluated, but you _can_ avoid traversing the data twice
2022-06-11 20:37:39 +0200 <tomsmeding> right, deepseq = seq for unit
2022-06-11 20:37:40 +0200 <davean> it evaluates whatever its existence predicates evaluation of
2022-06-11 20:38:03 +0200 <davean> The information is always "Eventually True"
2022-06-11 20:38:08 +0200 <davean> Or bottom
2022-06-11 20:38:16 +0200 <davean> You *do* get the information
2022-06-11 20:38:34 +0200 <tomsmeding> I consider "getting the information" equivalent to "being able to turn that into a Bool -- already evaluated or not already evaluated"
2022-06-11 20:38:38 +0200 <davean> The information should just be trivial, but it is not true when you go to look at it, its is "eventually true"
2022-06-11 20:39:05 +0200 <davean> tomsmeding: Well consider computational tree logic - True is not the same as Eventually True
2022-06-11 20:39:29 +0200 <davean> and here we aren't guarrenteed true
2022-06-11 20:39:32 +0200 <davean> we get either true or bottom
2022-06-11 20:39:38 +0200 <davean> which is a large portion of the point
2022-06-11 20:40:04 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
2022-06-11 20:40:12 +0200 <tomsmeding> I'm afraid my mind is too classical still for this :p
2022-06-11 20:41:01 +0200 <davean> tomsmeding: well, if you force all of them to put them in your vector, you might cause issues, and if you don't and claim they're all () you might cause issues
2022-06-11 20:41:16 +0200 <davean> tomsmeding: Its very clear that (computation resulting in ()) is not (is ())
2022-06-11 20:41:25 +0200 <davean> you very well could get bottom and that very much is important
2022-06-11 20:41:31 +0200 <tomsmeding> only if you put side effects into your computation using unsafePerformIO
2022-06-11 20:41:37 +0200 <davean> Nope
2022-06-11 20:41:41 +0200 <davean> Incorrect
2022-06-11 20:41:49 +0200 <tomsmeding> otherwise the only difference is resource usage
2022-06-11 20:41:49 +0200 <Bulby[m]> what about undefined?
2022-06-11 20:41:49 +0200 <davean> That is true when pure
2022-06-11 20:41:54 +0200 <davean> tomsmeding: incorrect
2022-06-11 20:41:54 +0200 <tomsmeding> yes, () is pure
2022-06-11 20:42:08 +0200 <tomsmeding> IO () is a vastly different world :p
2022-06-11 20:42:14 +0200 <davean> I'm not talking about IO ()
2022-06-11 20:42:18 +0200 <Bulby[m]> undefined is pure, and defined as bottom, no?
2022-06-11 20:42:23 +0200 <davean> Bulby[m]: correct
2022-06-11 20:42:35 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 20:42:39 +0200 <davean> computations on infinite lists can also be () and non-terminal
2022-06-11 20:42:51 +0200 <davean> And many pure computatiosn error
2022-06-11 20:43:05 +0200 <tomsmeding> agreed
2022-06-11 20:43:08 +0200 <davean> no unsafePerformIO in sight
2022-06-11 20:43:34 +0200 <davean> The value of () can be at least one of (), non-terminal, pure exception
2022-06-11 20:43:43 +0200 <davean> At the *least*, and that its self is a trit
2022-06-11 20:43:48 +0200 <tomsmeding> very few people care about the non-terminal option
2022-06-11 20:43:57 +0200 <tomsmeding> more people care about a possible exception
2022-06-11 20:44:48 +0200 <tomsmeding> in my opinion, if you care about the specific bottom that a computation produces, you should ensure _yourself_ that you evaluate the thing
2022-06-11 20:45:05 +0200 <tomsmeding> I expect stuff like a Storable Vector of () to not evaluate my stuff
2022-06-11 20:45:05 +0200 <davean> tomsmeding: the point is to *not* evaluate it unless you care about it
2022-06-11 20:45:20 +0200 <davean> tomsmeding: () ensures a *property* if you look at it
2022-06-11 20:45:48 +0200gio123(~gio123@94.137.173.75) (Quit: Client closed)
2022-06-11 20:45:55 +0200 <davean> Data.Storable.Vector changes the *semantics* of the code
2022-06-11 20:46:03 +0200 <Bulby[m]> I think `()` usually means side effects and is kinda weird when you are handling it purely
2022-06-11 20:46:17 +0200 <tomsmeding> Data.Vector.Storable changes nothing
2022-06-11 20:46:26 +0200 <tomsmeding> it has an interface, and if you use it, you use the interface
2022-06-11 20:46:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 20:46:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 20:46:26 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 20:46:40 +0200 <tomsmeding> perhaps it didn't have the semantics you _expected_
2022-06-11 20:48:19 +0200jafarlihi(~user@188.253.237.9)
2022-06-11 20:48:25 +0200 <davean> if you want to make that claim, I guess this discussion is going nowhere except a discussion of what the definition of is is
2022-06-11 20:48:29 +0200 <davean> So I'm out
2022-06-11 20:48:57 +0200 <tomsmeding> yes I'm feeling we're talking past each other
2022-06-11 20:48:59 +0200 <tomsmeding> sorry :)
2022-06-11 20:53:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 20:53:58 +0200jafarlihi(~user@188.253.237.9) (Quit: WeeChat 3.5)
2022-06-11 20:56:38 +0200notzmv(~zmv@user/notzmv)
2022-06-11 21:03:20 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-06-11 21:04:56 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-06-11 21:07:59 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 21:08:26 +0200acidjnk_new(~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de)
2022-06-11 21:11:13 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
2022-06-11 21:11:26 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 21:11:32 +0200BusConscious(~martin@ip5f5acfa2.dynamic.kabel-deutschland.de)
2022-06-11 21:14:16 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-06-11 21:14:32 +0200ulvarrefr(~user@185.24.53.152) (Read error: Connection reset by peer)
2022-06-11 21:16:17 +0200caubert(~caubert@136.244.111.235) (Quit: WeeChat 3.5)
2022-06-11 21:16:31 +0200caubert(~caubert@136.244.111.235)
2022-06-11 21:18:18 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
2022-06-11 21:19:50 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 21:20:42 +0200nate3(~nate@98.45.169.16)
2022-06-11 21:22:12 +0200zaquest(~notzaques@5.130.79.72) (Ping timeout: 276 seconds)
2022-06-11 21:22:47 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 240 seconds)
2022-06-11 21:25:29 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 21:25:29 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 21:25:29 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 21:25:44 +0200nate3(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-06-11 21:27:39 +0200gusbicalho(~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377)
2022-06-11 21:28:11 +0200cyphase(~cyphase@user/cyphase)
2022-06-11 21:33:54 +0200ulvarrefr(~user@185.24.53.152)
2022-06-11 21:34:20 +0200zaquest(~notzaques@5.130.79.72)
2022-06-11 21:36:13 +0200shapr(~user@2600:4040:2d31:7100:9163:bb47:6e24:ceed) (Remote host closed the connection)
2022-06-11 21:36:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 21:48:49 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 21:49:47 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-11 21:55:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 21:55:28 +0200DNH(~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Ping timeout: 250 seconds)
2022-06-11 21:55:32 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
2022-06-11 21:56:33 +0200 <Bulby[m]> to write jump operations, Crafting Intepreters wants me to back patch, which doesn't really make sense in haskell
2022-06-11 21:57:41 +0200shapr(~user@2600:4040:2d31:7100:bf17:8a01:f76e:e214)
2022-06-11 21:58:34 +0200 <Rembane> Bulby[m]: Why doesn't it make sense?
2022-06-11 21:58:36 +0200 <Bulby[m]> especially with the Put monad
2022-06-11 21:58:36 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
2022-06-11 21:58:48 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
2022-06-11 21:59:04 +0200 <Bulby[m]> you can't back up with the put monad/edit binary already written
2022-06-11 21:59:45 +0200 <Rembane> Is there a way for you to read what has been written?
2022-06-11 21:59:56 +0200alp(~alp@user/alp) (Ping timeout: 272 seconds)
2022-06-11 22:00:15 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 22:00:15 +0200 <Bulby[m]> not in any sane way
2022-06-11 22:02:52 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Quit: Client closed)
2022-06-11 22:03:06 +0200 <Rembane> Okay, then that makes it harder. I haven't read Crafting Interpreters so I don't know how they would like this to be solved.
2022-06-11 22:03:40 +0200 <geekosaur> the book provides Java examples iirc
2022-06-11 22:03:45 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
2022-06-11 22:03:51 +0200 <geekosaur> Bulby[m] is translating to Haskell
2022-06-11 22:03:57 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-06-11 22:04:04 +0200 <geekosaur> I think I'd do this in 2 passes rather than try to backtrack
2022-06-11 22:04:07 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit)
2022-06-11 22:04:23 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
2022-06-11 22:04:36 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-11 22:04:47 +0200 <Bulby[m]> how would two passes work?
2022-06-11 22:05:03 +0200opow242(~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit)
2022-06-11 22:05:10 +0200 <Rembane> geekosaur: Oh, that explains quite a bit.
2022-06-11 22:05:39 +0200 <geekosaur> actually I'm not sure because I can't see why they'd want you to backpatch anyway
2022-06-11 22:06:09 +0200 <Bulby[m]> https://craftinginterpreters.com/jumping-back-and-forth.html#if-statements
2022-06-11 22:06:10 +0200 <geekosaur> unless it's adding something like a label / jump landing point, and the point of the first patch would be to precompute those and insert them into whatever you're serializing
2022-06-11 22:06:14 +0200 <Bulby[m]> for jumping
2022-06-11 22:06:57 +0200 <Bulby[m]> then for the first pass, what's the point of serializing to binary?
2022-06-11 22:07:20 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
2022-06-11 22:07:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 22:07:35 +0200 <Bulby[m]> oh, I guess it has mixed types
2022-06-11 22:07:36 +0200 <geekosaur> you don't serialize during that patch except to compute how many bytes are to be skipped
2022-06-11 22:08:24 +0200 <geekosaur> then you insert that into the AST, then you have it when serializing the AST. although this looks like it's generating code during parsing, which, well, this is why you don't do that
2022-06-11 22:08:47 +0200 <Bulby[m]> I am not generating during parsing
2022-06-11 22:08:48 +0200 <geekosaur> (IIRC [exa] described PHP doing this in reearly versions and discovering the hard way why it's a bad move)
2022-06-11 22:08:58 +0200Midjak(~Midjak@82.66.147.146) (Quit: Leaving)
2022-06-11 22:09:09 +0200 <Bulby[m]> I am reusing my AST parser
2022-06-11 22:09:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 22:10:52 +0200 <geekosaur> okay, so you're not blindly duplicating their code, which is generating during parsing (and is why they need to backpatch)
2022-06-11 22:11:13 +0200 <Bulby[m]> I'm traversing the AST
2022-06-11 22:11:18 +0200 <Bulby[m]> not "traversing"
2022-06-11 22:11:24 +0200 <Bulby[m]> you know what I mean
2022-06-11 22:11:48 +0200 <Rembane> Compiling?
2022-06-11 22:12:15 +0200 <geekosaur> in a full development system you output a label at the target, output a reference to it at the point it's needed as a relocation entry, and let the linker resolve it
2022-06-11 22:12:18 +0200 <Bulby[m]> yes
2022-06-11 22:14:10 +0200 <Bulby[m]> a fun idea could be just `runPut` what I want to jump over, getting length of bytestring, then directly using `putLazyByteString` (which doesn't emit a length)
2022-06-11 22:14:47 +0200 <geekosaur> right, that's basically my first suggestion
2022-06-11 22:15:30 +0200 <Bulby[m]> ok, i'll do that then.
2022-06-11 22:15:30 +0200 <Bulby[m]> it's probably unoptimized but w/e
2022-06-11 22:15:34 +0200 <geekosaur> needs to be a little more clever than that because it may traverse other such relocations but at that point it doesn't care about them, only their lengths
2022-06-11 22:15:47 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-11 22:15:58 +0200Vajb(~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305)
2022-06-11 22:16:05 +0200 <Bulby[m]> if it traverses them then it will do the same thing
2022-06-11 22:16:27 +0200 <Bulby[m]> because i'd be running a recursive call
2022-06-11 22:16:29 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 22:16:30 +0200 <geekosaur> not the first time since it's not outputting them at that point
2022-06-11 22:16:54 +0200 <Bulby[m]> what?
2022-06-11 22:16:58 +0200 <Bulby[m]> i'm confused
2022-06-11 22:17:50 +0200 <geekosaur> if (expr) { then_part } else { something; if (expr2) { ... } else { ... }; something_else; } -- while generating the size of the else part you don't need to do generation of the contained if/else
2022-06-11 22:17:51 +0200alp(~alp@user/alp)
2022-06-11 22:17:58 +0200 <geekosaur> you only need that later.
2022-06-11 22:18:43 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-06-11 22:19:03 +0200 <Bulby[m]> why not? it would contain a jump expr as well, and I could manage it in just one pass
2022-06-11 22:19:09 +0200 <geekosaur> because you'll be throwing away the result while getting its length, it's a waste of time doing the whole size/fillin there
2022-06-11 22:19:13 +0200nicbk(~nicbk@user/nicbk)
2022-06-11 22:19:34 +0200 <geekosaur> unless you provide a way to return all the fillins for nested jumps
2022-06-11 22:19:36 +0200 <Bulby[m]> I am not throwing away the result, I said I would use `putLazyByteString`
2022-06-11 22:20:08 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2022-06-11 22:20:24 +0200dfg(~dfg@user/dfg) (Quit: I hate quit messages.)
2022-06-11 22:21:33 +0200dfg(dfg@dfg.rocks)
2022-06-11 22:21:33 +0200dfg(dfg@dfg.rocks) (Changing host)
2022-06-11 22:21:33 +0200dfg(dfg@user/dfg)
2022-06-11 22:22:03 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-11 22:22:03 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-11 22:22:03 +0200wroathe(~wroathe@user/wroathe)
2022-06-11 22:24:15 +0200pavonia(~user@user/siracusa)
2022-06-11 22:24:33 +0200caubert(~caubert@136.244.111.235) (Changing host)
2022-06-11 22:24:33 +0200caubert(~caubert@user/caubert)
2022-06-11 22:28:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-11 22:35:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-06-11 22:45:44 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 248 seconds)
2022-06-11 22:46:42 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-11 22:49:14 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
2022-06-11 22:50:00 +0200shriekingnoise(~shrieking@201.231.16.156) (Ping timeout: 248 seconds)
2022-06-11 22:50:36 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-11 22:54:14 +0200 <unit73e> after some hiatus I'll continue my SDL engine/tutorial saga. I think it should be possible to make something completely declarative but I'm being super optimistic about it.
2022-06-11 22:54:24 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 22:54:28 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
2022-06-11 22:55:00 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 22:59:10 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 250 seconds)
2022-06-11 23:01:28 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-11 23:07:40 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
2022-06-11 23:08:36 +0200machinedgod(~machinedg@66.244.246.252)
2022-06-11 23:13:48 +0200gusbicalho(~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377) (Quit: Client closed)
2022-06-11 23:23:19 +0200zincy(~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
2022-06-11 23:33:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-06-11 23:34:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-11 23:37:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-11 23:49:00 +0200acidjnk_new(~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-06-11 23:49:21 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-06-11 23:49:59 +0200ec(~ec@gateway/tor-sasl/ec)
2022-06-11 23:53:00 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-06-11 23:56:45 +0200bilegeek(~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
2022-06-11 23:57:11 +0200bilegeek(~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
2022-06-11 23:57:20 +0200cyphase(~cyphase@user/cyphase)