2022/10/15

2022-10-15 00:06:39 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-15 00:07:00 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 00:07:36 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
2022-10-15 00:09:04 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-10-15 00:09:15 +0200 <juri_> if i'm in a function that's being called in a typeclass, and i'm given an argument, is there a ways i can separate the constructor of that argument, and use the same constructor in my return value?
2022-10-15 00:09:42 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 00:12:05 +0200tinwood(~tinwood@canonical/tinwood) (Remote host closed the connection)
2022-10-15 00:13:18 +0200tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io)
2022-10-15 00:13:18 +0200tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
2022-10-15 00:13:18 +0200tinwood(~tinwood@canonical/tinwood)
2022-10-15 00:14:59 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2022-10-15 00:15:36 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-15 00:16:45 +0200v0rpun1(~pvorp@185.212.69.251)
2022-10-15 00:16:56 +0200vorpuni(~pvorp@2001:861:3881:c690:f50d:140:1a73:58b4) (Ping timeout: 260 seconds)
2022-10-15 00:18:57 +0200 <geekosaur> only if you can do it via e.g. fmap
2022-10-15 00:19:08 +0200 <geekosaur> if I understand what you're asking
2022-10-15 00:19:36 +0200 <juri_> so, i've found a hack, wondering if it can be made more-safe-sane.
2022-10-15 00:19:55 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-10-15 00:20:18 +0200 <juri_> in a function which accepts argument a, which is of typeclass b, i want to return a value which is constructed with the same constructor as a.
2022-10-15 00:20:31 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 00:21:28 +0200 <juri_> so, i just implemented consLikeA a -> (value -> c), and made it part of the typeclass. now the implementations will resolve a, and consLikeA will return a constructor.
2022-10-15 00:22:55 +0200 <hpc> how many constructors are we talking about here?
2022-10-15 00:23:12 +0200 <juri_> just two, in this case.
2022-10-15 00:23:21 +0200 <juri_> hmm. ghc doesn't like my answer.
2022-10-15 00:23:58 +0200 <hpc> maybe just make it a "law" of that type class?
2022-10-15 00:23:59 +0200 <geekosaur> this fails to surprise me
2022-10-15 00:24:28 +0200hololeap(~quassel@user/hololeap) (Quit: Bye)
2022-10-15 00:24:29 +0200 <juri_> oh, typo.
2022-10-15 00:24:34 +0200 <juri_> it likes that.
2022-10-15 00:26:03 +0200 <juri_> so yeah, that's how you solve it. i was just looking for a better method of constructor mirroring.
2022-10-15 00:27:35 +0200 <juri_> and GHC is satisfied that the input and output types are the same. win!
2022-10-15 00:28:09 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net)
2022-10-15 00:29:56 +0200 <EvanR> I wonder if "being called from a typeclass" matters at all
2022-10-15 00:30:41 +0200 <geekosaur> sounds like it needed to be defined within the typeclass so each instance could provide an appropriate instantiation?
2022-10-15 00:30:49 +0200 <juri_> yep.
2022-10-15 00:31:15 +0200 <juri_> EvanR: sorry, i've been a C programmer for 30 years. i'm still recovering. ;)
2022-10-15 00:31:32 +0200 <EvanR> if it's more than 2 constructors there's always Generics
2022-10-15 00:32:07 +0200juri_nods.
2022-10-15 00:32:30 +0200 <juri_> for my application, it'll always be two constructors. normallized, and not-normallized. writing an algebra engine.
2022-10-15 00:34:36 +0200alecs(~alecs@host-62-211-49-5.retail.telecomitalia.it)
2022-10-15 00:38:06 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-15 00:40:28 +0200ll(~ll@atoulouse-258-1-7-21.w90-16.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-15 00:41:05 +0200 <[Leary]> juri_: It's hard to say what you should do without seeing the code. If you're dealing with something like `data FooBar a = Normed (Bar a) | Raw (Bar a)`, you can factor into `data Norm = Normed | Raw; data Foo bar a = Foo{ norm :: Norm, bar :: bar a }`. Then even if `bar` varies by instance, you can always share `Foo` and see `norm`.
2022-10-15 00:43:20 +0200 <EvanR> if it's data NormedRaw a = Normed a | Raw a you can derive Functor...
2022-10-15 00:43:36 +0200 <EvanR> and use fmap
2022-10-15 00:44:56 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-10-15 00:45:01 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 00:45:01 +0200 <juri_> i'm dealing with both the painless and the painful way. tl;dr: i'm rewriting a 3500 line diff, and using typeclasses this time. i had two types in the 'old' branch, then moved to one type in the 'new' branch.. and now am just implementing three typeclasses, and migrating both branches through.
2022-10-15 00:45:06 +0200 <juri_> its working out.
2022-10-15 00:45:46 +0200 <juri_> and i don't have a million case statements to do dumb pattern matches. so, win.
2022-10-15 00:46:09 +0200 <juri_> haskell is doing a good job of making this pain-free. i'm deep in a mess, and impressed.
2022-10-15 00:47:48 +0200 <monochrom> My question would be "what if there is no such thing as a constructor? for example it's a lambda" but I guess the stated question is never the real question.
2022-10-15 00:49:00 +0200 <monochrom> Or more sinisterly it's "newtype X = X (Int -> Bool)" so it "has" a "constructor" but no it doesn't.
2022-10-15 00:51:39 +0200 <geekosaur> I think it still has one from the standpoint of the second. the first means a function instance can't be used unless (->) is allowed to be the "constructor"
2022-10-15 00:54:38 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-10-15 01:00:06 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-15 01:00:23 +0200 <ski> "haskell is doing a good job of making this pain-free. i'm deep in a mess, and impressed." -- those two things aren't a bit at odds with each other ?
2022-10-15 01:00:53 +0200 <ski> (.. hm, unless you mean that Haskell helps resolve, or ameliorate, the mess)
2022-10-15 01:01:16 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-15 01:01:38 +0200 <monochrom> Yes.
2022-10-15 01:01:57 +0200 <monochrom> And also programmers are not known to be particularly coherent writers. :)
2022-10-15 01:02:07 +0200 <ski> juri_ : anyway, your talk about "constructor" is pretty vague, hard to get a feel for what you're really doing / wanting to do
2022-10-15 01:02:28 +0200 <ski> perhaps sometimes they're known not to be :)
2022-10-15 01:06:22 +0200 <EvanR> you got your known knowns, and you got your not knowns, then you got your known nots
2022-10-15 01:08:18 +0200 <EvanR> rumsfeld was enumering something isomorphic to sierpinsky space
2022-10-15 01:08:51 +0200 <EvanR> *Sierpiński
2022-10-15 01:12:21 +0200alecs(~alecs@host-62-211-49-5.retail.telecomitalia.it) (Ping timeout: 260 seconds)
2022-10-15 01:14:00 +0200alecs(~alecs@151.68.55.160)
2022-10-15 01:14:41 +0200alecs(~alecs@151.68.55.160) (Client Quit)
2022-10-15 01:15:22 +0200 <dolio> Sierpinski has at most two points, though.
2022-10-15 01:16:55 +0200 <EvanR> points shmoints we really care about the opens
2022-10-15 01:17:16 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 01:18:40 +0200 <dolio> Seems a little more like Σ².
2022-10-15 01:18:41 +0200ski. o O ( unknown knowns )
2022-10-15 01:19:45 +0200 <dolio> Oh, actually, not that one.
2022-10-15 01:21:05 +0200 <EvanR> type Rumsfeld = Maybe (Maybe ())
2022-10-15 01:21:16 +0200 <dolio> Σ[ p ∈ 𝕊 ] (p → 2), switching up my notation.
2022-10-15 01:21:19 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-10-15 01:22:23 +0200 <juri_> ski: the mess is my own: three plus months of developing without breaking into small commits. now i'm writing small commits, in a new tree, using the previous tree for reference.
2022-10-15 01:22:24 +0200 <dolio> Subsingletons of 2.
2022-10-15 01:23:28 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 01:26:28 +0200ski. o O ( "First Steps in Synthetic Computability Theory" by Andrej Bauer in 2004 at <https://math.andrej.com/2005/05/08/first-steps-in-synthetic-computability-theory/> )
2022-10-15 01:28:45 +0200 <ski> juri_ : mhm, i see
2022-10-15 01:31:19 +0200k8yun(~k8yun@user/k8yun)
2022-10-15 01:31:31 +0200 <ski> dolio : element of Sierpiński construed as a type ?
2022-10-15 01:32:09 +0200 <dolio> Yes, it's a subtype of the propositions.
2022-10-15 01:32:36 +0200 <ski> which ? Sierpiński, or what you wrote (which i don't understand) ?
2022-10-15 01:32:41 +0200 <EvanR> In the synthetic universe, the computable functions are simply all the functions, the computably enumerable sets are all the enumerable sets, etc. So we may just speak about ordinary sets and functions and never worry about which ones are computable. So Andre is basically using haskell xD
2022-10-15 01:33:38 +0200 <dolio> 𝕊 is. In the computability setting, it the subtype of propositions that are equivalent to ∃ n. α n, where α : ℕ -> 2.
2022-10-15 01:34:39 +0200 <dolio> What I wrote is the monad of subsingletons of a type, if you generalize 2 to an arbitrary type. Which subsingletons it is are determined by the subtype of propositions in the first part.
2022-10-15 01:34:51 +0200 <dolio> So, in this case, it's the semidecidable subsingletons of 2.
2022-10-15 01:36:35 +0200 <dolio> If you use Ω, it's all subsingletons, and `A → Σ[ p ∈ Ω ] (p → B)` are the partial functions.
2022-10-15 01:36:47 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 01:37:31 +0200 <dolio> Because that type is equivalent to a predicate on A, and a function well defined on the subset of A given by the predicate.
2022-10-15 01:37:39 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 01:38:45 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 01:39:39 +0200 <dolio> If you use the decidable propositions, 2, you get the equivalent of A -> Maybe B.
2022-10-15 01:41:13 +0200 <dolio> The `∃ n. α n` thing is like being equivalent to a Σ₁ statement, but synthetically.
2022-10-15 01:41:15 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-15 01:42:15 +0200Sgeo(~Sgeo@user/sgeo) (Quit: Leaving)
2022-10-15 01:45:28 +0200 <dolio> So, what I wrote is like what you'd use to model the partial recursive functions in a total language.
2022-10-15 01:45:32 +0200 <ski> dolio : oh, now i see. the Sierpiński element is interpreted as a subobject of the singleton (which i guess you alluded to)
2022-10-15 01:45:38 +0200 <dolio> As a Kleisli category.
2022-10-15 01:45:53 +0200nate1(~nate@98.45.169.16)
2022-10-15 01:46:10 +0200 <ski> (treating ⌜𝕊⌝ as a mini-universe of encodings of types, perhaps)
2022-10-15 01:46:16 +0200 <dolio> Yeah.
2022-10-15 01:48:31 +0200 <dolio> The partial order on it is just function spaces between its decodings.
2022-10-15 01:49:22 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-10-15 01:50:36 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-15 01:52:36 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
2022-10-15 01:55:15 +0200v0rpun1(~pvorp@185.212.69.251) (Ping timeout: 248 seconds)
2022-10-15 01:55:18 +0200vorpuni(~pvorp@195.200.221.43)
2022-10-15 01:56:07 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 01:56:47 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-15 01:57:49 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net)
2022-10-15 02:01:03 +0200hololeap(~quassel@user/hololeap)
2022-10-15 02:02:30 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de)
2022-10-15 02:04:47 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-10-15 02:09:20 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de) (Remote host closed the connection)
2022-10-15 02:12:03 +0200chomwitt(~chomwitt@80.106.160.196) (Ping timeout: 252 seconds)
2022-10-15 02:12:44 +0200hololeap(~quassel@user/hololeap) (Quit: Bye)
2022-10-15 02:13:37 +0200hololeap(~quassel@user/hololeap)
2022-10-15 02:21:43 +0200jargon(~jargon@184.101.208.112)
2022-10-15 02:24:23 +0200notzmv(~zmv@user/notzmv)
2022-10-15 02:27:49 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-10-15 02:27:51 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-10-15 02:32:13 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-15 02:33:00 +0200MrsGenius(~MrsGenius@S01069050ca4e3573.cg.shawcable.net)
2022-10-15 02:33:17 +0200MrsGenius(~MrsGenius@S01069050ca4e3573.cg.shawcable.net) ()
2022-10-15 02:34:27 +0200 <ski> dolio : hm, were you saying ⌜Σ[ p ∈ 𝕊 ] (p → 2)⌝ had at most two points ? or was that re ⌜𝕊⌝ itself ?
2022-10-15 02:34:51 +0200 <dolio> 𝕊
2022-10-15 02:35:15 +0200skinods
2022-10-15 02:35:32 +0200 <dolio> The other thing is like Haskell's Bool.
2022-10-15 02:36:08 +0200 <ski> hm, right. the monad adds the bottom element
2022-10-15 02:36:50 +0200 <dolio> Yeah.
2022-10-15 02:37:33 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-10-15 02:41:10 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 02:57:12 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-10-15 02:58:31 +0200Kaipii(~Kaiepi@142.68.249.28) (Ping timeout: 260 seconds)
2022-10-15 02:58:37 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-10-15 03:02:36 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-10-15 03:03:33 +0200Kaipii(~Kaiepi@142.68.249.28)
2022-10-15 03:04:06 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-10-15 03:04:21 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) (Ping timeout: 260 seconds)
2022-10-15 03:14:35 +0200vorpuni(~pvorp@195.200.221.43) (Quit: bye)
2022-10-15 03:17:24 +0200frost26(~frost@user/frost)
2022-10-15 03:20:40 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-15 03:21:03 +0200talismanickGuest362
2022-10-15 03:21:22 +0200mikoto-chan(~mikoto-ch@193.185.223.3)
2022-10-15 03:24:24 +0200thegeekinside(~thegeekin@189.180.7.159) (Ping timeout: 264 seconds)
2022-10-15 03:26:11 +0200mikoto-chan(~mikoto-ch@193.185.223.3) (Ping timeout: 268 seconds)
2022-10-15 03:26:30 +0200califax(~califax@user/califx) (Ping timeout: 258 seconds)
2022-10-15 03:27:33 +0200 <ski> EvanR : hm, doesn't Erlang use "nested lists/strings", to avoid repeatedly traversing ? (also, i think you could use `Maybe' to abstract out the `EmptyBag' case, so that it can't occur in `TwoBags' recursively .. guess you could do pattern synonyms for this, and `ListBag' internally storing non-empty)
2022-10-15 03:27:45 +0200ski. o O ( "The Boom Hierarchy" by Alexander Bunkenberg in 1993 at <https://web.archive.org/web/20211125043206/https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.…> talks about trees,lists,bags,sets (and some more) relating them to associativity (and neutral element),commutativity,idempotence )
2022-10-15 03:28:03 +0200 <ski> ("Structured Probabilistic Reasoning" by Bart Jacobs in 2021-08-26,2021-11-30 version (draft) at <https://www.cs.ru.nl/B.Jacobs/PAPERS/ProbabilisticReasoning.pdf> also talks about lists,bags/multisets,sets,distributions, in the first two chapters)
2022-10-15 03:28:25 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-15 03:28:25 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-15 03:28:25 +0200wroathe(~wroathe@user/wroathe)
2022-10-15 03:28:41 +0200 <ski> difference lists in logic programming do keep an uninstantiated (to begin with) logic/dataflow variable to the end of the list. but difference lists aren't first-class (at least not without uniqueness), after appending something after it, you can't append something else after the same difference list (in the same success / AND- continuation. if you backtrack (undoing the instantiation) to the failure / OR-
2022-10-15 03:28:47 +0200 <ski> continuation, you can do it)
2022-10-15 03:28:59 +0200califax(~califax@user/califx)
2022-10-15 03:31:33 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-15 03:32:03 +0200 <ski> (i guess it's somewhat similar to if you had a subroutine that accepted a parameter by you overwriting an operand of a machine instruction (or some static memory area associated with the routine), which is not reentrant (this is not the quite same thing as instantiating the tail (rather than calling a function that'll populate a tail after freshly constructed cells), but seems similar in that it's
2022-10-15 03:32:09 +0200 <ski> destructive))
2022-10-15 03:32:12 +0200 <ski> @hackage ivar-simple
2022-10-15 03:32:12 +0200 <lambdabot> https://hackage.haskell.org/package/ivar-simple
2022-10-15 03:32:20 +0200 <ski> @hackage data-ivar
2022-10-15 03:32:20 +0200 <lambdabot> https://hackage.haskell.org/package/data-ivar
2022-10-15 03:32:44 +0200 <ski> has `IVar a', which you can instantiate with an `a'. trying to read before that blocks
2022-10-15 03:32:58 +0200ski. o O ( "I-structures: data structures for parallel computing" by Arvind,Rishiyur S. Nikhil,Keshav K. Pingali in 1989-10 at <https://dl.acm.org/doi/10.1145/69558.69562> )
2022-10-15 03:33:29 +0200ski. o O ( chapter 4 "Dataflow Parallelism: The Par Monad" <https://web.archive.org/web/20180119053756/http://chimera.labs.oreilly.com/books/1230000000929/ch0…> in "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at
2022-10-15 03:33:33 +0200ski<https://web.archive.org/web/20180121171509/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> )
2022-10-15 03:33:37 +0200 <ski> @where CTM
2022-10-15 03:33:37 +0200 <lambdabot> "Concepts, Techniques, and Models of Computer Programming", by Peter Van Roy,Seif Haridi, at <http://www.info.ucl.ac.be/~pvr/book.html>
2022-10-15 03:34:01 +0200 <ski> (CTM also talks about how to use dataflow variables for declarative concurrency in a chapter (not having added the operation that can race-join multiple concurrent channels/streams by that chapter yet))
2022-10-15 03:39:33 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-10-15 03:40:34 +0200califax(~califax@user/califx)
2022-10-15 03:44:41 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 03:49:18 +0200Topsi(~Topsi@dyndsl-095-033-095-014.ewe-ip-backbone.de) (Quit: Leaving.)
2022-10-15 03:55:00 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2022-10-15 03:55:43 +0200k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-10-15 04:00:45 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-10-15 04:02:02 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-15 04:07:50 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-15 04:08:31 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-10-15 04:08:31 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-10-15 04:08:49 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 04:10:31 +0200elbear(~lucian@188.24.138.239)
2022-10-15 04:14:56 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 260 seconds)
2022-10-15 04:16:08 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
2022-10-15 04:26:37 +0200td_(~td@83.135.9.35) (Ping timeout: 268 seconds)
2022-10-15 04:28:18 +0200td_(~td@83.135.9.18)
2022-10-15 04:31:38 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 04:35:27 +0200Me-me(~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host)
2022-10-15 04:35:27 +0200Me-me(~me-me@user/me-me)
2022-10-15 04:37:30 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
2022-10-15 04:45:41 +0200raym(~aritra@user/raym) (Ping timeout: 252 seconds)
2022-10-15 04:45:49 +0200berberman(~berberman@user/berberman)
2022-10-15 04:49:18 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds)
2022-10-15 04:51:38 +0200raym(~aritra@user/raym)
2022-10-15 05:06:16 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-15 05:14:46 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-15 05:19:46 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 05:28:13 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-15 05:31:11 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-15 05:35:26 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-10-15 05:38:52 +0200mikoto-chan(~mikoto-ch@193.185.223.3)
2022-10-15 05:42:24 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 05:44:15 +0200Sauvin(~colere@about/linux/staff/sauvin) (Read error: Connection reset by peer)
2022-10-15 05:44:52 +0200Colere(~colere@about/linux/staff/sauvin)
2022-10-15 05:45:10 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-10-15 05:57:14 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-10-15 05:57:38 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net)
2022-10-15 05:58:30 +0200johnjaye(~pi@173.209.64.74) (Ping timeout: 268 seconds)
2022-10-15 05:59:51 +0200johnjaye(~pi@173.209.64.74)
2022-10-15 06:00:26 +0200freemanX(~user@138.202-128-197.unknown.qala.com.sg)
2022-10-15 06:01:35 +0200freemanX`(~user@138.202-128-197.unknown.qala.com.sg)
2022-10-15 06:01:55 +0200freemanX(~user@138.202-128-197.unknown.qala.com.sg) ()
2022-10-15 06:08:14 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-15 06:10:26 +0200wroathe(~wroathe@user/wroathe) (Read error: Connection reset by peer)
2022-10-15 06:11:08 +0200califax(~califax@user/califx)
2022-10-15 06:16:30 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-10-15 06:28:39 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-15 06:28:39 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-15 06:28:39 +0200wroathe(~wroathe@user/wroathe)
2022-10-15 06:38:02 +0200freemanX`(~user@138.202-128-197.unknown.qala.com.sg) (Remote host closed the connection)
2022-10-15 06:38:39 +0200razetime(~quassel@117.254.35.178)
2022-10-15 06:41:17 +0200wroathe(~wroathe@user/wroathe) (Quit: leaving)
2022-10-15 06:43:10 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-15 06:43:10 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-15 06:43:10 +0200wroathe(~wroathe@user/wroathe)
2022-10-15 07:06:27 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-10-15 07:07:42 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-10-15 07:13:45 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-10-15 07:14:52 +0200Lumia(~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Quit: ,-)
2022-10-15 07:34:18 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-10-15 07:34:57 +0200elbear(~lucian@188.24.138.239)
2022-10-15 07:38:46 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 07:42:50 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-10-15 07:43:51 +0200 <qrpnxz> i have finally found a place where implementing `mapM` can get speed!!!!
2022-10-15 07:44:27 +0200 <qrpnxz> a version of traverse for lists using foldrM rather than foldr is faster for me in some CPS code
2022-10-15 07:44:38 +0200 <qrpnxz> unfortunately, base doesn't define mapM lol
2022-10-15 07:56:51 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2022-10-15 08:08:08 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-15 08:13:45 +0200raym(~aritra@user/raym) (Quit: kernel update : rebooting...)
2022-10-15 08:14:30 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 264 seconds)
2022-10-15 08:14:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-10-15 08:16:59 +0200raym(~aritra@user/raym)
2022-10-15 08:17:52 +0200 <qrpnxz> nevermind... i wasn't doing what i thought i was doing :///
2022-10-15 08:22:47 +0200Flow(~none@gentoo/developer/flow)
2022-10-15 08:26:07 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-10-15 08:27:09 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-10-15 08:30:46 +0200phma(~phma@host-67-44-209-51.hnremote.net) (Read error: Connection reset by peer)
2022-10-15 08:31:37 +0200phma(~phma@2001:5b0:212a:b868:10d:f982:1a1:a475)
2022-10-15 08:31:48 +0200codaraxis___(~codaraxis@user/codaraxis)
2022-10-15 08:34:43 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
2022-10-15 08:47:48 +0200lagash(lagash@lagash.shelltalk.net) (Ping timeout: 264 seconds)
2022-10-15 08:48:45 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: quit)
2022-10-15 08:48:53 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2022-10-15 08:57:21 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de)
2022-10-15 08:57:34 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-10-15 08:58:51 +0200zaquest(~notzaques@5.130.79.72)
2022-10-15 09:00:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-15 09:10:27 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-15 09:13:11 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-15 09:22:00 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 264 seconds)
2022-10-15 09:24:06 +0200Flow(~none@gentoo/developer/flow)
2022-10-15 09:26:44 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr)
2022-10-15 09:28:18 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-10-15 09:30:30 +0200kuribas(~user@ptr-17d51emezcmdxqisyeh.18120a2.ip6.access.telenet.be)
2022-10-15 09:31:13 +0200 <kuribas> Is it possible to implement static typed access control at the database level?
2022-10-15 09:31:15 +0200razetime(~quassel@117.254.35.178) (Ping timeout: 248 seconds)
2022-10-15 09:31:59 +0200 <kuribas> for example, each table in the database can only be used if it has an access control feature enabled.
2022-10-15 09:32:28 +0200 <kuribas> And the business logic of the access control is a query.
2022-10-15 09:33:13 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-15 09:33:22 +0200 <kuribas> For example, to check the domain, you have a query which goes to the domain table.
2022-10-15 09:34:42 +0200lagash(lagash@lagash.shelltalk.net)
2022-10-15 09:36:03 +0200 <kuribas> And access to the table requires a typed token that proves the user has gained access.
2022-10-15 09:37:02 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) ()
2022-10-15 09:41:51 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 09:47:57 +0200Guest|50(~Guest|50@176.44.50.192)
2022-10-15 09:48:56 +0200 <Guest|50> Hi
2022-10-15 09:49:04 +0200 <Guest|50> stack build --install-ghc --executable-profiling --ghc-options="-v" --copy-bins --local-bin-path /usr/local/bin
2022-10-15 09:49:09 +0200 <Guest|50> Fails
2022-10-15 09:49:37 +0200 <Guest|50> What can I do to fix it ?
2022-10-15 09:49:50 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 09:49:51 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 09:51:00 +0200 <Guest|50> https://paste.tomsmeding.com/nMgNHa1O
2022-10-15 09:51:06 +0200 <Guest|50> is the log
2022-10-15 09:54:41 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 09:56:48 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 264 seconds)
2022-10-15 10:00:30 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e)
2022-10-15 10:01:00 +0200razetime(~quassel@117.254.35.178)
2022-10-15 10:03:29 +0200Flow(~none@gentoo/developer/flow)
2022-10-15 10:05:10 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-15 10:05:12 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e) (Ping timeout: 264 seconds)
2022-10-15 10:09:39 +0200Kaladin(~Kaladin@157-131-169-214.fiber.dynamic.sonic.net)
2022-10-15 10:23:22 +0200Kaladin(~Kaladin@157-131-169-214.fiber.dynamic.sonic.net) (Quit: Leaving)
2022-10-15 10:31:48 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 10:37:51 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 10:38:27 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-10-15 10:38:29 +0200[itchyjunk][spookyjunk]
2022-10-15 10:44:39 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-10-15 10:45:22 +0200vorpuni(~pvorp@2001:861:3881:c690:e185:5e3b:1c93:d57c)
2022-10-15 10:49:49 +0200v0rpun1(~pvorp@195.200.221.194)
2022-10-15 10:50:26 +0200vorpuni(~pvorp@2001:861:3881:c690:e185:5e3b:1c93:d57c) (Ping timeout: 260 seconds)
2022-10-15 10:57:36 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv)
2022-10-15 11:02:25 +0200vn36(~vn36@123.63.203.210)
2022-10-15 11:05:26 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv) (Quit: Leaving)
2022-10-15 11:07:52 +0200Everything(~Everythin@37.115.210.35)
2022-10-15 11:08:17 +0200 <Everything> Hi. It's safe to say that Haskell (by design) doesn't have mutable types?
2022-10-15 11:09:24 +0200 <kuribas> Everything: what's a mutable type?
2022-10-15 11:09:29 +0200 <kuribas> types aren't mutable by definition
2022-10-15 11:09:43 +0200 <kuribas> if you mean mutable values, it does have mutable values.
2022-10-15 11:09:52 +0200 <kuribas> like IORef
2022-10-15 11:11:14 +0200 <Hecate> Everything: even though we highly promote immutable values (for the usual reasons), we do have mutable values and references
2022-10-15 11:11:47 +0200 <Everything> Hecate: yes, but initially? As in pure functional PL?
2022-10-15 11:11:57 +0200 <Everything> OK, mutable data
2022-10-15 11:17:31 +0200 <kuribas> Everything: the IORef itself is immutable
2022-10-15 11:17:49 +0200 <kuribas> but it's basically a reference, then you use IO to get out the value?
2022-10-15 11:18:02 +0200 <kuribas> s/?/.
2022-10-15 11:18:15 +0200 <Hecate> Everything: pretty sure every pure functional PL that wants to be remotely useful for anything other than teaching embeds mutable data facilities
2022-10-15 11:18:27 +0200 <Everything> OK
2022-10-15 11:18:46 +0200 <kuribas> Hecate: probably even the teaching languages :) I am not sure about agda, coq, though...
2022-10-15 11:19:24 +0200 <kuribas> Which systems do people use to make webshops are CMS in haskell?
2022-10-15 11:19:38 +0200 <Hecate> kuribas: shopify :P
2022-10-15 11:19:41 +0200 <Hecate> (jk)
2022-10-15 11:19:59 +0200 <kuribas> Do you simply write haskell to interact with existing javascript CMS frameworks?
2022-10-15 11:20:03 +0200Guest362(~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 248 seconds)
2022-10-15 11:20:16 +0200 <kuribas> Or do people write a new frontend for each project?
2022-10-15 11:20:19 +0200 <Hecate> there are frontend CMS frameworks…?
2022-10-15 11:20:54 +0200 <Hecate> kuribas: do you have some more specific technologies in mind?
2022-10-15 11:21:26 +0200 <kuribas> Hecate: not really
2022-10-15 11:21:42 +0200 <kuribas> Hecate: I am just scrolling freelance jobs, and there is a lot of demand for webshops and CMSes.
2022-10-15 11:21:59 +0200 <Hecate> kuribas: they want their webshop tailor-made?
2022-10-15 11:22:04 +0200 <Hecate> or do they want a webshop?
2022-10-15 11:22:15 +0200 <Hecate> because if people want a webshop, you create a Shopify
2022-10-15 11:22:23 +0200 <kuribas> I guess the simplest and cheapest solution :P
2022-10-15 11:22:28 +0200 <Hecate> aye
2022-10-15 11:22:36 +0200 <kuribas> But it depends on how much custom programming needs to be there.
2022-10-15 11:22:47 +0200 <Hecate> hence the need to refine the needs of the clients ;-D
2022-10-15 11:23:08 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-10-15 11:23:15 +0200 <kuribas> hmm: https://hackage.haskell.org/package/shopify
2022-10-15 11:24:02 +0200 <Hecate> you will want to ask davean if it's still good
2022-10-15 11:25:23 +0200 <Hecate> kuribas: if you ever develop a CMS platform in Haskell with nice theming and less security breaches than Wordpress, please hit me up :P
2022-10-15 11:25:39 +0200 <kuribas> Hecate: inclusing 20000 plugins?
2022-10-15 11:26:12 +0200 <kuribas> Making a basic CMS platform is doable.
2022-10-15 11:26:17 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net)
2022-10-15 11:26:23 +0200 <kuribas> But supporting everythin wordpress has is impossible.
2022-10-15 11:26:56 +0200 <Hecate> kuribas: don't be silly, of course not including wordpress has, since it is in direct contradiction with the "less security breaches" constraint :P
2022-10-15 11:27:55 +0200 <kuribas> I know a commercial CMS in haskell: https://www.centralapp.com
2022-10-15 11:28:08 +0200 <kuribas> Hecate: hehe
2022-10-15 11:29:04 +0200 <kuribas> Hecate: I think the backend part should be trivial. The most work is creating a good frontend UI.
2022-10-15 11:29:27 +0200 <Hecate> kuribas: neither will be trivial
2022-10-15 11:34:09 +0200 <kuribas> that means haskell is useless for most projects?
2022-10-15 11:37:36 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-15 11:37:45 +0200[spookyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-10-15 11:37:49 +0200 <Hecate> kuribas: please put down your crack pipe :P
2022-10-15 11:38:04 +0200 <Hecate> I'm talking about the domain, not the language
2022-10-15 11:39:13 +0200 <kuribas> no, I mean haskell isn't a great option for most of the freelance projects I come across.
2022-10-15 11:39:27 +0200 <Hecate> ah
2022-10-15 11:39:40 +0200 <kuribas> As it is easier to setup a crappy wordpress installation that to write a robust haskell webapp.
2022-10-15 11:39:58 +0200 <tomsmeding> replace "haskell" with "" in that sentence and it still holds
2022-10-15 11:40:02 +0200 <tomsmeding> so not sure that says much about haskell
2022-10-15 11:40:09 +0200 <Hecate> kuribas: the idea is that eventually you want to setup a shiny haskell CMS instead of a crappy wordpress
2022-10-15 11:40:18 +0200 <Hecate> not develop your own from scratch, in PHP or Haskell
2022-10-15 11:40:23 +0200 <kuribas> tomsmeding: yeah, I am not critising haskell, rather the industry :)
2022-10-15 11:40:24 +0200 <Hecate> same for the e-shop
2022-10-15 11:40:44 +0200 <Guest|50> Solved with ghcup. Thanks
2022-10-15 11:40:54 +0200 <Hecate> Guest|50: Have a nice day
2022-10-15 11:41:01 +0200Guest|50(~Guest|50@176.44.50.192) ()
2022-10-15 11:41:15 +0200 <kuribas> Hecate: eventually is when?
2022-10-15 11:41:28 +0200 <Hecate> kuribas: when you have an adequate product?
2022-10-15 11:41:52 +0200 <Hecate> if you're asking me for a more precise timeline, I would advise you to hire me as a product manager :P
2022-10-15 11:42:43 +0200 <kuribas> Hecate: fine, I could work 1 to 2 days in the week on it.
2022-10-15 11:43:28 +0200 <kuribas> still I wonder if I can just steal the UI from an existing framework, and build a good haskell backend for it.
2022-10-15 11:43:48 +0200 <Hecate> p. sure you're going to have to learn how 2 CSS
2022-10-15 11:44:07 +0200 <kuribas> I know CSS
2022-10-15 11:44:09 +0200 <kuribas> and html
2022-10-15 11:44:16 +0200 <Hecate> even CSS grid and flexbox? :p
2022-10-15 11:44:47 +0200 <kuribas> I learned CSS when all browsers had a different implementation.
2022-10-15 11:45:03 +0200 <kuribas> Well, they still have, but not that bad.
2022-10-15 11:45:44 +0200 <Hecate> you might want to update your skillset then, we have CSS3 and a bunch of nice stuff nowadays
2022-10-15 11:49:16 +0200 <kuribas> wouldn't "shopify + haskell plugin" work well enough?
2022-10-15 11:49:50 +0200 <kuribas> "You need to use Node.js to install Shopify CLI and manage its dependencies. However, you can use any technology stack to build your app's functionality."
2022-10-15 11:52:58 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-15 11:54:14 +0200michalz(~michalz@185.246.207.200)
2022-10-15 11:57:01 +0200 <kuribas> Hecate: you could read the graphql schema into a type definitions, and get a type-safe experience.
2022-10-15 11:57:08 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-10-15 11:58:43 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Quit: king_gs)
2022-10-15 11:58:57 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-10-15 11:59:03 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-15 12:02:00 +0200spacenautx(~spacenaut@user/spacenautx)
2022-10-15 12:02:20 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-10-15 12:02:21 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 12:02:57 +0200spacenautx(~spacenaut@user/spacenautx) (Client Quit)
2022-10-15 12:06:51 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-10-15 12:06:59 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-10-15 12:07:07 +0200kenran(~user@user/kenran)
2022-10-15 12:07:15 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-15 12:08:22 +0200spacenautx(~spacenaut@user/spacenautx)
2022-10-15 12:08:43 +0200spacenautx(~spacenaut@user/spacenautx) (Client Quit)
2022-10-15 12:09:05 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-15 12:12:36 +0200Midjak(~Midjak@82.66.147.146)
2022-10-15 12:13:37 +0200elbear(~lucian@188.24.138.239)
2022-10-15 12:17:01 +0200frost26(~frost@user/frost) (Quit: Ping timeout (120 seconds))
2022-10-15 12:18:24 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 264 seconds)
2022-10-15 12:22:46 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 12:23:48 +0200crazazy(~user@130.89.171.62)
2022-10-15 12:25:25 +0200frost56(~frost@user/frost)
2022-10-15 12:25:58 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f) (Read error: Connection reset by peer)
2022-10-15 12:25:58 +0200baaash[m](~baaashmat@2001:470:69fc:105::2:1e90) (Write error: Connection reset by peer)
2022-10-15 12:25:58 +0200lawt(~lawtonmat@2001:470:69fc:105::2:97b8) (Write error: Connection reset by peer)
2022-10-15 12:25:58 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729) (Read error: Connection reset by peer)
2022-10-15 12:25:58 +0200Tisoxin(~ikosit@user/ikosit) (Read error: Connection reset by peer)
2022-10-15 12:25:58 +0200Deide(~deide@user/deide) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200BB[m](~cashmagem@2001:470:69fc:105::f6dc) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200aviladev[m](~aviladevm@2001:470:69fc:105::1:cbc7) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200nomagno(~nomagno@2001:470:69fc:105::c1f0) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200jbggs[m](~jbggsmatr@2001:470:69fc:105::2:995f) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200jinsun_(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200Killy(~killy@2001:470:69fc:105::2:6ec1) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200jean-paul[m](~jean-paul@2001:470:69fc:105::d1ab) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200desophos[m](~desophosm@2001:470:69fc:105::2:81d9) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200kadoban(~kadoban@user/kadoban) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200FurudeRika[m](~chitandae@2001:470:69fc:105::1:6039) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200psydroid(~psydroid@user/psydroid) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200ericson2314(~ericson23@2001:470:69fc:105::70c) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200romes[m](~romesmatr@2001:470:69fc:105::2:1660) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200xgpt[m](~xgptmatri@2001:470:69fc:105::2:619a) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200zfnmxt(~zfnmxt@2001:470:69fc:105::2b32) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200silky[m](~noonvande@2001:470:69fc:105::2:943c) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200sm(~sm@plaintextaccounting/sm) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200ormaaj(~ormaaj@user/ormaaj) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200foghorn(~foghorn@user/foghorn) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200geekosaur[m](~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200famubu[m](~famubumat@2001:470:69fc:105::1081) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200olivermead[m](~olivermea@2001:470:69fc:105::2:4289) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200aaronv(~aaronv@user/aaronv) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200fr33domlover[m](~fr33domlo@2001:470:69fc:105::1:3bb6) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200aidy(~aidy@2001:470:69fc:105::c7b4) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200cafkafk[m](~cafkafkma@2001:470:69fc:105::1:cea8) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200siraben(~siraben@user/siraben) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200sektor[m](~sektor@2001:470:69fc:105::2:3f60) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200mimi1vx[m](~osukupmat@2001:470:69fc:105::2:418d) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200jz99[m](~jz99matri@2001:470:69fc:105::1:d5f1) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200Neosake[m](~neosakema@2001:470:69fc:105::2:989e) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200bb010g(~bb010g@2001:470:69fc:105::9a5) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200TrueBlue[m](~busterblu@2001:470:69fc:105::1:d7e8) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200schuelermine[m](~schuelerm@user/schuelermine) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200loosh[m](~looshchat@2001:470:69fc:105::2:5ddd) (Write error: Connection reset by peer)
2022-10-15 12:26:00 +0200M3g-mentok[m](~M3g-mento@2001:470:69fc:105::2:9a49) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200vladan[m](~vladanmat@2001:470:69fc:105::2:24df) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200unclechu(~unclechu@2001:470:69fc:105::354) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200kiri1606[m](~kiri1606m@2001:470:69fc:105::2:8ec9) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200nicmollel[m](~nicmollel@2001:470:69fc:105::1:feeb) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200peddie(~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200drsooch[m](~drsoochma@2001:470:69fc:105::1:c8a1) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Write error: Connection reset by peer)
2022-10-15 12:26:05 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer)
2022-10-15 12:26:05 +0200chreekat(~chreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200jmcantrell(~jmcantrel@user/jmcantrell) (Write error: Connection reset by peer)
2022-10-15 12:26:05 +0200rockymarine[m](~rockymari@2001:470:69fc:105::2:9a0c) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200JensPetersen[m](~juhp@2001:470:69fc:105::6e9) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200duckie(~duckie@user/duckie) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200polykernel[m](~polykerne@user/polykernel) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200Clinton[m](~clintonme@2001:470:69fc:105::2:31d4) (Read error: Connection reset by peer)
2022-10-15 12:27:05 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 12:27:24 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-15 12:28:18 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2022-10-15 12:29:22 +0200Topsi(~Topsi@dyndsl-095-033-095-014.ewe-ip-backbone.de)
2022-10-15 12:29:28 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 12:33:25 +0200 <Everything> [6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~
2022-10-15 12:33:27 +0200peddie(~peddie@2001:470:69fc:105::25d)
2022-10-15 12:33:27 +0200ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-10-15 12:33:27 +0200famubu[m](~famubumat@2001:470:69fc:105::1081)
2022-10-15 12:33:28 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2022-10-15 12:33:42 +0200zfnmxt(~zfnmxt@2001:470:69fc:105::2b32)
2022-10-15 12:33:42 +0200sm(~sm@plaintextaccounting/sm)
2022-10-15 12:33:42 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-10-15 12:33:43 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-10-15 12:33:43 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-10-15 12:33:43 +0200siraben(~siraben@user/siraben)
2022-10-15 12:33:44 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-10-15 12:33:51 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416)
2022-10-15 12:33:57 +0200 <Everything> Ouch, sorry, wrong terminal
2022-10-15 12:34:10 +0200kiri1606[m](~kiri1606m@2001:470:69fc:105::2:8ec9)
2022-10-15 12:34:12 +0200chreekat(~chreekat@2001:470:69fc:105::16b5)
2022-10-15 12:34:30 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713)
2022-10-15 12:34:47 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291)
2022-10-15 12:34:48 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-10-15 12:34:48 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-10-15 12:35:00 +0200bb010g(~bb010g@2001:470:69fc:105::9a5)
2022-10-15 12:35:01 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2022-10-15 12:35:02 +0200jmcantrell(~jmcantrel@user/jmcantrell)
2022-10-15 12:35:03 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-10-15 12:35:03 +0200jinsun_(~jinsun@user/jinsun)
2022-10-15 12:35:03 +0200romes[m](~romesmatr@2001:470:69fc:105::2:1660)
2022-10-15 12:35:04 +0200JensPetersen[m](~juhp@2001:470:69fc:105::6e9)
2022-10-15 12:35:04 +0200ormaaj(~ormaaj@user/ormaaj)
2022-10-15 12:35:04 +0200cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293)
2022-10-15 12:35:04 +0200kadoban(~kadoban@user/kadoban)
2022-10-15 12:35:04 +0200BB[m](~cashmagem@2001:470:69fc:105::f6dc)
2022-10-15 12:35:05 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac)
2022-10-15 12:35:29 +0200silky[m](~noonvande@2001:470:69fc:105::2:943c)
2022-10-15 12:35:29 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57)
2022-10-15 12:35:29 +0200nicmollel[m](~nicmollel@2001:470:69fc:105::1:feeb)
2022-10-15 12:35:29 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-10-15 12:35:30 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-10-15 12:35:33 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f)
2022-10-15 12:35:34 +0200lawt(~lawtonmat@2001:470:69fc:105::2:97b8)
2022-10-15 12:35:34 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f)
2022-10-15 12:35:34 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2022-10-15 12:35:54 +0200 <ski> (pressing `<next>' a bunch of times, presumably)
2022-10-15 12:35:55 +0200drsooch[m](~drsoochma@2001:470:69fc:105::1:c8a1)
2022-10-15 12:35:57 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-10-15 12:35:57 +0200olivermead[m](~olivermea@2001:470:69fc:105::2:4289)
2022-10-15 12:36:15 +0200Neosake[m](~neosakema@2001:470:69fc:105::2:989e)
2022-10-15 12:36:32 +0200aidy(~aidy@2001:470:69fc:105::c7b4)
2022-10-15 12:36:57 +0200 <Everything> PgDn, actually
2022-10-15 12:37:01 +0200jbggs[m](~jbggsmatr@2001:470:69fc:105::2:995f)
2022-10-15 12:37:27 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c)
2022-10-15 12:37:40 +0200rockymarine[m](~rockymari@2001:470:69fc:105::2:9a0c)
2022-10-15 12:37:42 +0200loosh[m](~looshchat@2001:470:69fc:105::2:5ddd)
2022-10-15 12:37:59 +0200M3g-mentok[m](~M3g-mento@2001:470:69fc:105::2:9a49)
2022-10-15 12:38:17 +0200disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892)
2022-10-15 12:38:18 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-10-15 12:38:18 +0200Tisoxin(~ikosit@user/ikosit)
2022-10-15 12:38:37 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8)
2022-10-15 12:38:37 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-10-15 12:38:38 +0200foghorn(~foghorn@user/foghorn)
2022-10-15 12:38:38 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2022-10-15 12:38:43 +0200baaash[m](~baaashmat@2001:470:69fc:105::2:1e90)
2022-10-15 12:38:57 +0200sektor[m](~sektor@2001:470:69fc:105::2:3f60)
2022-10-15 12:38:57 +0200mimi1vx[m](~osukupmat@2001:470:69fc:105::2:418d)
2022-10-15 12:39:09 +0200Clinton[m](~clintonme@2001:470:69fc:105::2:31d4)
2022-10-15 12:39:09 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4)
2022-10-15 12:39:09 +0200vladan[m](~vladanmat@2001:470:69fc:105::2:24df)
2022-10-15 12:39:10 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172)
2022-10-15 12:39:10 +0200jz99[m](~jz99matri@2001:470:69fc:105::1:d5f1)
2022-10-15 12:39:10 +0200geekosaur[m](~geekosaur@xmonad/geekosaur)
2022-10-15 12:39:10 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d)
2022-10-15 12:39:10 +0200duckie(~duckie@user/duckie)
2022-10-15 12:39:11 +0200nomagno(~nomagno@2001:470:69fc:105::c1f0)
2022-10-15 12:39:11 +0200jean-paul[m](~jean-paul@2001:470:69fc:105::d1ab)
2022-10-15 12:39:11 +0200FurudeRika[m](~chitandae@2001:470:69fc:105::1:6039)
2022-10-15 12:39:11 +0200aviladev[m](~aviladevm@2001:470:69fc:105::1:cbc7)
2022-10-15 12:39:11 +0200Deide(~deide@user/deide)
2022-10-15 12:39:12 +0200fr33domlover[m](~fr33domlo@2001:470:69fc:105::1:3bb6)
2022-10-15 12:39:12 +0200TrueBlue[m](~busterblu@2001:470:69fc:105::1:d7e8)
2022-10-15 12:39:26 +0200desophos[m](~desophosm@2001:470:69fc:105::2:81d9)
2022-10-15 12:39:39 +0200cafkafk[m](~cafkafkma@2001:470:69fc:105::1:cea8)
2022-10-15 12:39:39 +0200Killy(~killy@2001:470:69fc:105::2:6ec1)
2022-10-15 12:39:51 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f)
2022-10-15 12:39:51 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c)
2022-10-15 12:39:51 +0200aaronv(~aaronv@user/aaronv)
2022-10-15 12:39:52 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417)
2022-10-15 12:39:52 +0200psydroid(~psydroid@user/psydroid)
2022-10-15 12:39:52 +0200schuelermine[m](~schuelerm@user/schuelermine)
2022-10-15 12:39:53 +0200xgpt[m](~xgptmatri@2001:470:69fc:105::2:619a)
2022-10-15 12:40:05 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65)
2022-10-15 12:40:06 +0200polykernel[m](~polykerne@user/polykernel)
2022-10-15 12:40:09 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2022-10-15 12:40:17 +0200 <dminuoso> https://hackage.haskell.org/package/mason-0.2.5/docs/src/Mason.Builder.Internal.html#Builder
2022-10-15 12:40:37 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-15 12:41:14 +0200 <dminuoso> `BuilderFor` uses an unpacked IO internally in order to allow producing unboxed tuples directly (presumingly avoiding relying on GHC to unbox explicit tuples)
2022-10-15 12:41:31 +0200 <dminuoso> However, here comes the question:
2022-10-15 12:42:28 +0200 <dminuoso> `withPtr n f = ensure n $ \(Buffer e p) -> Buffer e <$> f p` uses the bidirectional pattern synonym `Buffer`, which in the forward direction uses `unBuilder` to first produce an `IO`, that is at the same time being deconstructed in the `Builder` pattern synonym itself (unBuilder is iis used as a view pattern)
2022-10-15 12:43:46 +0200 <dminuoso> What's going on with this roundtrip through IO here?
2022-10-15 12:45:03 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de)
2022-10-15 12:46:30 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 12:51:12 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 12:53:31 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv)
2022-10-15 13:03:57 +0200Kaipei(~Kaiepi@142.68.249.28)
2022-10-15 13:04:57 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 13:04:58 +0200elbear(~lucian@188.24.138.239)
2022-10-15 13:06:14 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-10-15 13:07:31 +0200Kaipii(~Kaiepi@142.68.249.28) (Ping timeout: 260 seconds)
2022-10-15 13:08:48 +0200Kaipei(~Kaiepi@142.68.249.28) (Ping timeout: 264 seconds)
2022-10-15 13:09:19 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 250 seconds)
2022-10-15 13:09:34 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-15 13:09:45 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Remote host closed the connection)
2022-10-15 13:10:04 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-15 13:11:12 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-15 13:15:08 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Ping timeout: 268 seconds)
2022-10-15 13:15:57 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 13:19:31 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-10-15 13:22:27 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2022-10-15 13:24:58 +0200mikoto-chan(~mikoto-ch@193.185.223.3) (Ping timeout: 268 seconds)
2022-10-15 13:31:17 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-15 13:35:55 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-15 13:35:55 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de)
2022-10-15 13:37:05 +0200elbear(~lucian@188.24.138.239)
2022-10-15 13:41:48 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 264 seconds)
2022-10-15 13:53:10 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-15 13:56:44 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-10-15 13:58:04 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 14:02:48 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-15 14:03:51 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:6d70:b0c1:e403:3e35)
2022-10-15 14:12:48 +0200jtomas(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net)
2022-10-15 14:15:11 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 260 seconds)
2022-10-15 14:15:32 +0200`2jt(~jtomas@90.red-88-17-81.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-10-15 14:17:02 +0200jargon(~jargon@184.101.208.112) (Remote host closed the connection)
2022-10-15 14:25:20 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 14:28:31 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 14:30:19 +0200ncf(~n@monade.li) (Quit: Fairfarren.)
2022-10-15 14:30:41 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 14:31:01 +0200ncf(~n@monade.li)
2022-10-15 14:32:12 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-15 14:32:53 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 14:36:24 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 14:38:25 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 14:40:20 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-10-15 14:44:48 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-15 14:45:05 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-10-15 14:45:44 +0200Midjak(~Midjak@82.66.147.146) (Quit: Leaving)
2022-10-15 14:47:02 +0200Midjak(~Midjak@82.66.147.146)
2022-10-15 14:47:21 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv) (Quit: Leaving)
2022-10-15 14:47:39 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-15 14:52:22 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet) (Quit: mesaoptimizer)
2022-10-15 14:52:33 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet)
2022-10-15 14:57:18 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-10-15 14:57:38 +0200[Leary](~Leary]@user/Leary/x-0910699)
2022-10-15 14:58:39 +0200 <ski> Everything : same thing
2022-10-15 15:04:02 +0200elbear(~lucian@188.24.138.239)
2022-10-15 15:08:48 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 264 seconds)
2022-10-15 15:16:29 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-10-15 15:19:59 +0200frost56(~frost@user/frost) (Quit: Client closed)
2022-10-15 15:20:26 +0200elbear(~lucian@188.24.138.239)
2022-10-15 15:24:51 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 248 seconds)
2022-10-15 15:27:05 +0200tubogram44(~tubogram@user/tubogram) (Ping timeout: 258 seconds)
2022-10-15 15:27:08 +0200 <ski> dminuoso : `Builder' is the bidi pattern synonym, not `Buffer'
2022-10-15 15:28:06 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-15 15:28:22 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-15 15:28:27 +0200 <ski> dminuoso : not sure what you mean by "which in the forward direction uses `unBuilder` to first produce an `IO`, that is at the same time being deconstructed in the `Builder` pattern synonym itself (unBuilder is iis used as a view pattern)", assuming you rather meant that regarding the bidi pattern synonym `Builder'
2022-10-15 15:29:17 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 250 seconds)
2022-10-15 15:29:55 +0200 <ski> (also `Builder' and `unBuilder' uses inconsistent (with definition of `Buffer', and later use of it) naming for the two pointers .. apparently the ordering of the pointers were swapped, but they forgot to swap names in `Builder' & `unBuilder' (although since it's just shuffling them around, the semantics is the same .. it's just confusing naming))
2022-10-15 15:31:45 +0200phma(~phma@2001:5b0:212a:b868:10d:f982:1a1:a475) (Read error: Connection reset by peer)
2022-10-15 15:32:11 +0200phma(~phma@host-67-44-208-75.hnremote.net)
2022-10-15 15:34:14 +0200tubogram44(~tubogram@user/tubogram)
2022-10-15 15:40:49 +0200__monty__(~toonn@user/toonn)
2022-10-15 15:42:15 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-10-15 15:45:49 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-10-15 15:47:15 +0200thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-10-15 15:51:55 +0200Taneb(~Taneb@runciman.hacksoc.org)
2022-10-15 16:03:07 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-10-15 16:03:54 +0200vn36(~vn36@123.63.203.210)
2022-10-15 16:06:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e)
2022-10-15 16:06:22 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-10-15 16:10:11 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-15 16:10:36 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e) (Ping timeout: 264 seconds)
2022-10-15 16:10:54 +0200kenran(~user@user/kenran)
2022-10-15 16:13:12 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-15 16:15:36 +0200[itchyjunk][spookyjunk]
2022-10-15 16:17:13 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-15 16:19:15 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-15 16:23:17 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-10-15 16:31:45 +0200ddellacosta(~ddellacos@143.244.47.82)
2022-10-15 16:50:12 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 264 seconds)
2022-10-15 16:51:25 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-15 16:55:06 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-10-15 16:55:34 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-15 16:57:25 +0200elbear(~lucian@188.24.138.239)
2022-10-15 17:02:04 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-15 17:02:18 +0200Guest23(~Guest23@p200300cf073d88d05051af636e755410.dip0.t-ipconnect.de)
2022-10-15 17:05:28 +0200Guest23(~Guest23@p200300cf073d88d05051af636e755410.dip0.t-ipconnect.de) (Client Quit)
2022-10-15 17:06:07 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 17:11:02 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.6)
2022-10-15 17:13:05 +0200vn36(~vn36@123.63.203.210)
2022-10-15 17:19:31 +0200crazazy`(~user@130.89.173.127)
2022-10-15 17:21:01 +0200crazazy(~user@130.89.171.62) (Ping timeout: 252 seconds)
2022-10-15 17:21:32 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-10-15 17:27:43 +0200 <lisbeths> please explain the bind operator to me I don't understand what it's for
2022-10-15 17:27:54 +0200 <lisbeths> if you could show me what the bind operator does in lisp then I can understand it
2022-10-15 17:27:59 +0200 <lisbeths> or if you could show me in JavaScript
2022-10-15 17:29:53 +0200Digit(~user@user/digit) (going minimal for focus.)
2022-10-15 17:32:07 +0200thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
2022-10-15 17:33:10 +0200zebrag(~chris@user/zebrag)
2022-10-15 17:40:38 +0200 <[exa]> lisbeths: not sure if basic lisp or javascript has >>=. But we have a few good explanations for that -- the simplest one is that it's for combining values that are "wrapped" in some kind of extra meaning
2022-10-15 17:41:02 +0200elbear(~lucian@188.24.138.239)
2022-10-15 17:42:12 +0200 <[exa]> lisbeths: let's see a few simple examples, I'll take Maybe as the "extra meaning" for values that might be missing:
2022-10-15 17:43:23 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-10-15 17:43:34 +0200 <[exa]> (let's first try the simpler operators)
2022-10-15 17:44:05 +0200 <lisbeths> is it kind of like union in c
2022-10-15 17:44:13 +0200 <[exa]> > (fmap (+1) (Just 123), fmap (+1) Nothing) -- fmap "ignores the extra meaning" and maps a function to a value
2022-10-15 17:44:15 +0200 <lambdabot> (Just 124,Nothing)
2022-10-15 17:44:50 +0200 <[exa]> that way, you can do something like `fmap (+1) complicatedProgram` and you don't need to care if the program failed (returned Nothing) or not -- it's just going to do the right thing
2022-10-15 17:45:21 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 250 seconds)
2022-10-15 17:45:32 +0200 <[exa]> now a bit more complicated -- what if you have 2 programs that may fail (returning Nothing)?
2022-10-15 17:45:53 +0200 <[exa]> there's the "almost bind" operator for that, the >>
2022-10-15 17:46:00 +0200 <[exa]> > Just 5 >> Just 3
2022-10-15 17:46:01 +0200 <lambdabot> Just 3
2022-10-15 17:46:25 +0200 <[exa]> > Nothing >> Just 3
2022-10-15 17:46:26 +0200 <lambdabot> Nothing
2022-10-15 17:46:28 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 17:46:35 +0200nate1(~nate@98.45.169.16)
2022-10-15 17:46:37 +0200 <lisbeths> what is just
2022-10-15 17:47:03 +0200 <[exa]> lisbeths: ah, I assumed you already know the basic types. Just is a constructor for Maybe's
2022-10-15 17:47:20 +0200 <lisbeths> I do not understand the haskell type system or type theory
2022-10-15 17:47:33 +0200 <[exa]> ok whew
2022-10-15 17:47:44 +0200 <[exa]> I can provide a super high-level explanation then :D
2022-10-15 17:47:47 +0200 <lisbeths> I typically code in a typeless error checkless manner
2022-10-15 17:48:43 +0200crazazy`(~user@130.89.173.127) (Remote host closed the connection)
2022-10-15 17:48:53 +0200 <[exa]> the high-level explanation: a >>= b takes 2 "programs", runs the first, feeds the result into the second one, and if their results are imbued with some special meaning (as defined by Monad typeclass), it "combines" the meaning and returns a single result with a single imbued meaning
2022-10-15 17:49:06 +0200 <[exa]> so for example, you can combine 2 small IO programs into one IO programs
2022-10-15 17:49:21 +0200 <[exa]> or you can combine 2 small possibly-failing computation into 1 possibly-failing computation
2022-10-15 17:49:35 +0200 <[exa]> or you can combine 2 non-deterministic computations into 1 non-deterministic computation
2022-10-15 17:49:38 +0200 <[exa]> etc.
2022-10-15 17:49:52 +0200 <lisbeths> so it is g(f(x))-ing
2022-10-15 17:49:54 +0200 <lisbeths> ?
2022-10-15 17:50:18 +0200 <[exa]> no, it also handles the "side effects"
2022-10-15 17:50:36 +0200 <[exa]> check out this (that's the non-determinism):
2022-10-15 17:50:55 +0200 <[exa]> > [1,2,3] >>= (\f -> [f, f*10])
2022-10-15 17:50:56 +0200 <lambdabot> [1,10,2,20,3,30]
2022-10-15 17:52:10 +0200 <[exa]> this is pretty hard to do by just composing the functions (as with g(f(x))), because 'g' gets something a bit more complicated than it would expect (a whole list of possible values instead of a single one)
2022-10-15 17:53:44 +0200econo(uid147250@user/econo)
2022-10-15 17:54:24 +0200 <[exa]> in Javascript, imagine that in your g(f(x)) the f(x) returns a `null` and `g` is not ready for that. Combining the functions with >>= instead is able to remove this "extra meaning" (the failing possibility) and not evaluate the `g`.
2022-10-15 17:55:20 +0200 <[exa]> and this is a pretty useful general concept, so in Haskell the >>= is "overloaded" for many possible types, giving many possible kinds of such combinations of "extra meanings"
2022-10-15 17:55:29 +0200 <lisbeths> not ready?
2022-10-15 17:55:35 +0200 <[exa]> not ready
2022-10-15 17:55:47 +0200 <[exa]> ...as in "it throws an exception if it gets a null"
2022-10-15 17:55:51 +0200 <lisbeths> it must exit gracefully?
2022-10-15 17:56:11 +0200 <[exa]> imagine it just expects a string and explodes when it gets the null. :]
2022-10-15 17:56:39 +0200 <lisbeths> But if it was supposed to transform a string then what will it do if it gets a null
2022-10-15 17:56:58 +0200 <lisbeths> does it too throw an error?
2022-10-15 17:57:00 +0200 <[exa]> something like `f = (str) -> str.length()`
2022-10-15 17:57:09 +0200 <[exa]> this should crash with a null, right?
2022-10-15 17:57:16 +0200 <lisbeths> or throw
2022-10-15 17:57:27 +0200 <[exa]> yeah (that's pretty much the same)
2022-10-15 17:58:39 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 17:59:34 +0200 <[exa]> hm... imagine that the function f(x) wants to log something, and you are coding in purescript or super-functionally or something, so you can't just append the log to a global object or something
2022-10-15 17:59:43 +0200 <[exa]> (also, g(x) may want to log)
2022-10-15 18:00:17 +0200 <[exa]> the obvious "pure" thing to do is to not return a single value, but a tuple with the value and the produced log entries
2022-10-15 18:00:35 +0200 <lisbeths> why not always apply using bind
2022-10-15 18:01:11 +0200 <[exa]> if you have pure function composition, implementation of `g` would need to manually strip off the log entries of `f` and then append them to its own ones, again returning the tuple
2022-10-15 18:01:48 +0200 <[exa]> now, in this instance, >>= would do that for `g` magically
2022-10-15 18:01:52 +0200 <lisbeths> this is very unsettling I will have to think about this for a while
2022-10-15 18:02:42 +0200 <[exa]> "why not always apply using bind" -- in our case you'd need to tell the compiler that all your values have no special meaning so that it doesn't need to worry that much (the corresponding "meaning" is called Identity monad)
2022-10-15 18:02:49 +0200 <[exa]> the "logging" meaning is called Writer monad btw
2022-10-15 18:03:28 +0200 <dminuoso> lisbeths: Personal recommendation, to learn >>= (and return), just study their semantics on a particular instance.
2022-10-15 18:03:36 +0200 <dminuoso> For each particular instance, they are super easy to understand and grok.
2022-10-15 18:05:48 +0200 <geekosaur> http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html
2022-10-15 18:10:23 +0200 <monochrom> It is probably not a coincidence that callback-style programming is reinvented all the time.
2022-10-15 18:10:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-15 18:14:54 +0200 <dminuoso> monochrom: Honestly, it wasnt until Haskell that I begun to truly explore continuations.
2022-10-15 18:14:56 +0200 <int-e> @quote burrito
2022-10-15 18:14:56 +0200 <lambdabot> hpc says: people hear "omg io monad; it is magic" and write shitty tutorials when they finally realize that a monad is a burrito
2022-10-15 18:15:04 +0200 <dminuoso> Lack of "function returns" makes continuations worthwhile using.
2022-10-15 18:15:24 +0200 <int-e> oh... a pretty harsh one.
2022-10-15 18:15:24 +0200 <dminuoso> In almost all others languages you have to rely on TCO to make continuations something worth using much
2022-10-15 18:16:10 +0200 <int-e> Every single time: "total cost of ownership... wait, this is PL... tail call optimization"
2022-10-15 18:16:50 +0200 <monochrom> Let's rename it to TACO then.
2022-10-15 18:17:00 +0200 <int-e> food is good
2022-10-15 18:17:06 +0200 <monochrom> Then you can say, TACO keeps burritos efficient >:)
2022-10-15 18:17:08 +0200 <int-e> it rhymes, therefore it must be true
2022-10-15 18:17:53 +0200 <int-e> . o O ( continuation [pun accepted]: monad is bad )
2022-10-15 18:18:51 +0200 <int-e> monochrom: maybe "TaCO"
2022-10-15 18:18:59 +0200 <monochrom> Yeah
2022-10-15 18:19:44 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 18:19:53 +0200 <lisbeths> throwing and catching is impure
2022-10-15 18:19:59 +0200 <lisbeths> I have decided it is bad
2022-10-15 18:20:00 +0200Guest|65(~Guest|65@net-2-34-225-11.cust.vodafonedsl.it)
2022-10-15 18:23:54 +0200ColereSauvin
2022-10-15 18:24:52 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-15 18:26:41 +0200Guest|65(~Guest|65@net-2-34-225-11.cust.vodafonedsl.it) (Quit: Connection closed)
2022-10-15 18:28:19 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-10-15 18:29:15 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-10-15 18:29:29 +0200 <hpc> everyone should switch to templeos and code in the only pure language, the holy C
2022-10-15 18:32:29 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-15 18:33:13 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-15 18:37:16 +0200elbear(~lucian@188.24.138.239)
2022-10-15 18:39:48 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-10-15 18:41:19 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 246 seconds)
2022-10-15 18:41:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e)
2022-10-15 18:44:42 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-15 18:44:43 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-10-15 18:45:32 +0200cheater(~Username@user/cheater)
2022-10-15 18:47:46 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.5)
2022-10-15 18:49:07 +0200nate1(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-10-15 18:52:18 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 18:57:23 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 18:59:32 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-15 19:00:58 +0200 <Guillaum[m]> Do you know if we can convert `ghc-pkg dump` to json or any easilly parsable format? In some process I need to recover a few fields for some packages, and calling `ghc-pkg field` three time for each package is impressively slow.
2022-10-15 19:01:13 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-10-15 19:02:48 +0200 <hpc> the output is a stream of yaml documents, fwiw
2022-10-15 19:03:03 +0200 <hpc> break up the stream and convert each to json
2022-10-15 19:03:52 +0200 <hpc> pretty sure you don't even have to do that, and there's already a parser for such output, but i have never had to use it
2022-10-15 19:03:56 +0200 <dminuoso> lisbeths: purity is a matter of perspective. it is the lack of effects (whatever that word means to you)
2022-10-15 19:04:05 +0200 <monochrom> Oh! Is that why all the "---"s?
2022-10-15 19:04:10 +0200 <hpc> yep
2022-10-15 19:04:15 +0200 <dminuoso> For example, is `Maybe Int` pure code? depends on whether you consider `Maybe` an effect or not, its not clear.
2022-10-15 19:04:25 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 246 seconds)
2022-10-15 19:04:38 +0200 <hpc> that "---" exists solely so yaml can be catted in this way
2022-10-15 19:05:01 +0200 <Guillaum[m]> hpc: haaa, so I can just split and convert. Thank you!
2022-10-15 19:05:35 +0200 <ski> lisbeths : "why not always apply using bind" -- the point is that we want to know (from a glance at the source) when we're *not* using effects (like failure, nondeterminism, logging, state, ..)
2022-10-15 19:12:44 +0200 <dminuoso> Guillaum[m]: But yeah I guess the case could be made, to train these ghc interfaces to conditionally produce JSON.
2022-10-15 19:13:01 +0200 <dminuoso> It's become quite the standard for plumbing
2022-10-15 19:13:27 +0200 <hpc> or a flag to switch between them
2022-10-15 19:13:32 +0200nikos_kz(~weechat@240a:61:1107:e7fd:53e:a49e:1e9d:c025)
2022-10-15 19:13:34 +0200 <hpc> yaml is annoyingly also standard
2022-10-15 19:13:35 +0200 <dminuoso> Yes, that's what I meant by conditionally. :)
2022-10-15 19:13:44 +0200 <dminuoso> YAML is ultra complex parse though.
2022-10-15 19:13:51 +0200 <hpc> oh whoops, yeah
2022-10-15 19:13:53 +0200 <monochrom> Better idea: randomly choose the output format. >:)
2022-10-15 19:13:54 +0200 <dminuoso> JSON parsers can be written in a few dozen lines.
2022-10-15 19:14:15 +0200 <monochrom> Although, ghc-pkg dump uses a very small subset of yaml.
2022-10-15 19:14:31 +0200 <dminuoso> Sure, but for pipefitting it likely means you will need a fully fledged yaml parser.
2022-10-15 19:15:07 +0200 <dminuoso> given that "a subset" would otherwise mean a custom parser, or a "fully standard parser". neither one of which is an agreeable solution
2022-10-15 19:15:10 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 19:15:19 +0200 <jbggs[m]> Better idea: procedurally generate a format and then output in that format
2022-10-15 19:15:36 +0200 <jbggs[m]> Yaml but lists use '*' instead of '-' and you need curly brackets
2022-10-15 19:15:51 +0200 <dminuoso> Hah, that change to config-value was my favourite one.
2022-10-15 19:16:04 +0200 <dminuoso> Now config-value can be written in a YAML subset. :)
2022-10-15 19:16:38 +0200nikos_kz(~weechat@240a:61:1107:e7fd:53e:a49e:1e9d:c025) ()
2022-10-15 19:16:40 +0200 <hpc> just make ghc-pkg dump output markdown
2022-10-15 19:17:03 +0200 <dminuoso> GHC would need a custom micro JSON library first, though.
2022-10-15 19:17:13 +0200 <[exa]> hpc: markdown flavor wars in 3 2 1
2022-10-15 19:17:20 +0200 <monochrom> Haha "similar to yaml or json"
2022-10-15 19:17:30 +0200 <dminuoso> But I guess there's no real performance concerns, and no parser is needed either. Just generating JSON naively can probably done with just `bytestring` alone.
2022-10-15 19:17:54 +0200 <monochrom> PHP is similar to python or perl, too >:)
2022-10-15 19:17:57 +0200 <dminuoso> [exa]: Dont even need flavours. Markdown is not even specified. It's horrid.
2022-10-15 19:18:00 +0200 <dminuoso> None of the flavours are.
2022-10-15 19:18:10 +0200 <dminuoso> They're all just some adhoc nonsense with no specification or definition of semantics.
2022-10-15 19:18:33 +0200 <dminuoso> Like in the original markdown, is a table in a hyperlink valid? Who knows, if the reference implementation chokes, its not.. perhaps?
2022-10-15 19:18:51 +0200 <monochrom> GHC 10 will come with aeson because ghc-dump wants it >:)
2022-10-15 19:18:56 +0200 <dminuoso> haha
2022-10-15 19:18:59 +0200 <dminuoso> I hope not.
2022-10-15 19:19:09 +0200 <dminuoso> Aeson is my single most hated library, it drags so much stuff into my builds.
2022-10-15 19:19:24 +0200 <geekosaur> GHC already has a custom mini-JSON, since you can request errors/warnings in JSON format
2022-10-15 19:19:29 +0200 <hpc> ghc already has a layout parser, maybe a purpose-built yaml parser wouldn't be so bad
2022-10-15 19:19:31 +0200 <dminuoso> Im wondering whether I should perhaps prepare a drop-in replacement, that will work for 95 of the cases, but with a minimal footprint.
2022-10-15 19:19:41 +0200 <dminuoso> geekosaur: Oh nice.
2022-10-15 19:19:43 +0200 <monochrom> Yeah, -ddump-json
2022-10-15 19:19:47 +0200 <hpc> (if it even needs to parse)
2022-10-15 19:20:16 +0200 <dminuoso> well given the use case, we only need to encode
2022-10-15 19:20:29 +0200 <dminuoso> but even parsing json is very easy if you dont care about performance much
2022-10-15 19:20:41 +0200 <dminuoso> (well even if you do its relatively easy)
2022-10-15 19:21:14 +0200 <monochrom> Oh, so that's why eventlog2html pulls in a million packages... because first of all it pulls in aeson...
2022-10-15 19:21:57 +0200 <dminuoso> Yeah its really horrible. Next week I will remove `aeson` from `ip` (controllable via cabal flag), to drastically reduce the footprint in some of our projects.
2022-10-15 19:23:20 +0200 <monochrom> This is what you get for category-theory-style programming. Now everyone depends on witherable and bifunctors.
2022-10-15 19:23:45 +0200 <c_wraith> witherable? really? I can't say I see that just about anywhere.
2022-10-15 19:24:12 +0200 <dminuoso> c_wraith: It was added in aeson-2.0.0.0
2022-10-15 19:24:21 +0200 <dminuoso> So relatively recently
2022-10-15 19:24:30 +0200 <dminuoso> Each version seems to just add to build-depends >:)
2022-10-15 19:24:33 +0200 <c_wraith> huh. as a direct dependency?
2022-10-15 19:24:35 +0200 <dminuoso> Yes.
2022-10-15 19:24:38 +0200 <monochrom> Yes direct.
2022-10-15 19:24:44 +0200 <monochrom> Can't imagine why.
2022-10-15 19:24:53 +0200 <c_wraith> I guess they wanted to add a filtering API? I dunno
2022-10-15 19:25:12 +0200 <dminuoso> I have `wither` in almost every project. As a simple adhoc definition in some utils library.
2022-10-15 19:25:17 +0200 <dminuoso> *module
2022-10-15 19:25:25 +0200 <dminuoso> Very useful interface, but I dont need a package fo rit.
2022-10-15 19:26:13 +0200 <c_wraith> this is reminding me I never did publish that library I wrote that I felt mixed Witherable and lens better than the old blog post talking about it.
2022-10-15 19:26:33 +0200 <c_wraith> if Witherable is in every project now, maybe it's actually practical
2022-10-15 19:26:45 +0200 <monochrom> And then witherable depends on vector, so now aeson takes forever to build.
2022-10-15 19:26:59 +0200 <dminuoso> aeson already directly depends on vector since forever
2022-10-15 19:27:05 +0200 <dminuoso> Since lists are kept as Vector
2022-10-15 19:27:12 +0200 <monochrom> Ah right OK nevermind heh
2022-10-15 19:27:28 +0200 <dminuoso> But vector at least is a boot library, so that one isnt too harsh.
2022-10-15 19:27:43 +0200 <dminuoso> Given that cabal will always prefer boot library version over newest on hackage, you should never notice it
2022-10-15 19:27:56 +0200 <dminuoso> Unless something introduces some constraint that excludes your boot version
2022-10-15 19:27:58 +0200 <c_wraith> it's not wired in, though. You can still install new versions!
2022-10-15 19:28:34 +0200 <monochrom> Is that since GHC 9.4? I don't have vector in 9.2 or 8.10
2022-10-15 19:28:46 +0200 <dminuoso> huh oh wait, it isnt?!
2022-10-15 19:28:54 +0200 <dminuoso> Ohh right, its just `array`
2022-10-15 19:29:01 +0200 <dminuoso> Nevermind me :)
2022-10-15 19:29:42 +0200 <dminuoso> At version 3.0.0.0 the joke will be unveiled, that the `a` in aeson stands for `acme`, and the `e` for `everything`.
2022-10-15 19:29:57 +0200 <dminuoso> It's just a work in progress.
2022-10-15 19:30:03 +0200 <geekosaur> when did ekmett take over aeson? 😛
2022-10-15 19:30:18 +0200 <monochrom> All it needs to do is to depend on lens >:)
2022-10-15 19:30:31 +0200 <dminuoso> Doesnt it already depend on lens? :p
2022-10-15 19:30:58 +0200 <dminuoso> By the way, is there some minimal lens implementation that supports prisms, but without pulling in `profunctors`?
2022-10-15 19:31:08 +0200 <dminuoso> Something microprism?
2022-10-15 19:31:08 +0200 <geekosaur> tell me about it. I've been debugging an issue with cabal-install HEAD and got yelled at because of the dep footprint of my test program, which via dbus depends on both conduit and lens 🙂
2022-10-15 19:31:40 +0200 <dminuoso> geekosaur: simple solution. use DBus instead.
2022-10-15 19:32:06 +0200 <dminuoso> Ive never understood the innate desire of Haskellers to use handwritten pure implementations rather than just bindings to well known and functioning C libraries.
2022-10-15 19:32:15 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-10-15 19:32:42 +0200 <monochrom> Oh that's just because I haven't done "sudo apt install pkg-config" >:)
2022-10-15 19:33:01 +0200 <geekosaur> doesn't that come with build-essential?
2022-10-15 19:33:17 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-15 19:33:32 +0200 <c_wraith> I've seen a *lot* of bindings to simple C libraries that corrupt memory.
2022-10-15 19:33:51 +0200 <geekosaur> yeh, you replace dep issues with problems with bad FFI bindings
2022-10-15 19:33:53 +0200 <c_wraith> Given that, I'd rather not use a one-off
2022-10-15 19:34:08 +0200 <c_wraith> if it's a heavily used binding, sure.
2022-10-15 19:34:10 +0200 <geekosaur> including a ridic tendency for people to use "unsafe" calls to things that really need to be "safe"
2022-10-15 19:34:28 +0200 <dminuoso> geekosaur: but it must go fast!
2022-10-15 19:34:30 +0200 <dminuoso> >:)
2022-10-15 19:34:34 +0200 <monochrom> No, it doesn't come with build-essential in ubuntu 22.04
2022-10-15 19:34:55 +0200 <dminuoso> geekosaur: But luckily these things are identifiable during auditing a dependency, something that I always do.
2022-10-15 19:35:03 +0200 <dminuoso> (Or something Ive trained myself to do recently)
2022-10-15 19:35:10 +0200 <dminuoso> Well for a few years now.
2022-10-15 19:35:32 +0200 <c_wraith> hell, even the one-off I wrote had a segfault bug in it when used improperly because I couldn't imagine anyone would use it that improperly...
2022-10-15 19:35:39 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-15 19:35:44 +0200 <c_wraith> though at least segfault is better than memory corruption
2022-10-15 19:36:02 +0200 <geekosaur> I lkearned early on not to do that
2022-10-15 19:36:33 +0200 <geekosaur> with myself as exhibit A because I turn out to have an annoying tendency to use things in ways their designers (including myself) never imagined
2022-10-15 19:36:45 +0200 <Rembane> That's a super power
2022-10-15 19:37:13 +0200 <c_wraith> well, I really do mean "improperly". Like, if that was happening, the data being passed into it was corrupted.
2022-10-15 19:37:16 +0200 <geekosaur> I still have yet to make myself a "human fuzzer" Tshirt
2022-10-15 19:37:25 +0200 <c_wraith> But I added a new crash that the underlying library didn't have.
2022-10-15 19:38:21 +0200 <AndreasK> dminuoso: Vector used to be a boot library a while back but it was removed a while ago, as ghc currently doesn't use it.
2022-10-15 19:38:44 +0200zerozzz
2022-10-15 19:38:53 +0200 <dminuoso> AndreasK: Must have been before 7.0.1, because the wiki does not list it anymore: https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history
2022-10-15 19:39:07 +0200 <AndreasK> It was removed along DPH iirc
2022-10-15 19:40:09 +0200 <AndreasK> I think people often prefer pure implementations as it often makes packaging a non-issue.
2022-10-15 19:40:18 +0200 <geekosaur> ^
2022-10-15 19:40:48 +0200 <geekosaur> (to both: vector was used by DPH, and pure impls solve a lot of Windows packaging issues in particular)
2022-10-15 19:43:53 +0200tomboy64(~tomboy64@user/tomboy64) (Quit: Off to see the wizard.)
2022-10-15 19:46:56 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-10-15 19:47:48 +0200tomboy64(~tomboy64@user/tomboy64)
2022-10-15 19:52:40 +0200elbear(~lucian@188.24.138.239)
2022-10-15 19:52:45 +0200 <dminuoso> AndreasK: Interesting, but then again I dont mind native dependencies that much.
2022-10-15 19:53:23 +0200 <AndreasK> Personally on linux i haven't had much of an issue. But on windows it can be very painful.
2022-10-15 19:53:45 +0200 <dminuoso> Let windows users FFI against their own libraries! :p
2022-10-15 19:54:14 +0200 <geekosaur> the problem is finding them. in multiple senses
2022-10-15 19:54:53 +0200kora9(~kora@h-98-128-228-57.NA.cust.bahnhof.se)
2022-10-15 19:55:54 +0200odnes(~odnes@5-203-147-237.pat.nym.cosmote.net)
2022-10-15 19:56:12 +0200odnes(~odnes@5-203-147-237.pat.nym.cosmote.net) (Client Quit)
2022-10-15 19:56:51 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 252 seconds)
2022-10-15 20:01:33 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 20:01:55 +0200justVainjustache
2022-10-15 20:03:26 +0200razetime(~quassel@117.254.35.178) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-15 20:03:29 +0200jbayardo(~jbayardo@20.83.116.49) (Ping timeout: 268 seconds)
2022-10-15 20:04:30 +0200elbear(~lucian@188.24.138.239)
2022-10-15 20:08:51 +0200jbayardo(~jbayardo@20.83.116.49)
2022-10-15 20:10:46 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 20:18:45 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
2022-10-15 20:19:44 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-15 20:22:30 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 20:26:33 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 20:27:03 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
2022-10-15 20:29:48 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Ping timeout: 264 seconds)
2022-10-15 20:29:55 +0200justsomeguy(~justsomeg@user/justsomeguy) (Read error: Connection reset by peer)
2022-10-15 20:30:41 +0200kora9(~kora@h-98-128-228-57.NA.cust.bahnhof.se) (Quit: WeeChat 3.5)
2022-10-15 20:31:36 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-15 20:32:46 +0200phileas_fogg(~quassel@2a05:f480:2000:1e94:5400:4ff:fe2c:431f)
2022-10-15 20:33:29 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
2022-10-15 20:34:14 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-10-15 20:34:45 +0200 <[exa]> is there any alternative for generic-pretty that works with ghc8+ ?
2022-10-15 20:34:50 +0200 <[exa]> (now I'm with pretty-simple)
2022-10-15 20:35:31 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-10-15 20:35:49 +0200 <dminuoso> What's wrong with pretty-simple?
2022-10-15 20:36:17 +0200 <dminuoso> There's also pretty-show if you want something that works with Generics
2022-10-15 20:40:50 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-10-15 20:45:58 +0200nate1(~nate@98.45.169.16)
2022-10-15 20:48:05 +0200rumraisin(~quassel@2a05:f480:2000:1e94:5400:4ff:fe2c:431f)
2022-10-15 20:48:36 +0200rumraisinphileasfogg
2022-10-15 20:48:40 +0200 <[exa]> dminuoso: I want to combine stuff with custom Pretty instances for more complicated data
2022-10-15 20:50:05 +0200 <[exa]> ok pretty-show could work, a bit of misdirection with their Value but that shouldn't be hard to handle
2022-10-15 20:50:12 +0200 <[exa]> thx
2022-10-15 20:50:14 +0200phileas_fogg(~quassel@2a05:f480:2000:1e94:5400:4ff:fe2c:431f) (Ping timeout: 268 seconds)
2022-10-15 20:50:39 +0200thegeekinside(~thegeekin@189.180.97.156)
2022-10-15 20:51:26 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-15 20:53:48 +0200wroathe(~wroathe@50.205.197.50)
2022-10-15 20:53:48 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2022-10-15 20:53:48 +0200wroathe(~wroathe@user/wroathe)
2022-10-15 20:57:40 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-15 21:00:34 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:cc25:90bb:71ed:321e) (Remote host closed the connection)
2022-10-15 21:00:41 +0200thegeekinside(~thegeekin@189.180.97.156) (Ping timeout: 268 seconds)
2022-10-15 21:07:34 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-15 21:08:17 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-10-15 21:08:47 +0200 <EvanR> ski, since that Bag code was from GHC I guess they didn't go the Maybe route for the invariants due to some performance thing. A flat type with 4 constructors may runs better than a Maybe around a type with 3
2022-10-15 21:11:35 +0200 <EvanR> Boom hierarchy is a nice and old reference, very interesting... pushing "figure out wth Squiggol is/was" on the stack
2022-10-15 21:13:51 +0200 <ski> oh, i forgot to mention the ProfTeggy (Torsten Grust) did some papers on monad comprehensions (relating to databases), talking about lists, bags, sets
2022-10-15 21:13:59 +0200 <ski> s/the/that/
2022-10-15 21:15:02 +0200linoleum(~linoleum@93.176.166.86)
2022-10-15 21:15:03 +0200 <ski> (and there's `TransformListComp')
2022-10-15 21:15:54 +0200 <ski> Squiggol is the "funny brackets" notation for catamorphisms, anamorphisms, &c.
2022-10-15 21:16:33 +0200phileasfoggrumraisin
2022-10-15 21:16:57 +0200rumraisinphileasfogg
2022-10-15 21:17:05 +0200phileasfoggrumraisin
2022-10-15 21:17:57 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-10-15 21:19:13 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-15 21:19:13 +0200rumraisin(~quassel@2a05:f480:2000:1e94:5400:4ff:fe2c:431f) (Changing host)
2022-10-15 21:19:13 +0200rumraisin(~quassel@user/phileasfogg)
2022-10-15 21:19:53 +0200rumraisinphileasfogg
2022-10-15 21:21:31 +0200 <EvanR> https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/squiggol-history.pdf
2022-10-15 21:22:48 +0200 <ski> "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire" by Maarten Fokkinga,Ross Paterson in 1991 at <https://research.utwente.nl/files/6142049/meijer91functional.pdf>
2022-10-15 21:22:55 +0200 <ski> "Bananas in Space: Extending Fold and Unfold to Exponential Types" by Erik Meijer,Graham Hutton in 1995 at <https://www.cs.nott.ac.uk/~pszgmh/bananas.pdf>
2022-10-15 21:23:49 +0200 <c_wraith> are there exponential types that don't have a function underlying them somehow?
2022-10-15 21:24:35 +0200 <EvanR> Conclusion: The story of Squiggol is one of an ebb and flow of enthusiasm for the squiggly notation.
2022-10-15 21:25:53 +0200pavonia(~user@user/siracusa)
2022-10-15 21:26:18 +0200phileasfogg(~quassel@user/phileasfogg) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-15 21:26:48 +0200phileasfogg(~tardis@user/phileasfogg)
2022-10-15 21:27:55 +0200linoleum(~linoleum@93.176.166.86) (Quit: Client closed)
2022-10-15 21:31:05 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-15 21:34:03 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 21:36:01 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 21:38:35 +0200moonsheep(~moonsheep@user/moonsheep)
2022-10-15 21:39:59 +0200 <EvanR> that's the second paper in 2 days that begins with the disclaimer "Knowledge of category theory not required", maybe Haskell should have that xD
2022-10-15 21:42:01 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-10-15 21:42:06 +0200 <c_wraith> that could be the official slogan. "Haskell: Category theory is not required."
2022-10-15 21:42:14 +0200elbear(~lucian@188.24.138.239)
2022-10-15 21:43:55 +0200 <phileasfogg> c_wraith: beginner here, is that true?
2022-10-15 21:44:04 +0200 <c_wraith> absolutely
2022-10-15 21:44:34 +0200 <c_wraith> some things are named after category theory ideas. But you do not need to know the category theory to use them. (I don't really know category theory. I know some words from it)
2022-10-15 21:45:21 +0200 <geekosaur> ^
2022-10-15 21:45:25 +0200 <phileasfogg> happy to hear that, recently I tried to take the haskell course in my school, but one of my friend stopped me and forced me to take the category theory course first
2022-10-15 21:45:53 +0200 <c_wraith> then there's a good chance you know more category theory than I do
2022-10-15 21:45:55 +0200 <geekosaur> lots of things are named after ideas from category theory, or number theory, or other forms of higher math. you don't need to know where they came from to use them
2022-10-15 21:46:36 +0200 <phileasfogg> ah, approach of an engineer. love it
2022-10-15 21:46:49 +0200geekosauris mostly an engineer at heart
2022-10-15 21:47:04 +0200 <geekosaur> programmer/sysadmin background
2022-10-15 21:47:06 +0200 <c_wraith> well. Haskell is a programming language first. It really is intended to be a tool to get software built.
2022-10-15 21:48:02 +0200 <phileasfogg> "Hey look, buddy. I'm an engineer, that means I solve problems. Not problems like 'What is beauty?', 'cause that would fall within the purview of your conundrums of philosophy." -tf2
2022-10-15 21:48:34 +0200 <geekosaur> first got interested because I was thinking about applicability of Haskell to sysadmin stuff. (and indeed that exists now: propellor. but I dropped it because ghc was a non-starter on some of the historical machines I was managing at the time)
2022-10-15 21:48:54 +0200 <geekosaur> and hugs wasn't quite enough although I probably should have looked more closely
2022-10-15 21:49:05 +0200 <EvanR> at that time those were the only options?
2022-10-15 21:49:21 +0200 <geekosaur> pretty much
2022-10-15 21:49:43 +0200 <geekosaur> well, uhc but it was in thre same state it is now: teaching language at UUtrecht, otherwise invisible
2022-10-15 21:50:01 +0200 <EvanR> uhc, ehc, jhc, hbc, ...
2022-10-15 21:50:10 +0200 <geekosaur> jhc wasn't around yet
2022-10-15 21:50:11 +0200 <monochrom> OOP terminology such as "objects", "classes" are named after ontology ideas. Now show me one single OOP programmer who has studied ontology ever.
2022-10-15 21:50:15 +0200 <geekosaur> 2006 timeframe
2022-10-15 21:50:23 +0200 <geekosaur> hbc was already dead
2022-10-15 21:51:01 +0200 <darkling> monochrom: Me? :)
2022-10-15 21:51:07 +0200 <monochrom> haha
2022-10-15 21:51:07 +0200 <EvanR> dedekind cuts of time, the set of dead haskell implementations on one hand, the set of not yet started haskell implementations on the other
2022-10-15 21:53:11 +0200 <geekosaur> I did take some interest in jhc while it lasted but that wasn't very long, sadly
2022-10-15 21:53:15 +0200 <monochrom> More sadly, cloud computing requires knowledge of theorems and algorithms from distributive systems (the proper name before people call it "cloud computing"), and most cloud computing programmers still don't know any of them.
2022-10-15 21:54:16 +0200 <darkling> This is sadly true.
2022-10-15 21:54:46 +0200 <EvanR> I cut through the fog hehe and explain that cloud computing means computing on someone else's computer
2022-10-15 21:55:26 +0200 <darkling> We've had problems with the clustering solution on one of the databases we use. Looking closely at how they actually implemented it, I'm frankly astonished that anyone actually thought it would be a good idea.
2022-10-15 21:56:19 +0200 <ski> EvanR : linear order morphisms to two-point order
2022-10-15 21:56:29 +0200 <EvanR> was that to c_wraith
2022-10-15 21:56:47 +0200EvanRcasts reflect
2022-10-15 21:56:47 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-15 21:56:55 +0200 <ski> no, it was re cuts
2022-10-15 21:56:59 +0200 <EvanR> oh
2022-10-15 21:57:27 +0200 <EvanR> yes actual haskell implementations live for finite time
2022-10-15 21:59:54 +0200 <dolio> Nobody remembers yhc?
2022-10-15 22:00:01 +0200 <dolio> Shameful.
2022-10-15 22:00:06 +0200 <c_wraith> I remember it existed
2022-10-15 22:00:16 +0200 <geekosaur> likewise
2022-10-15 22:00:22 +0200 <c_wraith> But I definitely never used it
2022-10-15 22:00:37 +0200 <ski> geekosaur : jmeacham had the idea of being able to add superclasses to a class, restricting by removing members
2022-10-15 22:00:52 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2022-10-15 22:01:03 +0200zebrag(~chris@user/zebrag) (Read error: Connection reset by peer)
2022-10-15 22:01:24 +0200 <EvanR> doh, yhc of course
2022-10-15 22:01:27 +0200ski. o O ( "Supertyping Suggestion for Haskell" <http://repetae.net/recent/out/supertyping.html> ; also "Class Alias Proposal for Haskell" <http://repetae.net/recent/out/classalias.html> )
2022-10-15 22:01:46 +0200skiidly recalls seeing brisk on some FTP server
2022-10-15 22:01:55 +0200 <ski> (bristol Haskell)
2022-10-15 22:02:22 +0200 <EvanR> also nhc
2022-10-15 22:02:26 +0200 <ski> and LHC
2022-10-15 22:02:49 +0200 <c_wraith> Wait, when did the large hadron collider start compiling haskell?
2022-10-15 22:02:57 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-10-15 22:03:19 +0200 <dolio> I think the above sells engineers short, too.
2022-10-15 22:03:24 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 22:03:26 +0200 <EvanR> the haskell2k apocalypse is when the american alphabet runs out of letters for new haskell compilers
2022-10-15 22:03:39 +0200 <dolio> In actual engineering disciplines, practitioners aren't afraid of learning relevant mathematics.
2022-10-15 22:04:14 +0200 <darkling> As always, computing takes a perfectly good word and redefines it to mean something else... :)
2022-10-15 22:04:16 +0200 <dolio> Or similar.
2022-10-15 22:04:41 +0200 <c_wraith> sure. But engineers are also happy to use the results of math without learning all the methods.
2022-10-15 22:04:53 +0200 <c_wraith> So it can go either way.
2022-10-15 22:05:10 +0200 <hpc> engineers are also happy to make up their own math and ignore what's "sensible"
2022-10-15 22:05:19 +0200 <c_wraith> all true
2022-10-15 22:05:21 +0200 <hpc> it took a long time for people to accept even the dirac delta function
2022-10-15 22:05:23 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 248 seconds)
2022-10-15 22:05:53 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-15 22:06:02 +0200 <ski> <https://github.com/Lemmih/lhc>,<https://web.archive.org/web/20141107225119/http://lhc.seize.it/>
2022-10-15 22:06:29 +0200 <ski> @where Eden
2022-10-15 22:06:29 +0200 <lambdabot> "Eden: Parallel Functional Programming with Haskell" <http://www.mathematik.uni-marburg.de/~eden/>
2022-10-15 22:06:33 +0200 <geekosaur> vaguely recall that one too
2022-10-15 22:06:44 +0200 <geekosaur> (lhc that is)
2022-10-15 22:07:10 +0200 <ski> and we mentioned Helium and Vital the other day
2022-10-15 22:08:07 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 252 seconds)
2022-10-15 22:08:56 +0200 <EvanR> >The biggest challenge for Yhc was the build system - we ended up with 10,000 lines of Python Scons scripts. Without a robust build system nothing else matters. When our sole Python hacker left the team that was the beginning of the end.
2022-10-15 22:09:00 +0200 <EvanR> smh
2022-10-15 22:09:16 +0200 <darkling> Ow
2022-10-15 22:09:29 +0200 <geekosaur> I knew there was a reason I didn't bother with yhc…
2022-10-15 22:09:32 +0200 <darkling> Bus number too small.
2022-10-15 22:10:04 +0200 <int-e> the hadrian subdirectory in Haskell is up to 9.5k lines of Haskell according to sloccount.
2022-10-15 22:10:48 +0200 <geekosaur> question there being how much of it is essentially boilerplate
2022-10-15 22:11:24 +0200 <int-e> hmmm
2022-10-15 22:12:13 +0200 <geekosaur> hadrian being mostly a build script written in shake
2022-10-15 22:12:45 +0200 <geekosaur> and I think it needs at least one line per built file
2022-10-15 22:13:18 +0200 <geekosaur> (I may well be wrong about that)
2022-10-15 22:13:54 +0200 <int-e> Well, not all code is useful... http://paste.debian.net/1257188/
2022-10-15 22:14:27 +0200 <geekosaur> heh
2022-10-15 22:14:33 +0200 <int-e> it doesn't look very boilerplatey to me, honestly.
2022-10-15 22:15:39 +0200 <int-e> But I guess the code can be navigated reasonably well and more than one person understands it.
2022-10-15 22:16:05 +0200 <EvanR> make sure ghc has backups of the build system specialist
2022-10-15 22:16:20 +0200 <int-e> Whereas I guess the make system was kind of stuck after Igloo stopped maintaining it.
2022-10-15 22:16:58 +0200 <geekosaur> also I asked for `du -sxh` and it looks quote reasonable so I guess most of those lines are short
2022-10-15 22:17:40 +0200 <geekosaur> *quite
2022-10-15 22:18:00 +0200 <int-e> (I thought it was pretty well designed, making pretty good use of GNU make's features to avoid duplication of dependencies and rules. And well, the fact that hadrian took so long to catch up to it is also testament to that.)
2022-10-15 22:18:16 +0200 <geekosaur> the make system has apparently been a hack for years because of dependencies make couldn't deal with
2022-10-15 22:18:59 +0200 <geekosaur> and eventually it needed one hack too many and nobody could figure out how to hack it in (possibly due to Igloo no longer maintaining it)
2022-10-15 22:19:19 +0200 <int-e> hadrian replicates some of the hacks because ghc --make can't deal with them.
2022-10-15 22:19:37 +0200 <int-e> err
2022-10-15 22:19:49 +0200 <int-e> that's the wrong flag, there's one specifically to extract dependencies.
2022-10-15 22:20:04 +0200 <int-e> which was originally for the make-based build, but is also used by hadrian.
2022-10-15 22:20:21 +0200 <int-e> -M is the flag.
2022-10-15 22:20:49 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-10-15 22:28:51 +0200moonsheep(~moonsheep@user/moonsheep) ()
2022-10-15 22:31:29 +0200zebrag(~chris@user/zebrag)
2022-10-15 22:33:26 +0200 <int-e> geekosaur: Ah, here's the latest fix for one such hack: https://gitlab.haskell.org/ghc/ghc/-/commit/c8ae3add11969b5128f34d02a5582c1f007cce5c ...maybe that's the only one? Hmm. I don't know.
2022-10-15 22:35:50 +0200v0rpun1(~pvorp@195.200.221.194) (Quit: bye)
2022-10-15 22:36:11 +0200 <EvanR> what does it mean for ghc to be effectively the only real haskell compiler, is it like the titanic with no lifeboats
2022-10-15 22:36:43 +0200 <EvanR> it's fine because it's unsinkable
2022-10-15 22:39:39 +0200 <darkling> Yes, but what's the iceberg number?
2022-10-15 22:39:42 +0200 <int-e> The bus number for GHC is not impressive. 2, maybe 3?
2022-10-15 22:40:01 +0200 <c_wraith> It's a lot higher than it was 10 years ago, at least.
2022-10-15 22:40:04 +0200 <geekosaur[m]> They are working on that
2022-10-15 22:40:15 +0200 <int-e> It's larger than 1.
2022-10-15 22:40:30 +0200 <c_wraith> It used to be the case that losing either Simon would have sunk it.
2022-10-15 22:40:43 +0200 <geekosaur[m]> Yeah
2022-10-15 22:41:22 +0200 <c_wraith> Now... neither one is a full-time GHC dev
2022-10-15 22:42:35 +0200 <geekosaur[m]> Things still clog a bit when bgamari's not around though
2022-10-15 22:44:21 +0200 <int-e> ..."just" build infrastructure, eh...
2022-10-15 22:45:39 +0200 <int-e> (That's unfair to bgamari, he hacks a lot on the compiler too. But from what I'm seeing he's also kicking Marge (merge bot) a lot and cleaning up build artefacts to fix runners that have run out of disk space)
2022-10-15 22:46:44 +0200vn36(~vn36@123.63.203.210)
2022-10-15 22:47:46 +0200vorpuni(~pvorp@2001:861:3881:c690:cb48:57b9:21f1:54ea)
2022-10-15 22:47:55 +0200 <geekosaur[m]> That's changed, chreekat has taken over much of that
2022-10-15 22:48:08 +0200 <int-e> Ah.
2022-10-15 22:48:56 +0200 <monochrom> OOD killer :)
2022-10-15 22:51:03 +0200phileasfogg(~tardis@user/phileasfogg) (Quit: It's the only way, then they can all forget me. I got too big, Dorium, too noisy. Time to step back into the shadows.)
2022-10-15 22:51:44 +0200 <geekosaur> And mpickering is helping take more of the load off bgamari
2022-10-15 22:52:42 +0200 <monochrom> The iceberg number is lower than apparent because too many of the devs go to the same conference so you just need 1 iceberg to hit that conference. Though improbable, it does bring down the expected value quite a bit.
2022-10-15 22:52:55 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 22:53:13 +0200v0rpun1(~pvorp@160.238.38.133)
2022-10-15 22:53:18 +0200 <c_wraith> Do they frequently hold these conferences at sea?
2022-10-15 22:54:01 +0200vorpuni(~pvorp@2001:861:3881:c690:cb48:57b9:21f1:54ea) (Ping timeout: 246 seconds)
2022-10-15 22:54:33 +0200 <geekosaur> anyway HF is aware of it and is funding more dev and ops positions, starting with hiring chreekat
2022-10-15 22:55:33 +0200 <monochrom> I think of this because I was at a Marktoberdorf summer school (1 hour train ride from Munich), actually the one when SPJ lectured his Awkward Squad thing. It was also near a NATO airbase, we heard jet fighters over-flying. A classmate remarked "if an accident happened and a bomb dropped from a plane and hit us, that would set back computer science for decades because it would kill so many of us".
2022-10-15 22:58:08 +0200 <monochrom> If you aren't persuaded by icebergs, try new supervirus outbreak at a hotel.
2022-10-15 22:58:48 +0200rumraisin(~tardis@user/phileasfogg)
2022-10-15 22:59:09 +0200 <monochrom> Call it "zombie factor" or something >:)
2022-10-15 22:59:23 +0200 <geekosaur> legionnaires factor
2022-10-15 23:01:05 +0200 <DigitalKiwi> geekosaur: what'd you link my blog for
2022-10-15 23:01:09 +0200 <monochrom> And of course you may also like s/computer science/the area of computer science that this summer school focused on/
2022-10-15 23:01:43 +0200 <geekosaur> [14 05:15:21] <ski> hm, someone recently showed some script to maximize and minimize Haskell imports, in here ..
2022-10-15 23:02:03 +0200 <geekosaur> so I dug it out of my log
2022-10-15 23:02:16 +0200 <monochrom> And since SPJ was there and it was the year 2000, GHC was very vulnerable back then.
2022-10-15 23:02:34 +0200 <DigitalKiwi> ahh
2022-10-15 23:02:57 +0200 <DigitalKiwi> cool
2022-10-15 23:04:02 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 23:04:40 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 268 seconds)
2022-10-15 23:06:28 +0200vn36(~vn36@123.63.203.210)
2022-10-15 23:07:55 +0200TonyStone31(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-10-15 23:08:20 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-15 23:08:37 +0200TonyStone31(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection)
2022-10-15 23:09:38 +0200rumraisin(~tardis@user/phileasfogg) (Quit: It's the only way, then they can all forget me. I got too big, Dorium, too noisy. Time to step back into the shadows.)
2022-10-15 23:10:49 +0200 <DigitalKiwi> i should update the code to use nix so it's easier to run lol
2022-10-15 23:11:10 +0200phileasfogg(~phileasfo@user/phileasfogg)
2022-10-15 23:11:22 +0200 <DigitalKiwi> https://gist.github.com/Kiwi/ffc08bffb15798dc4b1ec2a1c47c6191#file-program-cabal-hs
2022-10-15 23:17:54 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-15 23:21:13 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 23:23:22 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-10-15 23:24:55 +0200nate1(~nate@98.45.169.16)
2022-10-15 23:25:10 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-15 23:26:12 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-15 23:26:30 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-15 23:26:52 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-15 23:30:31 +0200causal(~user@50.35.83.177)
2022-10-15 23:31:46 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-15 23:33:24 +0200acidjnk(~acidjnk@p200300d6e7137a402c719b85df11c214.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-15 23:33:53 +0200michalz(~michalz@185.246.207.200) (Remote host closed the connection)
2022-10-15 23:34:05 +0200moonsheep(~moonsheep@user/moonsheep)
2022-10-15 23:35:50 +0200thaumavorio(~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-15 23:35:52 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-10-15 23:36:43 +0200thaumavorio(~thaumavor@thaumavor.io)
2022-10-15 23:37:21 +0200 <EvanR> if ghc started with the feature which deleted your code on type error, it very well may have sank on its maiden voyage (trying to compile itself)
2022-10-15 23:37:53 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-15 23:38:15 +0200 <hpc> that may be my favorite bug ever
2022-10-15 23:39:28 +0200 <darkling> I think that would elevate it into the realms of esoteric language.
2022-10-15 23:39:50 +0200 <monochrom> "The compiler is dead. Long live the compiler"?
2022-10-15 23:41:58 +0200 <DigitalKiwi> so i looked into that recently for a twitter thread and turns out there've been multiple such bugs in ghc lol
2022-10-15 23:42:58 +0200rockystone(~rocky@user/rockymarine)
2022-10-15 23:44:45 +0200 <DigitalKiwi> https://twitter.com/ArchKiwi/status/1576112320329023489
2022-10-15 23:45:39 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2022-10-15 23:50:51 +0200v0rpun1(~pvorp@160.238.38.133) (Quit: bye)
2022-10-15 23:51:49 +0200wroathe(~wroathe@user/wroathe)
2022-10-15 23:54:50 +0200 <DigitalKiwi> i was going to link the bug report but then i found like 3 of them that were slightly different and i was like "well fuck idk which one
2022-10-15 23:54:51 +0200 <DigitalKiwi> "
2022-10-15 23:55:15 +0200 <DigitalKiwi> iirc there's like one that was only on windows and was because of paths or something lol
2022-10-15 23:55:54 +0200 <geekosaur> at one point I found the biggie but yes, noticed there were several others including the win-only one
2022-10-15 23:57:38 +0200moonsheep(~moonsheep@user/moonsheep) ()