Home liberachat/#haskell: Logs Calendar

Logs on 2023-11-28 (liberachat/#haskell)

00:02:13 × chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds)
00:02:57 srk- joins (~sorki@user/srk)
00:05:52 × srk quits (~sorki@user/srk) (Ping timeout: 255 seconds)
00:05:53 srk- is now known as srk
00:11:02 srk- joins (~sorki@user/srk)
00:12:25 srk| joins (~sorki@user/srk)
00:12:52 andreas303 joins (andreas303@is.drunk.and.ready-to.party)
00:13:56 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 268 seconds)
00:15:10 × srk quits (~sorki@user/srk) (Ping timeout: 268 seconds)
00:15:37 srk| is now known as srk
00:16:02 × srk- quits (~sorki@user/srk) (Ping timeout: 260 seconds)
00:17:25 jargon joins (~jargon@184.101.176.143)
00:18:56 × madariaga quits (~madariaga@user/madariaga) (Quit: madariaga)
00:22:32 emmanuelux joins (~emmanuelu@user/emmanuelux)
00:25:01 madariaga joins (~madariaga@user/madariaga)
00:26:14 × madariaga quits (~madariaga@user/madariaga) (Client Quit)
00:27:22 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
00:36:01 × ridcully quits (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
00:39:47 madariaga joins (~madariaga@user/madariaga)
00:39:59 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
00:41:10 <madariaga> alright, by writing a hie.yaml file and specifying each executable in cradle -> cabal HLS everything works
00:42:01 <madariaga> thanks for your help everyone.
00:43:52 × madariaga quits (~madariaga@user/madariaga) (Client Quit)
00:45:19 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds)
00:50:30 madariaga joins (~madariaga@user/madariaga)
00:51:40 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds)
00:53:22 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
00:53:24 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 268 seconds)
00:55:46 ridcully joins (~ridcully@p57b52dae.dip0.t-ipconnect.de)
00:56:10 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 260 seconds)
00:57:13 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
00:59:26 notzmv joins (~zmv@user/notzmv)
01:01:59 mikess joins (~sam@user/mikess)
01:02:05 × mikess quits (~sam@user/mikess) (Client Quit)
01:02:32 mikess joins (~sam@user/mikess)
01:03:58 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds)
01:06:12 ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net)
01:07:51 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
01:08:13 pounce joins (~pounce@user/cute/pounce)
01:10:39 sadmax joins (~user@64.130.91.66)
01:15:14 caryhartline joins (~caryhartl@168.182.58.169)
01:15:57 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
01:18:16 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds)
01:18:41 L29Ah joins (~L29Ah@wikipedia/L29Ah)
01:24:45 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
01:29:26 × TonyStone quits (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Quit: Leaving)
01:29:41 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
01:35:19 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
01:38:14 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
01:42:05 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds)
01:44:08 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
01:44:08 ChanServ sets mode +v haskellbridge
01:44:08 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer)
01:44:29 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
01:44:29 ChanServ sets mode +v haskellbridge
01:44:29 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer)
01:44:51 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
01:44:51 ChanServ sets mode +v haskellbridge
01:46:40 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
01:47:04 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
01:49:13 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
01:49:55 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 256 seconds)
01:50:45 TMA joins (tma@twin.jikos.cz)
01:50:56 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
01:53:22 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds)
01:59:21 ubert1 joins (~Thunderbi@91.141.52.8.wireless.dyn.drei.com)
01:59:23 × ubert quits (~Thunderbi@77.119.173.120.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
01:59:23 ubert1 is now known as ubert
02:00:04 × sadmax quits (~user@64.130.91.66) (Ping timeout: 255 seconds)
02:01:58 × analoq quits (~yashi@user/dies) (Ping timeout: 260 seconds)
02:03:46 analoq joins (~yashi@user/dies)
02:04:22 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
02:09:11 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
02:16:02 × xff0x quits (~xff0x@2405:6580:b080:900:f6fc:7981:2e92:1c0b) (Ping timeout: 268 seconds)
02:16:49 × analoq quits (~yashi@user/dies) (Ping timeout: 255 seconds)
02:17:06 × madariaga quits (~madariaga@user/madariaga) (Quit: madariaga)
02:17:27 madariaga joins (~madariaga@user/madariaga)
02:20:58 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
02:23:57 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
02:25:46 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds)
02:31:25 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
02:38:14 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds)
02:40:51 <iqubic> is Haskell2020 a thing now? Can I put that into my cabal file?
02:43:32 analoq joins (~yashi@user/dies)
02:46:39 caef^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net)
02:50:04 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
02:53:15 <geekosaur> Haskell2020 is not but GHC2020 is
02:55:37 newsham joins (~newsham@2603-800c-2c01-6825-6daa-0948-9100-d431.res6.spectrum.com)
02:55:47 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 264 seconds)
02:57:08 <newsham> lets say I have parsed the untyped lambda calculus, and then type checked it so that every term has a (value level) type annotation on it.  Does haskell have any tools suitable for constructing a typed lambda calculus from each term where the term's types have type level annotations on them? ie. dependent types based on the value level types?
02:57:13 <geekosaur> and yes, you can specify it as the language
02:58:41 <newsham> like `instance ... where func TInt expr = Constructor expr :: Int`
02:59:30 <newsham> err `:: Expr Int`
03:02:49 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:04:13 <jackdk> GADTs?
03:04:32 JeremyB99 joins (~JeremyB99@208.64.173.6)
03:05:02 not_reserved joins (~not_reser@45.144.113.233)
03:07:10 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
03:07:13 × td_ quits (~td@i53870917.versanet.de) (Ping timeout: 268 seconds)
03:07:24 × not_reserved quits (~not_reser@45.144.113.233) (Client Quit)
03:07:38 not_reserved joins (~not_reser@45.144.113.233)
03:07:57 <EvanR> GADTs
03:08:35 td_ joins (~td@i5387092B.versanet.de)
03:09:40 <newsham> i thought that might be part of the answer, but can you be more concrete?
03:11:20 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
03:11:39 Feuermagier joins (~Feuermagi@user/feuermagier)
03:11:56 <newsham> ie. `data MyNum = MyNum Typ Val`.  `data Typ = MyInt | MyInteger`.   `data TypedNum a = TypedNum val`. How can I write a func `f MyNum MyInt x = TypedNum x :: TypedNum Int` and `f MyNum MyInteger x = TypedNum x :: TypedNum Integer` ?
03:12:48 <newsham> er.. thats not all correct, but I think you can understand the question?
03:13:13 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
03:16:33 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
03:17:38 matthewmosior joins (~matthewmo@096-059-082-099.res.spectrum.com)
03:19:16 × matthewmosior quits (~matthewmo@096-059-082-099.res.spectrum.com) (Client Quit)
03:19:49 <newsham> concretely here: https://play.haskell.org/saved/iCGAWVXU
03:21:07 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe) (Remote host closed the connection)
03:21:22 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe)
03:21:43 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
03:21:52 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Remote host closed the connection)
03:23:43 rosco joins (~rosco@175.136.157.149)
03:24:49 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
03:25:07 × edr quits (~edr@user/edr) (Quit: Leaving)
03:26:39 × madariaga quits (~madariaga@user/madariaga) (Quit: madariaga)
03:26:54 hgolden joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com)
03:29:45 madariaga joins (~madariaga@user/madariaga)
03:30:39 × madariaga quits (~madariaga@user/madariaga) (Client Quit)
03:32:04 <jackdk> https://en.wikipedia.org/wiki/Generalized_algebraic_data_type#Higher-order_abstract_syntax has a Haskell example. The `Lift` constructor tracks the type of the primitive that it wraps, and then the other constructors use the types of the arguments to influence the type of the result
03:32:15 madariaga joins (~madariaga@user/madariaga)
03:33:12 <EvanR> how do you plan the index the GADT by the value of the term, when the term may have unknowns in it
03:33:24 <EvanR> e.g. the x within \x -> x
03:33:45 × madariaga quits (~madariaga@user/madariaga) (Client Quit)
03:33:50 <jackdk> it doesn't, it indexes it by the type of the term?
03:33:58 <EvanR> newsham, was trying to do both
03:34:49 madariaga joins (~madariaga@user/madariaga)
03:35:04 <EvanR> usually you settle for just tracking the type
03:35:27 <jackdk> then you probably have to make your value-level type annotation into a singleton type
03:36:27 <jackdk> and/or set up a corresponding singleton type - I never really got my head around the singletons library but despite jle's series starting at https://blog.jle.im/entry/introduction-to-singletons-1.html is excellent
03:36:31 <newsham> not sure thats viable if this isnt viable.. because at first untyped LC would be parsed as untyped, then types would be computed.  so I'd still need a way to change types dynamically.
03:36:55 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
03:37:22 <EvanR> you could apply "parse, don't validate" here and do the type checking during the parsing. If it can't type check, it can't parse
03:38:01 <EvanR> correct by construction
03:38:13 <newsham> actually started down that road first.. got bogged down.  but might return to that.
03:38:36 <EvanR> you can always take a well typed term and extract an untyped lambda term
03:38:58 <newsham> cool except its not what i want. heh.  can do thing i dont want, but not thing i want.
03:39:06 × madariaga quits (~madariaga@user/madariaga) (Ping timeout: 245 seconds)
03:39:41 <newsham> I guess the question in my mind still is "is there a way to dynamically convert a value to a type in haskell with extensions", and I'm guessing the answer is "no".
03:39:54 <newsham> because type checking is something happening at compile time.
03:40:26 <[Leary]> Parse text into an untyped representation, then parse the untyped representation into a typed one.
03:40:36 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
03:41:03 <newsham> but parsing into a typed rep means I have to know the resulting type ahead of time, no?
03:41:27 <newsham> ie: "parse typedParser "..." :: TExpr (Int -> Int)`
03:43:34 <[Leary]> The result type can be hidden by an existential or passed to a polymorphic continuation that doesn't need to know it.
03:43:57 <jackdk> Given `TExpr a` where `a` is a tyvar of some kind, you could parse to `Some TExpr` where `data Some where Some :: f a -> Some f`
03:44:25 <jackdk> And if you had a singleton that you could pattern-match on, you could recover `a` at runtime
03:44:38 <jackdk> (I'm speaking a little loosely)
03:44:51 <iqubic> Is there anywhere I can go to learn about what language extensions GHC2020 enables by default?
03:45:13 <newsham> time to leanr singletons to understand better
03:45:47 <EvanR> iqubic, probably google for GHC2020
03:46:23 <[Leary]> I'd skip the middle man and just ask the GHC User's Guide directly.
03:46:29 <jackdk> iqubic: GHC User's Guide
03:46:33 <jackdk> [Leary]: snap
03:46:41 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds)
03:46:47 <jackdk> iqubic: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html#extension-GHC2021
03:47:42 <iqubic> Why is lambdacase not default yet?
03:48:22 <jackdk> Because it's not in a Haskell report
03:48:25 <EvanR> google for GHC's user guide xD
03:48:41 <EvanR> then search within the user guide using internal search
03:48:45 <jackdk> Also https://discourse.haskell.org/t/ghc2024-community-input/8168 is soliciting input for the GHC2024 language set
03:49:10 <EvanR> iqubic, skips the middleman and gets irc to produce URLs
03:49:10 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:55:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:55:15 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:55:15 finn_elija is now known as FinnElija
03:56:11 Xyloes joins (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04)
03:56:28 <jackdk> newsham: https://play.haskell.org/saved/qEqZMAGk if you pattern-match on the `SType` in a `Some Expr`, the type checker will add constraints to `a` based on what type the variable must be (e.g., if you match a `STUnk`, it will know that `a ~ 'TUnk`
03:57:58 arahael joins (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
03:58:08 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
04:01:04 <iqubic> Evan, I am not a smart lady.
04:01:47 × ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 264 seconds)
04:03:26 ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net)
04:05:48 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds)
04:10:40 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
04:10:46 <newsham> i think i get the idea. matching on some value level type witness lets you get from values to types.
04:11:36 <newsham> still trying to process how I would use this, and in particular, how it will work with an infinite set of types (ie `Fun a b` where `a` or `b` could also be `Fun`)
04:11:58 <newsham> i'll play around with the idea.  its neat.
04:16:59 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
04:18:46 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
04:23:16 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
04:24:13 derpyxdhs joins (~Thunderbi@user/derpyxdhs)
04:34:58 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
04:36:23 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
04:36:26 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:40:00 × derpyxdhs quits (~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
04:40:37 × mikess quits (~sam@user/mikess) (Quit: leaving)
04:40:58 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
04:52:19 trev joins (~trev@user/trev)
04:52:37 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
04:54:44 aforemny_ joins (~aforemny@i59F516E0.versanet.de)
04:55:40 × aforemny quits (~aforemny@2001:9e8:6cc7:1300:96d5:106c:58e4:1727) (Ping timeout: 255 seconds)
04:56:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:58:32 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 252 seconds)
05:00:49 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
05:01:34 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
05:01:47 Square2 joins (~Square4@user/square)
05:03:30 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
05:10:16 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
05:16:03 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
05:20:18 bilegeek joins (~bilegeek@2600:1008:b04f:8b1a:c952:a856:d7cb:e2d0)
05:27:18 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:27:39 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
05:36:35 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
05:37:16 <hammond> http://repetae.net/computer/jhc/
05:37:18 <hammond> yeah?
05:37:21 <hammond> or no?
05:46:43 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
05:47:12 euleritian joins (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de)
05:48:36 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
05:49:23 × rosco quits (~rosco@175.136.157.149) (Quit: Lost terminal)
05:51:21 × euleritian quits (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
05:51:38 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
05:52:35 chomwitt joins (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1)
05:54:25 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds)
05:56:44 × newsham quits (~newsham@2603-800c-2c01-6825-6daa-0948-9100-d431.res6.spectrum.com) (Quit: Client closed)
06:03:43 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
06:06:15 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
06:11:55 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
06:12:02 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Max SendQ exceeded)
06:12:29 euleritian joins (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de)
06:13:09 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
06:17:56 × tertek quits (~tertek@user/tertek) (Remote host closed the connection)
06:18:17 tertek joins (~tertek@user/tertek)
06:19:34 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
06:30:15 <EvanR> hammond, hell yeah
06:30:29 <EvanR> try jhc and tell me how it goes
06:31:17 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
06:33:47 <hammond> lol
06:37:22 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
06:38:18 <hammond> ssrly though i was looking at this. https://www.reddit.com/r/haskell/comments/bcdq65/initial_hacking_of_ghc_for_gcc_linktime/
06:38:36 <hammond> maybe it is old though idk. it did make me wonder.
06:39:15 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
06:48:35 × analoq quits (~yashi@user/dies) (Ping timeout: 264 seconds)
06:48:58 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
06:50:05 analoq joins (~yashi@user/dies)
06:50:20 gmg joins (~user@user/gehmehgeh)
06:52:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:53:57 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:54:49 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
06:56:51 × smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
06:58:28 × thegeekinside quits (~thegeekin@189.180.53.210) (Ping timeout: 268 seconds)
07:01:59 acidjnk joins (~acidjnk@p200300d6e72b9317058012a22410a419.dip0.t-ipconnect.de)
07:05:25 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
07:06:54 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
07:08:34 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
07:12:38 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 252 seconds)
07:16:54 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
07:19:37 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:23:44 × lhpitn quits (~tn@mail.lebenshilfe-pi.de) (Read error: Connection reset by peer)
07:24:17 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
07:32:01 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 276 seconds)
07:33:31 rosco joins (~rosco@175.136.157.149)
07:33:32 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds)
07:35:56 kenran joins (~user@user/kenran)
07:39:50 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:42:31 × qqq quits (~qqq@92.43.167.61) (Ping timeout: 260 seconds)
07:43:21 × euleritian quits (~euleritia@dynamic-046-114-205-072.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
07:43:39 euleritian joins (~euleritia@77.22.252.56)
07:43:52 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
07:47:14 qqq joins (~qqq@92.43.167.61)
07:47:32 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
07:48:25 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 268 seconds)
07:49:41 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds)
07:50:50 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
07:53:17 × kenran quits (~user@user/kenran) (Remote host closed the connection)
07:53:48 kenran joins (~user@user/kenran)
07:55:31 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
07:56:26 kenran` joins (~user@user/kenran)
07:56:34 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 255 seconds)
07:57:24 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:58:23 × kenran quits (~user@user/kenran) (Ping timeout: 252 seconds)
08:01:50 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
08:07:38 arahael_ joins (~arahael@1.145.96.183)
08:10:03 × rosco quits (~rosco@175.136.157.149) (Ping timeout: 260 seconds)
08:10:09 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 256 seconds)
08:11:12 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 256 seconds)
08:12:00 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
08:16:10 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
08:16:23 fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
08:16:36 rosco joins (~rosco@175.136.158.171)
08:18:20 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds)
08:19:01 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:21:06 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
08:21:48 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
08:27:53 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 268 seconds)
08:30:24 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
08:31:04 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
08:41:16 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 246 seconds)
08:42:55 Lycurgus joins (~georg@user/Lycurgus)
08:51:00 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
08:51:06 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
08:54:16 × JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 256 seconds)
08:54:16 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:56:36 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 245 seconds)
08:58:32 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
09:01:09 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
09:06:02 × masterbuilder quits (~quassel@user/masterbuilder) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:06:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
09:09:50 dhil joins (~dhil@2001:8e0:2014:3100:8523:26aa:23b6:e435)
09:10:16 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
09:11:04 CiaoSen joins (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5)
09:12:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:13:58 JeremyB99 joins (~JeremyB99@208.64.173.6)
09:16:08 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
09:17:28 danza joins (~francesco@151.35.232.56)
09:18:54 cfricke joins (~cfricke@user/cfricke)
09:19:20 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:21:45 × bilegeek quits (~bilegeek@2600:1008:b04f:8b1a:c952:a856:d7cb:e2d0) (Quit: Leaving)
09:21:49 misterfish joins (~misterfis@87.215.131.102)
09:22:11 akegalj joins (~akegalj@89-172-89-238.adsl.net.t-com.hr)
09:28:39 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:29:51 × danza quits (~francesco@151.35.232.56) (Ping timeout: 260 seconds)
09:36:49 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
09:37:11 × not_reserved quits (~not_reser@45.144.113.233) (Quit: Client closed)
09:37:28 chele joins (~chele@user/chele)
09:38:38 danse-nr3 joins (~danse@151.19.224.252)
09:45:31 zetef joins (~quassel@2a02:2f00:5201:4b00:19c:1be6:f517:649f)
09:47:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c5ae:90af:10b1:51fe) (Remote host closed the connection)
09:50:39 × zetef quits (~quassel@2a02:2f00:5201:4b00:19c:1be6:f517:649f) (Remote host closed the connection)
09:51:25 zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
09:52:17 potato44 joins (uid421314@id-421314.lymington.irccloud.com)
09:55:11 × zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Client Quit)
09:56:41 × arahael_ quits (~arahael@1.145.96.183) (Read error: Connection reset by peer)
09:57:08 Lycurgus joins (~georg@li1192-118.members.linode.com)
09:57:08 × Lycurgus quits (~georg@li1192-118.members.linode.com) (Changing host)
09:57:08 Lycurgus joins (~georg@user/Lycurgus)
09:57:21 zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
09:57:29 × Lycurgus quits (~georg@user/Lycurgus) (Client Quit)
09:58:19 <bwe> I wonder the site's name that had multiple times framework in its uri. it basically explained starting from vanilla code how framework on top of framework rendered themselves useless. do you know it by any chance?
09:59:30 <danse-nr3> no but it sounds funny
10:01:39 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
10:01:51 rosco joins (~rosco@175.136.158.171)
10:05:50 <danse-nr3> not a problem in haskell though? Which frameworks would you put on top of each other? (maybe conduit on top of transformers)
10:06:45 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
10:07:11 <tomsmeding> you can probably pile data types a-la-carte with some additional type-indexing on top of servant
10:07:21 <tomsmeding> and no one will bat an eye
10:07:30 <tomsmeding> our frameworks look different :p
10:07:46 <bwe> I've got it: https://factoryfactoryfactory.net
10:10:19 <danse-nr3> hmm but factory and framework are very different concepts...
10:10:42 Jackneill joins (~Jackneill@20014C4E1E120500906E1D747CFD14BF.dsl.pool.telekom.hu)
10:11:05 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:11:51 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
10:12:01 arahael__ joins (~arahael@1.145.68.95)
10:12:30 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
10:13:05 <_d0t> ohai! Is there a way to find where an instance in scope was declared? I have a piece of code with overlapping instances and one of them seems imported transitively from god knows where.
10:14:03 Lord_of_Life_ is now known as Lord_of_Life
10:15:00 rosco joins (~rosco@175.136.158.171)
10:16:42 luna joins (~luna@fedora/bittin)
10:21:14 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
10:22:12 luna parts (~luna@fedora/bittin) ()
10:23:36 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
10:23:48 rosco joins (~rosco@175.136.158.171)
10:25:48 <danse-nr3> not sure, i guess i would rely on the error from the compiler to track that up, but maybe someone knows of a way using the language server
10:26:22 × rosco quits (~rosco@175.136.158.171) (Client Quit)
10:27:00 rosco joins (~rosco@175.136.158.171)
10:27:31 × rosco quits (~rosco@175.136.158.171) (Client Quit)
10:28:39 × arahael__ quits (~arahael@1.145.68.95) (Read error: Connection reset by peer)
10:32:58 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:35:32 rosco joins (~rosco@175.136.158.171)
10:40:21 × rosco quits (~rosco@175.136.158.171) (Client Quit)
10:40:34 rosco joins (~rosco@175.136.158.171)
10:42:02 × rosco quits (~rosco@175.136.158.171) (Client Quit)
10:46:20 rosco joins (~rosco@175.136.158.171)
10:47:01 gensyst joins (~gensyst@user/gensyst)
10:50:16 <gensyst> About the hxt (XML parsing) library: How can I wrap existing XmlTree into a brand-new document?
10:51:56 <gensyst> Somehow, transform XmlTree into this behemoth IOSLA (XIOState ()) XmlTree (NTree XNode)
10:53:27 <gensyst> My goal is to first grab all XmlTrees of certain name, then later in the codebase, work on those individually.
10:53:30 <gensyst> Modularity.
10:53:36 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
10:53:53 <gensyst> I hope this is possible with hxt. I hope I don't have to do everything all at once in the same runX
10:54:32 rosco joins (~rosco@175.136.158.171)
10:55:16 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds)
10:58:35 <danse-nr3> can't check that lib right now, but if something is missing from its doc you can always open an issue about it
10:59:39 <gensyst> The thing is, with readString or readDocument I can turn a string or FilePath into that behemoth I mentioned.
10:59:55 <gensyst> I just don't see a way to turn XmlTree into that behemoth
11:00:11 <gensyst> Maybe this is by design
11:00:18 <gensyst> (controlled side effects etc)
11:00:26 <gensyst> ?
11:00:49 × qqq quits (~qqq@92.43.167.61) (Ping timeout: 268 seconds)
11:02:17 qqq joins (~qqq@92.43.167.73)
11:02:40 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 268 seconds)
11:03:50 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:04:33 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
11:05:38 xff0x joins (~xff0x@ai096045.d.east.v6connect.net)
11:05:40 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
11:06:01 × zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Ping timeout: 255 seconds)
11:06:59 AlienCipher joins (~AlienCiph@113.164.176.43)
11:07:22 × AlienCipher quits (~AlienCiph@113.164.176.43) (Client Quit)
11:09:15 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
11:10:31 × CiaoSen quits (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) (Ping timeout: 255 seconds)
11:18:06 × akegalj quits (~akegalj@89-172-89-238.adsl.net.t-com.hr) (Quit: leaving)
11:22:51 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
11:23:15 biberu joins (~biberu@user/biberu)
11:25:39 × qqq quits (~qqq@92.43.167.73) (Ping timeout: 256 seconds)
11:26:39 qqq joins (~qqq@92.43.167.73)
11:27:15 not_reserved joins (~not_reser@45.144.113.236)
11:28:37 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 276 seconds)
11:29:31 azimut joins (~azimut@gateway/tor-sasl/azimut)
11:29:48 × foul_owl quits (~kerry@174-21-66-189.tukw.qwest.net) (Ping timeout: 268 seconds)
11:39:29 aplainzetakind joins (~aplainzet@146.70.171.174)
11:42:41 foul_owl joins (~kerry@185.219.141.160)
11:46:44 __monty__ joins (~toonn@user/toonn)
11:51:56 × Xyloes quits (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) (Quit: Konversation terminated!)
11:56:07 × qqq quits (~qqq@92.43.167.73) (Ping timeout: 256 seconds)
11:58:01 qqq joins (~qqq@92.43.167.61)
12:02:55 × JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 260 seconds)
12:03:21 JeremyB99 joins (~JeremyB99@208.64.173.6)
12:04:03 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:04:26 <srk> glguy: was hacking on Haskell and IRC as well past two days https://github.com/sorki/ircbridge
12:04:35 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
12:04:42 gensystt joins (~gensyst@user/gensyst)
12:07:25 × JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 245 seconds)
12:07:35 × gensyst quits (~gensyst@user/gensyst) (Ping timeout: 260 seconds)
12:08:01 <danse-nr3> quite productive for a couple of days ;)
12:10:09 applecat joins (~applecat@116.204.144.46)
12:10:53 <srk> danse-nr3: I've built it 3 years ago, haven't touched it since then (but it was working quite well since then), now it's pretty much done. there are features I can add but there's not much to remove so it's perfect
12:13:12 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:13:17 Square3 joins (~Square4@user/square)
12:13:17 × Square3 quits (~Square4@user/square) (Remote host closed the connection)
12:13:44 × danse-nr3 quits (~danse@151.19.224.252) (Ping timeout: 256 seconds)
12:14:08 × Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds)
12:14:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:16:37 × migas9 quits (~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io)
12:17:29 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
12:18:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:18:40 migas9 joins (~migas@static.140.65.63.178.clients.your-server.de)
12:19:44 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 4.1.1)
12:20:46 × aplainzetakind quits (~aplainzet@146.70.171.174) (Quit: Client closed)
12:22:53 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
12:27:31 <Unicorn_Princess> two monks were walking across a bridge
12:27:59 <Unicorn_Princess> and the junior monk said to his teacher "what is the monad nature?"
12:28:10 <Unicorn_Princess> and the other monk picked him up and threw him in the water
12:29:07 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
12:29:07 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 256 seconds)
12:34:57 <ncf> lol
12:35:20 <ncf> you sure he didn't say "μ!" ?
12:38:08 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
12:38:10 danse-nr3 joins (~danse@151.19.224.252)
12:38:23 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
12:38:48 <ski> μ : M ∘ M ⟶ M
12:39:55 <gensystt> About the hxt (XML parsing) library: How can I wrap existing XmlTree into a brand-new document?
12:39:56 <gensystt> Somehow, transform XmlTree into this behemoth IOSLA (XIOState ()) XmlTree (NTree XNode)
12:39:56 <gensystt> My goal is modularity: first grab all XmlTrees of certain name, then later work on those individually.
12:39:56 <gensystt> I hope this is possible with hxt. I hope I don't have to do everything all at once in the same runX. The thing is, with readString or readDocument I can turn a string or FilePath into that behemoth I mentioned.
12:39:56 <gensystt> I just don't see a way to turn XmlTree into that behemoth.
12:40:40 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:41:57 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
12:42:07 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
12:43:07 <danse-nr3> i am pretty sure most people have read this already the first time, although i understand that the channel looks more active now
12:43:07 rosco joins (~rosco@175.136.158.171)
12:47:12 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
12:49:05 CiaoSen joins (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5)
12:51:30 tremon joins (~tremon@83.80.159.219)
12:52:34 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
12:59:04 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
12:59:05 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
13:00:30 sawilagar joins (~sawilagar@user/sawilagar)
13:01:41 <gensystt> I figured it out
13:02:07 <gensystt> I just have to wrap the XmlTree into a constA (the constant arrow, I suppose)
13:02:18 <gensystt> that the arrow way of doing "pure" or "return" it seems
13:03:57 <danse-nr3> oh i see then the problem was the arrow interface
13:06:28 × applecat quits (~applecat@116.204.144.46) (Ping timeout: 250 seconds)
13:09:19 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
13:09:24 × poscat quits (~poscat@user/poscat) (Quit: Bye)
13:12:13 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
13:14:10 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
13:14:52 poscat joins (~poscat@user/poscat)
13:15:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:17:37 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
13:20:45 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 245 seconds)
13:20:49 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
13:25:33 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
13:27:14 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
13:28:01 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
13:33:23 mikess joins (~sam@user/mikess)
13:35:43 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
13:35:48 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
13:41:10 × danse-nr3 quits (~danse@151.19.224.252) (Ping timeout: 255 seconds)
13:42:27 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
13:42:30 danse-nr3 joins (~danse@151.37.249.255)
13:45:38 × danse-nr3 quits (~danse@151.37.249.255) (Remote host closed the connection)
13:45:48 edr joins (~edr@user/edr)
13:46:23 danse-nr3 joins (~danse@151.37.249.255)
13:49:24 × kenran` quits (~user@user/kenran) (Remote host closed the connection)
13:57:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:58:11 <EvanR> the intersection of XML and Arrow sounds unlikely as hell, I like it
13:59:04 <danse-nr3> haha how so? Arrow is a very generic abstraction
14:00:54 <EvanR> I've also heard that it is unnecessarily specific
14:01:40 <danse-nr3> to be fair arrows confuse me a bit. I have heard of them as a great abstraction, but when i try to study the basics of it they look just like tuples
14:02:15 <danse-nr3> pairs, to be precise
14:02:35 shriekingnoise joins (~shrieking@186.137.175.87)
14:03:09 <EvanR> the example I default to is the string diagram-ish diagrams for e.g. yampa programs
14:03:24 thegeekinside joins (~thegeekin@189.180.53.210)
14:03:25 <EvanR> https://wiki.haskell.org/Yampa
14:04:08 × mikess quits (~sam@user/mikess) (Quit: leaving)
14:04:44 <danse-nr3> yeah i see how primitives on top of pairs can be helpful for the case of those diagrams. They are still pairs though
14:05:19 mikess joins (~sam@user/mikess)
14:06:36 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:07:02 <EvanR> :thonk:
14:07:24 <EvanR> how is arr f a pair
14:08:12 × thegeekinside quits (~thegeekin@189.180.53.210) (Ping timeout: 256 seconds)
14:08:42 <Unicorn_Princess> the "tutorial introduction" linked from https://wiki.haskell.org/Arrow is 56 pages :|
14:09:00 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:09:43 <EvanR> :t fst
14:09:44 <danse-nr3> `arr` is not a pair, but all the rest you can do with it seems to be use it on a pair
14:09:44 <lambdabot> (a, b) -> a
14:09:48 <EvanR> :t first
14:09:49 <lambdabot> Arrow a => a b c -> a (b, d) (c, d)
14:09:52 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:10:47 <EvanR> pairs have both parameters in positive position, while the humble function arrow has one positive one negative
14:11:26 <danse-nr3> :t arr
14:11:27 <lambdabot> Arrow a => (b -> c) -> a b c
14:13:39 <ski> the main problem with arrows is `arr'
14:14:03 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:14:22 <Unicorn_Princess> pfft, landlubbers
14:14:34 <ski> @arr
14:14:34 <lambdabot> Aye Aye Cap'n
14:17:42 × mikess quits (~sam@user/mikess) (Quit: leaving)
14:17:58 × danse-nr3 quits (~danse@151.37.249.255) (Read error: Connection reset by peer)
14:18:32 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:18:36 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:18:56 thegeekinside joins (~thegeekin@189.180.53.210)
14:22:02 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:23:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:23:57 komikat joins (~akshitkr@218.185.248.66)
14:25:08 <komikat> what would you guys recommend for a haskell setup with emacs
14:25:09 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:25:56 <komikat> been using lsp but not sure if something like merlin (ocaml) exists for haskell
14:26:35 <exarkun> komikat: haskell-mode, lsp-mode, lsp-ui, lsp-haskell, a nix flake to install haskell-language-server, and envrc-mode to tie emacs to the flake env
14:26:58 <exarkun> and a lot of patience
14:27:09 <komikat> of course
14:27:09 <EvanR> there's a joke what's a pirates favorite programming language. R? No, C be me true love. Coincidentally, early notation for A ⟶ B in early logic looks like A Ↄ B
14:27:14 <exarkun> lsp-treemacs too
14:28:14 danse-nr3 joins (~danse@151.37.249.255)
14:28:21 <komikat> thanks!
14:28:31 <ski> or ⌜A ⊃ B⌝
14:29:57 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:30:10 <EvanR> I guess it was easier to turn their C slug upside down
14:31:09 <Unicorn_Princess> komikat, and just restart emacs if the haskell lsp/server break, which they will, frequently
14:31:25 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:31:30 <komikat> is there a way to avoid the lsp altogether?
14:31:38 <komikat> and still get decent editing support
14:32:04 <Unicorn_Princess> i don't know it, but tree-sitter probably
14:32:08 <komikat> dont really want much, a lint and some autocomplete
14:32:36 <exarkun> you get dumb autocomplete more or less for free
14:32:49 <exarkun> and you can just run hlint with flycheck or something if you want
14:33:06 <exarkun> it falls a long way short of what lsp can do
14:33:20 <EvanR> control N in vim, autocompletes xD
14:34:13 <danse-nr3> that is why they were referring to as "dumb autocomplete"
14:34:30 ski never bothered trying out the LSP support, so far
14:34:54 <EvanR> if it's dumb and works then it's not dumb :tm:
14:35:18 <danse-nr3> the `lsp` packages are awful but there is a stabler alternative with less feature, although its name now escapes my memory...
14:35:33 <ski> `M-/' does reasonable autocomplete, for me, most of the time
14:35:49 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds)
14:36:23 <exarkun> danse-nr3: An emacs alternative for talking to a language server?
14:36:30 <ski> there's apparently something called eglot, which is supposedly more integrated and playing along better with Emacs
14:36:33 <danse-nr3> yeah
14:37:11 <exarkun> Huh interesting
14:37:17 alp_ joins (~alp@2001:861:e3d6:8f80:6a02:be3b:357f:fb3)
14:37:35 <danse-nr3> yeah maybe that was eglot
14:37:47 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:37:58 <srk> I was wondering today if I should try to revive my emacs haskell lsp setup. still not sure it's worth it
14:38:52 <srk> *if
14:39:19 × komikat quits (~akshitkr@218.185.248.66) (Ping timeout: 256 seconds)
14:39:37 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
14:39:42 <srk> is there a way to make emacs as fast/responsive like vim? :D
14:40:03 <exarkun> running lsp-haskell definitely does not help with responsiveness.
14:40:13 <srk> exactly
14:40:45 <srk> I need my editor as responsive as FPS games :D
14:40:50 <ski> maybe you could ask #emacs
14:40:56 <exarkun> it's a trade-off! you can have 5 keystrokes per second or you can have 1 keystroke per second that is 5 times more meaningful.
14:41:21 <srk> started with spacemacs, way too bloated. switched to doom-emacs, much better. still using it daily due to org mode, sometimes with dhall
14:41:37 <srk> considering rolling my own config as I sort-of know what I want now
14:41:39 <Unicorn_Princess> yeah spacemacs was too laggy for me too
14:41:43 <srk> but my daily driver is still vim + ghcid
14:42:02 <Unicorn_Princess> plus getting help was harder, since you've got all the complexity of spacemacs to deal with on top of emacs
14:42:11 <srk> this
14:42:13 <Unicorn_Princess> which is already a tower of babel unto itself
14:42:35 ski never tried any "kit"
14:43:07 <srk> easier for emacs noobs like me who also need evil
14:43:43 <srk> doom bindings are not bad at all, I can switch between vim and doom pretty quickly
14:43:53 <ski> #emacs is usually pretty approachable, though
14:44:13 <srk> ty, will lurk :)
14:44:43 <ski> (not implying you should take the conversation elsewhere. it's fine to talk about it here, as well)
14:45:44 <srk> cool. I've already dumped all my emacs thoughts anyway I think hehe
14:46:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
14:46:31 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds)
14:47:18 <Unicorn_Princess> the spacemacs way of bringing up a hierarchical key menu on pressing space is really good tho, and i pretty much copied it for my own emacs setup
14:47:19 <srk> recently I've made multi-package ghcid (loads every single component of multi package repo) but I don't know what to do next with it. is ndmitchell approachable too? :D
14:47:41 <Unicorn_Princess> cuz learning a special set of keybindings for each package is insane
14:47:43 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
14:48:21 <srk> Unicorn_Princess: yep, I've liked that a lot
14:49:04 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
14:49:49 × rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal)
14:51:22 <ski> hm, haven't seen ndm around in a long time, in here
14:52:32 <ski> (if preflex was still around, i'd ask them for how long ago)
14:55:54 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:56:51 <danse-nr3> was preflex a bot or just a person with a long memory?
14:57:17 <EvanR> what happened to preflex
14:58:59 komikat joins (~akshitkr@218.185.248.66)
14:59:00 <srk> ski: cool, didn't know he used to hang around. will shoot him an email
15:00:01 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 255 seconds)
15:00:14 euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de)
15:00:39 kenran joins (~user@user/kenran)
15:02:15 <EvanR> in the video linked on the yampa wiki page "causal commutative arrows and their optimization" his slide says arrow is a generalization of monad...
15:03:06 <EvanR> assuming ArrowApply, the generalization is the other way around right
15:03:18 <danse-nr3> apparently functions on pairs are a generalization of monads then
15:03:56 <EvanR> still not seeing this pairs thing
15:04:06 × gensystt quits (~gensyst@user/gensyst) (Quit: Leaving)
15:04:29 <danse-nr3> i guess because one element is the monadic result, the other is the monadic side effect, but one can swap their roles so it is a generalization
15:04:58 <ski> danse-nr3 : a bot
15:05:06 <ski> iirc, ran by mmorrow
15:05:30 <ski> (who's also disappeared)
15:06:08 <ski> "functions on pairs" ?
15:07:54 <danse-nr3> that is what arrows look like to me
15:08:01 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
15:08:16 Inst joins (~Inst@120.244.192.187)
15:08:27 <ski> (and TheHunter,andersca,augustss,SyntaxNinja,quicksilver,hpaste,esap,Pseudonym,..)
15:08:30 <Inst> it's understandable to try to talk someone out of joining the army, right?
15:08:31 <ski> what do you mean ?
15:08:36 <Inst> actually, #haskell-offtopic
15:09:10 <ski> where does the pairs come into the picture ?
15:09:16 <ski> talking about `first' ?
15:09:31 <Inst> wait, can i ask you a personal question, ski?
15:09:33 <Inst> regarding your ip?
15:09:41 <danse-nr3> yes but also &&&, just the basic interface seems to be about that
15:09:58 <Inst> hi danse-nr3, sorry i've been gone for a long time
15:10:10 <Inst> last 2, and likely 3 weeks, will be eaten up by a personal issue
15:10:10 <danse-nr3> hi Inst, no worries
15:11:27 <Inst> ski? :(
15:11:50 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
15:12:40 × trev quits (~trev@user/trev) (Quit: trev)
15:13:34 <ski> danse-nr3 : yea, those parts are about categorical products (or rather, something a bit weaker than those)
15:14:05 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
15:15:18 × mrmr15533 quits (~mrmr@user/mrmr) (Ping timeout: 260 seconds)
15:18:34 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds)
15:22:29 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
15:24:19 <danse-nr3> komikat, i forgot to mention `hasktags` with M-.
15:24:29 <danse-nr3> very stable and quick way to jump to definitions
15:25:06 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
15:25:22 × CiaoSen quits (~Jura@2a05:5800:291:5500:2a3a:4dff:fe84:dbd5) (Ping timeout: 268 seconds)
15:27:55 mrmr15533 joins (~mrmr@user/mrmr)
15:28:17 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
15:28:45 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
15:33:02 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
15:33:58 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
15:35:53 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
15:36:16 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds)
15:38:57 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:46:39 × alp_ quits (~alp@2001:861:e3d6:8f80:6a02:be3b:357f:fb3) (Ping timeout: 268 seconds)
15:47:40 stackdroid18 joins (14094@de1.hashbang.sh)
15:49:28 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
15:50:05 sord937 joins (~sord937@gateway/tor-sasl/sord937)
15:50:27 <bwe> which monad transformer video can you recommend?
15:51:49 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
15:51:58 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
15:53:05 pounce joins (~pounce@user/cute/pounce)
15:55:16 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
15:55:43 × qqq quits (~qqq@92.43.167.61) (Quit: leaving)
15:56:19 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
16:00:02 × seeg123456 quits (~seeg12345@64.176.64.83) (Remote host closed the connection)
16:01:40 <danse-nr3> i recommend studying by reading, although it is so old-millenium
16:01:45 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
16:02:36 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
16:02:47 <hc> What's modern today? writing?
16:02:50 <hc> ;p
16:03:06 <Inst> Youtube.
16:03:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:05:29 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
16:07:22 <c_wraith> Honestly, monad transformers are a topic most easily learned by writing or modifying code that uses them. And in fact, they're easier to "understand" than monads. I was successfully maintaining code using monad transformers well before I was comfortable with monads.
16:08:43 <kaol> It's all about flattening pyramids. Pave the earth.
16:08:45 × stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
16:09:49 alp_ joins (~alp@2001:861:e3d6:8f80:d1dc:7d30:db10:a74e)
16:09:57 <danse-nr3> that is very counterintuitive c_wraith
16:10:31 <c_wraith> :t lift
16:10:33 <lambdabot> (MonadTrans t, Monad m) => m a -> t m a
16:10:50 <c_wraith> :t (>>=)
16:10:51 <lambdabot> Monad m => m a -> (a -> m b) -> m b
16:11:00 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
16:11:05 <c_wraith> One of those is easier than the other
16:11:09 <geekosaur> the whole point of monad transformers is they're treated as black boxes
16:11:20 <danse-nr3> i have read that there are two main approaches, mtl and transformers if i recall correctly. Which one is `lift` from?
16:11:32 <c_wraith> that's incorrect
16:11:43 <c_wraith> lift is from both
16:11:54 × euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
16:12:03 <c_wraith> and it's the same definition, because transformers is a dependency of mtl
16:12:11 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
16:12:36 <danse-nr3> probably i recall wrong then. See, reading does not work... had to watch a video instead!
16:13:01 <geekosaur> there's a lot of misinformation out there whichever route you choose
16:13:29 × Alleria quits (~JohnGalt@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:13:42 sb23 joins (~sb23@66.159.217.159)
16:14:58 <c_wraith> as a generic concept, monad transformers are just "use lift when it makes the types right". That's something that's pretty easy to grasp.
16:15:43 <c_wraith> All the tricky stuff (I'm looking at you, ContT) is not part of the generic concept
16:16:17 <yushyin> danse-nr3: mtl and transformers library have a long (intertwined) history, depending on what sources, you will read some pretty outdated stuff sometimes
16:16:51 <c_wraith> eh. transformers was created so that mtl and monads-tf could share most of their definitions
16:16:59 <c_wraith> monads-tf has basically been forgotten
16:17:20 <c_wraith> but every since transformers was created, it's been a dependency of mtl
16:17:29 <c_wraith> *ever since
16:18:30 <c_wraith> it's the fact that monads-tf was forgotten that makes so many people complicate history. Without it, it's really hard to understand why both transformers and mtl exist
16:19:21 <danse-nr3> sheesh, looking through chrome history is awful. Who needs history, anyways? I found a post i liked a lot: https://www.williamyaoh.com/posts/2023-06-10-monad-transformers-101.html bwe
16:19:48 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
16:20:05 <danse-nr3> it is there where "mtl-style and transformers-style" are mentioned
16:20:10 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
16:20:56 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
16:21:03 <geekosaur> some people do use transformers directly, yes.
16:21:14 euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de)
16:21:15 <geekosaur> the problem with that is it'll let you build illegal transformers. mtl won't
16:21:50 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
16:22:15 <kaol> I'd expect some people using mtl end up using only a subset that could be done with just transformers.
16:22:49 <c_wraith> honestly, I don't like mtl much because effects aren't commutative.
16:23:14 × euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
16:23:52 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
16:23:56 <c_wraith> anything that encourages writing types which are ambiguous even though the code itself only works correctly one way... that's weakening type safety.
16:25:11 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
16:25:41 <c_wraith> the mtl-ish answer to that is that if you need a pair of effects such that the lack of commutativity matters, you should create a new class that encapsulates that requirement. At which point I wonder what the point is...
16:28:14 Alleria joins (~JohnGalt@user/alleria)
16:28:15 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
16:29:06 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
16:30:33 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5)
16:32:34 <bwe> geekosaur: so, I'd use mtl, correct?
16:32:45 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
16:35:19 shapr joins (~user@2600:1700:c640:3100:7dfc:b197:b7f3:90c3)
16:36:04 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
16:36:11 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
16:36:49 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
16:40:12 <geekosaur> I don't know. I'd use mtl, others prefer effect systems but iirc those let you build illegal combinations of effects with no type errors
16:41:04 <bwe> geekosaur: alright; you've mentioned a lot of misinformation around; which information would you point me to specifically?
16:42:17 × kenran quits (~user@user/kenran) (Remote host closed the connection)
16:45:53 <geekosaur> sadly I have more pointers to bad stuff than good
16:46:12 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
16:46:13 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
16:49:13 <bwe> hm, so blacklist approach, huh?
16:49:18 <EvanR> time to run the garbage collector on your pointers!
16:50:59 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection)
16:51:14 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
16:54:05 × sb23 quits (~sb23@66.159.217.159) (Quit: Client closed)
16:55:12 <bwe> geekosaur: what about chapter 7 of http://www.cs.nott.ac.uk/~pszgmh/monparsing.pdf ?
16:56:31 <Unicorn_Princess> effect systems as in algebraic effects?
16:56:45 <ski> or more generally, i suppose
16:57:20 <ski> (as in, a type system tracking effects as well. often relatively fine-grained)
16:57:53 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
16:58:02 <ski> (e.g. the effect of reading mutable `x' could be different from the effect of reading mutable `y', in the inference rules)
16:59:32 <geekosaur> bwe, that has the problem that it's Gopfer (which admittedly ws one of the inspirations for Haskell); I don't think it supported transformers as a general library, although it shows the basics of that
16:59:38 <geekosaur> *Gofer
16:59:51 <geekosaur> Unicorn_Princess, yes
17:00:42 <ski> "don't like mtl much because effects aren't commutative" -- using ordered logic for the relevant constraints would be interesting
17:00:42 HasEvil joins (~HasEvil@5.151.177.140)
17:00:52 ski has been reading about ordered logic, recently
17:01:00 <geekosaur> the problem there is that monads don't really comprise an algebra
17:01:09 <geekosaur> Cont/COntT breaks a lot of stuff, for example
17:01:16 <geekosaur> *ContT
17:01:17 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 240 seconds)
17:01:24 josh203 joins (~josh203@freifunk-gw.bsa1-cpe1.syseleven.net)
17:01:35 <ski> still, `ConT' is also where a lot of fun and useful power can be had
17:01:35 × danse-nr3 quits (~danse@151.37.249.255) (Ping timeout: 260 seconds)
17:01:52 <EvanR> one does not simply compose monads
17:02:15 <ski> (e.g. an unbounded stack of `ContT's, with `IO' at the bottom)
17:02:21 <HasEvil> hi, I am new to haskell and trying to unpack a maybe. Can't seem to do it.
17:02:39 <EvanR> use pattern matching
17:02:41 <ski> HasEvil : what have you tried so far ?
17:02:47 <ski> @where paste
17:02:47 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
17:02:49 <HasEvil> fromMaybe
17:02:56 <EvanR> or that
17:03:02 <ski> @type fromMaybe
17:03:03 <lambdabot> a -> Maybe a -> a
17:03:05 <ski> @type maybe
17:03:06 <lambdabot> b -> (a -> b) -> Maybe a -> b
17:03:11 <Unicorn_Princess> finally something i understand
17:03:44 × chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds)
17:03:46 <ski> `fromMaybe' is for when you want to supply a default. `maybe' is more general (is equivalent to pattern-match), allows you to transform the value, if there was one, and otherwise provide a default result
17:03:47 <HasEvil> EvanR I was wondering if you could do withouth that
17:04:00 <Unicorn_Princess> HasEvil, what would you like to do, exactly?
17:04:11 <EvanR> the `maybe' function does anything pattern matching could do with a Maybe
17:04:19 <EvanR> sometimes it's more convenient
17:04:23 <ski> @src fromMaybe
17:04:23 <lambdabot> fromMaybe d Nothing = d
17:04:24 <lambdabot> fromMaybe _ (Just v) = v
17:04:26 <ski> @src maybe
17:04:26 <lambdabot> maybe n _ Nothing = n
17:04:26 <lambdabot> maybe _ f (Just x) = f x
17:04:33 <ski> both of these are defined, via pattern-matching
17:04:37 <HasEvil> https://paste.tomsmeding.com/rjwTrqm1
17:04:38 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
17:05:15 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:05:18 <HasEvil> Ok, so I have a function. that return a maybe. And I want to print it
17:05:28 <ski> HasEvil> :t unicodeByName
17:05:35 <HasEvil> Actually it returs a Maybe String
17:05:48 <EvanR> % print (Just "Hello World")
17:05:48 <yahb2> Just "Hello World"
17:06:01 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:06:19 <ski> Nothing -> putStrLn "[ERROR] Can't find unicode. Sorry" ++ sad
17:06:21 <ski> ought to be
17:06:29 <ski> Nothing -> putStrLn ("[ERROR] Can't find unicode. Sorry " ++ sad)
17:06:38 <HasEvil> k
17:06:53 AlexNoo_ joins (~AlexNoo@178.34.151.29)
17:07:14 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
17:07:50 <HasEvil> k, thx ski
17:08:02 <ski> (although i'd s/sad/happy/,s/:\(/:\)/,s/Sorry/Fortunately/)
17:08:11 <HasEvil> but why it would work. I am confussed now
17:08:15 <ski> all clear ?
17:08:45 <HasEvil> yeah, it compiled. Just needed the paran
17:08:58 <ski> btw, instead of `hSetBuffering stdout NoBuffering', you could try `hFlush stdout', after the `putStr' invocation
17:09:03 × AlexZenon quits (~alzenon@178.34.163.165) (Ping timeout: 256 seconds)
17:09:12 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection)
17:09:19 <HasEvil> ski I know. I was just lazy
17:09:48 <ski> (also, the brackets around `unicodeByName input' are redundant .. and you can replace the second `let' with ` ' (three spaces))
17:10:02 <ski> (and yea .. the `_ <- 's aren't necessary)
17:10:28 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
17:10:32 × josh203 quits (~josh203@freifunk-gw.bsa1-cpe1.syseleven.net) (Remote host closed the connection)
17:11:04 <geekosaur> as to why you need the parentheses, function application is higher precedence than anything else so what you originally wrote was read as (putStrLn "[ERROR] Can't find unicode. Sorry") ++ sad
17:11:10 × AlexNoo quits (~AlexNoo@178.34.163.165) (Ping timeout: 276 seconds)
17:11:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
17:12:09 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:12:53 <HasEvil> thx geekosaur
17:12:54 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
17:14:19 <HasEvil> What if I want to do `let m = ("Hello, " ++ unicodeByName "smile")`
17:15:03 <ski> that's fine
17:15:14 <ski> well, ok. not with the `Maybe' in the way
17:15:31 <ski> do you want to get rid of the `Maybe' here, or keep it around ?
17:15:40 <ski> if the former, you can do
17:16:12 <ski> m = maybe ":(" ("Hello, " ++) (unicodeByName "smile")
17:16:14 <ski> if the latter
17:16:26 <ski> m = fmap ("Hello, " ++) (unicodeByName "smile")
17:16:29 <ski> which is the same as
17:16:31 <HasEvil> k, so maybe can unpack maybe
17:16:32 <HasEvil> ??
17:16:37 <ski> m = ("Hello, " ++) <$> unicodeByName "smile"
17:16:41 <ski> yes
17:16:55 <ski> the first of these is equivalent to
17:16:56 <HasEvil> k ,thx
17:17:04 <ski> m = case unicodeByName "smile" of
17:17:11 <ski> Nothing -> ":("
17:17:16 <Unicorn_Princess> i don't like the 'maybe' function. it mixes defaulting and functor functionality, and seems just confusing
17:17:25 <ski> Just s -> "Hello, " ++ s
17:17:51 <ski> `maybe' is just the catamorphism on `Maybe'. just like `either' is the one for `Either', and `foldr' is the one for `[]'
17:18:05 <ski> @type bool
17:18:06 <lambdabot> a -> a -> Bool -> a
17:18:13 <ski> that's catamorphism for `Bool'
17:18:32 <Unicorn_Princess> HasEvil, i'd stick with fmap and fromMaybe. less confusing. unless you're comfortable with whatever the heck catamorphisms are
17:19:08 <ski> "catamorphism" means : replace all the data constructors (belonging to the type in question) with corresponding callback parameters
17:19:11 <EvanR> I had "so you want to unpack a Maybe. Let me first introduce you to some category theory" ready xD
17:19:24 chomwitt joins (~chomwitt@ppp-2-85-137-120.home.otenet.gr)
17:19:34 <ski> so `foldr cons nil xs' replaces the `(:)'s in `xs' with `cons', and the `[]' with `nil'
17:19:57 <ski> > foldr f z (a:b:c:d:[])
17:19:58 <lambdabot> f a (f b (f c (f d z)))
17:20:23 <ski> similarly, `maybe nothing just m' replaces `Nothing' in `m' with `nothing', and `Just' in `m' with `just'
17:20:32 <ski> and ditto for `either left right e'
17:20:40 <ski> (and `bool false true b')
17:20:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection)
17:20:53 AlexZenon joins (~alzenon@178.34.151.29)
17:21:25 <Unicorn_Princess> is this the text equivalent of throwing chalk at your students?
17:21:26 ski hits EvanR over the haid with a right Kan extension
17:21:34 <HasEvil> so, what's the diff between just and maube
17:21:50 <HasEvil> Unicorn_Princess: probably.
17:22:14 <ski> `just' above is an arbitrary parameter, given to the library function `maybe'. i could have said `maybe n j m' instead, if that would make it clearer ?
17:22:54 <HasEvil> that I understand. I mant in more gernal terms. If a stdlib function is returing a just or a maybe. Why the difference
17:22:56 <EvanR> variables with over 1 letter in haskell, incomprehensible
17:23:34 <Unicorn_Princess> HasEvil, anyway, fmap will apply a function to whatever is inside your Maybe, and fromMaybe will return either what's inside your Maybe, or a default value you give it. nice and simple
17:23:35 <geekosaur> Just is a data constructor, it takes a value and produces a value. Maybe is a type constructor, it takes a type and produces a type
17:23:42 <Unicorn_Princess> the 'maybe' function does both at the same time
17:24:02 <ski> e.g. in `maybe 0 (2 ^) (lookup "four" [("two",2),("three",3),("five",5),("seven",7)])', the `nothing'/`n' is `0' (which is what `Nothing' in the result of calling `lookup' will be replaced with), while the `just'/`j' here would be `(2 ^)'. so if the `lookup' gives you `Just n', you compute `2 ^ n'. if it gives you `Nothing', you give `0' as result instead
17:24:03 <HasEvil> EvanR: true, As a bignner the whole `a -> b` was so hard to read. And then `Num a =>` can't just say `Num numa => numa`
17:24:09 <HasEvil> would be much helpful
17:24:24 <EvanR> Numa (Numa a)
17:24:47 <ski> Unicorn_Princess : "the 'maybe' function does both at the same time" -- that's more or less an accident. it's nothing particular related to `maybe' being a catamorphism
17:24:51 <HasEvil> geekosaur: ok, that actually is starting to make sense
17:25:14 ski . o O ( `E (Numa (E (Lich a)))' )
17:25:19 <HasEvil> Unicorn_Princess: wdym does both at the same time
17:25:35 <HasEvil> EvanR: yeah
17:25:47 <ski> HasEvil : you're free to name your type variables with multiple characters, if you like to
17:26:19 <HasEvil> ski: yeah, but when I ask `:type` they are named single char
17:26:33 <EvanR> :t Just
17:26:34 <lambdabot> a -> Maybe a
17:26:48 <ski> because the implementation doesn't have common sense, can't figure out sensible names for the intended meaning of type variables
17:26:52 <EvanR> Just :: a -> Maybe a -- explains the relationships between Just and Maybe
17:26:58 <EvanR> in compressed form
17:27:15 <geekosaur> the problem here is that `a` could be anything
17:27:24 <geekosaur> so there's not really a sensible name for it
17:27:48 <johnw> in fact, the opaqueness of the name "a" is meaningful: you can't know anything about that type other than its existence
17:27:54 <geekosaur> ghc likes to use `t` (for `type`) when it doesn't have any other name for something
17:28:00 <HasEvil> i get that, and it's readable here but when my prof. shows functioin whose type defination contains 3 generics. My mind goes black
17:28:17 <ski> .. i guess one could decide to start by using the name `num' for instances of `Num', and `integral' for instances of `Integral', and so on .. but what, then, for a type variable which is constrained to belong to multiple type classes ?
17:28:19 <EvanR> sometimes there are useful names for type variables
17:28:26 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
17:28:32 <ski> ("perfect being the enemy of good" ?)
17:28:37 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:28:39 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
17:29:05 <HasEvil> ski: maybe ord (change to lower case) but I'm just ranting. pretty sure will get used to it
17:29:13 <Unicorn_Princess> HasEvil, basically, `maybe x f = fromMaybe x . fmap f`
17:29:20 <Unicorn_Princess> (i assume this clears everything up)
17:29:23 <ski> in fact, GHC does pick up the names of type variables, from operation that have explicit type signatures .. but often there's be multiple conflicting ones it could use, and so it just picks one of them
17:29:24 <johnw> numOrIntegral? :)
17:29:31 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
17:29:34 <HasEvil> it does. thx
17:29:41 <geekosaur> "thingy"
17:29:44 <HasEvil> Unicorn_Princess:
17:29:59 <ski> HasEvil : in practice, you get used to it. and the succinctness of one-letter names can also help comprehend types (and ordinary value expressions) more, at times
17:30:00 <EvanR> StateT stateType baseMonad returnType
17:30:09 <EvanR> as opposed to StateT s m a
17:30:24 euleritian joins (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de)
17:30:27 <ski> johnw : s/Or/And/, perchance :p
17:30:41 <HasEvil> ski: yeah, I thought so. But rn it feels archaic.
17:30:46 ski nods
17:31:20 <ski> HasEvil : are you used to some other system where type variables automagically get more useful names inferred ?
17:31:22 <HasEvil> also, is `&&` and `and` same
17:31:30 <EvanR> :t (&&)
17:31:31 <lambdabot> Bool -> Bool -> Bool
17:31:32 <EvanR> :t and
17:31:33 <lambdabot> Foldable t => t Bool -> Bool
17:31:43 <ski> one is binary, the other "variadic"
17:31:55 <ski> @type min
17:31:56 <lambdabot> Ord a => a -> a -> a
17:31:57 <ski> @type minimum
17:31:58 <lambdabot> (Foldable t, Ord a) => t a -> a
17:32:04 <HasEvil> ski: nah, the only other type system I have used is Rust.
17:32:15 <ski> ok
17:33:01 <EvanR> && always works, while technically and is totally unsafe and can crash!
17:33:07 <EvanR> > and []
17:33:08 <lambdabot> True
17:33:10 <EvanR> I'm wrong
17:33:16 <EvanR> > minimum []
17:33:17 <lambdabot> *Exception: Prelude.minimum: empty list
17:33:40 <HasEvil> hmm, ok, So, && for two expr. while and for multiple?
17:33:56 <EvanR> and works for zero or more bools
17:34:18 <exarkun> "while and for" is a lovely triple
17:35:12 <EvanR> now I'm wondering how to define while to make that work
17:37:09 <ski> @type ?while and for
17:37:10 <lambdabot> (?while::(t1 Bool -> Bool) -> (t2 a -> (a -> f b) -> f (t2 b)) -> t3, Traversable t2, Applicative f, Foldable t1) => t3
17:37:15 <ski> luvly jubly
17:37:28 <EvanR> o_O
17:38:29 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:39:02 pounce joins (~pounce@user/cute/pounce)
17:39:43 <Inst> what's the most efficient way to express a string of text in unary?
17:40:30 <EvanR> run length encoding
17:41:14 <EvanR> [(),(),(),(),(),(),()] ==> 7
17:42:02 <ski> fwiw, i would not call that "unary"
17:42:23 <ski> (the only number you can express in "base one" is zero)
17:42:36 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:42:38 <EvanR> not one?
17:42:42 <ski> (you could say Peano, or perhaps tally marks, if you wish)
17:42:53 <Inst> peano, then
17:43:02 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
17:43:08 <ski> the digits in base `n' are the elements of `{0,1,2,...,n-2,n-1}'
17:43:18 <ski> if `n = 1', then that's `{0}'
17:43:35 <ski> so, we have the only numeral being `...00000', which expresses zero
17:45:03 <ski> hm, anyway, to express pairs, we need an injection `pair :: Nat -> Nat -> Nat'. one possible definition is `pair m n = 2^m * 3^n'
17:45:37 <ski> it's better, though, if it's also surjective, so that we don't waste representations by having no pairs map to them
17:45:57 <Inst> yeah, but I think commonplace unary is good enough
17:45:58 <ski> so, one can pick `pair m n = 2^m * (2*n + 1)', which is a bijection
17:46:38 <Inst> this algorithm is far from efficient, right?
17:46:52 <Inst> convert the chars in a string to numbers, show, then concat
17:47:02 <Inst> that gives you a unary representation of a given text
17:47:07 <Inst> but the size of the output is ridiculous
17:47:17 <Inst> erm, replicate onto the concat
17:47:30 <ski> still, that grows quite fast in `m'. even better is `pair m n = (m+n)*(m+n+1) `div` 2 + m' (which is counting diagonally in a quadrant of a coordinate system. (m+n)*(m+n+1) `div` 2 is the triangular number of `m+n')
17:48:21 <ski> now, considering `[a] = 1 + a * [a]', we can use `pair' for the cons case here. and we use `0' for the `1' alternative, and `(1 +)' for the other alternative
17:48:32 <ski> so
17:48:49 <ski> encodeList :: (a -> Nat) -> ([a] -> Nat)
17:48:59 <ski> encodeList encodeElem [ ] = 0
17:49:16 <ski> encodeList encodeElem (x:xs) = 1 + pair (encodeElem x) (encodeList encodeElem xs)
17:49:47 <ski> (decoding isn't much harder)
17:49:48 notzmv joins (~zmv@user/notzmv)
17:50:10 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds)
17:50:11 <Inst> welp
17:50:14 <Inst> i just crashed nvim
17:50:21 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
17:50:34 <int-e> Inst: Nothing will be efficient here since you need length O(N) to represent N different values in "unary"; there are exponentially many strings of length n, so N ~ 2^O(n), so you're looking at exponentially large encodings or worse.
17:50:49 <ski> an alternative is think of `[a]' as `exists (n :: Nat). a^n', so you represent a list as a pair of its length `n', and an `n'-tuple of elements
17:50:52 × absence_ quits (torgeihe@hildring.pvv.ntnu.no) (Quit: Lost terminal)
17:50:56 × euleritian quits (~euleritia@dynamic-046-114-202-009.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
17:51:15 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:51:17 <int-e> These kind of questions are quite firmly theoretical.
17:51:34 <EvanR> you can use run-length encoding on your "unary" to compress it xD
17:51:36 <ski> yea
17:51:47 <Inst> It's an acquaintance of sorts
17:51:50 × troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds)
17:51:53 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:51:56 <Inst> I joked I'd only message them during business hours in unary
17:52:08 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
17:52:32 <EvanR> do they have a client which can "decode unary"
17:52:37 <int-e> Well you can send a sequence of messages I suppose.
17:52:48 <int-e> One character per message. That's not *too* explosive.
17:53:07 ski . o O ( "A Functional Hitchhiker's Guide to Hereditarily Finite Sets, Ackermann Encodings and Pairing Functions" by Paul Tarau in 2008-08-06 at <https://arxiv.org/abs/0808.0754> )
17:53:10 <Inst> anyways, any idea how to convert from unicode to ASCII?
17:53:17 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
17:53:25 <geekosaur> how do you convert 🙂 ?
17:53:27 <Inst> because now this is a huge mess
17:53:54 <int-e> UTF-7
17:54:01 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
17:54:03 <exarkun> UTF-1, obviously
17:54:12 <geekosaur> if you mean "how do I encode Unicode as bytes?" then the answer is UTF-8
17:54:26 <EvanR> when one character is a big deal you can utilize ham radio codes like CQ, QRZ, QRM, etc
17:54:38 <EvanR> QSO
17:55:33 <int-e> How can UTF-7 be "obsolete"... it's much newer than Fortran ;-)
17:56:09 <EvanR> meanwhile UTF-9 is alive and well
17:58:07 <Inst> it turns out peano isn't efficient enough a representation format to encode messages as a joke :(
17:59:30 <EvanR> you can send one character per line, each line a number of |
17:59:30 <Inst> just to encode "ilu" takes 230 mb
18:00:01 <geekosaur> -.-. --.- -.. . -.- -... ---.. -. ....
18:00:14 <int-e> ah, ternary
18:00:16 <int-e> ;)
18:00:21 <ski> as `n' goes to `Nat', `m + n' goes to `Nat' (being `m + Nat') -- this is comparision/subtraction (by/with `m'), offsets
18:00:22 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
18:00:28 <ski> if `n > 0', then as `m' goes to `Nat', `m * n' goes to `Nat' (being `Nat * n') -- this is quotient&remainder, coordinates
18:00:34 <ski> if `n > 1', then as `m' goes to `Nat', `n ^ m' goes to `Nat' (being `n ^ (Nat)', functions with finite support) -- this is numeral representation (in base `n'), digits
18:00:40 <Inst> CQDEKB8NH ?
18:01:09 <geekosaur> hm, I got that slightly wrong
18:01:19 <geekosaur> been years since I did CW
18:02:03 <EvanR> > let f n = replicate n '|' in (length . unlines . map (f . ord)) "ilu"
18:02:04 <lambdabot> 333
18:02:12 <EvanR> 333 < 230 MB
18:02:27 <Inst> goddamnit :(
18:02:47 <Inst> but that's not a correct representation
18:02:54 <EvanR> no?
18:03:07 <Inst> is the representation of ilu and uli the same in this situation?
18:03:13 <EvanR> no
18:03:19 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
18:03:47 <Inst> unlines is working as a join
18:03:58 <Inst> you lose the character information, i.e, there is a large number of possible interpretations of the resulting code
18:04:01 <geekosaur> but it inserts spaces
18:04:03 <EvanR> the newlines are serving the same purpose as the pause between codes in the CW above
18:04:14 <geekosaur> er, newlines
18:04:16 <int-e> Inst: no, there are newlines in there
18:04:18 <Inst> i guess my implementation doesn't have spaces :(
18:04:32 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
18:04:34 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
18:04:42 <Inst> so i have to encode character separation via unary
18:04:46 <Inst> all these jokes are silly, though
18:04:54 <EvanR> a space could be a blank line or 32 |
18:05:02 stevenxl joins (uid133530@id-133530.uxbridge.irccloud.com)
18:05:46 <Inst> the problem is that the encoding isn't data complete
18:06:11 <EvanR> if you can send 0 and 1, that's the best you can do. Unless you're trying to send quantum states
18:06:17 <Inst> you need something other than the simple representation, i.e, if you had space, it's spiritually the same as binary with space operating as 0
18:06:26 <Inst> if i can only send 1, or the number of 1s
18:06:36 <EvanR> oh, then send the number of 1s
18:06:40 <EvanR> much more efficient
18:06:41 pounce joins (~pounce@user/cute/pounce)
18:06:46 <EvanR> aka run length encoding
18:06:55 <Inst> but that ruins the joke, no?
18:07:05 <EvanR> or is it much funnier
18:07:11 <int-e> EvanR: oh and then you can encode the numbers in binary
18:07:13 <Inst> it's not funny at all in an objective context
18:07:19 <EvanR> lol
18:07:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:07:27 <int-e> EvanR: you might end up with "ilu", just 3 characters
18:07:41 <int-e> that seems rather efficient
18:08:01 <Inst> subjectively? corny joke to encode messages in emoticons
18:08:09 <Inst> oh well, the counterparty wouldn't appreciate this joke at this time anyways
18:08:10 <EvanR> recursively run-length encoded natural numbers are pretty cool
18:08:11 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
18:08:29 <EvanR> might not help with "ilu" though
18:08:31 <Inst> given a single emoticon, encode a message using that emoticon only
18:08:32 <int-e> single "unary" characters seaparated by newlines seems to be very much in the spirit of the joke and have a reasonable chance of being decoded.
18:08:54 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:08:57 <Inst> thanks for being a dating coach!
18:09:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:09:02 <Inst> now, to actually find someone who likes this as a joke!
18:09:11 × HasEvil quits (~HasEvil@5.151.177.140) (Remote host closed the connection)
18:09:12 <int-e> any added layer of encoding will make decoding less likely to happen or even be attempted.
18:09:36 <int-e> qba'g ubyq lbhe oerngu
18:09:44 <EvanR> you think you have a chance with that influencer xD
18:09:49 <Inst> not that one
18:09:50 <EvanR> is that what this is about
18:10:19 <Inst> this is only the sort of lame joke that possibly flies when you're already "plushies" relative to each other
18:10:54 <EvanR> this is starting to sound like a huge XY
18:11:32 <geekosaur> figuratively or literally?
18:11:32 <Inst> XY?
18:11:33 zetef joins (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
18:11:36 <ski> hm, now i'm reminded of that programming challenge thing, that reoccured subsequent years, where in one year, you got a huge chunk of "alien DNA", that you were to decode an initial portion of, and then use that to decompress the remainder, and then decode an initial portion of that, and then decompress remainder again, &c.
18:11:52 × pr0ton quits (~pr0ton@176.254.244.83) (Ping timeout: 256 seconds)
18:12:58 <EvanR> was the kicker that the alien DNA was the HTTP over TCP over IP protocol
18:14:30 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 260 seconds)
18:15:39 <ski> i don't recall
18:16:03 <ski> this may've been ICFP challenge or somesuch
18:20:09 × danso quits (~danso@user/danso) (Ping timeout: 260 seconds)
18:20:55 danso joins (~danso@user/danso)
18:21:57 troydm joins (~troydm@user/troydm)
18:23:44 <int-e> ski: this? https://save-endo.cs.uu.nl/
18:24:39 haasn` joins (~nand@haasn.dev)
18:26:27 pr0ton joins (~pr0ton@176.254.244.83)
18:28:43 <ski> i believe that's it, yes
18:29:31 Shock_ is now known as shOkEy
18:31:30 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
18:32:38 <EvanR> Teams may work in any programming language(s) that they wish. They may employ any computational resources at their disposal.
18:32:45 <EvanR> ah the simple times before "AI"
18:32:53 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
18:37:06 gentauro joins (~gentauro@user/gentauro)
18:40:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection)
18:41:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:41:56 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
18:42:54 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
18:49:56 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
18:52:37 × alp_ quits (~alp@2001:861:e3d6:8f80:d1dc:7d30:db10:a74e) (Ping timeout: 256 seconds)
18:54:44 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
18:55:10 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
18:56:20 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
18:58:28 <Inst> Would it be worth putting up on hackage an idiomatic utility program for peano-based cryptography?
19:00:35 target_i joins (~target_i@217.175.14.39)
19:03:21 infinity0_ joins (~infinity0@pwned.gg)
19:03:21 infinity0 is now known as Guest2611
19:03:21 × Guest2611 quits (~infinity0@pwned.gg) (Killed (zirconium.libera.chat (Nickname regained by services)))
19:03:21 infinity0_ is now known as infinity0
19:04:49 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
19:05:40 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
19:06:54 <dminuoso_> Is that software worth to you?
19:08:23 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
19:12:14 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:12:21 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
19:12:34 mc47 joins (~mc47@xmonad/TheMC47)
19:19:00 × jargon quits (~jargon@184.101.176.143) (Remote host closed the connection)
19:20:33 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Read error: Connection reset by peer)
19:20:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
19:25:32 × Inst quits (~Inst@120.244.192.187) (Ping timeout: 256 seconds)
19:28:03 Inst joins (~Inst@120.244.192.187)
19:28:31 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:28:40 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
19:32:20 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds)
19:32:55 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
19:37:26 JeremyB99 joins (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa)
19:38:22 × JeremyB99 quits (~JeremyB99@2607:fb91:17e0:e4b0:df9:9507:1cb2:bcfa) (Read error: Connection reset by peer)
19:38:44 × not_reserved quits (~not_reser@45.144.113.236) (Quit: Client closed)
19:38:48 × zetef quits (~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Remote host closed the connection)
19:42:19 alp_ joins (~alp@2001:861:e3d6:8f80:1cde:a541:9274:7e5a)
19:43:39 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
19:47:38 JeremyB99 joins (~JeremyB99@208.64.173.6)
19:48:03 <EvanR> cryptography based on obscure humor xD
19:49:51 <tomsmeding> Inst: what does that even mean
19:51:36 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds)
19:51:49 <dminuoso_> Sigh I wish nix was more like haskell. :(
19:52:11 × JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 252 seconds)
19:52:38 <dminuoso_> I want a rich prelude, whitespace aware grammar where bindings, list pattern matching...
19:53:38 <dminuoso_> Its curious how Haskell has this "its a research" language label, but nix does not have this "its shoehorned unfinished research" label
19:53:53 <dminuoso_> Maybe "get things done quickly instead of right" really is the recipe for success
19:56:55 <zzz> javascript
19:57:09 <[exa]> dminuoso_: it's a failure-delaying recipe
19:57:26 <dminuoso_> [exa]: Seems to be a recurring theme in humanity.
19:57:49 <zzz> nature knows there is no such thing as "right"
19:57:51 <[exa]> dminuoso_: life is short, you gotta find the balance
19:58:50 <kaol> Should've tried avoiding success more.
20:00:07 <zzz> safety is commonly overrated but it's nice to think about
20:01:11 <zzz> an in life you have to take risks
20:03:49 Pickchea joins (~private@user/pickchea)
20:04:11 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:05:35 <sshine> dminuoso_, doesn't Dhall translate to Nix?
20:06:25 <sshine> dminuoso_, I attended my first Nix meetup last week. there was a "for beginners" talk, and I heard the sentence "Nix is *just* a bunch of shell scripts, and Perl." a lot of times.
20:07:27 <dminuoso_> sshine: Yeah, dhall is somewhat nicer, but really adding another compilation layer isn't going to help with adoption at $work.
20:07:54 <sshine> dminuoso_, I suppose so. but I also thought maybe that could be fixed with just a single package in one's nix configuration.
20:08:09 <sshine> dminuoso_, do you use Nix for deployment at work?
20:08:13 <dminuoso_> Yes.
20:08:21 <dminuoso_> We operate over a hundred machines with it
20:08:28 <dminuoso_> NixOS that is.
20:08:50 <sshine> I'm aiming to do so. the lead architect asked me a leading question if I'd tried Nix. so I know I've got buy-in. :) it's just one of those things you have to invest your own time in also.
20:09:25 <dminuoso_> Im really torn with nix.
20:09:35 <sshine> I think we're at 15 or so now, running Debian with custom .debs, but upgrading is gradually turning to haywire.
20:09:47 <dminuoso_> If it was just pure nix, I wouldnt focus too much on it. With NixOS its a trade off.
20:10:02 <sshine> why?
20:10:14 <dminuoso_> It comes with significant costs, none of which make me happy - but the benefits outweigh them slightly.
20:11:02 <sshine> what costs are associated with NixOS that aren't with Nix? (also, if this is too offtopic for #haskell, I'm in #haskell-offtopic now.)
20:11:44 pounce joins (~pounce@user/cute/pounce)
20:12:44 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 268 seconds)
20:15:42 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
20:15:52 <yushyin> i always tell myself, at least it's not YAML with python filters
20:16:06 <dminuoso_> yushyin: Right, and thats sort of the "why do we even use it" reason.
20:16:07 × pounce quits (~pounce@user/cute/pounce) (Read error: error:0A000119:SSL routines::decryption failed or bad record mac)
20:16:10 <dminuoso_> Its better than the alternatives.
20:16:16 <sshine> that's what they say at the Nix club.
20:16:22 <dminuoso_> Which isnt mich to go on, but hey, its something.
20:17:08 <dminuoso_> One of my favourite ones in nixos modules is: infinite recursion detected. GOOD LUCK!
20:17:13 <sshine> "at least it's not YAML." -- but I think all YAML isn't created equally. for example, Ansible YAML seems to be schema-validated before they try to execute it. (executing is a mess, but at least you get good error messages in case you made a scope indentation error.)
20:17:23 pounce joins (~pounce@user/cute/pounce)
20:17:37 <dminuoso_> The YAML part is a red herring in all of ansible.
20:17:42 <ski> (sshine : it's fine)
20:17:42 <dminuoso_> YAML is merely the lexical structure.
20:17:48 <dminuoso_> It doesnt mean anything
20:17:48 <Rembane> It's very red. It's very herring.
20:17:50 <sshine> whereas Helm has a nicer execution model, but the syntax is... footguns with footguns all the way down.
20:18:08 <Rembane> sshine: Does Helm use its own syntax? Home rolled and dangerous?
20:18:09 <dminuoso_> Rembane: Are herrings red, though?
20:18:20 <dminuoso_> Pink, maybe.
20:18:34 <Rembane> dminuoso_: All my herrings are red. I am quite drunk when I am close to them though, and they are fermented.
20:18:47 <ski> not smoked ?
20:19:34 <sshine> Rembane, Helm uses handlebar-like macros, but the really difficult thing is that when you have macros that produce whitespace-sensitive output, you have a bunch of variations of handlebars that regulate the output, and a bunch of helper macros that indent it further. it feels like most of my cognitive capacity, when writing Helm scripts, goes into thinking about whitespace, and very little goes into
20:19:40 <sshine> thinking about the underlying resource definitions.
20:20:33 <dminuoso_> Rembane: Is there a casual connection to you being close to them, and them being fermeted?
20:20:47 <dminuoso_> I can imagine throwing up while drunk could trigger fermentation. Is that it?
20:21:18 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
20:21:38 <monochrom> :(
20:23:19 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
20:24:46 × stevenxl quits (uid133530@id-133530.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
20:26:10 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
20:27:37 AlexNoo_ is now known as AlexNoo
20:29:44 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
20:31:51 × iqubic quits (~avi@2601:602:9502:c70:c94f:89a4:f1d7:2a2a) (Ping timeout: 268 seconds)
20:33:58 × pounce quits (~pounce@user/cute/pounce) (Ping timeout: 276 seconds)
20:38:46 × shapr quits (~user@2600:1700:c640:3100:7dfc:b197:b7f3:90c3) (Remote host closed the connection)
20:39:00 shapr joins (~user@2600:1700:c640:3100:9f9c:9e66:1ec1:188)
20:41:32 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
20:44:07 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f) (Remote host closed the connection)
20:45:21 × yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
20:45:45 yahb2 joins (~yahb2@static.56.27.47.78.clients.your-server.de)
20:45:45 ChanServ sets mode +v yahb2
20:45:56 danza joins (~francesco@151.47.212.250)
20:46:58 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
20:53:13 ircbrowse_tom joins (~ircbrowse@static.162.49.55.162.clients.your-server.de)
20:53:19 Server sets mode +Cnt
20:53:52 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
20:54:28 <zzz> if i have a haskell program running on my server and i want another program (not haskell) to communicate with it, sending and getting responses just a few times a second, what would be the simplest way to do it? i am looking at IPC, pipes and so on but i'm a little lost. i've never done anything of the sort
20:55:28 <juri_> can confirm all of the above, and pour on some gasoline: ansible's yaml verification is great, too bad it uses a templating system that is very python version / templating tool version / ansible version dependant. nothing like an ansible script doing the wrong thing halfway through a run because your dependencies don't quite work well enough together.
20:56:13 <sshine> juri_, haha yeah, I do remember that. doing Ansible scripts to bootstrap a system, you have to install the right Python version first.
20:56:48 × tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
20:57:21 tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2)
20:58:21 <sshine> zzz, there's quite a lot you can do. TCP, UNIX domain socket. REST, RPC. here's a simple example: https://stackoverflow.com/questions/29593116/simple-unix-domain-sockets-server
20:58:29 <Rembane> dminuoso_: No, not at all. First the herring is fermented and then it is eaten while drinking lots of fermented and distilled beverages.
20:59:22 <Rembane> sshine: W.r.t. Helm: That sounds exciting in all the wrong ways. I think I would've prefered a compiler to macros and templates.
21:02:34 <sshine> Rembane, the Helm documentation even has a section on how bad this is: https://helm.sh/docs/chart_template_guide/control_structures/#controlling-whitespace -- I remember doing this for a while, it occurred to me "Wait, Lisp has macros, and Lisp doesn't blow up when I misplace a whitespace. what's happening here?"
21:02:52 <dminuoso_> Rembane: That sounds like an awful complication. Couldnt you just ferment the hering in the same drink you are drinking?
21:02:57 <dminuoso_> Seems it would speed up the consumption process.
21:03:01 <Rembane> sshine: That's hilarious!
21:03:31 <Rembane> dminuoso_: Hm... that's a good point. The part I'm really interested in is the concept of distilling herring.
21:03:53 <dminuoso_> Rembane: Well you can distill herring just fine. Its just that after one destillation you will have 0% herring left.
21:04:02 <sshine> Rembane, it's like the clip from Rick & Morty where, if you align the dead flies correctly on Rick's table, it unlocks his bunker. except, it's not a joke.
21:04:08 <dminuoso_> That may or may not be what you want.
21:05:56 <Rembane> dminuoso_: Is there no herring in the alcohol?
21:06:19 × danza quits (~francesco@151.47.212.250) (Ping timeout: 255 seconds)
21:06:26 <Rembane> sshine: I try to laugh at it anyway. I'm a fool. I am truly fascinated that things ended up like this.
21:06:33 <dminuoso_> You have a point, I dont actually know the boiling point of herring.
21:06:47 <dminuoso_> Sounds like we need some bachelor students.
21:06:50 <Rembane> I assume the same as water.
21:07:16 <dminuoso_> Rembane: Are you suggesting if you boil a pot of water with herrings, some of the herring will start evaporating into air as herring gas?
21:07:23 <Vq> You fry or pickle them, you don't boil them.
21:07:34 <Rembane> dminuoso_: Yes!
21:07:46 <sshine> Rembane, I think handlebar-style templating was a pretty great thing in back-end web frameworks, it was a great improvement over PHP, decoupling markup and domain logic, and the syntax is super lightweight and non-invasive wrt. HTML/CSS. so why not repurpose it for generating YAML that defines what servers run and not?
21:08:23 <EvanR> I said HTML should just have functions in the sense of lambda calculus, beta reduction. People thought I was nuts
21:08:38 <EvanR> either because that's PHP and it's terrible. Or that's PHP which is great and already exists
21:09:08 <juri_> xhtml + xslt was neat. wish it would have caught on, instead of css.
21:09:10 trev joins (~trev@user/trev)
21:09:19 <Rembane> sshine: I agree wholheartedly until the part where it should generate something that is whitespace sensitive.
21:09:31 <sshine> yeah, I liked xslt.
21:09:43 <Rembane> I think there is a language that is a lisp and that compiles down to html.
21:09:56 <EvanR> is it called javascript
21:10:23 <Rembane> It might be a lisp, but it doesn't look like one.
21:10:28 <sshine> I try to obsess about only a couple of languages per decade.
21:11:02 pavonia joins (~user@user/siracusa)
21:11:03 × target_i quits (~target_i@217.175.14.39) (Quit: leaving)
21:12:15 teqwve joins (teqwve@2a01:4f8:c2c:e5b0::1)
21:13:05 <Rembane> It seems like I was thinking of X-expressions and Racket which is a Scheme and not really a Lisp, so Javascript could most definitely work too.
21:13:21 <ski> Scheme is a Lisp
21:13:58 <Rembane> Then I've misunderstood something.
21:14:02 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
21:14:02 <Rembane> That's reassuring.
21:14:07 <ski> (Logo and Dylan are often also "spiritually" considered Lisps, even though they don't use SExps)
21:14:17 <EvanR> by defining suitable "builder" functions a bunch of markup in js looks vaguely like funny looking s-expressions xD
21:14:18 <sshine> somehow the lisp in Scheme is silent.
21:14:52 × end quits (~end@user/end/x-0094621) (Quit: end)
21:17:22 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5836:1305:ce95:7f7f)
21:19:29 end joins (~end@user/end/x-0094621)
21:22:09 JeremyB99 joins (~JeremyB99@208.64.173.6)
21:23:47 × bcksl quits (~bcksl@user/bcksl) (Quit: \)
21:27:16 × JeremyB99 quits (~JeremyB99@208.64.173.6) (Ping timeout: 276 seconds)
21:28:08 bcksl joins (~bcksl@user/bcksl)
21:28:08 JeremyB99 joins (~JeremyB99@2607:fb91:17ee:4c81:15dc:c9c4:136:fc18)
21:31:31 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
21:34:27 × caryhartline quits (~caryhartl@168.182.58.169) (Ping timeout: 268 seconds)
21:35:34 × mrmr15533 quits (~mrmr@user/mrmr) (Ping timeout: 255 seconds)
21:35:39 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
21:38:45 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
21:41:35 × dhil quits (~dhil@2001:8e0:2014:3100:8523:26aa:23b6:e435) (Ping timeout: 260 seconds)
21:43:12 × alp_ quits (~alp@2001:861:e3d6:8f80:1cde:a541:9274:7e5a) (Ping timeout: 256 seconds)
21:44:00 × JeremyB99 quits (~JeremyB99@2607:fb91:17ee:4c81:15dc:c9c4:136:fc18) (Ping timeout: 268 seconds)
21:44:56 × brettgilio quits (a35ba67324@2604:bf00:561:2000::260) (Ping timeout: 245 seconds)
21:44:56 × aniketd quits (32aa4844cd@2604:bf00:561:2000::dcb) (Ping timeout: 245 seconds)
21:44:56 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (Ping timeout: 245 seconds)
21:44:56 × jleightcap quits (7bc4014b62@user/jleightcap) (Ping timeout: 245 seconds)
21:44:56 × bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (Ping timeout: 245 seconds)
21:45:05 × chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Read error: Connection reset by peer)
21:45:05 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (Read error: Connection reset by peer)
21:45:10 × shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer)
21:45:11 × whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (Read error: Connection reset by peer)
21:45:11 × fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (Read error: Connection reset by peer)
21:45:18 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
21:45:21 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
21:45:23 bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd)
21:45:27 chaitlatte0 joins (ea29c0bb16@2604:bf00:561:2000::1124)
21:45:28 × chaitlatte0 quits (ea29c0bb16@2604:bf00:561:2000::1124) (Changing host)
21:45:28 chaitlatte0 joins (ea29c0bb16@user/chaitlatte0)
21:45:35 brettgilio joins (a35ba67324@2604:bf00:561:2000::260)
21:45:35 whereiseveryone joins (206ba86c98@2604:bf00:561:2000::2e4)
21:45:35 jleightcap joins (7bc4014b62@user/jleightcap)
21:45:35 fluffyballoon joins (45ce440a48@2604:bf00:561:2000::e2)
21:45:35 shreyasminocha joins (51fdc93eda@user/shreyasminocha)
21:45:37 aniketd joins (32aa4844cd@2604:bf00:561:2000::dcb)
21:45:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:45:57 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:46:01 × fgaz_ quits (1ff9197ed6@2604:bf00:561:2000::11ea) (Read error: Connection reset by peer)
21:46:01 × kuruczgy quits (55b66dd3ae@2604:bf00:561:2000::127f) (Read error: Connection reset by peer)
21:46:01 × sus quits (1b7af6299f@user/zeromomentum) (Read error: Connection reset by peer)
21:46:02 × theesm quits (2cbdf4b38a@2604:bf00:561:2000::11c8) (Read error: Connection reset by peer)
21:46:02 × fvr quits (ef3e56ca8b@2604:bf00:561:2000::3c4) (Read error: Connection reset by peer)
21:46:02 × b0o quits (0e4a0bf4c9@2604:bf00:561:2000::1bf) (Read error: Connection reset by peer)
21:46:02 × JoelMcCracken quits (5ea8252fbb@2604:bf00:561:2000::10e3) (Write error: Connection reset by peer)
21:46:02 × akspecs quits (00cc8321af@sourcehut/user/akspecs) (Write error: Connection reset by peer)
21:46:02 × jkoshy quits (99b9359beb@user/jkoshy) (Write error: Connection reset by peer)
21:46:02 × arcadewise quits (52968ed80d@2604:bf00:561:2000::3df) (Read error: Connection reset by peer)
21:46:02 × ymherklotz quits (cb2c9cfbdd@2604:bf00:561:2000::29a) (Read error: Connection reset by peer)
21:46:02 × henrytill quits (e0180937c3@2604:bf00:561:2000::e8c) (Read error: Connection reset by peer)
21:46:02 × samhh_ quits (7569f027cf@2604:bf00:561:2000::e4) (Read error: Connection reset by peer)
21:46:02 × sm2n quits (ae95cb1267@user/sm2n) (Read error: Connection reset by peer)
21:46:02 × rselim quits (ce261f06ff@user/milesrout) (Write error: Connection reset by peer)
21:46:02 × Ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (Read error: Connection reset by peer)
21:46:02 × filwisher quits (2e6936c793@2604:bf00:561:2000::170) (Read error: Connection reset by peer)
21:46:02 × samhh quits (7569f027cf@2604:bf00:561:2000::e4) (Read error: Connection reset by peer)
21:46:02 × jakzale quits (6291399afa@user/jakzale) (Read error: Connection reset by peer)
21:46:02 × fn_lumi quits (3d621153a5@2604:bf00:561:2000::df7) (Read error: Connection reset by peer)
21:46:02 × eso quits (a0662dfd5e@2604:bf00:561:2000::1266) (Read error: Connection reset by peer)
21:46:02 × fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (Read error: Connection reset by peer)
21:46:03 × probie quits (cc0b34050a@user/probie) (Write error: Connection reset by peer)
21:46:03 × ggb quits (a62ffbaf4f@2604:bf00:561:2000::3ac) (Write error: Connection reset by peer)
21:46:03 × shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer)
21:46:03 × chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Write error: Connection reset by peer)
21:46:03 × raghavgururajan quits (ea769b8000@user/raghavgururajan) (Write error: Connection reset by peer)
21:46:03 × aniketd quits (32aa4844cd@2604:bf00:561:2000::dcb) (Read error: Connection reset by peer)
21:46:03 × bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (Read error: Connection reset by peer)
21:46:03 × brettgilio quits (a35ba67324@2604:bf00:561:2000::260) (Write error: Connection reset by peer)
21:46:03 × whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (Read error: Connection reset by peer)
21:46:03 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (Write error: Connection reset by peer)
21:46:03 × jleightcap quits (7bc4014b62@user/jleightcap) (Read error: Connection reset by peer)
21:46:03 × cpli quits (77fc530071@2604:bf00:561:2000::252) (Write error: Connection reset by peer)
21:46:03 × jmcantrell quits (644f1bed9a@user/jmcantrell) (Write error: Connection reset by peer)
21:46:03 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (Write error: Connection reset by peer)
21:46:09 × Ram-Z_ quits (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Ping timeout: 256 seconds)
21:46:14 samhh joins (7569f027cf@2604:bf00:561:2000::e4)
21:46:17 fgaz_ joins (1ff9197ed6@2604:bf00:561:2000::11ea)
21:46:17 ggb joins (a62ffbaf4f@2604:bf00:561:2000::3ac)
21:46:17 bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd)
21:46:17 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
21:46:18 filwisher joins (2e6936c793@2604:bf00:561:2000::170)
21:46:18 raghavgururajan joins (ea769b8000@user/raghavgururajan)
21:46:28 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
21:46:32 jkoshy joins (99b9359beb@user/jkoshy)
21:46:32 arcadewise joins (52968ed80d@2604:bf00:561:2000::3df)
21:46:32 jleightcap joins (7bc4014b62@user/jleightcap)
21:46:32 brettgilio joins (a35ba67324@2604:bf00:561:2000::260)
21:46:32 fvr joins (ef3e56ca8b@2604:bf00:561:2000::3c4)
21:46:36 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
21:46:37 eso joins (a0662dfd5e@2604:bf00:561:2000::1266)
21:46:37 sus joins (1b7af6299f@user/zeromomentum)
21:46:37 fluffyballoon joins (45ce440a48@2604:bf00:561:2000::e2)
21:46:44 kuruczgy joins (55b66dd3ae@2604:bf00:561:2000::127f)
21:46:44 theesm joins (2cbdf4b38a@2604:bf00:561:2000::11c8)
21:46:44 whereiseveryone joins (206ba86c98@2604:bf00:561:2000::2e4)
21:46:50 aniketd joins (32aa4844cd@2604:bf00:561:2000::dcb)
21:46:54 fn_lumi joins (3d621153a5@2604:bf00:561:2000::df7)
21:46:54 ymherklotz joins (cb2c9cfbdd@2604:bf00:561:2000::29a)
21:46:54 probie joins (cc0b34050a@user/probie)
21:46:54 henrytill joins (e0180937c3@2604:bf00:561:2000::e8c)
21:46:54 shreyasminocha joins (51fdc93eda@user/shreyasminocha)
21:46:57 JoelMcCracken joins (5ea8252fbb@2604:bf00:561:2000::10e3)
21:46:57 cpli joins (77fc530071@2604:bf00:561:2000::252)
21:46:57 chaitlatte0 joins (ea29c0bb16@user/chaitlatte0)
21:46:57 akspecs joins (00cc8321af@sourcehut/user/akspecs)
21:46:58 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
21:47:00 jakzale joins (6291399afa@user/jakzale)
21:47:00 jmcantrell joins (644f1bed9a@user/jmcantrell)
21:47:00 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
21:47:00 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
21:47:00 sm2n joins (ae95cb1267@2604:bf00:561:2000::109)
21:47:00 rselim joins (ce261f06ff@2604:bf00:561:2000::257)
21:47:00 Ankhers joins (e99e97ef8e@2604:bf00:561:2000::2a2)
21:47:00 b0o joins (0e4a0bf4c9@2604:bf00:561:2000::1bf)
21:47:02 × rselim quits (ce261f06ff@2604:bf00:561:2000::257) (Changing host)
21:47:02 rselim joins (ce261f06ff@user/milesrout)
21:47:02 × sm2n quits (ae95cb1267@2604:bf00:561:2000::109) (Changing host)
21:47:02 sm2n joins (ae95cb1267@user/sm2n)
21:47:38 samhh_ joins (7569f027cf@2604:bf00:561:2000::e4)
21:48:25 mechap joins (~mechap@user/mechap)
21:48:42 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
21:48:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:48:52 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
21:49:19 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
21:50:04 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:50:42 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
21:50:56 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:51:26 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:52:40 iqubic joins (~avi@2601:602:9502:c70:2d15:c772:1b7d:e5a5)
21:54:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:54:56 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:55:53 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:56:23 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:58:46 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
21:59:05 × fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
21:59:19 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
21:59:41 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
22:01:11 × trev quits (~trev@user/trev) (Quit: trev)
22:01:39 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 260 seconds)
22:01:48 jinsun_ joins (~jinsun@user/jinsun)
22:01:48 jinsun_ is now known as jinsun
22:08:59 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.1.1)
22:11:52 mechap joins (~mechap@user/mechap)
22:12:25 × mechap quits (~mechap@user/mechap) (Client Quit)
22:12:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:13:01 mechap joins (~mechap@user/mechap)
22:15:37 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
22:17:03 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 259 seconds)
22:19:30 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
22:22:52 × acidjnk quits (~acidjnk@p200300d6e72b9317058012a22410a419.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
22:28:00 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
22:28:15 × Inst quits (~Inst@120.244.192.187) (Remote host closed the connection)
22:30:16 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
22:30:31 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
22:31:39 × ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Quit: WeeChat 4.1.1)
22:32:58 mengu joins (~mengu@c83-254-18-254.bredband.tele2.se)
22:40:02 × Jackneill quits (~Jackneill@20014C4E1E120500906E1D747CFD14BF.dsl.pool.telekom.hu) (Ping timeout: 260 seconds)
22:40:57 × shapr quits (~user@2600:1700:c640:3100:9f9c:9e66:1ec1:188) (Remote host closed the connection)
22:41:10 shapr joins (~user@2600:1700:c640:3100:147b:3662:c432:30f1)
22:41:16 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:41:47 alp_ joins (~alp@2001:861:e3d6:8f80:1124:c998:cd66:bc03)
22:44:50 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
22:47:20 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:49:11 dolio joins (~dolio@130.44.134.54)
22:50:37 × dolio quits (~dolio@130.44.134.54) (Client Quit)
22:52:15 dolio joins (~dolio@130.44.134.54)
22:52:23 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:55:18 ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net)
22:56:06 cyphase joins (~cyphase@user/cyphase)
23:05:21 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
23:08:36 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:10:15 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
23:12:50 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
23:14:38 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
23:21:26 × mengu quits (~mengu@c83-254-18-254.bredband.tele2.se) (Quit: Client closed)
23:22:22 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
23:23:32 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:26:07 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
23:27:20 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
23:28:09 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
23:32:48 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
23:33:23 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
23:36:39 × chomwitt quits (~chomwitt@ppp-2-85-137-120.home.otenet.gr) (Ping timeout: 256 seconds)
23:37:23 Sgeo joins (~Sgeo@user/sgeo)
23:37:37 <meejah> if you were to build a little toy 2D game-like thing (goal: learn more haskell) on a Linux machine, which Haskell framework would you reach for right now?
23:38:32 <meejah> (I'm asking here, because I want something showing "good haskell" -- i.e. sure I could use the GTK bindings, but then I'm doing "c-like gtk in haskell" approximately, it seems)
23:40:31 <carter> meejah: dear im gui
23:40:51 <carter> It’s dirt simple but you can make it fancy
23:41:03 <carter> Or maybe I’m just ignorant at gui dev
23:41:16 <jackdk> meejah: Note that whatever program you write, there's often an "imperative outer layer" which grows up around the program and then you have a core of pure data structures and functions to work out what you need to change in the imperative layer
23:41:23 × thegeekinside quits (~thegeekin@189.180.53.210) (Remote host closed the connection)
23:43:36 <jackdk> meejah: https://www.youtube.com/watch?v=GaorHAlUkVs is an interesting talk using some pretty high-powered tools to get performance but captures the idea pretty well
23:43:45 JeremyB99 joins (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883)
23:44:36 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
23:46:16 × JeremyB99 quits (~JeremyB99@2600:1702:21b0:a500:6581:2a34:dec3:8883) (Read error: Connection reset by peer)
23:47:10 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:47:17 <duncan> meejah: I have a Haskell implementation of the 'greed' game using Brick
23:47:44 <duncan> Brick runs in the terminal and it is a bunch of combinators
23:48:27 <meejah> thanks! (I've played a little with Brick and yeah it looks neat)
23:48:37 <meejah> it's the "reactive" type thing?
23:48:46 <duncan> It's not reactive
23:48:52 <duncan> State is updated every so often though
23:49:17 <meejah> jackdk: thanks, i'll check out the talk
23:49:34 <meejah> duncan: oh, is it like monomer then? (more like model/view/controller a bit)
23:49:56 <duncan> Well, it's not reactive in the same way the reactive-banana is
23:50:01 <meejah> right, okay
23:50:04 <duncan> But it might be given it has a state machine
23:50:12 emmanuelux joins (~emmanuelu@user/emmanuelux)
23:50:25 <meejah> (yeah i meant "reactive" in that sense, like Obsidian etc )
23:50:31 <duncan> https://github.com/druimalban/hgreed
23:50:45 <duncan> A famous Haskeller starred the repository IIRC.
23:53:51 <duncan> Oh god I think I used some recursion scheme with that
23:54:01 <duncan> Probably not a great teaching tool.
23:55:13 <EvanR> meejah, simple graphics library gloss has a "game" mode
23:55:35 <EvanR> but you'd have to bring your own audio if you want audio
23:55:36 masterbuilder joins (~quassel@user/masterbuilder)
23:57:06 × pandry quits (~Pandry@93-41-34-64.ip79.fastwebnet.it) (Ping timeout: 260 seconds)
23:57:25 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 276 seconds)
23:58:36 pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
23:59:30 <duncan> I think it would involve a lot of wrangling with 2D graphics libraries, whereas Brick is just blitting composed together text objects to the terminal

All times are in UTC on 2023-11-28.