2023/07/11

2023-07-11 00:01:26 +0200boxscape_boxscape
2023-07-11 00:01:41 +0200boxscape(~boxscape_@81.191.27.107) (Changing host)
2023-07-11 00:01:41 +0200boxscape(~boxscape_@user/boxscape)
2023-07-11 00:01:56 +0200jonathan(~jonathan@c83-252-3-92.bredband.tele2.se) (Ping timeout: 252 seconds)
2023-07-11 00:02:16 +0200oneeyedalien(~oneeyedal@user/oneeyedalien)
2023-07-11 00:04:23 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Client Quit)
2023-07-11 00:04:38 +0200oneeyedalien(~oneeyedal@user/oneeyedalien)
2023-07-11 00:11:42 +0200 <jackdk> Hackage might not be trying to build your package with the newer GHC?
2023-07-11 00:12:37 +0200 <boxscape> jackdk right my question is partially whether I should be doing something to change that or if that's out of my control
2023-07-11 00:13:21 +0200 <jackdk> I don't know. If you can admit earlier GHCs then you can loosen the base lower bound but that's all I got
2023-07-11 00:13:44 +0200 <boxscape> yeah can't unfortunately because it relies on plugin features I added in GHC 9.4
2023-07-11 00:16:10 +0200nick3(~nick@2600:100d:b16c:65e0:b00a:235b:2088:f41c) (Ping timeout: 260 seconds)
2023-07-11 00:18:03 +0200 <geekosaur> my guess is you're out of luck
2023-07-11 00:18:47 +0200 <geekosaur> someone needs to sit down and fix hackage-matrix, but everyone's afraid to touch it 🙂
2023-07-11 00:21:07 +0200 <boxscape> oh well, I can live with this for now I guess
2023-07-11 00:22:51 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-11 00:25:35 +0200 <geekosaur> (wow, hasn't been touched since ghc 8.4, /me suspects this will require some work)
2023-07-11 00:25:58 +0200 <geekosaur> (yes, I am silly enough to have cloned it and tried to build)
2023-07-11 00:25:59 +0200acidjnk(~acidjnk@p200300d6e7072f97cd043d78b3570e0c.dip0.t-ipconnect.de)
2023-07-11 00:26:55 +0200Guest6127(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2023-07-11 00:27:28 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-07-11 00:29:07 +0200nick3(~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730)
2023-07-11 00:30:26 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
2023-07-11 00:30:47 +0200dcoutts(~duncan@212.187.244.66)
2023-07-11 00:31:58 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 00:32:29 +0200dmgk(~dmgk@user/dmgk)
2023-07-11 00:36:16 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 00:37:14 +0200mechap(~mechap@user/mechap)
2023-07-11 00:39:29 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Konversation terminated!)
2023-07-11 00:42:05 +0200wroathe(~wroathe@user/wroathe)
2023-07-11 00:42:48 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-07-11 00:44:35 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-11 00:45:25 +0200nick3(~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730) (Ping timeout: 240 seconds)
2023-07-11 00:50:18 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
2023-07-11 00:50:37 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
2023-07-11 00:54:20 +0200dcoutts_(~duncan@79.137.104.194)
2023-07-11 00:55:51 +0200dcoutts(~duncan@212.187.244.66) (Ping timeout: 245 seconds)
2023-07-11 00:57:27 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2023-07-11 00:58:13 +0200 <bratwurst> anyone willing to give some guidance on reactive-banana?
2023-07-11 00:58:24 +0200 <bratwurst> i have code at https://pastebin.com/NHbe46jb
2023-07-11 00:58:52 +0200YuutaW(~YuutaW@2404:f4c0:f9c3:502::100:17b7) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-11 00:59:08 +0200 <bratwurst> my first question is with kbw definition
2023-07-11 00:59:15 +0200YuutaW(~YuutaW@mail.yuuta.moe)
2023-07-11 00:59:42 +0200 <bratwurst> i get that doodleB is the behavior.
2023-07-11 00:59:51 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 01:00:47 +0200 <bratwurst> so should 'kbFocused' actually be taking something from 'changes'?
2023-07-11 01:01:23 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-07-11 01:01:29 +0200 <bratwurst> i should end up with something of type 'Event ?'
2023-07-11 01:01:43 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-11 01:01:57 +0200wroathe(~wroathe@user/wroathe) (Read error: Connection reset by peer)
2023-07-11 01:01:59 +0200 <bratwurst> because every time doodle changes i want to see if it was a kb focus change
2023-07-11 01:02:02 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 01:02:06 +0200wroathe(~wroathe@user/wroathe)
2023-07-11 01:04:06 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
2023-07-11 01:04:24 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
2023-07-11 01:04:47 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-11 01:04:48 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-07-11 01:05:56 +0200gurkenglas(~gurkengla@dynamic-046-114-179-181.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-07-11 01:07:04 +0200acidjnk(~acidjnk@p200300d6e7072f97cd043d78b3570e0c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-07-11 01:07:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 01:09:36 +0200gurkenglas(~gurkengla@2.247.242.115)
2023-07-11 01:09:38 +0200 <jackdk> Please try and use fewer/longer messages - you've pushed everything else off the screen. I don't know what reactive-banana<->sdl binding you're using. I haven't done FRP for a while but you almost never want to construct `Event`/`Behavior` from scratch unless you're binding to something outside your little FRP world. You do that with `fromAddHandler` to make a `MomentIO (Event a)` or `fromChanges` to make a `MomentIO (Behavior a)`
2023-07-11 01:10:40 +0200gurkenglas(~gurkengla@2.247.242.115) (Read error: Connection reset by peer)
2023-07-11 01:11:02 +0200greentail(~greentail@2804:214:8110:943f:f26e:d89b:2b54:3cc1) (Ping timeout: 245 seconds)
2023-07-11 01:11:33 +0200 <jackdk> I'd also recommend the links I've collected at http://jackkelly.name/wiki/haskell/learning.html#functional-reactive-programming . Even if you're not going all the way to `reflex`, the workshop is great for getting around the abstractions, and you can bring back the idea of a `Dynamic a = (Event a, Behavior a)` where the event fires iff the behavior changes. I'd build those with `mapAccum` in bananaland.
2023-07-11 01:14:00 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-11 01:17:59 +0200 <EvanR> don't try to make e.g. a sine wave behavior and then fire an event every time it changes
2023-07-11 01:18:28 +0200 <EvanR> it voids the warranty
2023-07-11 01:18:52 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-07-11 01:19:01 +0200 <ski> % let emptyList = Debug.Trace.trace "emptyList" []
2023-07-11 01:19:01 +0200 <yahb2> <no output>
2023-07-11 01:19:05 +0200 <ski> % emptyList
2023-07-11 01:19:05 +0200 <yahb2> emptyList ; []
2023-07-11 01:19:07 +0200 <ski> % emptyList :: [Bool]
2023-07-11 01:19:07 +0200 <yahb2> []
2023-07-11 01:19:50 +0200 <bratwurst> reason i'm finding this confusing is cause when i write something "naturally" the api seems to expect something different
2023-07-11 01:20:14 +0200 <ski> bratwurst : hm, why `DatatypeContexts' ?
2023-07-11 01:20:15 +0200 <EvanR> sounds like a bug in the naturally part
2023-07-11 01:21:00 +0200 <bratwurst> ski: oh sorry. i had it as a class def but didn't think i needed overloading so i meant to change it to an existential type
2023-07-11 01:21:17 +0200 <bratwurst> EvanR: i would agree :)
2023-07-11 01:21:40 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
2023-07-11 01:21:53 +0200 <bratwurst> for example, i don't get how kbFocused becomes a 'Behavior'
2023-07-11 01:21:55 +0200 <ski> it's generally agreed that `DatatypeContexts' doesn't do what you expect it to do, or at least that what it does doesn't tend to be that useful
2023-07-11 01:21:59 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
2023-07-11 01:23:04 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-11 01:24:59 +0200 <ski> bratwurst : do note that `exists c. (c,c -> ..c..)' is equivalent to `nu c. ..c..' (greatest fixed point)
2023-07-11 01:25:43 +0200 <bratwurst> ski: i will probably end up discarding my widget definition once i understand rb better
2023-07-11 01:25:48 +0200 <jackdk> Remember that `Behavior` is an `Applicative`, so you can lift pure values into it without fussing around with IORefs or whatever.
2023-07-11 01:27:00 +0200 <ski> by which i mean to point out that `data Widget b = forall c. MkWidget Box c (Key -> c -> (b,c)) (Mouse -> c -> (b,c))' (note i omitted `Render c => ' after `forall c. ', since i don't know how `Render' is defined) is equivalent to `data Widget b = MkWidget Box (Key -> (b,Widget b)) (Mouse -> (b,Widget b))'
2023-07-11 01:27:29 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-07-11 01:28:29 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 01:30:00 +0200 <ski> there seems to be no `writeIORef', yea
2023-07-11 01:30:57 +0200 <ski> i imagine `type DoodleIO = IORef Doodle' as well as (correction) `kbFocused :: DoodleIO -> IO Nick'
2023-07-11 01:32:04 +0200 <bratwurst> ski: yes you have that right. sorry not everything is there because i'm still trying to wrap my head around what i'm doing wrong
2023-07-11 01:32:59 +0200ski's not really that familiar with `reactive-banana', fwiw
2023-07-11 01:33:39 +0200 <bratwurst> yeah there's not much on hackage to go by either.
2023-07-11 01:34:09 +0200dcoutts(~duncan@79.137.104.194)
2023-07-11 01:34:26 +0200 <ski> .. oh, `Widget' was a class, with `Render' as superclass, yesterday
2023-07-11 01:34:30 +0200ski'd forgotten
2023-07-11 01:35:25 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 01:35:26 +0200dcoutts_(~duncan@79.137.104.194) (Ping timeout: 245 seconds)
2023-07-11 01:35:27 +0200 <ski> anyway, `Widget Key AppEvent WidgetInternalState' for `Widget a b c' sounds like you'd want to keep `c' private (existential)
2023-07-11 01:35:42 +0200 <bratwurst> in my lib, 'class Render a' has one method 'render :: Sz -> a -> Picture'
2023-07-11 01:36:04 +0200 <bratwurst> 'Widget' is for things that have a size, a position and can be drawn
2023-07-11 01:36:49 +0200 <bratwurst> ski: it seems like i will be replacing my 'Widget' definition with behaviors and mapAccumB
2023-07-11 01:37:07 +0200 <bratwurst> i'm just not sure how
2023-07-11 01:37:08 +0200 <ski> ok, good. so `data Widget b = forall c. MkWidget Box c (Sz -> c -> Picture) (Key -> c -> (b,c)) (Mouse -> c -> (b,c))' then corresponds to `data Widget b = MkWidget Box (Sz -> Picture) (Key -> (b,Widget b)) (Mouse -> (b,Widget b))''
2023-07-11 01:38:05 +0200 <bratwurst> what would be the name of how you're transforming this?
2023-07-11 01:38:23 +0200 <ski> <ski> bratwurst : do note that `exists c. (c,c -> ..c..)' is equivalent to `nu c. ..c..' (greatest fixed point)
2023-07-11 01:38:53 +0200 <bratwurst> lol. i don't know what 'nu' is. what do i look up?
2023-07-11 01:39:09 +0200 <bratwurst> so nu is a greek symbol?
2023-07-11 01:39:21 +0200 <bratwurst> defined to represent the greatest fixed point
2023-07-11 01:39:23 +0200 <ski> hm .. i guess i sometimes call this (in the reverse direction), the "State encoding" (cf. "Church encoding")
2023-07-11 01:40:26 +0200 <ski> ("Church encoding" being how `forall r. (..r.. -> r) -> r' is equivalent to `mu r. ..r..')
2023-07-11 01:40:36 +0200 <ski> yes, greek symbols
2023-07-11 01:40:55 +0200 <ski> consider
2023-07-11 01:41:07 +0200 <ski> data Nat = Zero | Succ Nat
2023-07-11 01:41:27 +0200 <ski> we can reformulate/refactor this as/to
2023-07-11 01:41:55 +0200 <ski> newtype Nat = MkNat (Either () Nat)
2023-07-11 01:42:07 +0200 <ski> (or `Maybe' in place of `Either ()', if you prefer)
2023-07-11 01:42:20 +0200 <ski> bratwurst : you see this ?
2023-07-11 01:44:03 +0200 <bratwurst> 'Left ()' would terminate things and there would be as many wraps as <n>
2023-07-11 01:44:11 +0200 <ski> yes
2023-07-11 01:44:26 +0200 <ski> in more "algebraic" notation, we could write the above as
2023-07-11 01:44:30 +0200 <ski> Nat = 1 + Nat
2023-07-11 01:45:32 +0200 <jackdk> bratwurst: Possibly useful to you: a small example which reads stdin and prints to stdout https://www.irccloud.com/pastebin/4vKg7tBe/BananaLines.hs
2023-07-11 01:45:55 +0200dcoutts(~duncan@79.137.104.194) (Ping timeout: 240 seconds)
2023-07-11 01:46:57 +0200 <ski> (replacing `()' (the "unit" type, which has one (total / non-partial) inhabitant) with `1', and replacing `Either t u' (the "sum" type, which has `m + n' inhabitants, if `t' has `m' inhabitants and `u' has `n') with `t + u')
2023-07-11 01:47:47 +0200 <ski> anyway, the problem now is that the *equation* `Nat = 1 + Nat' (in the unknown `Nat') has more than one solution
2023-07-11 01:47:52 +0200mauke_(~mauke@user/mauke)
2023-07-11 01:47:58 +0200ijqq_(uid603979@id-603979.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 01:49:05 +0200 <ski> more generally, we have an equation of the form `t = F t', where `t' is the unknown/sought, and `F' is some type function. this is a "fixed point equation", because we're asking for an input (type) `t' to pass to `F', that gives the same `t' back as output (type)
2023-07-11 01:49:30 +0200mauke(~mauke@user/mauke) (Ping timeout: 260 seconds)
2023-07-11 01:49:30 +0200mauke_mauke
2023-07-11 01:50:09 +0200 <bratwurst> ok. makes sense so far
2023-07-11 01:50:30 +0200 <ski> anyway, the *least* fixed point solution `t' for `t = 1 + t' is `t = Nat', for our usual intended notion of `Nat' ((finite !) natural numbers). the least fixed point is written `mu t. 1 + t'
2023-07-11 01:51:43 +0200 <ski> the *greatest* fixed point solution `t' for `t = 1 + t' would be a notion of "(extended) natural numbers" that also contains an "infinity", namely what you get by `inf = Succ inf' / `inf = MkNat (Right inf)' in Haskell .. it's infinitely deep, never stops
2023-07-11 01:51:59 +0200 <ski> the greatest fixed point is written `nu t. 1 + t'
2023-07-11 01:52:25 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-11 01:52:48 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-07-11 01:53:18 +0200 <ski> because Haskell is non-strict, we actually get the greatest fixed-point solution, with `data Nat = Zero | Succ Nat' (or the `newtype' variant), since we can define `int = Succ inf' (and we can compute with it)
2023-07-11 01:53:46 +0200 <bratwurst> i think i get what you're saying now. because 'c' is a parameter to everything in my type it's "not there"
2023-07-11 01:53:55 +0200 <ski> (well, it's more complicated in Haskell, because you also have "bottom" values, like `_|_',`Succ _|_',`Succ (Succ _|_)',.. in `Nat' ..)
2023-07-11 01:55:38 +0200 <ski> anyway, *often* we really *intend* the *least* fixed point solution (the "finitely deep data structures, wrt some data type recursion"), rather than the *greatest* fixed point solution (the "potentially infinitely deep data structures / processes, wrt some data type recursion") .. so we can *pretend* that the recursive type we have (abstractly) is of the form `mu r. ..r..'
2023-07-11 01:56:17 +0200 <ski> anyway, you should be able to convince yourself that `[a] = mu r. 1 + a * r'
2023-07-11 01:56:51 +0200 <ski> however, when one's doing e.g. "OO"-like things, usually one wants the greatest fixed point version
2023-07-11 01:56:58 +0200 <ski> simplest non-trivial example is probably
2023-07-11 01:57:14 +0200 <ski> data Stream a = MkStream {head :: a,tail :: Stream a}
2023-07-11 01:57:20 +0200 <ski> clearly, the corresponding equation here is
2023-07-11 01:57:28 +0200 <ski> Stream a = a * Stream a
2023-07-11 01:58:19 +0200 <ski> but if we only intend *finitely* deep values, then this type would be *empty* (as it would be in a strict programming language, like e.g. SML,OCaml,F# ..)
2023-07-11 01:58:31 +0200 <ski> so, in this case, we really mean `Stream a = nu s. a * s'
2023-07-11 01:59:20 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-11 01:59:46 +0200 <ski> we can send a `head' message to a "stream object", and it'll tell us its current element value. and we can send a `tail' message to it, and it'll generate a new object state for us (usually traditional OO would use mutation of the original object here, but if we instead return a clone with some private state updated, this is what we get)
2023-07-11 02:00:01 +0200 <ski> bratwurst : makes sense, still ?
2023-07-11 02:01:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-11 02:01:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-11 02:01:56 +0200wroathe(~wroathe@user/wroathe)
2023-07-11 02:05:42 +0200 <mauke> # let rec x = { head = 0; tail = x };;
2023-07-11 02:05:42 +0200 <mauke> val x : int stream = {head = 0; tail = <cycle>}
2023-07-11 02:06:26 +0200 <bratwurst> ok 'nu s. a * s' means we're looking for the gfp of the equation 's = a * s'. 'head' would return the 'a', while 'tail' would return the 's'?
2023-07-11 02:06:51 +0200 <ski> hah, nice. *nod*, i was forgetting recursion through constructors, in OCaml
2023-07-11 02:06:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 02:07:00 +0200 <ski> yes, bratwurst
2023-07-11 02:07:24 +0200 <mauke> const struct stream x = { .head = 0, .tail = &x };
2023-07-11 02:08:03 +0200 <ski> that's a nice one
2023-07-11 02:08:56 +0200johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-07-11 02:09:29 +0200slack1256(~slack1256@186.11.22.119) (Ping timeout: 246 seconds)
2023-07-11 02:11:34 +0200 <ski> bratwurst : anyway, consider `data Widget b = forall c. MkWidget {box :: Box,thing :: c,render :: Sz -> c -> Picture,handleKey :: Key -> c -> (b,c),handleMouse :: Mouse -> c -> (b,c)}', and you have some value `myWidget = MkWidget {box = myBox,thing = myThing,render = thingRender,handleKey = myHandleKey,handleMouse = myHandleMous}
2023-07-11 02:12:30 +0200 <mauke> myHandleMous, in the tradition of creat()
2023-07-11 02:14:15 +0200 <ski> `myThing' in `myWidget' has type `c', which is hidden/forgotten/abstract/opaque/skolem, the only thing you can do with it is pass it to `thingRender',`myHandleKey',`myHandleMous'
2023-07-11 02:14:19 +0200 <EvanR> ski, is there a fixed point between Nat (least) and Nat + infinitenumber (greatest)
2023-07-11 02:14:20 +0200maukeconsiders
2023-07-11 02:17:12 +0200 <mauke> the c is never consumed fully. the only thing you're getting out of it is basically an infinite stream of b's
2023-07-11 02:17:16 +0200 <ski> that is, we could instead define `data Widget b = MkWidget {box :: Box,render :: Sz -> Picture,handleKey :: Key -> (b,c),handleMouse :: Mouse -> (b,c)}', and the version of the value where the methods have been pre-applied to `myThing' is now `myWidget = MkWidget {box = myBox,render = \sz -> thingRender sz myThing,handleKey = \k -> myHandleKey k myThing,handleMouse = \m -> myHandleMous m myThing}'
2023-07-11 02:18:30 +0200 <mauke> that looks wrong
2023-07-11 02:18:54 +0200 <mauke> where is c bound?
2023-07-11 02:19:09 +0200 <ski> yea, should be `Widget b' instead of `c', in type signatures of `handleKey' and `handleMouse'
2023-07-11 02:23:40 +0200 <ski> EvanR : you probably can't constructively point at any
2023-07-11 02:29:21 +0200 <EvanR> assuming someone gives you a "missing link" datatype, what kind of shenanigans would result xD
2023-07-11 02:29:28 +0200 <EvanR> if construct Void you win
2023-07-11 02:32:59 +0200 <ski> "missing link" ?
2023-07-11 02:39:11 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 245 seconds)
2023-07-11 02:41:21 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-11 02:50:29 +0200 <EvanR> an inbetweener
2023-07-11 02:50:36 +0200phma(phma@2001:5b0:211f:7128:686c:a14f:dc50:817d) (Read error: Connection reset by peer)
2023-07-11 02:50:51 +0200 <ski> oh, an included middle
2023-07-11 02:51:03 +0200 <EvanR> basically what would even mean to have such a type
2023-07-11 02:51:04 +0200phma(~phma@host-67-44-208-125.hnremote.net)
2023-07-11 02:52:48 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 02:55:18 +0200notzmv(~zmv@user/notzmv)
2023-07-11 03:03:02 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-07-11 03:04:56 +0200aforemny(~aforemny@2001:9e8:6cd3:c300:5cdf:9fe7:4b13:9351)
2023-07-11 03:05:16 +0200aforemny_(~aforemny@i59F516C7.versanet.de) (Ping timeout: 252 seconds)
2023-07-11 03:06:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2023-07-11 03:06:48 +0200falafel(~falafel@2603-7000-a700-8710-f5d5-ad04-474a-6450.res6.spectrum.com)
2023-07-11 03:08:04 +0200johnw(~johnw@69.62.242.138)
2023-07-11 03:10:21 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 03:10:42 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-07-11 03:12:20 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-11 03:15:01 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 03:15:02 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-11 03:16:49 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-11 03:17:38 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-07-11 03:19:21 +0200lainon(~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-07-11 03:23:36 +0200 <probie> perhaps a silly question, but does anyone have any practical uses of `Yoneda`? It just seems less useful than `Coyoneda`. In a world without typeclasses, I could see myself wanting it, but in Haskell it just doesn't seem useful to me
2023-07-11 03:26:49 +0200tabemann(~tabemann@2600:1700:7990:24e0:8a68:ec61:bce2:eeda) (Read error: Connection reset by peer)
2023-07-11 03:27:06 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-11 03:33:59 +0200tabemann(~tabemann@2600:1700:7990:24e0:fde3:7ca7:a0b6:2269)
2023-07-11 03:36:25 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
2023-07-11 03:40:35 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-11 03:40:50 +0200 <c_wraith> well, Coyoneda is a lot more obvious. Its Functor instance does a very obviously useful thing.
2023-07-11 03:43:11 +0200 <Clinton[m]> Is there a version of MonadReader that doesn't have the functional dependency? (i.e. so I can have two readers in the same monad stack)
2023-07-11 03:43:27 +0200 <Clinton[m]> I know this would mean being more explicit about the type of ask but I'm okay with that.
2023-07-11 03:44:08 +0200 <probie> (unhelpful advice) Move to your favourite effect system?
2023-07-11 03:44:54 +0200 <Clinton[m]> probie: haha yeah I probably should... not something I'm going to get done this afternoon unfortunately
2023-07-11 03:45:10 +0200 <c_wraith> Clinton[m]: you can import ReaderT from transformers instead of mtl. Then there's no MonadReader class at all
2023-07-11 03:45:28 +0200 <Clinton[m]> probie: really starting to see some issues with MTL
2023-07-11 03:45:42 +0200ystael(~ystael@user/ystael) (Ping timeout: 260 seconds)
2023-07-11 03:46:29 +0200 <Clinton[m]> c_wraith: does that mean I'm going to have to hard code the particular monad my functions operator on and manually poke down the monad stack with lift?
2023-07-11 03:47:48 +0200 <c_wraith> It means you need to know what layer each effect is on, and use the correct number of lifts. amusingly you don't care what's on the levels you don't interact with.
2023-07-11 03:48:37 +0200 <probie> I think the normal thing to do in mtl if you want `ReaderT Foo (ReaderT Bar m) a` is to give up and write `ReaderT (Foo, Bar) m a` (probably with an actual datatype instead of a tuple)
2023-07-11 03:48:46 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
2023-07-11 03:48:48 +0200Nosrep(~Nosrep@user/nosrep)
2023-07-11 03:50:04 +0200 <jackdk> and then use your choice of classy lenses or generic-lens or whatever to pull out the specific bits you care about in each context. See also the gwils talk "Next Level MTL" https://www.youtube.com/watch?v=GZPup5Iuaqw
2023-07-11 03:51:55 +0200 <c_wraith> Ultimately I don't think ad-hoc composition of layers is very useful. I see value in being able to decorate a value in extra effects locally, but I don't see much value in aggregating effect requirements to satisfy at a global entry point.
2023-07-11 03:56:47 +0200 <probie> Am I going crazy, or instead of requiring `pure :: a -> f a` could we have chosen `unit :: f ()`?
2023-07-11 03:58:05 +0200 <c_wraith> you could, but It just means you're going to rewrite pure pretty quickly to use it instead of fmap (const x) unit
2023-07-11 03:58:28 +0200 <boxscape> probie search for "Monoidal": https://wiki.haskell.org/Typeclassopedia
2023-07-11 03:58:46 +0200 <c_wraith> Well. Or x <$ unit, but no one knows those operators. :P
2023-07-11 04:00:54 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-07-11 04:01:58 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-11 04:02:37 +0200 <SrPx> https://github.com/VictorTaelin/Interaction-Type-Theory
2023-07-11 04:06:25 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2023-07-11 04:12:01 +0200meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 04:12:56 +0200td_(~td@i53870925.versanet.de) (Ping timeout: 245 seconds)
2023-07-11 04:14:52 +0200td_(~td@i5387091E.versanet.de)
2023-07-11 04:15:26 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-11 04:18:03 +0200 <EvanR> probie, unit :: Applicative f => f (), pair :: Applicative f => f a -> f b -> f (a,b)
2023-07-11 04:20:23 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
2023-07-11 04:27:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-07-11 04:27:06 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-07-11 04:27:07 +0200finn_elijaFinnElija
2023-07-11 04:27:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-07-11 04:29:11 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com)
2023-07-11 04:33:08 +0200dcoutts(~duncan@79.137.104.194)
2023-07-11 04:36:09 +0200Inst(~Inst@2601:6c4:4081:2fc0:ba:e9a2:9797:91e4)
2023-07-11 04:37:20 +0200elred(~root@45.84.139.171) (Quit: leaving)
2023-07-11 04:38:21 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 04:39:22 +0200 <bratwurst> ok i put my code up to https://github.com/AirMover/doodle-gui
2023-07-11 04:39:59 +0200 <bratwurst> it types except for the draw function, which im reworking, and the runDoodle, which has been put on hold
2023-07-11 04:40:18 +0200 <bratwurst> anyways i put it up cause i want help with tomorrows question
2023-07-11 04:40:20 +0200Inst(~Inst@2601:6c4:4081:2fc0:ba:e9a2:9797:91e4) (Remote host closed the connection)
2023-07-11 04:40:31 +0200 <bratwurst> how much are people here familiar with diagrams?
2023-07-11 04:40:40 +0200Inst(~Inst@2601:6c4:4081:2fc0:ba:e9a2:9797:91e4)
2023-07-11 04:40:44 +0200 <bratwurst> i want to use diagrams to make guis
2023-07-11 04:41:38 +0200m21it(~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Ping timeout: 246 seconds)
2023-07-11 04:43:01 +0200 <bratwurst> so basically my question is how i can reuse diagrams's layout combinators as gui combinators? know what i mean?
2023-07-11 04:43:46 +0200 <bratwurst> i'm trying to think of a way to "mark" diagrams as reactive ones
2023-07-11 04:44:00 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 04:45:18 +0200 <bratwurst> absent advice i will do the simple approach. i will just make a copy of its layout api
2023-07-11 04:48:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
2023-07-11 04:48:40 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2023-07-11 04:48:50 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 04:51:56 +0200Claro(~claro@user/Claro)
2023-07-11 04:52:14 +0200 <bratwurst> or maybe i will just separate the relevant part of diagrams into it's own package
2023-07-11 04:52:33 +0200 <bratwurst> i like that idea
2023-07-11 04:53:17 +0200 <EvanR> diagrams forms a language whose built-in interpretation is ... graphical diagrams
2023-07-11 04:53:25 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 04:53:48 +0200 <EvanR> presumably you could hack it one way or another for a different interptation, but dunno if it can be much of a GUI
2023-07-11 04:53:49 +0200 <bratwurst> yes but i want those graphics to respond to events
2023-07-11 04:55:16 +0200 <bratwurst> currently i have 'data Layout = Layout [(Box, Nick)]'
2023-07-11 04:55:45 +0200 <bratwurst> i have redone 'Widget' as 'data Widget = forall a. Render a => Widget a'
2023-07-11 04:56:03 +0200 <bratwurst> so a nick is used to retrieve the widget from the map
2023-07-11 04:56:18 +0200 <EvanR> one avenue is to define what a GUI is in a limited sense, and try to make a language for that
2023-07-11 04:56:33 +0200 <bratwurst> each widget has an internal state "the drawing". currently i am using diagrams for the drawing
2023-07-11 04:56:46 +0200 <EvanR> because the default GUI "does anything you can dream of" and that's the realm of IO
2023-07-11 04:57:26 +0200 <bratwurst> is my conversation bothering you? i'm really enjoying trying to squish everything down to a few words
2023-07-11 04:58:19 +0200 <bratwurst> lets do a basic example. a diagram showing some shapes spread around and as you move the mouse around the shapes change color
2023-07-11 04:58:45 +0200 <bratwurst> so not a do-everything lib
2023-07-11 04:58:59 +0200 <EvanR> that sounds a bit too limit but ok
2023-07-11 04:59:03 +0200 <EvanR> limited
2023-07-11 05:00:44 +0200 <bratwurst> so we can use diagrams to do the drawing obvs. and instead of doing gui stuff it just provides an operation that takes something that handles keys or mouse events
2023-07-11 05:01:58 +0200 <bratwurst> so we could provide a function that takes a mouse position and the shape positions and says what event is raised when there is a hit
2023-07-11 05:02:24 +0200 <bratwurst> so the gui is basically a transformer of gui events to app events
2023-07-11 05:02:34 +0200 <bratwurst> and it just so happens to display things along the way
2023-07-11 05:02:49 +0200 <EvanR> diagrams has a thing which lets you query a diagram at a point to get a value
2023-07-11 05:02:56 +0200 <EvanR> should be useful
2023-07-11 05:03:33 +0200 <bratwurst> you're right. that would be hit detection. so instead of bounding boxes i could use the shape itself
2023-07-11 05:04:49 +0200 <bratwurst> so the idea right now is too see how overloaded diagrams operations are
2023-07-11 05:05:25 +0200 <jackdk> probie: follow this logic further and you get: http://jackkelly.name/blog/archives/2020/08/19/abstracting_over_applicative_alternative_divisible_… (though the meat is really in the ed talk it references)
2023-07-11 05:07:12 +0200 <probie> EvanR: the problem with `pair` is it doesn't feel very monoidal due to how tuples work in Haskell
2023-07-11 05:07:26 +0200 <bratwurst> i don't know how to express it. i want to make things that are just like diagrams but which also understand responding to key and mouse events
2023-07-11 05:07:45 +0200 <EvanR> well, unit and pair allow you to implement the normal Applicative API
2023-07-11 05:07:59 +0200 <EvanR> and vice versa, it's an equivalent formulation
2023-07-11 05:08:23 +0200 <EvanR> Monads may not seem very monoidal either but they are in some generalized sense
2023-07-11 05:11:46 +0200greentail(~greentail@2804:214:8110:b833:f96b:ef29:522c:c720)
2023-07-11 05:16:03 +0200 <bratwurst> diagrams is already broken up. i can just use diagrams-core to start with
2023-07-11 05:19:02 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-07-11 05:19:25 +0200JimL_(~quassel@89.162.16.26) (Ping timeout: 240 seconds)
2023-07-11 05:20:51 +0200boxscape(~boxscape_@user/boxscape) (Ping timeout: 245 seconds)
2023-07-11 05:26:45 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
2023-07-11 05:27:06 +0200thegeekinside(~thegeekin@189.217.90.138) (Ping timeout: 245 seconds)
2023-07-11 05:27:45 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 05:29:40 +0200falafel_(~falafel@2603-7000-a700-8710-f5d5-ad04-474a-6450.res6.spectrum.com)
2023-07-11 05:30:43 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-11 05:31:26 +0200falafel(~falafel@2603-7000-a700-8710-f5d5-ad04-474a-6450.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-07-11 05:32:51 +0200JimL(~quassel@89.162.16.26)
2023-07-11 05:37:45 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
2023-07-11 05:39:21 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
2023-07-11 05:39:25 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-07-11 05:41:17 +0200aforemny_(~aforemny@i59F516CB.versanet.de)
2023-07-11 05:42:25 +0200aforemny(~aforemny@2001:9e8:6cd3:c300:5cdf:9fe7:4b13:9351) (Ping timeout: 240 seconds)
2023-07-11 05:47:08 +0200dextaa(~DV@user/dextaa) (Quit: Ping timeout (120 seconds))
2023-07-11 05:48:30 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 05:48:34 +0200dextaa(~DV@user/dextaa)
2023-07-11 05:48:55 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
2023-07-11 05:51:02 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 246 seconds)
2023-07-11 05:51:42 +0200JimL(~quassel@89.162.16.26)
2023-07-11 05:52:21 +0200trev(~trev@user/trev)
2023-07-11 05:57:27 +0200 <Axman6> I have a problem that I feel could be solved with GADTs, but I'm not quite sure how to make it work. I'd like to be able to represent, in a type which models CPU instructions, the restrictions on what sorts of operands they can have: registers, 12 bit immediates, 12 bit shifted immediates, 16 bit immediates, shifted registers etc. I can't figure out what something like ADD Operand Operand Operand ( a = b + c, where c may be imm12, imm12 << n, register) The di
2023-07-11 05:57:27 +0200 <Axman6> fficulty comes from the operands needing to be able to unify with each other
2023-07-11 05:57:55 +0200ryantrinkle(~ryantrink@204.2.90.61) (Ping timeout: 240 seconds)
2023-07-11 06:09:52 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-11 06:10:25 +0200dcoutts(~duncan@79.137.104.194) (Ping timeout: 240 seconds)
2023-07-11 06:17:30 +0200son0p(~ff@181.136.122.143) (Ping timeout: 246 seconds)
2023-07-11 06:18:34 +0200son0p(~ff@181.136.122.143)
2023-07-11 06:20:45 +0200ryantrinkle(~ryantrink@204.2.90.61)
2023-07-11 06:22:56 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-11 06:23:49 +0200greentail(~greentail@2804:214:8110:b833:f96b:ef29:522c:c720) (Changing host)
2023-07-11 06:23:49 +0200greentail(~greentail@user/clcuc)
2023-07-11 06:32:58 +0200 <jackdk> Axman6: have you seen https://hackage.haskell.org/package/x86-64bit-0.4.6.3/docs/CodeGen-X86.html ?
2023-07-11 06:33:41 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 06:47:03 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 06:48:25 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 240 seconds)
2023-07-11 06:50:07 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-07-11 06:52:17 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-11 06:52:33 +0200 <Axman6> that does look helpful, thanks jackdk, as always
2023-07-11 06:52:45 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-11 06:54:11 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 06:54:24 +0200 <Axman6> x86 is all loosey goosey with sizes, damn these CISC shenannigans
2023-07-11 06:56:03 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-11 06:57:12 +0200ripspin(~chatzilla@1.145.170.49)
2023-07-11 06:57:22 +0200 <probie> I like how instruction length varies based on which registers are used
2023-07-11 06:57:42 +0200 <jackdk> Axman6: http://wall.org/~lewis/2013/10/15/asm-monad.html use of monadfix to do jump labels. Possibly handy
2023-07-11 06:58:48 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-07-11 07:01:35 +0200 <Axman6> I'm just looking for a little more type safety, I think the cnostruction of lables ets is fairly well taken care of (though not something i've looked at too closely)
2023-07-11 07:02:15 +0200 <greentail> jackdk, what's wall dot org?
2023-07-11 07:02:47 +0200 <jackdk> greentail: no idea. Found the link to a blog post off an ocharles "24 days of GHC extensions" blog on monadfix
2023-07-11 07:03:20 +0200 <jackdk> greentail: wall.org/~larry makes me think it's the Perl guy and his family
2023-07-11 07:07:43 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 07:09:08 +0200dibblego(~dibblego@116.255.1.157)
2023-07-11 07:09:08 +0200dibblego(~dibblego@116.255.1.157) (Changing host)
2023-07-11 07:09:08 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 07:09:11 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2023-07-11 07:11:38 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-07-11 07:12:25 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 07:12:40 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-11 07:13:24 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 07:15:55 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 240 seconds)
2023-07-11 07:17:55 +0200greentail(~greentail@user/clcuc) (Ping timeout: 240 seconds)
2023-07-11 07:18:50 +0200 <dsal> so much amazonka scrolling by
2023-07-11 07:22:33 +0200 <jackdk> hm?
2023-07-11 07:23:00 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Remote host closed the connection)
2023-07-11 07:24:04 +0200 <jackdk> Where are you seeing this dsal?
2023-07-11 07:24:10 +0200 <dsal> Oh, in my project where I'm updating it.
2023-07-11 07:24:22 +0200 <dsal> Though something changed I don't quite understand yet.
2023-07-11 07:25:01 +0200 <jackdk> Is this 1.6.1 -> 2.0 rc or were you already following git?
2023-07-11 07:25:58 +0200 <dsal> It's an earlier 2.0
2023-07-11 07:26:21 +0200 <dsal> Trying to figure out what this should look like: `inAWS a = (newEnv Discover <&> set #_envRegion Oregon) >>= runResourceT . a`
2023-07-11 07:27:09 +0200 <dsal> Wasn't there a haddock site up somewhere?
2023-07-11 07:27:37 +0200 <jackdk> that's (partially) the auth refactor: https://github.com/brendanhay/amazonka/blob/ac8b11e6069ab2c1db6c5f1f5f25ad3c0f787c46/lib/amazonka/…
2023-07-11 07:27:59 +0200 <jackdk> haddock site https://amazonka.brendanhay.nz/ stopped updating when bazel went away
2023-07-11 07:28:33 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-07-11 07:28:43 +0200 <dsal> Lame. :( Yeah, I did find the thing about `discover` – but I'm not sure where `envRegion` went. That's mentioned there.
2023-07-11 07:31:11 +0200 <jackdk> you want `newEnv discover` (lowercase `d`, because credential chains are now values), and `#region` (if you like generic lens) or `env_region` (if you don't) - record field prefixes went away and all lenses are prefixed for consistency with service bindings
2023-07-11 07:31:20 +0200 <jackdk> Oh, you figured the first half out
2023-07-11 07:33:25 +0200 <dsal> I found examples. :)
2023-07-11 07:34:43 +0200 <dsal> My code compiles.
2023-07-11 07:34:45 +0200dsalships it
2023-07-11 07:35:01 +0200dcoutts(~duncan@79.137.104.194)
2023-07-11 07:36:45 +0200 <jackdk> \o/
2023-07-11 07:37:35 +0200claro__(~claro@102.215.57.111)
2023-07-11 07:37:39 +0200claro__(~claro@102.215.57.111) (Client Quit)
2023-07-11 07:38:13 +0200 <dsal> Thanks for getting this out. I'm pretty excited about it. 2.0's a good deal better.
2023-07-11 07:39:36 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 07:39:42 +0200 <jackdk> You're welcome. I'm pretty excited about getting it over the line too - it closes off a big project and will be good for a lot of people to have it on Hackage proper.
2023-07-11 07:41:40 +0200_claro(~claro@2c0f:2a80:df:6110:1484:b330:aad8:54f7)
2023-07-11 07:41:56 +0200_claro(~claro@2c0f:2a80:df:6110:1484:b330:aad8:54f7) (Changing host)
2023-07-11 07:41:56 +0200_claro(~claro@user/Claro)
2023-07-11 07:41:57 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-11 07:42:19 +0200_claro(~claro@user/Claro) (Client Quit)
2023-07-11 07:44:07 +0200caryhartline(~caryhartl@168.182.58.169)
2023-07-11 07:44:38 +0200 <Axman6> jackdk: I do wish you'd use the same name on irc and girhub, then people would know you're the one to blame^w thank for all this amazonka work
2023-07-11 07:44:45 +0200 <Axman6> github*
2023-07-11 07:46:55 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-07-11 07:48:55 +0200dcoutts(~duncan@79.137.104.194) (Ping timeout: 240 seconds)
2023-07-11 07:50:06 +0200ell(~ellie@user/ellie) (Quit: Leaving)
2023-07-11 07:50:46 +0200iteratee(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2023-07-11 07:51:01 +0200iteratee(~kyle@162.218.222.207)
2023-07-11 07:51:55 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-07-11 07:52:25 +0200ell(~ellie@user/ellie)
2023-07-11 07:53:34 +0200notzmv(~zmv@user/notzmv)
2023-07-11 07:57:06 +0200oneeyedalien(~oneeyedal@user/oneeyedalien)
2023-07-11 08:01:30 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2023-07-11 08:04:55 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2023-07-11 08:04:55 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-07-11 08:05:47 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 246 seconds)
2023-07-11 08:07:38 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-07-11 08:09:20 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-11 08:13:55 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 08:15:45 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-11 08:20:22 +0200ripspin(~chatzilla@1.145.170.49) (Read error: Connection reset by peer)
2023-07-11 08:21:09 +0200jonathan(~jonathan@c83-252-3-92.bredband.tele2.se)
2023-07-11 08:28:08 +0200ell(~ellie@user/ellie) (Quit: Leaving)
2023-07-11 08:28:55 +0200ell(~ellie@user/ellie)
2023-07-11 08:29:01 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-11 08:29:23 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-07-11 08:30:48 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-11 08:31:30 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 250 seconds)
2023-07-11 08:33:25 +0200falafel_(~falafel@2603-7000-a700-8710-f5d5-ad04-474a-6450.res6.spectrum.com) (Ping timeout: 240 seconds)
2023-07-11 08:36:30 +0200theodorc(theodorc@cassarossa.samfundet.no) (Quit: WeeChat 3.0)
2023-07-11 08:36:41 +0200teddyc(theodorc@cassarossa.samfundet.no)
2023-07-11 08:38:59 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 08:42:17 +0200 <Axman6> wtf, why are variables defined in python for loops in scope outside the loop! wtf is this madness!
2023-07-11 08:43:02 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-07-11 08:43:14 +0200dcoutts(~duncan@195.80.64.243)
2023-07-11 08:43:29 +0200 <Axman6> also, why on earth can't you specify the types of the results when a method returns a tuple, this is insanity
2023-07-11 08:44:20 +0200 <Axman6> x: int = f(7) -- totally fine, x; int, y: int = f(7) -- excuse me wtf do you think you're doing???
2023-07-11 08:44:44 +0200caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-07-11 08:46:53 +0200michalz(~michalz@185.246.207.221)
2023-07-11 08:47:47 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
2023-07-11 08:50:53 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-11 08:51:55 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
2023-07-11 08:53:10 +0200Vajb(~Vajb@85-76-167-107-nat.elisa-mobile.fi) (Ping timeout: 250 seconds)
2023-07-11 08:53:41 +0200zeenk(~zeenk@2a02:2f04:a00b:1800::7fe)
2023-07-11 08:55:58 +0200Vajb(~Vajb@2001:999:480:2329:e191:822:3665:ff4f)
2023-07-11 08:56:24 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-07-11 08:56:26 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 08:56:26 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 08:56:26 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-11 08:56:59 +0200dobblegodibblego
2023-07-11 08:57:31 +0200 <monochrom> Python is a scripting language. Definition: A scripting language leaks inner variables into outer scopes. Examples: shell, python.
2023-07-11 08:57:55 +0200 <monochrom> basic. :)
2023-07-11 09:01:46 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
2023-07-11 09:04:24 +0200 <tomsmeding> monochrom: also JS
2023-07-11 09:04:44 +0200 <tomsmeding> with the classic 'var' notation in any case; modern (ES6) let/const are more well-behaved
2023-07-11 09:05:12 +0200 <tomsmeding> furthermore, in JS if you declare a variable with 'var' anywhere in the function, it will be in scope in the _entire_ function, with value 'undefined' before its first assignment
2023-07-11 09:05:35 +0200 <tomsmeding> Axman6: types are not checked in python, they are documentation only
2023-07-11 09:05:50 +0200 <tomsmeding> if you want them checked, you need to use an external type checker like mypy (there are more, I just forget their names)
2023-07-11 09:06:11 +0200 <tomsmeding> oh you're talking about syntax
2023-07-11 09:06:14 +0200 <tomsmeding> ¯\_(ツ)_/¯
2023-07-11 09:07:47 +0200 <tomsmeding> corollary of the JS behaviour is that in JS, 'i = 10; (function() { i = 20; })(); console.log(i)' will print 20, whereas 'i = 10; (function() { i = 20; var i; })(); console.log(i)' will print 10
2023-07-11 09:08:21 +0200 <dminuoso> tomsmeding: It's really lovely to see static types being added after the fact, but without any type checker.
2023-07-11 09:08:35 +0200 <tomsmeding> yes
2023-07-11 09:08:36 +0200 <dminuoso> Its smells of one huge compromise.
2023-07-11 09:08:44 +0200 <tomsmeding> kinda like rain
2023-07-11 09:08:52 +0200 <tomsmeding> it's fun and games as long as I don't have to be in it
2023-07-11 09:09:30 +0200 <dminuoso> Rain at least has generally good impact on everyone, even if individually people may dislike it.
2023-07-11 09:09:41 +0200 <dminuoso> But I suppose the same can be said about static type checking.
2023-07-11 09:09:48 +0200 <tomsmeding> true :P I don't dislike rain, I just dislike getting drenched often
2023-07-11 09:10:00 +0200 <tomsmeding> :)
2023-07-11 09:11:38 +0200 <dminuoso> It's strangely absurd, because it imposes extra syntax but without any benefit. And without an actual type checker, there isn't even semantics to any of it.
2023-07-11 09:12:05 +0200 <dminuoso> I wouldn't be surprised if there's gross misuses of it, where people embed just data for metaprogramming into type hints.
2023-07-11 09:12:17 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-11 09:12:34 +0200 <tomsmeding> dminuoso: the "without any benefit" is not really true, because people _do_ use external type checkers
2023-07-11 09:12:49 +0200 <dminuoso> But I suppose its near impossible to add a type system after the fact, especially if there have been decades of dynamic/metaprogramming features.
2023-07-11 09:13:01 +0200 <tomsmeding> at the very least people using python IDEs (yes, those are a thing) benefit from type annotations in the standard library
2023-07-11 09:13:24 +0200 <dminuoso> tomsmeding: And what if two type checkers disagree on whether a given code type checks?
2023-07-11 09:13:27 +0200 <dminuoso> Which one is right?
2023-07-11 09:13:30 +0200 <tomsmeding> see also typescript and Flow and their distinct type systems
2023-07-11 09:13:45 +0200 <dminuoso> In case of flow, its all embeddable as comments at least.
2023-07-11 09:13:50 +0200 <dminuoso> Which is very non-intrusive
2023-07-11 09:14:00 +0200 <tomsmeding> dminuoso: IIRC the spec for the python type annotations define a semantics for them
2023-07-11 09:14:06 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
2023-07-11 09:14:06 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-07-11 09:14:07 +0200 <tomsmeding> which is undecidable or so
2023-07-11 09:14:23 +0200 <dminuoso> What exactly is undecidable?
2023-07-11 09:14:34 +0200 <tomsmeding> union types and madness
2023-07-11 09:14:44 +0200 <dminuoso> Ah well, I guess my mood has nothing to with type systems. I just dont want to fight freeradius today.
2023-07-11 09:15:09 +0200 <tomsmeding> hence if two type checkers terminate on a particular python program, they will reach the same conclusion -- or so I remember, I may be wrong
2023-07-11 09:15:30 +0200 <tomsmeding> different type checkers _do_ use different algorithms and hence can typecheck different programs though, iirc
2023-07-11 09:15:41 +0200 <tomsmeding> dminuoso: but it's free?
2023-07-11 09:15:53 +0200 <dminuoso> It's free of many things, yes.
2023-07-11 09:15:56 +0200 <tomsmeding> :)
2023-07-11 09:17:55 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-07-11 09:19:08 +0200acidjnk(~acidjnk@p200300d6e7072f974de2c6538d982a41.dip0.t-ipconnect.de)
2023-07-11 09:24:06 +0200qqq(~qqq@92.43.167.61)
2023-07-11 09:29:42 +0200aforemny_aforemny
2023-07-11 09:29:57 +0200ripspin(~chatzilla@1.145.164.87)
2023-07-11 09:31:17 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-11 09:33:04 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e) (Client Quit)
2023-07-11 09:39:12 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 09:41:20 +0200christiansen(~christian@188-177-16-45-dynamic.dk.customer.tdc.net)
2023-07-11 09:42:02 +0200christiansen(~christian@188-177-16-45-dynamic.dk.customer.tdc.net) (Client Quit)
2023-07-11 09:42:16 +0200christiansen(~christian@188-177-16-45-dynamic.dk.customer.tdc.net)
2023-07-11 09:42:22 +0200gurkenglas(~gurkengla@dynamic-002-247-243-191.2.247.pool.telefonica.de)
2023-07-11 09:42:30 +0200hisa38773(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
2023-07-11 09:43:55 +0200hisa3877(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 240 seconds)
2023-07-11 09:43:55 +0200hisa38773hisa3877
2023-07-11 09:46:04 +0200gmg(~user@user/gehmehgeh)
2023-07-11 09:48:58 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-11 09:49:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-11 09:50:39 +0200dcoutts(~duncan@195.80.64.243) (Ping timeout: 246 seconds)
2023-07-11 09:53:48 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-07-11 09:54:47 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-11 10:00:20 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 10:03:03 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-07-11 10:04:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 10:07:40 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-11 10:08:07 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 10:08:07 +0200dobblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 10:08:07 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-07-11 10:08:46 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-11 10:12:28 +0200dobblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
2023-07-11 10:15:44 +0200CiaoSen(~Jura@2a05:5800:29a:f00:664b:f0ff:fe37:9ef)
2023-07-11 10:16:38 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 10:16:38 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 10:16:38 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 10:19:02 +0200christiansen(~christian@188-177-16-45-dynamic.dk.customer.tdc.net) ()
2023-07-11 10:19:02 +0200rainbyte(~rainbyte@181.31.239.226) (Ping timeout: 252 seconds)
2023-07-11 10:19:54 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be) (Write error: Connection reset by peer)
2023-07-11 10:21:09 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-07-11 10:21:26 +0200titibandit(~titibandi@user/titibandit)
2023-07-11 10:21:26 +0200danse-nr3(~francesco@151.37.235.112)
2023-07-11 10:23:33 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-07-11 10:28:11 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be)
2023-07-11 10:29:11 +0200oneeyedalien(~oneeyedal@user/oneeyedalien)
2023-07-11 10:29:47 +0200YoungFrog(~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b) (Ping timeout: 246 seconds)
2023-07-11 10:38:47 +0200tv1(~tv@user/tv)
2023-07-11 10:38:50 +0200tv1(~tv@user/tv) (Client Quit)
2023-07-11 10:38:58 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 10:39:06 +0200tv1(~tv@user/tv)
2023-07-11 10:39:38 +0200tv(~tv@user/tv) (Ping timeout: 260 seconds)
2023-07-11 10:41:55 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 10:42:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-11 10:46:10 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2023-07-11 10:46:16 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 245 seconds)
2023-07-11 10:47:22 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2023-07-11 10:47:52 +0200misterfish(~misterfis@87.215.131.102)
2023-07-11 10:49:23 +0200JimL(~quassel@89.162.16.26)
2023-07-11 10:50:37 +0200gurkenglas(~gurkengla@dynamic-002-247-243-191.2.247.pool.telefonica.de) (Read error: Connection reset by peer)
2023-07-11 10:51:59 +0200ft(~ft@p508db151.dip0.t-ipconnect.de) (Quit: leaving)
2023-07-11 10:53:16 +0200tv1(~tv@user/tv) (Quit: derp)
2023-07-11 10:53:30 +0200tv(~tv@user/tv)
2023-07-11 10:55:48 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 11:00:45 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.0.1)
2023-07-11 11:00:47 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-11 11:01:11 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be)
2023-07-11 11:05:02 +0200meinside(uid24933@id-24933.helmsley.irccloud.com)
2023-07-11 11:05:19 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-07-11 11:05:47 +0200Batzy(~quassel@user/batzy)
2023-07-11 11:14:32 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-07-11 11:15:24 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 11:15:47 +0200Batzy(~quassel@user/batzy)
2023-07-11 11:16:11 +0200Sciencentistguy4(~sciencent@hacksoc/ordinary-member)
2023-07-11 11:17:48 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 246 seconds)
2023-07-11 11:17:48 +0200Sciencentistguy4Sciencentistguy
2023-07-11 11:21:55 +0200CiaoSen(~Jura@2a05:5800:29a:f00:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-07-11 11:29:47 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-07-11 11:30:45 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2023-07-11 11:31:08 +0200Lord_of_Life_Lord_of_Life
2023-07-11 11:32:27 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
2023-07-11 11:33:04 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-07-11 11:33:58 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2023-07-11 11:34:35 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-07-11 11:35:53 +0200gurkenglas(~gurkengla@dynamic-002-247-243-191.2.247.pool.telefonica.de)
2023-07-11 11:36:00 +0200auri(~auri@fsf/member/auri) (Remote host closed the connection)
2023-07-11 11:38:20 +0200auri(~auri@fsf/member/auri)
2023-07-11 11:47:14 +0200mmhat(~mmh@p200300f1c74f8624ee086bfffe095315.dip0.t-ipconnect.de)
2023-07-11 11:47:55 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 11:51:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-11 11:53:56 +0200mmhat(~mmh@p200300f1c74f8624ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.1)
2023-07-11 11:55:34 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Remote host closed the connection)
2023-07-11 11:55:47 +0200raym(~ray@user/raym) (Ping timeout: 264 seconds)
2023-07-11 12:00:56 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 12:02:10 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 12:05:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 12:07:06 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-11 12:10:08 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com)
2023-07-11 12:11:43 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com) ()
2023-07-11 12:11:55 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com)
2023-07-11 12:12:06 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
2023-07-11 12:16:56 +0200 <jackdk> Axman6: "why are variables defined in python for loops in scope outside the loop!?" <- to understand the behaviour of a Python program, you must understand the mindset of a busy C programmer writing a language runtime. And getting lexical scope and closures right is haaard, man. (the lua paper has a cool technique for this)
2023-07-11 12:25:25 +0200danse-nr3thinks that apparently that mindset proved out to be quite successful
2023-07-11 12:26:31 +0200 <jackdk> Hard to argue with its reach, that's for certain, and it explains much (particularly 2.x era warts): leaky variable scopes, old-style classes, `print` statements, etc.
2023-07-11 12:29:25 +0200 <danse-nr3> old-style classes would be those adopted by typescript recently, right? Just object-oriented classes
2023-07-11 12:36:40 +0200 <jackdk> Not sure about TS but in older versions of python any object instance `x`, regardless of class, would return `type(x) = <type 'instance'>`: https://stackoverflow.com/questions/54867/what-is-the-difference-between-old-style-and-new-style-c…
2023-07-11 12:37:33 +0200 <danse-nr3> oh, i see what you mean. But then they found a way to step out of it
2023-07-11 12:39:18 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 12:39:21 +0200 <danse-nr3> although all those class models all look old-style to me =D
2023-07-11 12:45:05 +0200__monty__(~toonn@user/toonn)
2023-07-11 12:48:13 +0200danse-nr3(~francesco@151.37.235.112) (Remote host closed the connection)
2023-07-11 12:48:37 +0200danse-nr3(~francesco@151.37.235.112)
2023-07-11 12:56:03 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
2023-07-11 12:59:48 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 13:00:04 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-11 13:00:25 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Ping timeout: 240 seconds)
2023-07-11 13:04:10 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:e50d:8961:b963:9f54)
2023-07-11 13:05:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 13:08:25 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:e50d:8961:b963:9f54) (Ping timeout: 240 seconds)
2023-07-11 13:08:55 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-07-11 13:11:40 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.0.1)
2023-07-11 13:14:38 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-07-11 13:16:07 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 13:16:07 +0200Guest17(~Guest17@p200300ef9728cc4f4f46d74fc2265874.dip0.t-ipconnect.de)
2023-07-11 13:16:07 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 13:16:07 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 13:20:59 +0200danse-nr3(~francesco@151.37.235.112) (Ping timeout: 264 seconds)
2023-07-11 13:21:18 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 13:22:02 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Ping timeout: 260 seconds)
2023-07-11 13:22:26 +0200Guest17(~Guest17@p200300ef9728cc4f4f46d74fc2265874.dip0.t-ipconnect.de) (Quit: Client closed)
2023-07-11 13:22:47 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 13:22:55 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-07-11 13:24:19 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be)
2023-07-11 13:25:05 +0200CiaoSen(~Jura@2a05:5800:29a:f00:664b:f0ff:fe37:9ef)
2023-07-11 13:27:05 +0200m21it(~m21it@2800:ac:4051:7621:fd87:d5eb:4b00:5f0b)
2023-07-11 13:27:26 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-11 13:27:42 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 13:27:42 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 13:27:42 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 13:29:55 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 13:32:25 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-07-11 13:33:36 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
2023-07-11 13:36:55 +0200dibblego(~dibblego@116.255.1.157)
2023-07-11 13:36:56 +0200dibblego(~dibblego@116.255.1.157) (Changing host)
2023-07-11 13:36:56 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 13:37:46 +0200danse-nr3(~francesco@151.37.235.112)
2023-07-11 13:38:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-11 13:40:55 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
2023-07-11 13:42:13 +0200 <dminuoso> jackdk: In some way, it is simpler to tie lexical scope to the implementation. So any resulting implementation artifacts, like setting up variables at the beginning of a stack frame (potentially hoisting variable definitions to the beginning of a function) and keeping them alive forever, is just relatively simple.
2023-07-11 13:43:34 +0200m21it(~m21it@2800:ac:4051:7621:fd87:d5eb:4b00:5f0b) (Remote host closed the connection)
2023-07-11 13:43:52 +0200m21it(~m21it@2800:ac:4051:7621:fd87:d5eb:4b00:5f0b)
2023-07-11 13:45:27 +0200m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 245 seconds)
2023-07-11 13:46:28 +0200 <dminuoso> But I guess thats just a more detailed account of the "mindset of a busy C programmer writing a language runtime"
2023-07-11 13:47:08 +0200m5zs7k(aquares@web10.mydevil.net)
2023-07-11 13:53:32 +0200glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 252 seconds)
2023-07-11 13:54:33 +0200glguy(~glguy@libera/staff-emeritus/glguy)
2023-07-11 13:56:29 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 246 seconds)
2023-07-11 13:57:27 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 14:01:51 +0200danse-nr3(~francesco@151.37.235.112) (Read error: Connection reset by peer)
2023-07-11 14:02:08 +0200danse-nr3(~francesco@151.47.247.209)
2023-07-11 14:08:06 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-07-11 14:10:41 +0200dsrt^(~cd@24.125.210.85)
2023-07-11 14:11:34 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-11 14:13:58 +0200mei(~mei@user/mei)
2023-07-11 14:14:39 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 14:18:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 14:19:11 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-11 14:19:54 +0200jsomedon(uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 14:30:56 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2023-07-11 14:37:22 +0200Midjak(~Midjak@82.66.147.146)
2023-07-11 14:37:45 +0200igghibu(~igghibu@178.249.211.83)
2023-07-11 14:49:09 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-07-11 14:49:09 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-07-11 14:49:09 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-07-11 14:49:09 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-07-11 14:49:09 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-07-11 14:49:35 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-07-11 14:49:38 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2023-07-11 14:49:38 +0200califax(~califax@user/califx)
2023-07-11 14:49:48 +0200ec(~ec@gateway/tor-sasl/ec)
2023-07-11 14:49:51 +0200chiselfuse(~chiselfus@user/chiselfuse)
2023-07-11 14:50:54 +0200m21it(~m21it@2800:ac:4051:7621:fd87:d5eb:4b00:5f0b) (Remote host closed the connection)
2023-07-11 14:51:06 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-07-11 14:52:03 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 14:56:46 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 260 seconds)
2023-07-11 14:57:11 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-11 14:57:45 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 14:59:58 +0200califax(~califax@user/califx) (Ping timeout: 240 seconds)
2023-07-11 15:00:52 +0200user___(~user@162.255.84.96) (Ping timeout: 240 seconds)
2023-07-11 15:01:16 +0200user___(~user@162.255.84.96)
2023-07-11 15:02:22 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2023-07-11 15:03:29 +0200califax(~califax@user/califx)
2023-07-11 15:06:24 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 15:06:25 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 15:06:25 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 15:07:35 +0200qqq(~qqq@92.43.167.61)
2023-07-11 15:09:47 +0200nick3(~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730)
2023-07-11 15:10:50 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-07-11 15:15:01 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 15:15:47 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 15:17:11 +0200igghibu(~igghibu@178.249.211.83) (Quit: igghibu)
2023-07-11 15:17:32 +0200igghibu(~igghibu@178.249.211.83)
2023-07-11 15:18:31 +0200bliminse(~bliminse@user/bliminse)
2023-07-11 15:18:41 +0200igghibu(~igghibu@178.249.211.83) (Client Quit)
2023-07-11 15:19:05 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
2023-07-11 15:20:26 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-11 15:26:39 +0200Guest6127(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-07-11 15:29:10 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-07-11 15:30:33 +0200JimL(~quassel@89.162.16.26) (Read error: Connection reset by peer)
2023-07-11 15:30:51 +0200ystael(~ystael@user/ystael)
2023-07-11 15:31:06 +0200JimL(~quassel@89.162.16.26)
2023-07-11 15:31:21 +0200slack1256(~slack1256@186.11.16.55)
2023-07-11 15:31:55 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-11 15:31:55 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-11 15:31:55 +0200wroathe(~wroathe@user/wroathe)
2023-07-11 15:36:49 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 15:36:50 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 15:36:50 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 15:37:25 +0200acidjnk(~acidjnk@p200300d6e7072f974de2c6538d982a41.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-11 15:38:46 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2023-07-11 15:47:29 +0200noscript(~james@user/earldouglas)
2023-07-11 15:48:02 +0200mankyKitty(uid31287@id-31287.helmsley.irccloud.com)
2023-07-11 15:48:05 +0200blueranger19811(~Adium@bzq-84-110-149-34.static-ip.bezeqint.net)
2023-07-11 15:53:42 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 15:55:11 +0200zmt00(~zmt00@user/zmt00)
2023-07-11 15:58:17 +0200 <Inst> wait, in Haskell, do we generally have a turing tax for monadic code?
2023-07-11 15:58:21 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 15:58:35 +0200 <Inst> i.e, one way to describe Haskell and FP is that in most languages, you pay a lambda tax because the compiler won't optimize your FP idioms for you
2023-07-11 15:58:52 +0200 <Inst> in Haskell, you pay a turing tax because the compiler isn't that highly tuned toward optimizing your imperative idioms for you
2023-07-11 15:59:07 +0200Benzi-Junior(~BenziJuni@dsl-149-64-112.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-11 16:00:53 +0200nick3(~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730) (Ping timeout: 246 seconds)
2023-07-11 16:01:26 +0200blueranger1981(~user@bzq-84-110-149-34.static-ip.bezeqint.net)
2023-07-11 16:02:20 +0200blueranger19811(~Adium@bzq-84-110-149-34.static-ip.bezeqint.net) ()
2023-07-11 16:03:34 +0200__monty_1(~toonn@user/toonn)
2023-07-11 16:03:35 +0200__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2023-07-11 16:04:21 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
2023-07-11 16:04:27 +0200 <c_wraith> the main overhead comes from (>>=) being hard to inline properly. There's nothing special about (>>=) per se, but it's often used in polymorphic contexts where the actual type isn't known, so it can't be inlined.
2023-07-11 16:04:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-07-11 16:04:57 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2023-07-11 16:05:57 +0200 <c_wraith> an indirect function call being made between every pair of statements is a lot of overhead.
2023-07-11 16:06:18 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:e50d:8961:b963:9f54)
2023-07-11 16:07:14 +0200greentail(~greentail@2804:214:8134:90eb:2d73:371:b52a:fc2f)
2023-07-11 16:10:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:e50d:8961:b963:9f54) (Ping timeout: 246 seconds)
2023-07-11 16:11:41 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-07-11 16:12:48 +0200Benzi-Junior(~BenziJuni@dsl-149-64-112.hive.is)
2023-07-11 16:13:27 +0200 <Axman6> I would take the overhead of Either any day over the noise of things like Go's error handling. "it's not overhead if you wrote it yourself"
2023-07-11 16:13:52 +0200mechap(~mechap@user/mechap) (Quit: WeeChat 4.0.1)
2023-07-11 16:13:58 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-11 16:14:46 +0200greentail(~greentail@2804:214:8134:90eb:2d73:371:b52a:fc2f) (Changing host)
2023-07-11 16:14:46 +0200greentail(~greentail@user/clcuc)
2023-07-11 16:14:56 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 16:18:06 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2023-07-11 16:20:25 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 240 seconds)
2023-07-11 16:25:25 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-11 16:26:05 +0200nick3(~nick@2600:100d:b11d:748c:b1a8:2825:98de:468)
2023-07-11 16:27:46 +0200vgtw(~vgtw@user/vgtw) (Ping timeout: 260 seconds)
2023-07-11 16:27:47 +0200vgtw_(~vgtw@user/vgtw)
2023-07-11 16:28:45 +0200acidjnk(~acidjnk@p200300d6e7072f97d49128753c394ff8.dip0.t-ipconnect.de)
2023-07-11 16:29:55 +0200titibandit(~titibandi@user/titibandit)
2023-07-11 16:31:30 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 16:32:39 +0200igghibu(~igghibu@178.249.211.83)
2023-07-11 16:36:10 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 260 seconds)
2023-07-11 16:36:27 +0200 <danse-nr3> c_wraith, is that the same overhead for all typeclass code? Due to dictionary lookup, i think
2023-07-11 16:37:57 +0200 <c_wraith> danse-nr3: sometimes. Monadic code is more likely to contain indefinite loops in polymorphic contexts than most typeclass-based code.
2023-07-11 16:38:05 +0200igghibu(~igghibu@178.249.211.83) (Quit: igghibu)
2023-07-11 16:38:26 +0200igghibu(~igghibu@178.249.211.83)
2023-07-11 16:39:21 +0200 <c_wraith> The underlying problem is a potential issue anywhere, but due to usage patterns it tends to show up more often with >>=
2023-07-11 16:39:36 +0200 <danse-nr3> i see, thanks
2023-07-11 16:40:33 +0200Angelz(Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15) (Remote host closed the connection)
2023-07-11 16:41:02 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-11 16:41:19 +0200igghibu(~igghibu@178.249.211.83) (Client Quit)
2023-07-11 16:42:22 +0200danso(~danso@user/danso) (Quit: quittin time)
2023-07-11 16:42:40 +0200hisa38773(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
2023-07-11 16:44:13 +0200danso(~danso@user/danso)
2023-07-11 16:44:46 +0200hisa3877(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 252 seconds)
2023-07-11 16:44:47 +0200hisa38773hisa3877
2023-07-11 16:45:19 +0200Angelz(Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15)
2023-07-11 16:49:23 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-11 16:52:47 +0200t1noname(~mark@89.209.156.65)
2023-07-11 16:55:10 +0200t1noname(~mark@89.209.156.65) (Client Quit)
2023-07-11 16:58:30 +0200misterfish(~misterfis@87.215.131.102) (Ping timeout: 250 seconds)
2023-07-11 17:01:41 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 17:06:16 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 17:20:27 +0200gaff(~gaff@49.207.196.249)
2023-07-11 17:20:34 +0200gaff(~gaff@49.207.196.249) (Client Quit)
2023-07-11 17:23:19 +0200__monty_1__monty__
2023-07-11 17:27:10 +0200nyc(~nyc@user/nyc) (Read error: Connection reset by peer)
2023-07-11 17:27:40 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 17:30:43 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-11 17:32:56 +0200ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 245 seconds)
2023-07-11 17:33:25 +0200CiaoSen(~Jura@2a05:5800:29a:f00:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-07-11 17:34:51 +0200ddellacosta(~ddellacos@146.70.165.216)
2023-07-11 17:34:53 +0200greentail(~greentail@user/clcuc) (Ping timeout: 246 seconds)
2023-07-11 17:35:26 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 17:36:15 +0200lottaquestions(~nick@2607:fa49:503d:b200:5acb:c775:e1cd:3a88)
2023-07-11 17:36:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-11 17:38:13 +0200Inst(~Inst@2601:6c4:4081:2fc0:ba:e9a2:9797:91e4) (Remote host closed the connection)
2023-07-11 17:38:17 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 17:38:18 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 17:38:18 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 17:38:35 +0200Inst(~Inst@2601:6c4:4081:2fc0:ba:e9a2:9797:91e4)
2023-07-11 17:39:49 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 17:40:11 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 264 seconds)
2023-07-11 17:40:37 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-11 17:41:11 +0200blueranger1981(~user@bzq-84-110-149-34.static-ip.bezeqint.net) (Ping timeout: 246 seconds)
2023-07-11 17:41:41 +0200greentail(~greentail@2804:214:8110:b833:f96b:ef29:522c:c720)
2023-07-11 17:41:46 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 17:44:12 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-11 17:44:19 +0200cheater(~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
2023-07-11 17:44:54 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2023-07-11 17:45:12 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-11 17:45:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b51c:90a2:c6ee:ffbb)
2023-07-11 17:46:39 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-11 17:47:08 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-11 17:48:55 +0200danse-nr3(~francesco@151.47.247.209) (Ping timeout: 240 seconds)
2023-07-11 17:50:32 +0200nick3(~nick@2600:100d:b11d:748c:b1a8:2825:98de:468) (Ping timeout: 240 seconds)
2023-07-11 17:50:45 +0200Everything(~Everythin@static.208.206.21.65.clients.your-server.de) (Ping timeout: 258 seconds)
2023-07-11 17:51:11 +0200nick3(~nick@2600:100d:b112:5e5:202b:3d45:9260:a8d0)
2023-07-11 17:52:56 +0200Angelz(Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15) (Remote host closed the connection)
2023-07-11 17:55:22 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-07-11 17:56:04 +0200turlando(~turlando@user/turlando)
2023-07-11 17:56:04 +0200slac87842(~slack1256@191.125.44.98)
2023-07-11 17:57:07 +0200Angelz(Angelz@angelz.oddprotocol.org)
2023-07-11 17:57:44 +0200mankyKitty(uid31287@id-31287.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 17:58:18 +0200slack1256(~slack1256@186.11.16.55) (Ping timeout: 250 seconds)
2023-07-11 17:58:47 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 17:59:34 +0200mauke(~mauke@user/mauke)
2023-07-11 18:01:18 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-07-11 18:01:36 +0200Angelz(Angelz@angelz.oddprotocol.org) (Client Quit)
2023-07-11 18:02:03 +0200ddellacosta(~ddellacos@146.70.165.216) (Ping timeout: 246 seconds)
2023-07-11 18:03:06 +0200ddellacosta(~ddellacos@146.70.165.216)
2023-07-11 18:04:45 +0200 <nick3> I'm using blaze-html to mark up some html, and I want to iterate through a list of options to generate option elements for a select element. However, I can't figure out why it keeps saying the type is Markup () instead of Html (which looks to be the same thing in the source of blaze to me ...). The error I keep getting is Couldn't match type: blaze-markup-0.8.2.8:Text.Blaze.Internal.MarkupM and my
2023-07-11 18:04:47 +0200 <nick3> code is here: https://paste.tomsmeding.com/S3yVShLi
2023-07-11 18:10:17 +0200bilegeek(~bilegeek@2600:1008:b03e:10a5:9b85:f00c:17bb:a9c)
2023-07-11 18:10:40 +0200Angelz(Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973)
2023-07-11 18:10:58 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-11 18:11:14 +0200Everything(~Everythin@static.208.206.21.65.clients.your-server.de)
2023-07-11 18:11:52 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
2023-07-11 18:11:58 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-11 18:12:04 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-11 18:12:06 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-11 18:12:06 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-11 18:12:06 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-11 18:13:51 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-07-11 18:13:52 +0200Angelz(Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973) (Client Quit)
2023-07-11 18:16:16 +0200Angelz(Angelz@angelz.oddprotocol.org)
2023-07-11 18:16:41 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-07-11 18:20:48 +0200 <c_wraith> nick3: when it's including package versions in type errors, that means you have two different versions of the same package involved
2023-07-11 18:22:21 +0200 <mauke> nick3: what's the error message?
2023-07-11 18:22:34 +0200ddellacosta(~ddellacos@146.70.165.216) (Ping timeout: 250 seconds)
2023-07-11 18:22:41 +0200 <c_wraith> nick3: I strongly recommend using modern library management instead of `cabal install --lib' stuff
2023-07-11 18:24:25 +0200ddellacosta(~ddellacos@146.70.165.100)
2023-07-11 18:25:50 +0200nick3(~nick@2600:100d:b112:5e5:202b:3d45:9260:a8d0) (Ping timeout: 260 seconds)
2023-07-11 18:26:58 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-07-11 18:30:01 +0200Guest6127(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds)
2023-07-11 18:38:11 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-11 18:38:43 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-11 18:42:45 +0200Ligtht-1(~Ligtht@94.25.171.223)
2023-07-11 18:44:06 +0200briandaed(~briandaed@185.234.210.211)
2023-07-11 18:44:11 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-07-11 18:44:47 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 245 seconds)
2023-07-11 18:47:19 +0200Ligtht-1(~Ligtht@94.25.171.223) (Quit: Leaving)
2023-07-11 18:48:12 +0200raym(~ray@user/raym)
2023-07-11 18:49:21 +0200JimL(~quassel@89.162.16.26)
2023-07-11 18:50:26 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-07-11 18:56:14 +0200dcoutts(~duncan@195.80.64.243)
2023-07-11 18:56:24 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-07-11 18:57:52 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 18:58:07 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 19:00:17 +0200lainon(~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd)
2023-07-11 19:02:25 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 19:02:36 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-07-11 19:02:54 +0200greentail(~greentail@2804:214:8110:b833:f96b:ef29:522c:c720) (Changing host)
2023-07-11 19:02:54 +0200greentail(~greentail@user/clcuc)
2023-07-11 19:11:25 +0200Vajb(~Vajb@2001:999:480:2329:e191:822:3665:ff4f) (Ping timeout: 240 seconds)
2023-07-11 19:11:51 +0200Vajb(~Vajb@2001:999:480:2329:e191:822:3665:ff4f)
2023-07-11 19:11:58 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-07-11 19:14:38 +0200briandaed(~briandaed@185.234.210.211) (Remote host closed the connection)
2023-07-11 19:19:41 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 19:20:52 +0200greentail(~greentail@user/clcuc) (Read error: Connection reset by peer)
2023-07-11 19:21:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-11 19:22:42 +0200greentail(~greentail@2804:214:8134:90eb:2d73:371:b52a:fc2f)
2023-07-11 19:22:45 +0200greentail(~greentail@2804:214:8134:90eb:2d73:371:b52a:fc2f) (Changing host)
2023-07-11 19:22:45 +0200greentail(~greentail@user/clcuc)
2023-07-11 19:23:27 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 19:24:41 +0200Guest7669(~finn@176-151-21-224.abo.bbox.fr)
2023-07-11 19:25:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-11 19:33:58 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
2023-07-11 19:36:20 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-11 19:40:06 +0200mixfix41(~sdeny9ee@user/mixfix41)
2023-07-11 19:40:13 +0200elkcl(~elkcl@broadband-95-84-180-37.ip.moscow.rt.ru) (Remote host closed the connection)
2023-07-11 19:40:51 +0200elkcl(~elkcl@broadband-95-84-180-37.ip.moscow.rt.ru)
2023-07-11 19:43:53 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-11 19:47:27 +0200falafel_(~falafel@2603-7000-a700-8710-5f49-cb4b-40df-fc3d.res6.spectrum.com)
2023-07-11 19:53:06 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2023-07-11 20:00:26 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
2023-07-11 20:00:29 +0200lainon(~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-07-11 20:11:47 +0200gmg(~user@user/gehmehgeh)
2023-07-11 20:13:57 +0200ripspin(~chatzilla@1.145.164.87) (Remote host closed the connection)
2023-07-11 20:14:34 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-11 20:15:19 +0200slac87842slack1256
2023-07-11 20:17:35 +0200img(~img@user/img)
2023-07-11 20:21:45 +0200cheater(~Username@user/cheater)
2023-07-11 20:21:45 +0200slack1256(~slack1256@191.125.44.98) (Read error: Connection reset by peer)
2023-07-11 20:22:48 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
2023-07-11 20:23:50 +0200slack1256(~slack1256@186.11.22.183)
2023-07-11 20:37:06 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-07-11 20:42:59 +0200__monty__(~toonn@user/toonn)
2023-07-11 20:50:48 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 20:54:14 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 20:55:27 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 20:56:43 +0200cheater(~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
2023-07-11 20:58:10 +0200greentail(~greentail@user/clcuc) (Quit: Leaving)
2023-07-11 21:00:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 21:02:43 +0200ijqq_(uid603979@id-603979.helmsley.irccloud.com)
2023-07-11 21:13:12 +0200motherfsck(~motherfsc@user/motherfsck)
2023-07-11 21:14:36 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 21:19:22 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
2023-07-11 21:23:45 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-11 21:28:25 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-07-11 21:31:08 +0200Deide_(~Deide@217.155.19.23)
2023-07-11 21:34:28 +0200rburkholder(~blurb@96.45.2.121) (Remote host closed the connection)
2023-07-11 21:37:43 +0200danse-nr3(~francesco@151.57.226.137)
2023-07-11 21:39:51 +0200nick3(~nick@2600:100d:b10c:c9f7:54d7:973d:6405:1a8)
2023-07-11 21:40:02 +0200Deide_(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2023-07-11 21:40:07 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-11 21:49:33 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-11 21:50:12 +0200lainon(~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd)
2023-07-11 21:51:08 +0200NinjaTrappeur(~ninja@user/ninjatrappeur) (Quit: WeeChat 4.0.1)
2023-07-11 21:53:04 +0200NinjaTrappeur(~ninja@user/ninjatrappeur)
2023-07-11 21:55:36 +0200boxscape_(~boxscape_@81.191.27.107)
2023-07-11 22:03:14 +0200danse-nr3(~francesco@151.57.226.137) (Read error: Connection reset by peer)
2023-07-11 22:03:40 +0200danse-nr3(~francesco@151.43.248.110)
2023-07-11 22:03:43 +0200 <Guest7669> when building ghc, i got: Error, file does not exist and no rule available:
2023-07-11 22:03:45 +0200 <Guest7669> hadrian/cfg/system.config
2023-07-11 22:03:50 +0200 <Guest7669> what's wrong here
2023-07-11 22:04:47 +0200phma(~phma@host-67-44-208-125.hnremote.net) (Read error: Connection reset by peer)
2023-07-11 22:05:10 +0200phma(phma@2001:5b0:211f:7128:2fba:fcc2:b8b6:7566)
2023-07-11 22:05:25 +0200 <geekosaur> did you run boot and configure?
2023-07-11 22:05:30 +0200 <geekosaur> successfully?
2023-07-11 22:12:08 +0200trev(~trev@user/trev) (Quit: trev)
2023-07-11 22:12:26 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-11 22:15:20 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-11 22:15:36 +0200 <Guest7669> sorry, forgot it
2023-07-11 22:18:01 +0200johnw(~johnw@69.62.242.138) (Read error: Connection reset by peer)
2023-07-11 22:18:28 +0200euandreh(~Thunderbi@189.6.18.7)
2023-07-11 22:22:05 +0200johnw(~johnw@69.62.242.138)
2023-07-11 22:29:45 +0200pavonia(~user@user/siracusa)
2023-07-11 22:30:32 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 22:34:59 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
2023-07-11 22:37:01 +0200johnw_(~johnw@69.62.242.138)
2023-07-11 22:37:25 +0200johnw(~johnw@69.62.242.138) (Ping timeout: 240 seconds)
2023-07-11 22:38:00 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-07-11 22:38:37 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-07-11 22:45:20 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-07-11 22:50:16 +0200 <nick3> I've got to be crazy here, I don't understand this compile error: #0 8.773 • Couldn't match type: blaze-markup-0.8.2.8:Text.Blaze.Internal.MarkupM
2023-07-11 22:50:16 +0200 <nick3> #0 8.773 ()
2023-07-11 22:50:16 +0200 <nick3> #0 8.773 with: () -> blaze-markup-0.8.2.8:Text.Blaze.Internal.MarkupM ()y
2023-07-11 22:50:16 +0200 <nick3> that makes no sense, couldn't match a type with exactly the same type?
2023-07-11 22:50:57 +0200 <davean> So the formating there is bad, but to parse it appart those don't look at all like the same typ3e
2023-07-11 22:51:15 +0200 <[exa]> nick3: it's like `xxx ()` vs `() -> xxx ()`
2023-07-11 22:51:17 +0200 <davean> "MarkupM ()" vs. "() -> MarkupM ()"
2023-07-11 22:51:26 +0200 <davean> Those are DEEPLY different
2023-07-11 22:52:13 +0200 <[exa]> looks like off-by-one-argument error
2023-07-11 22:53:56 +0200 <nick3> ah ok
2023-07-11 22:54:14 +0200 <jade[m]> this looks like an `a >>= b` vs `a >> b` thing (?)
2023-07-11 22:54:15 +0200 <nick3> I do see
2023-07-11 22:54:15 +0200 <nick3> thanks for that
2023-07-11 22:54:34 +0200 <nick3> yes thats exactly what it was >.>
2023-07-11 22:54:34 +0200 <monochrom> Unpopular opinion: Users of impure functional languages have off-by-one-argument errors. :)
2023-07-11 22:54:59 +0200 <jade[m]> nick3: yeah the library kind of abuses monads in that sense
2023-07-11 22:55:20 +0200 <jade[m]> where they never want you to use anything but m () just ao you can have do notation
2023-07-11 22:55:26 +0200 <jade[m]> I don't really like that
2023-07-11 22:55:30 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 22:55:39 +0200 <jean-paul[m]> now I wonder what the arity of the arguments to `>.>` is.
2023-07-11 22:55:56 +0200actioninja63(~actioninj@user/actioninja)
2023-07-11 22:56:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-11 22:56:09 +0200 <nick3> what do you mean never want you to use anything but m ()?
2023-07-11 22:57:27 +0200actioninja6(~actioninj@user/actioninja) (Ping timeout: 246 seconds)
2023-07-11 22:57:27 +0200actioninja63actioninja6
2023-07-11 22:57:42 +0200 <jade[m]> MarkupM a usually doesn't carry any actual data with the a
2023-07-11 22:57:52 +0200 <danse-nr3> %:t (>.>)
2023-07-11 22:58:04 +0200 <jade[m]> type Html = MarkupM () and then everything is using that alias
2023-07-11 22:58:28 +0200 <davean> jade[m]: you can do the data though.
2023-07-11 22:58:32 +0200 <davean> jade[m]: it doesn't sure, but you can
2023-07-11 22:58:34 +0200 <jade[m]> and the only purpose is to be able to write do div $ do ...
2023-07-11 22:59:24 +0200Guest7669(~finn@176-151-21-224.abo.bbox.fr) (Quit: WeeChat 3.5)
2023-07-11 22:59:25 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 240 seconds)
2023-07-11 23:00:05 +0200 <jade[m]> I think the library also has type Markup = MarkupM () and uses that for all functions
2023-07-11 23:00:17 +0200 <jade[m]> so it never really intended the use of the type
2023-07-11 23:00:33 +0200 <probie> Is that just to abuse do notation without needing rebindable syntax?
2023-07-11 23:00:39 +0200 <davean> That doesn't interfear with using the monad parts?
2023-07-11 23:00:51 +0200 <davean> You still get more power for it being this form
2023-07-11 23:01:00 +0200 <jade[m]> probie: yes exactly
2023-07-11 23:01:31 +0200neuroevolutus(~neuroevol@2001:ac8:9a:76::1e)
2023-07-11 23:01:43 +0200euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-07-11 23:02:08 +0200 <jade[m]> scanreading through it I don't think the functor instance is even lawful
2023-07-11 23:02:31 +0200 <boxscape_> These days I think QualifiedDo would probably work nicely for that
2023-07-11 23:02:33 +0200 <jade[m]> no idea about applicative and monad, but i suspect they might not be
2023-07-11 23:05:17 +0200 <davean> Its not given most equality. They don't have an eq instance ... thats interesting
2023-07-11 23:05:49 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::5b03)
2023-07-11 23:09:29 +0200JimL(~quassel@89.162.16.26) (Read error: Connection reset by peer)
2023-07-11 23:09:58 +0200aku(~aku@65.108.245.241) (Remote host closed the connection)
2023-07-11 23:10:42 +0200JimL(~quassel@89.162.16.26)
2023-07-11 23:12:29 +0200johnw_johnw
2023-07-11 23:15:55 +0200nick3(~nick@2600:100d:b10c:c9f7:54d7:973d:6405:1a8) (Ping timeout: 240 seconds)
2023-07-11 23:19:36 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-07-11 23:22:25 +0200Vajb(~Vajb@2001:999:480:2329:e191:822:3665:ff4f) (Ping timeout: 240 seconds)
2023-07-11 23:28:55 +0200acidjnk(~acidjnk@p200300d6e7072f97d49128753c394ff8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-11 23:29:25 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 23:33:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
2023-07-11 23:36:25 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
2023-07-11 23:41:15 +0200nick3(~nick@2600:8807:9084:7800:8939:f628:ed3d:955)
2023-07-11 23:43:52 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-11 23:44:35 +0200ft(~ft@p508db151.dip0.t-ipconnect.de)
2023-07-11 23:44:58 +0200JimL(~quassel@89.162.16.26) (Ping timeout: 250 seconds)
2023-07-11 23:45:07 +0200 <danse-nr3> the topic here could read "the best channel to read while compiling" =D
2023-07-11 23:47:22 +0200buckwheatsuperpo(~buckwheat@209.122.211.192)
2023-07-11 23:49:26 +0200JimL(~quassel@89.162.16.26)
2023-07-11 23:49:36 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 246 seconds)
2023-07-11 23:49:48 +0200danse-nr3(~francesco@151.43.248.110) (Remote host closed the connection)
2023-07-11 23:50:11 +0200danse-nr3(~francesco@151.43.248.110)
2023-07-11 23:52:01 +0200aku(~aku@65.108.245.241)
2023-07-11 23:58:36 +0200ph88(~ph88@ltea-178-013-121-150.pools.arcor-ip.net)
2023-07-11 23:58:55 +0200buckwheatsuperpo(~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)