Home liberachat/#haskell: Logs Calendar

Logs on 2022-06-18 (liberachat/#haskell)

00:00:13 × ystael_ quits (~ystael@user/ystael) (Quit: Lost terminal)
00:00:59 <sayola> so, any ideas?
00:02:03 <EvanR> a compiler plugin might let you do some unrecommended things
00:02:10 <EvanR> at compile time
00:02:25 <EvanR> I guess template haskell would be the first stop on that road
00:02:43 <geekosaur> you would need either associated types or functional dependencies for a multiparameter typeclass to resolve sanely
00:02:58 <geekosaur> but you'd need to think through how you want it to work
00:03:30 <geekosaur> otherwise, no, it won't be abloe to work types out by itself even with defaulting; multiparameter typeclasses present far too many options
00:04:20 alp__ joins (~alp@user/alp)
00:08:00 <sayola> fundeps didnt work out so far, sadly
00:09:25 <sayola> i dunno about template haskell hmhmm
00:10:59 <EvanR> it lets you generate source code during compile time, perhaps in stages, but I don't know if you can access the type checker at the same time
00:12:43 <sayola> i think it would do the trick of generating a function from another function without failing?
00:13:31 <sayola> how does template haskell see ambiguous types though?
00:14:20 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
00:14:58 chexum joins (~quassel@gateway/tor-sasl/chexum)
00:18:18 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
00:19:08 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
00:20:01 × kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
00:20:59 azimut joins (~azimut@gateway/tor-sasl/azimut)
00:21:38 × werneta quits (~werneta@137.79.237.183) (Ping timeout: 244 seconds)
00:23:35 werneta joins (~werneta@137.79.231.39)
00:25:20 alexhandy joins (~AndChat62@user/trace)
00:25:23 × Tuplanolla quits (~Tuplanoll@91-159-68-181.elisa-laajakaista.fi) (Quit: Leaving.)
00:29:01 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
00:30:04 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
00:37:35 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
00:41:06 machinedgod joins (~machinedg@96.53.10.178)
00:41:23 × fserucas quits (~fserucas@119.65.114.89.rev.vodafone.pt) (Ping timeout: 256 seconds)
00:43:49 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
00:45:41 img joins (~img@user/img)
00:57:31 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
00:58:25 quarkyalice joins (~quarkyali@user/quarkyalice)
01:04:20 leeb joins (~leeb@KD106154142206.au-net.ne.jp)
01:06:15 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:06:15 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:06:15 wroathe joins (~wroathe@user/wroathe)
01:11:49 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:22 <kenaryn> Hello. Does `|` operator stand for "not and" or "exclusive or" please?
01:14:23 <geekosaur> `|` is not an operator. in most cases it can be read as "such that". did you mean `||`? or perhaps `.|.`?
01:16:08 <geekosaur> what context are you talking about?
01:16:13 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
01:17:56 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:58 <kenaryn> I have no immediate example, but it is used when enumerated several constructor data to define a type constructor.
01:18:40 <geekosaur> okay, that usage approximates exclusive or
01:19:33 <kenaryn> `data HsExpr p = HsVar ... | HsLit ... | hsApp ... | OpApp ...`
01:19:33 <geekosaur> most of the other uses are things like guards, functional dependencies, and list comprehensions
01:19:35 <kenaryn> Thank you.
01:20:11 <kenaryn> It may be list comprehension related then.
01:20:22 <geekosaur> no, this isn't a list comprehension
01:20:52 <kenaryn> I'm still at chapter 5 it's too difficult to learn haskell alone.
01:21:05 Cupcakus joins (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net)
01:22:07 <mixfix41> oh which application
01:22:18 <mixfix41> or only examples out the book?
01:25:36 <kenaryn> I failed about 90% of the exercices of Chris Allen book. Despite the numerous claims of the authors, it does require a championship level of previous programming knowledge with a bachelor in type theory.
01:26:45 <kenaryn> It is obvious why the procedural paradigm has taken over civil society and industry.
01:27:39 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:30:46 × kimjetwav quits (~user@2607:fea8:2340:da00:710e:91e2:da2a:278a) (Remote host closed the connection)
01:32:08 <dsal> Haha.
01:33:15 <geekosaur> I'm calling you on that one: I still know zero type theory
01:33:23 <dsal> It's really nice to approach production bugs with "can we make code with this class of bug no longer compile?"
01:35:53 jmdaemon joins (~jmdaemon@user/jmdaemon)
01:35:57 <dsal> I use haskell for projects because I'm not smart enough to use anything else. It's been the easiest language I've worked in in production codebases, even when the code is… not super well written.
01:37:12 alexhandy joins (~AndChat62@user/trace)
01:37:17 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
01:37:36 <dsal> A lot of the code I work on is written by people who don't have much of a foundation in haskell and just mix up a bunch of effects and stuff. We have tools to help guide them into better practices, but we do end up with some weird stuff. But I can do large refactorings without a lot of effort and pretty much reveal bugs more than I introduce them.
01:37:53 <dsal> (Or when I introduce bugs, it's *usually* because I didn't understand how something was supposed to work, not because the code I wrote didn't do what I wanted done)
01:38:02 × Cupcakus quits (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) (Quit: WeeChat 2.8)
01:40:09 × machinedgod quits (~machinedg@96.53.10.178) (Ping timeout: 248 seconds)
01:45:40 machinedgod joins (~machinedg@66.244.246.252)
01:46:13 nate4 joins (~nate@98.45.169.16)
01:47:03 <monochrom> I don't use type theory to write Haskell programs.
01:47:19 <monochrom> When I use Lean to prove theorems, that's when I use type theory.
01:48:11 <monochrom> People look to rationalize the status quo. It is obvious why civil society and industry are still stuck with the von Neumann model.
01:48:39 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
01:50:58 × raym quits (~raym@user/raym) (Quit: quick kernel update and then we'll be back)
01:51:15 jinsun joins (~jinsun@user/jinsun)
01:51:21 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
01:52:05 <Axman6> kenaryn: if you feel you're struggling, you're always welcome to come here and ask for help, we enjoy helping. Making cleams that are difficult to support isn;t going to help though - try to think "I'm having trouble with" not "this is too hard and it's the fault of someone else". Blaming someone or something else just gives you license to stop trying and makes learning harder
01:52:56 <monochrom> And noticing that opinion leaders are also senior people with established interest in old ways, it is obvious why they will use their influence to attack new ways.
01:54:58 raym joins (~raym@user/raym)
01:56:22 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
01:57:49 notzmv joins (~zmv@user/notzmv)
02:08:12 × td_ quits (~td@muedsl-82-207-238-251.citykom.de) (Ping timeout: 260 seconds)
02:09:58 td_ joins (~td@94.134.91.116)
02:12:15 takuan joins (~takuan@178-116-218-225.access.telenet.be)
02:12:55 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
02:13:14 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:13:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
02:13:17 geekosaur joins (~geekosaur@xmonad/geekosaur)
02:21:30 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
02:22:34 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:24:10 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:25:10 ec joins (~ec@gateway/tor-sasl/ec)
02:31:50 × funsafe quits (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) (Ping timeout: 244 seconds)
02:32:27 × raym quits (~raym@user/raym) (Ping timeout: 256 seconds)
02:34:20 raym joins (~raym@user/raym)
02:34:48 funsafe joins (~funsafe@76.105.238.154)
02:36:30 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:36:30 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:36:30 finn_elija is now known as FinnElija
02:40:01 × \yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
02:41:47 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:41:47 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:41:47 wroathe joins (~wroathe@user/wroathe)
02:41:47 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
02:41:48 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Read error: Connection reset by peer)
02:42:33 × raym quits (~raym@user/raym) (Ping timeout: 248 seconds)
02:43:18 alexhandy joins (~AndChat62@user/trace)
02:44:14 raym joins (~raym@user/raym)
02:46:12 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
02:47:09 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
02:59:48 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
03:13:29 × alp__ quits (~alp@user/alp) (Ping timeout: 248 seconds)
03:19:25 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:37:03 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 256 seconds)
03:42:20 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
03:49:14 × vicfred quits (~vicfred@user/vicfred) (Ping timeout: 255 seconds)
03:55:38 × mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer)
03:56:51 mcglk joins (~mcglk@131.191.49.120)
04:00:57 × mvk quits (~mvk@2607:fea8:5ce3:8500::4588) (Ping timeout: 248 seconds)
04:01:32 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
04:01:36 yauhsien_ joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
04:03:34 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
04:05:47 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
04:06:23 azimut joins (~azimut@gateway/tor-sasl/azimut)
04:10:01 <dolio> There's no such thing as a bachelor's degree in type theory.
04:12:31 <dolio> Or Haskell. It's something you'd learn about as like 1/4 of a survey class on varieties of programming languages, or be expected to pick up on the side as part of a class that's on some other topic.
04:14:26 <dolio> I guess some places do use it in their 101 course on intro to programming.
04:28:08 <dsal> The place where I work does all our backend stuff in Haskell, but we don't necessarily expect anyone to have used Haskell before starting.
04:29:40 <dolio> Yeah. It can be taught.
04:31:59 vglfr joins (~vglfr@coupling.penchant.volia.net)
04:41:40 quarkyalice joins (~quarkyali@user/quarkyalice)
04:43:49 alexhandy joins (~AndChat62@user/trace)
04:44:52 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
04:46:46 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
04:50:12 × monochrom quits (~trebla@216.138.220.146) (Quit: NO CARRIER)
04:53:14 img joins (~img@user/img)
04:58:10 monochrom joins (~trebla@216.138.220.146)
05:02:29 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:03:13 × z quits (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) (Ping timeout: 244 seconds)
05:10:03 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
05:19:11 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
05:19:21 × werneta quits (~werneta@137.79.231.39) (Ping timeout: 276 seconds)
05:20:37 werneta joins (~werneta@137.79.237.183)
05:22:01 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
05:23:53 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:30:31 × gnyeki quits (~gnyeki@user/gnyeki) (Quit: Reconnecting)
05:30:38 gnyeki joins (~gnyeki@li578-216.members.linode.com)
05:30:38 × gnyeki quits (~gnyeki@li578-216.members.linode.com) (Changing host)
05:30:38 gnyeki joins (~gnyeki@user/gnyeki)
05:35:53 × leeb quits (~leeb@KD106154142206.au-net.ne.jp) (Ping timeout: 248 seconds)
05:36:53 bilegeek joins (~bilegeek@2600:1008:b06f:9405:6390:85f:97be:d558)
05:37:41 leeb joins (~leeb@KD106155002213.au-net.ne.jp)
05:39:04 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Quit: WeeChat 3.5)
05:39:25 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:42:36 quarkyalice joins (~quarkyali@user/quarkyalice)
05:44:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Remote host closed the connection)
05:47:46 nate4 joins (~nate@98.45.169.16)
05:52:29 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
05:55:35 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
05:56:27 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
05:59:00 frost joins (~frost@user/frost)
06:03:15 quarkyalice joins (~quarkyali@user/quarkyalice)
06:04:11 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
06:07:47 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
06:08:53 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
06:11:51 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
06:13:53 × tabemann quits (~tabemann@2600:1700:7990:24e0:df83:5bf2:4e42:22d0) (Ping timeout: 252 seconds)
06:14:30 tabemann joins (~tabemann@2600:1700:7990:24e0:defe:9c15:44ea:93a5)
06:25:10 kenran joins (~kenran@200116b82bd887000bb650dbb1e85384.dip.versatel-1u1.de)
06:25:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:33:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
06:38:47 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:41:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:42:00 × kenran quits (~kenran@200116b82bd887000bb650dbb1e85384.dip.versatel-1u1.de) (Quit: WeeChat info:version)
06:44:49 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
06:49:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Ping timeout: 255 seconds)
06:51:32 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
06:55:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
06:57:36 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:00:17 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:00:27 × califax quits (~califax@user/califx) (Remote host closed the connection)
07:04:32 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
07:04:33 × frost quits (~frost@user/frost) (Quit: Client closed)
07:05:05 califax joins (~califax@user/califx)
07:05:26 ec joins (~ec@gateway/tor-sasl/ec)
07:05:54 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:11:27 frost joins (~frost@user/frost)
07:11:57 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
07:13:11 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
07:13:58 ChaiTRex joins (~ChaiTRex@user/chaitrex)
07:17:35 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
07:19:02 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
07:19:20 × rendar quits (~rendar@user/rendar) (Ping timeout: 248 seconds)
07:23:29 benin0 joins (~benin@183.82.28.222)
07:23:49 coot joins (~coot@213.134.190.95)
07:30:17 quarkyalice joins (~quarkyali@user/quarkyalice)
07:32:13 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
07:32:13 × Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
07:32:24 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
07:36:11 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 256 seconds)
07:38:12 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
07:39:04 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:39:29 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
07:41:03 × mcfilib quits (sid302703@user/mcfilib) (Quit: Connection closed for inactivity)
07:44:20 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
07:45:32 × Axman6 quits (~Axman6@user/axman6) (Read error: Connection reset by peer)
07:45:48 Axman6 joins (~Axman6@user/axman6)
07:50:34 × mrkajetanp_ quits (~mrkajetan@88.98.245.28) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
07:50:53 mrkajetanp joins (~mrkajetan@88.98.245.28)
07:53:53 × coot quits (~coot@213.134.190.95) (Quit: coot)
07:57:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:59:16 × Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection)
07:59:27 Axman6 joins (~Axman6@user/axman6)
08:04:21 <kuribas> I read "the little typer" and "type driven development in idris"
08:04:25 <kuribas> I can recommend both
08:06:49 <kuribas> Still, I just had an error in my haskell code where I had swapped two tables in my query.
08:07:25 <kuribas> Still, the resulting business logic was valid, just not the one I needed.
08:08:23 <kuribas> IMO types don't eliminate bugs, they just proof your program consistent.
08:08:35 <kuribas> But it can still be consistent in the wrong way :)
08:09:36 × yauhsien_ quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
08:15:48 <thornAvery> hello, i think my biggest lack of knowledge right now is monad stacks, i kiinda get monad transformers, but it seems like if im not good at designing the stack originally its gonna be super hard to refactor later on, ive heard of mtl but i dont really know much about it, is there a way that people suggest or should i just stick with transformers until i get better at it? thank you
08:16:40 <kuribas> thornAvery: The nice thing with mtl is that you can make your own monad (transformer), but just stacking existing ones.
08:16:52 <kuribas> It saves you from having to implement them, and making mistakes.
08:17:01 <kuribas> And also makes adapting them later easier.
08:17:11 <kuribas> But I would still recommend to wrap it in a newtype.
08:17:28 alexhandy joins (~AndChat62@user/trace)
08:20:16 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
08:20:59 <kuribas> thornAvery: I also recommend using a type synonym.
08:21:59 <kuribas> for example: type MyStackInner a = ReaderT MyConf (Either MyErr) a
08:22:21 <kuribas> then "newtype MyStack a = MyStack (MyStackInner a)"
08:23:16 <kuribas> Then you can easily write helpers like "getConf :: MyStack MyConf; getConf = MyStack ask"
08:23:52 <kuribas> thornAvery: the mtl just saves you from a lot of plumbing.
08:24:30 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
08:32:50 × [Leary] quits (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 240 seconds)
08:33:22 alexhandy joins (~AndChat62@user/trace)
08:38:26 <thornAvery> i see i see, ill give mtl a go then, cant hurt to learn something new, do you have any reccomended reading kuribas?
08:39:02 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
08:39:38 Tuplanolla joins (~Tuplanoll@91-159-68-181.elisa-laajakaista.fi)
08:40:47 × leeb quits (~leeb@KD106155002213.au-net.ne.jp) (Ping timeout: 246 seconds)
08:41:32 <kuribas> google showed me this: https://www.fpcomplete.com/haskell/tutorial/monad-transformers/
08:44:34 × califax quits (~califax@user/califx) (Remote host closed the connection)
08:45:36 califax joins (~califax@user/califx)
08:47:22 oxide joins (~lambda@user/oxide)
08:49:25 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:50:58 namkeleser joins (~namkelese@124.188.208.163)
08:51:33 × namkeleser quits (~namkelese@124.188.208.163) (Client Quit)
08:52:43 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Quit: WeeChat 3.5)
08:52:46 alexhandy joins (~AndChat62@user/trace)
08:52:51 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
08:53:32 perdent joins (~perdent@124.188.208.163)
08:54:01 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
08:54:32 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:54:41 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 244 seconds)
08:56:02 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
08:56:13 <thornAvery> thank you :)
08:56:36 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
08:57:02 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
08:58:06 <tomsmeding> kuribas: curious, why the type synonym?
08:58:26 <kuribas> tomsmeding: because I often end up with a lot of helper functions.
08:58:33 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 248 seconds)
08:58:46 <tomsmeding> which work on MyStackInner? Why not let them work on MyStack directly then?
08:58:55 × oxide quits (~lambda@user/oxide) (Ping timeout: 256 seconds)
08:59:05 <kuribas> yeah, sometimes that works, but other times that requires a lot of (re)wrapping.
08:59:18 <tomsmeding> right, that's true
08:59:23 <kuribas> So I end up replicating the inner stack many times.
08:59:29 <kuribas> Also makes it harder to refactor.
09:00:02 <tomsmeding> yes definitely if you're repeating the inner stack in lots of places, then make it a type synonym -- I was just unsure how you would end up repeating the inner stack everywhere
09:00:10 <tomsmeding> (after all, that's the point of the newtype, isn't it)
09:00:40 oxide joins (~lambda@user/oxide)
09:00:44 <kuribas> for example: https://github.com/kuribas/hasqlator-mysql/blob/main/src/Database/MySQL/Hasqlator/Typed.hs#L94
09:00:58 <tomsmeding> still, if MyStack implements all the relevant mtl classes, I'd expect that you usually don't end up rewrapping the stack many times for helper functions, except for intrinsic operations of the monads
09:01:00 alexhandy joins (~AndChat62@user/trace)
09:01:35 <tomsmeding> oh you actually use QueryInner in multiple newtypes
09:01:53 <tomsmeding> right then it makes sense
09:02:36 <kuribas> I just found that happend in most of my code. Could be a coincidence.
09:05:00 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
09:05:30 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
09:06:30 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
09:09:24 <maerwald[m]> Transformer salad?
09:09:40 Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06)
09:09:42 × benin0 quits (~benin@183.82.28.222) (Quit: The Lounge - https://thelounge.chat)
09:10:17 <kuribas> no, having to write the inner monad many times.
09:10:45 alexhandy joins (~AndChat62@user/trace)
09:11:17 <maerwald[m]> Reminds me of when I wanted to use the Handler transformer in servant in an unusual place. Ended up with MonadBaseControl, MonadUnliftIO, obscure type errors and the conclusion that it's not possible.
09:12:00 <maerwald[m]> Not an invention to be proud of. We just lack better alternatives.
09:14:22 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
09:14:23 <kuribas> It worked well enough for my uses.
09:14:44 <kuribas> And you can always go back to (Env -> IO a) if you want.
09:15:37 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
09:17:31 <maerwald[m]> Not sure what that means
09:17:49 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:18:58 <maerwald[m]> For except it's not even clear what a sound MonadUnliftIO instance is. Sure, you can not use transformers at all in the first place. That doesn't seem to be a compelling argument for them.
09:19:37 <kuribas> you don't need MonadUnliftIO with (Env -> IO a).
09:20:02 <maerwald[m]> Yes it's not a transformer lol
09:20:47 <maerwald[m]> https://github.com/fpco/unliftio/issues/68
09:22:15 <kuribas> "Not an invention to be proud of. We just lack better alternatives." <= meh, it's a technique. Sometimes useful, sometimes not. Pride has nothing to do with it.
09:22:38 <kuribas> It's just a disfunctional way of looking at these things.
09:22:45 <kuribas> As if they should be always working or never.
09:23:28 <kuribas> Same with clojure folks ignoring "all" type theory, because "types sometimes get in the way", or "types cannot prove anything".
09:23:46 <kuribas> I don't care, as long as they give me "some" value.
09:24:19 <kuribas> Something doesn't have to "always work" to be useful.
09:24:50 <kuribas> Just use the right technique at the right time, not apply anything religiously.
09:25:15 <maerwald[m]> https://www.snoyman.com/blog/2018/02/conduitpocalypse/
09:25:36 alexhandy joins (~AndChat62@user/trace)
09:25:42 <maerwald[m]> Yes exactly, cleanup handlers can have suprising effects with monadbasecontrol
09:26:03 <maerwald[m]> But why care. Haskell is not about correctness, is it? ;)
09:26:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
09:26:32 <maerwald[m]> "Works most of the time" :p
09:27:11 × bilegeek quits (~bilegeek@2600:1008:b06f:9405:6390:85f:97be:d558) (Quit: Leaving)
09:27:14 leeb joins (~leeb@KD106155002213.au-net.ne.jp)
09:27:15 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
09:28:27 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Remote host closed the connection)
09:29:03 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
09:29:23 × alexhandy quits (~AndChat62@user/trace) (Read error: Connection reset by peer)
09:29:53 <kuribas> Frankly, I don't think haskell is about "correctness", even though many people claim it.
09:30:03 <kuribas> It is about consistency and expressivity.
09:30:28 <kuribas> You're program can be consistent and expressive, but still express the "wrong" thing.
09:30:30 <tomsmeding> though the type system helps with writing less bugs
09:30:43 <tomsmeding> dumb bugs, that is
09:30:56 <tomsmeding> which I guess is what you're saying with "consistency"
09:31:18 <kuribas> I mean you'll get the wrong thing consistently.
09:31:27 <kuribas> Not one time this, another time something else.
09:31:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:31:46 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
09:32:15 <kuribas> and you get less bugs because you can express the intent more clearly, rather than getting lost in low level details.
09:32:40 <maerwald[m]> Also a good read: https://github.com/lexi-lambda/eff/blob/8c4df4bf54faf22456354be18095b14825be5e85/notes/semantics-zoo.md
09:33:29 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
09:36:10 <sm> also relevant - long but good!
09:36:10 <sm> https://overcast.fm/+ng708J6ic
09:36:41 jakalx joins (~jakalx@base.jakalx.net)
09:36:57 alexhandy joins (~AndChat62@user/trace)
09:36:59 × alexhandy quits (~AndChat62@user/trace) (Client Quit)
09:37:16 <maerwald[m]> 3 hours, lol
09:37:35 <maerwald[m]> On my next flight to the moon maybe
09:38:32 <sm> hmm, better link ? https://podcasts.apple.com/us/podcast/17-the-lost-elegance-of-computation-conal-elliott
09:38:42 juri_ joins (~juri@79.140.114.143)
09:38:43 <Franciman> oh
09:38:46 <Franciman> an apple podcast?
09:38:50 <Franciman> nifty
09:39:06 <sm> just a podcast, I can't find a neutral link
09:39:11 <Franciman> kuribas: so it is the same as scheme?
09:39:17 <Franciman> being about consistency and expressivity
09:39:23 <Franciman> sm: lol
09:39:25 <Franciman> np
09:39:29 <Franciman> thanks, I'm happy
09:39:32 <Franciman> for the contents
09:39:38 <sm> yes extremely long but in this case I would say well worth a listen!
09:39:56 <kuribas> Franciman: no, scheme doesn't ensure consistency of my program.
09:40:15 <Franciman> oh ok, sorry i misinterpreted as in: syntactic consistency somehow
09:40:26 <Franciman> but isn't consistency tightly related to correctness?
09:40:56 <tomsmeding> consistency is a term for a particular family of properties about your program, that the type system proves
09:41:18 <tomsmeding> if those properties are true of the intended behaviour of the program, then it's partial correctness
09:43:54 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:44:01 <maerwald> consistently wrong
09:44:47 <maerwald> except transformers don't give you consistency there
09:44:59 <maerwald> "works most of the time" is exactly inconsistent
09:45:18 <kuribas> Franciman: well, you cannot be correct if you are not consistent.
09:46:11 <kuribas> Franciman: for example, you have a REST API with swagger spec, but your program implements it differently.
09:46:43 <kuribas> Franciman: or you write queries for a database that don't match the schema of the database.
09:47:31 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
09:47:57 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:48:55 Teacup joins (~teacup@user/teacup)
09:49:18 nate4 joins (~nate@98.45.169.16)
09:52:11 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
09:53:56 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
09:55:22 <maerwald> kuribas: I think you can be correct without being consistent. The correctness property is just unlikely to remain once you change the code.
09:55:47 zer0bitz joins (~zer0bitz@2001:2003:f748:2000:15be:cdf1:24c0:fca7)
09:56:08 <maerwald> it's like those short windows of soberness that we sometimes experience
09:57:36 <kuribas> how would you observe correctness if the code is not consistent?
09:58:24 __monty__ joins (~toonn@user/toonn)
10:01:45 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
10:02:27 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
10:04:51 <maerwald> kuribas: not sure I understand the question. You can e.g. test a binary against a specification
10:05:17 <maerwald> but a single line of code change would throw over all of your confidence
10:06:21 <maerwald> so everything is a blackbox all the time
10:10:01 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 248 seconds)
10:12:14 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
10:17:21 jakalx joins (~jakalx@base.jakalx.net)
10:35:05 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 248 seconds)
10:35:21 __monty__ joins (~toonn@user/toonn)
10:36:12 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
10:36:50 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
10:39:11 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:39:52 rendar joins (~rendar@user/rendar)
10:42:03 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 256 seconds)
10:43:48 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
10:45:13 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
10:48:11 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
10:48:43 × perdent quits (~perdent@124.188.208.163) (Quit: Client closed)
10:48:56 × oxide quits (~lambda@user/oxide) (Ping timeout: 248 seconds)
10:51:08 oxide joins (~lambda@user/oxide)
11:01:26 gmg joins (~user@user/gehmehgeh)
11:03:05 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer)
11:05:34 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:06:24 notzmv joins (~zmv@user/notzmv)
11:23:58 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:32:18 perdent joins (~perdent@124.188.208.163)
11:33:12 fserucas joins (~fserucas@119.65.114.89.rev.vodafone.pt)
11:33:53 × fserucas quits (~fserucas@119.65.114.89.rev.vodafone.pt) (Client Quit)
11:39:29 × frost quits (~frost@user/frost) (Quit: Client closed)
11:40:31 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:41:17 Midjak joins (~Midjak@82.66.147.146)
11:42:50 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
11:44:48 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
11:49:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
11:52:39 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
11:53:17 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
11:54:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Ping timeout: 255 seconds)
11:58:32 agumonkey joins (~user@88.163.231.79)
12:06:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
12:09:15 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:12:02 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
12:14:42 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
12:14:51 AlexZenon joins (~alzenon@178.34.150.200)
12:15:16 AlexNoo joins (~AlexNoo@178.34.150.200)
12:15:19 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
12:15:34 Alex_test joins (~al_test@178.34.150.200)
12:15:48 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
12:15:53 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
12:21:29 × juri_ quits (~juri@79.140.114.143) (Read error: Connection reset by peer)
12:22:05 juri_ joins (~juri@79.140.114.143)
12:28:40 × cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds)
12:29:54 frost joins (~frost@user/frost)
12:31:24 × raym quits (~raym@user/raym) (Remote host closed the connection)
12:31:49 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
12:32:02 cheater joins (~Username@user/cheater)
12:44:25 pleo joins (~pleo@user/pleo)
12:52:09 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
12:53:58 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:56:31 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Write error: Connection reset by peer)
12:56:31 × winny quits (~weechat@user/winny) (Write error: Broken pipe)
12:56:31 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
12:56:31 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
12:56:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer)
12:56:31 × ec quits (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer)
12:56:31 × califax quits (~califax@user/califx) (Write error: Connection reset by peer)
12:56:31 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer)
12:56:31 × gmg quits (~user@user/gehmehgeh) (Write error: Connection reset by peer)
12:56:31 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer)
12:56:31 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Read error: Connection reset by peer)
12:56:31 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Read error: Connection reset by peer)
12:57:23 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
12:57:32 chexum joins (~quassel@gateway/tor-sasl/chexum)
12:57:46 califax joins (~califax@user/califx)
12:57:50 ec joins (~ec@gateway/tor-sasl/ec)
12:58:00 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
12:58:01 stiell joins (~stiell@gateway/tor-sasl/stiell)
12:58:27 ChaiTRex joins (~ChaiTRex@user/chaitrex)
12:58:31 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
12:58:34 noteness joins (~noteness@user/noteness)
12:59:07 winny joins (~weechat@user/winny)
12:59:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:59:35 gmg joins (~user@user/gehmehgeh)
13:00:06 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
13:00:44 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
13:01:38 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
13:04:58 [Leary] joins (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz)
13:06:46 × kuribas quits (~user@ptr-17d51eocoqvs7v5fptz.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
13:10:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
13:13:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:19:53 × rodental quits (~rodental@38.146.5.222) (Remote host closed the connection)
13:20:07 rodental joins (~rodental@38.146.5.222)
13:21:12 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
13:22:35 Teacup joins (~teacup@user/teacup)
13:24:39 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
13:30:22 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
13:32:22 jakalx parts (~jakalx@base.jakalx.net) ()
13:34:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:35:10 machinedgod joins (~machinedg@66.244.246.252)
13:37:44 jakalx joins (~jakalx@base.jakalx.net)
13:39:00 odnes joins (~odnes@109-178-160-237.pat.ren.cosmote.net)
13:39:05 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 248 seconds)
13:39:51 × rodental quits (~rodental@38.146.5.222) (Remote host closed the connection)
13:40:05 rodental joins (~rodental@38.146.5.222)
13:43:05 × winny quits (~weechat@user/winny) (Remote host closed the connection)
13:46:37 winny joins (~weechat@user/winny)
13:46:47 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
13:48:22 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
13:50:49 nate4 joins (~nate@98.45.169.16)
13:51:32 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
13:52:17 × Alex_test quits (~al_test@178.34.150.200) (Ping timeout: 246 seconds)
13:52:59 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
13:53:41 × AlexZenon quits (~alzenon@178.34.150.200) (Ping timeout: 246 seconds)
13:54:09 × AlexNoo quits (~AlexNoo@178.34.150.200) (Ping timeout: 256 seconds)
13:55:20 coot joins (~coot@213.134.190.95)
13:55:26 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
13:56:08 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Ping timeout: 248 seconds)
13:56:28 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
13:59:06 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
14:01:02 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:06:23 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
14:06:36 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Client Quit)
14:12:39 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:13:39 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
14:15:09 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:18:42 ec_ joins (~ec@gateway/tor-sasl/ec)
14:19:27 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
14:21:11 DarQ joins (~DarQ@41.99.203.145)
14:22:30 <DarQ> hello
14:22:30 <DarQ> I'm currently checking out real world haskell and came across a command which I couldn't execute in the powershell
14:23:07 <DarQ> this is said command "runghc WC < quux.txt" (sry, I don't know how to format messages)
14:23:37 <DarQ> the problem is with the < sign which I assume only works on unix or smth
14:24:32 <DarQ> how should I fix that?
14:26:04 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:26:33 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
14:27:00 <[exa]> DarQ: I guess powershell _should_ have some way to pipe stuff into programs' standard input
14:27:17 <[exa]> (no guarantees tho, it's from redmond)
14:27:54 ec_ joins (~ec@gateway/tor-sasl/ec)
14:28:08 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
14:28:14 joo-_ joins (~joo-_@172-105-65-159.ip.linodeusercontent.com)
14:28:14 × joo-_ quits (~joo-_@172-105-65-159.ip.linodeusercontent.com) (Changing host)
14:28:14 joo-_ joins (~joo-_@fsf/member/joo--)
14:28:57 <[exa]> oh whoops, maybe not
14:29:59 <geekosaur> cmd.exe can handle that, rwh predates powershell
14:30:12 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
14:31:38 <DarQ> hmm
14:31:48 <DarQ> I haven't used cmd in so long
14:31:50 <DarQ> let's see
14:33:17 <geekosaur> yeh, looks like powershell only supports output redirection
14:33:26 <geekosaur> https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-7.2
14:34:53 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
14:39:02 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 255 seconds)
14:40:55 <DarQ> was there some update to the cmd or smth?
14:41:04 <DarQ> why does it look like my powershell?
14:41:17 <DarQ> and why can't cd to "G:\"?
14:41:38 <DarQ> can't I*
14:41:43 <tomsmeding> DarQ: you might also try `Get-Content quux.txt | runghc WC` in powershell -- no guarantees, not a windows user, just looked at some docs
14:42:09 <tomsmeding> oh apparently Get-Content -Path quux.txt
14:42:32 <tomsmeding> perhaps with -Raw (why is powershell so complicated)
14:43:21 <tomsmeding> alternatively `type quux.txt | runghc WC`
14:43:49 <DarQ> uh
14:43:53 <DarQ> this did work
14:43:58 <DarQ> thx
14:44:04 <tomsmeding> which one?
14:44:08 <DarQ> type quux.txt | runghc WC
14:44:11 <tomsmeding> ah
14:44:30 <tomsmeding> old-skool `type` :)
14:44:38 <geekosaur> in cmd you'd have to separately `g:` and `cd \`
14:45:06 <geekosaur> currenbt directory is per drive and `cd` doesn't switch the current drive, just the current directory on that drive
14:45:21 <DarQ> ooo
14:45:29 <DarQ> that makes sense
14:45:43 <DarQ> thanks
14:45:44 × pleo quits (~pleo@user/pleo) (Ping timeout: 248 seconds)
14:48:38 jao joins (~jao@211.68.17.95.dynamic.jazztel.es)
14:51:26 × shriekingnoise quits (~shrieking@201.212.175.181) (Ping timeout: 246 seconds)
14:56:39 pleo joins (~pleo@user/pleo)
15:03:04 × Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection)
15:03:52 Axman6 joins (~Axman6@user/axman6)
15:04:12 alp__ joins (~alp@user/alp)
15:04:47 zebrag joins (~chris@user/zebrag)
15:05:31 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
15:06:47 × winny quits (~weechat@user/winny) (Remote host closed the connection)
15:10:11 winny joins (~weechat@user/winny)
15:10:12 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
15:11:30 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
15:12:44 shriekingnoise joins (~shrieking@201.212.175.181)
15:15:19 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
15:16:12 justsomeguy joins (~justsomeg@user/justsomeguy)
15:16:53 <justsomeguy> When should I use foldl?
15:17:21 <justsomeguy> I get the impression that it's very rarely used, since it causes thunk buildup for long lists.
15:17:41 <maerwald> I think only foldl' is interesting if you want a strict accumulator
15:19:30 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
15:19:35 <justsomeguy> That makes sense. I wonder, though, is there anything that foldl can do that foldr and/or foldl' can't?
15:20:27 coot joins (~coot@213.134.190.95)
15:21:49 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
15:23:34 <geekosaur> I think foldl is there only because foldr is, but foldl is only interesting in a strict by default language
15:24:50 × odnes quits (~odnes@109-178-160-237.pat.ren.cosmote.net) (Read error: Connection reset by peer)
15:24:57 odnes joins (~odnes@109-178-160-237.pat.ren.cosmote.net)
15:25:16 slaydr joins (~slaydr@173.239.197.114)
15:28:18 × DarQ quits (~DarQ@41.99.203.145) (Quit: Client closed)
15:30:11 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
15:32:27 AlexNoo joins (~AlexNoo@178.34.150.200)
15:32:55 <exarkun> > However, if the combining function is lazy in its first argument, foldl may happily return a result where foldl' hits an exception
15:32:57 <lambdabot> <hint>:1:8: error: parse error on input ‘,’
15:32:58 <exarkun> from https://wiki.haskell.org/Foldr_Foldl_Foldl'
15:33:03 <exarkun> sorry lambdabot not for you
15:33:19 × odnes quits (~odnes@109-178-160-237.pat.ren.cosmote.net) (Ping timeout: 256 seconds)
15:33:25 Alex_test joins (~al_test@178.34.150.200)
15:33:45 AlexZenon joins (~alzenon@178.34.150.200)
15:34:35 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
15:37:53 econo joins (uid147250@user/econo)
15:39:47 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:43:35 × Player-205[m] quits (~sashaserp@2001:470:69fc:105::2:30b8) (Quit: issued !quit command)
15:44:05 × agumonkey quits (~user@88.163.231.79) (Ping timeout: 256 seconds)
15:45:52 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
15:48:09 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 248 seconds)
15:48:53 dolio joins (~dolio@130.44.130.54)
15:48:55 DarQ joins (~DarQ@41.99.203.145)
15:49:19 <DarQ> btw, is "real world haskell" still recommended?
15:49:20 × dolio quits (~dolio@130.44.130.54) (Client Quit)
15:49:26 <DarQ> or are there better options rn
15:50:03 <geekosaur> it's somewhat dated but at least parts are still recommended
15:50:10 dolio joins (~dolio@130.44.130.54)
15:50:11 chexum_ joins (~quassel@gateway/tor-sasl/chexum)
15:50:15 <geekosaur> it fills a space in the haskell ecosystems that not much else does
15:50:32 × slaydr quits (~slaydr@173.239.197.114) (Remote host closed the connection)
15:50:57 <DarQ> which parts might those be?
15:51:32 <DarQ> is there a specific chapter where I should go looking for better resources?
15:52:04 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
15:52:30 <geekosaur> the early stuff is basically a primer on haskell. later ones are good for learning how to use it effectively, and (as the title suggests) how to use it in the real world
15:52:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
15:53:02 <geekosaur> although with the growth of web stuff we probably need to see either additional chapters or a book on using eg. servant
15:54:16 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:54:25 chexum_ is now known as chexum
15:57:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Ping timeout: 255 seconds)
15:57:42 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:58:21 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
16:02:24 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net)
16:03:31 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Client Quit)
16:03:32 Volt_ joins (~Volt_@c-68-49-170-216.hsd1.mi.comcast.net)
16:09:09 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
16:10:01 justsomeguy joins (~justsomeg@user/justsomeguy)
16:10:51 Player-205[m] parts (~sashaserp@2001:470:69fc:105::2:30b8) ()
16:11:11 slaydr joins (~slaydr@75.164.63.238)
16:11:22 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
16:12:29 <dsal> I found "Real World Haskell" to be more of a book that demonstrates you can do things than anything I could personally learn from. It was inspirational in the sort of things you could learn, but I don't think I could generalize the examples that well. i.e., it didn't suit my learning style well.
16:14:23 <monochrom> Real World Haskell skips every step in the middle between a preview of basic Haskell and a complicated project that has too many distracting moving parts.
16:15:59 <Bulby[m]> better than what I did - skim Learn you a haskell and write a complex project
16:16:07 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 240 seconds)
16:16:10 <monochrom> True to its name sake "real world", if you understand the derogatory sense of "real world".
16:16:26 kritzefitz joins (~kritzefit@debian/kritzefitz)
16:17:53 <monochrom> For example the chapter on a regex library is 20% the regex library and 80% digressions.
16:18:34 Feuermagier joins (~Feuermagi@user/feuermagier)
16:18:49 <Bulby[m]> i suggest not learning anything and writing a random project. worked for me
16:19:15 <Bulby[m]> (rust is a similar story)
16:19:29 <monochrom> Judging from everything you've said in the past, no it didn't work.
16:19:35 <Bulby[m]> hahaha
16:19:56 <dsal> I did a hybrid approach. Wrote software, then read a bunch of stuff to learn how my software worked. Then realized all the dumb stuff I was doing. Repeat. My stuff gets slightly less dumb as I go.
16:20:04 <dsal> It's not optimal, but it's satisfying.
16:20:04 <Bulby[m]> i knew someone would say something like that 😉
16:20:24 <Bulby[m]> rust is easy to do that with because the compiler tells you exactly what you messed up
16:20:24 <geekosaur> it's the story of programming
16:20:46 <monochrom> Instead of finishing an interpreter, all I saw was "why is Haskell so hard when I use it in unidiomatic ways".
16:21:02 <Bulby[m]> are you talking about me
16:21:05 <monochrom> YES
16:21:14 <Bulby[m]> figures
16:21:31 <Bulby[m]> yeah, now i'm writing the VM in rust
16:21:39 <Bulby[m]> so you are spared for a while
16:22:03 thatcher joins (lp0@heathens.club)
16:22:44 <Bulby[m]> haskell isn't hard anymore (even tho I still use it in unidiomatic ways)
16:22:57 <monochrom> This is why dive-in projects must fail in Haskell. You dive-in, you don't know how Haskell is supposed to be used, you just think up your own way, which is unidiomatic, now everything breaks.
16:23:06 <Bulby[m]> hahahah
16:23:41 <Bulby[m]> my solution to appending to lists taking too long was prepending, and reversing at the end
16:24:48 <Bulby[m]> now I use right associative operators
16:28:35 quarkyalice joins (~quarkyali@user/quarkyalice)
16:29:23 <exarkun> monochrom: how is Haskell unique in this regard
16:30:32 <monochrom> Because in the context of having used an imperative language and then you learn either another imperative language or a functional language, "your own way" simply means imperative ways.
16:30:56 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
16:31:02 <monochrom> Because self-selection bias implies that people who want to learn programming are control freaks.
16:33:13 <exarkun> I suppose that if you took someone who had only ever learned functional programming languages and dropped them into Python, you would have equally poor outcomes.
16:33:36 <monochrom> We don't have a lot of that in the real world.
16:34:02 <exarkun> So maybe this is more a commentary on the state of the world than on Haskell
16:34:25 <monochrom> Alternatively, I can weasel out and say "I didn't say whether dive-in would fail in python" :)
16:35:08 <exarkun> :)
16:35:27 × oxide quits (~lambda@user/oxide) (Quit: oxide)
16:35:39 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 256 seconds)
16:37:41 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
16:43:36 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:48:48 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
16:49:59 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:50:40 × quarkyalice quits (~quarkyali@user/quarkyalice) (Quit: quarkyalice)
16:56:35 k8yun joins (~k8yun@user/k8yun)
16:59:24 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:05:29 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
17:09:20 × leeb quits (~leeb@KD106155002213.au-net.ne.jp) (Ping timeout: 246 seconds)
17:10:44 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
17:13:55 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:14:46 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:18:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
17:18:15 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
17:18:15 finn_elija is now known as FinnElija
17:20:11 kspalaiologos joins (~kspalaiol@user/kspalaiologos)
17:27:23 __monty__ joins (~toonn@user/toonn)
17:28:04 × perdent quits (~perdent@124.188.208.163) (Quit: Client closed)
17:30:31 <DarQ> dive-in would definitely work in python for most purposes
17:30:59 <DarQ> I mean
17:32:04 <DarQ> there's only so many ways you can go wrong if you're only using python for scripting lel
17:32:41 <sm> ha!
17:34:17 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:35:11 <DarQ> what do you guys recommend for writing haskell code?
17:35:24 <DarQ> should I go basic and just use vscode?
17:35:41 <sm> vs code
17:39:37 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:41:02 <hpc> since it's visual studio code, wouldn't you be going visual basic? :P
17:42:04 <hpc> (but yeah, vscode is perfectly fine - ghcup can install hls for you and then the world's your oyster)
17:43:43 <DarQ> what's ghcup?
17:45:07 <hpc> https://www.haskell.org/ghcup/ - an easy installer for a bunch of language stuff
17:45:10 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
17:45:20 <hpc> it's like rustup, if you have ever used that
17:45:35 <DarQ> oh yeah
17:45:40 <DarQ> I already did this
17:47:21 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:47:25 jakalx joins (~jakalx@base.jakalx.net)
17:47:31 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
17:52:22 nate4 joins (~nate@98.45.169.16)
17:53:54 gmg joins (~user@user/gehmehgeh)
17:56:57 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
17:57:15 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
18:01:03 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Remote host closed the connection)
18:02:52 × DarQ quits (~DarQ@41.99.203.145) (Quit: Client closed)
18:04:25 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
18:04:46 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed)
18:05:03 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
18:06:43 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
18:07:39 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
18:13:09 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:13:42 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
18:15:06 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:17:33 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
18:20:07 ec_ joins (~ec@gateway/tor-sasl/ec)
18:20:59 arjun joins (~arjun@user/arjun)
18:22:11 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
18:23:04 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
18:25:35 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
18:29:13 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 244 seconds)
18:32:34 Sgeo joins (~Sgeo@user/sgeo)
18:34:12 × Player-205[m] quits (~sashaserp@2001:470:69fc:105::2:30b8) (Quit: Reconnecting)
18:34:25 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
18:36:56 × Player-205[m] quits (~sashaserp@2001:470:69fc:105::2:30b8) (Client Quit)
18:37:12 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
18:38:03 × Player-205[m] quits (~sashaserp@2001:470:69fc:105::2:30b8) (Client Quit)
18:38:19 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
18:41:53 Player-205[m] joins (~sashaserp@2001:470:69fc:105::2:30b8)
18:42:06 × pleo quits (~pleo@user/pleo) (Ping timeout: 276 seconds)
18:46:47 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
18:48:23 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
18:50:10 × coot quits (~coot@213.134.190.95) (Ping timeout: 240 seconds)
18:50:38 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
18:56:27 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
18:57:03 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 276 seconds)
18:57:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:02:11 mc47 joins (~mc47@xmonad/TheMC47)
19:02:23 × jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 246 seconds)
19:05:04 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
19:05:39 ChaiTRex joins (~ChaiTRex@user/chaitrex)
19:15:48 pleo joins (~pleo@user/pleo)
19:16:01 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
19:17:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
19:18:07 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
19:19:40 × kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Quit: Leaving)
19:20:01 img joins (~img@user/img)
19:21:06 × pleo quits (~pleo@user/pleo) (Ping timeout: 276 seconds)
19:21:29 [_] is now known as [itchyjunk]
19:23:25 × slaydr quits (~slaydr@75.164.63.238) (Quit: Leaving)
19:24:37 × gentauro_ quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
19:25:40 machinedgod joins (~machinedg@S0106ac17c8c1d72e.cg.shawcable.net)
19:30:03 gentauro joins (~gentauro@user/gentauro)
19:33:51 quarkyalice joins (~quarkyali@user/quarkyalice)
19:34:01 × quarkyalice quits (~quarkyali@user/quarkyalice) (Client Quit)
19:36:21 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:40:03 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:41:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:45:08 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
19:49:41 pleo joins (~pleo@user/pleo)
19:50:20 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
19:50:41 <maerwald> git
19:50:43 <maerwald> oops
19:54:10 brettgilio joins (~brettgili@virtlab.gq)
19:54:54 × pleo quits (~pleo@user/pleo) (Ping timeout: 276 seconds)
19:57:30 × dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds)
19:57:57 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
19:58:07 odnes joins (~odnes@109-178-160-237.pat.ren.cosmote.net)
19:58:36 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
19:59:36 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
20:04:14 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.244)
20:04:20 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
20:05:57 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
20:06:35 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
20:09:03 pleo joins (~pleo@user/pleo)
20:09:23 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
20:12:01 yauhsien joins (~yauhsien@61-231-59-135.dynamic-ip.hinet.net)
20:14:53 jakalx joins (~jakalx@base.jakalx.net)
20:15:53 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
20:16:25 × yauhsien quits (~yauhsien@61-231-59-135.dynamic-ip.hinet.net) (Ping timeout: 248 seconds)
20:16:27 cheater joins (~Username@user/cheater)
20:19:23 × werneta quits (~werneta@137.79.237.183) (Ping timeout: 246 seconds)
20:20:47 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
20:21:32 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
20:32:37 pavonia joins (~user@user/siracusa)
20:37:13 averell joins (~averell@user/averell)
20:52:22 jinsun__ joins (~jinsun@user/jinsun)
20:53:54 × tdammers quits (~tdammers@77.109.72.118.res.static.edpnet.net) (Ping timeout: 272 seconds)
20:54:03 jinsun___ joins (~jinsun@user/jinsun)
20:56:25 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 248 seconds)
20:57:02 × jinsun__ quits (~jinsun@user/jinsun) (Ping timeout: 255 seconds)
20:59:42 jinsun joins (~jinsun@user/jinsun)
21:02:26 × jinsun___ quits (~jinsun@user/jinsun) (Ping timeout: 255 seconds)
21:03:08 × machinedgod quits (~machinedg@S0106ac17c8c1d72e.cg.shawcable.net) (Ping timeout: 246 seconds)
21:03:33 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
21:07:07 tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net)
21:11:06 × eldritch quits (~eldritch@user/eldritch) (Quit: bye)
21:11:06 × glider quits (~glider@user/glider) (Quit: ZNC - https://znc.in)
21:11:06 × anderson quits (~ande@user/anderson) (Quit: bye)
21:15:32 justsomeguy joins (~justsomeg@user/justsomeguy)
21:17:49 × Luj quits (~Luj@2a01:e0a:5f9:9681:d2aa:9086:78eb:27f1) (Quit: The Lounge - https://thelounge.chat)
21:18:47 machinedgod joins (~machinedg@66.244.246.252)
21:19:00 Luj joins (~Luj@2a01:e0a:5f9:9681:80c1:f4a2:1ca1:2f20)
21:26:32 anderson joins (~ande@user/anderson)
21:26:45 × Alex_test quits (~al_test@178.34.150.200) (Quit: ;-)
21:27:20 × alp__ quits (~alp@user/alp) (Remote host closed the connection)
21:27:22 × AlexZenon quits (~alzenon@178.34.150.200) (Quit: ;-)
21:27:30 × AlexNoo quits (~AlexNoo@178.34.150.200) (Quit: Leaving)
21:27:40 alp__ joins (~alp@user/alp)
21:29:20 × odnes quits (~odnes@109-178-160-237.pat.ren.cosmote.net) (Remote host closed the connection)
21:30:07 × Luj quits (~Luj@2a01:e0a:5f9:9681:80c1:f4a2:1ca1:2f20) (Quit: The Lounge - https://thelounge.chat)
21:30:35 eldritch joins (~eldritch@user/eldritch)
21:31:44 glider joins (~glider@user/glider)
21:32:43 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:36:48 Luj joins (~Luj@2a01:e0a:5f9:9681:c0fe:4e75:d9a4:167f)
21:41:25 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:43:30 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:46:24 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.244) (Quit: Leaving)
21:50:37 × alp__ quits (~alp@user/alp) (Ping timeout: 260 seconds)
21:53:52 nate4 joins (~nate@98.45.169.16)
21:55:17 liebach parts (~liebach@srv2047.zentience.net) ()
21:55:49 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds)
21:58:26 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
21:59:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9528:58d5:850d:37ed) (Remote host closed the connection)
22:00:51 × Tuplanolla quits (~Tuplanoll@91-159-68-181.elisa-laajakaista.fi) (Quit: Leaving.)
22:01:20 jakalx parts (~jakalx@base.jakalx.net) ()
22:02:01 × zebrag quits (~chris@user/zebrag) (Ping timeout: 248 seconds)
22:11:16 jakalx joins (~jakalx@base.jakalx.net)
22:11:17 × Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
22:12:01 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
22:17:32 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:22:17 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:23:53 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
22:25:04 quarkyalice joins (~quarkyali@user/quarkyalice)
22:26:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7587:2ca7:7a17:98c6)
22:27:38 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:30:28 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
22:32:41 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
22:34:32 zebrag joins (~chris@user/zebrag)
22:41:18 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
22:48:24 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 248 seconds)
22:49:49 o-90 joins (~o-90@gateway/tor-sasl/o-90)
22:53:31 kannon joins (~NK@c-73-170-170-57.hsd1.ca.comcast.net)
22:53:38 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
22:54:00 o-90 joins (~o-90@gateway/tor-sasl/o-90)
22:54:48 <kannon> ok I think I'm on the libera network finally :)
22:55:58 <kannon> when I load Control.Monad, I'm getting an error: PRELUDE> join Maybe (Maybe 5)
22:56:21 <hpc> Maybe is the type, you want Just instead
22:56:23 <hpc> @src Maybe
22:56:24 <lambdabot> data Maybe a = Nothing | Just a
22:56:29 <hpc> @src Bool
22:56:29 <lambdabot> data Bool = False | True deriving (Eq, Ord)
22:56:52 <hpc> Nothing :: Maybe a
22:56:55 <hpc> Just :: a -> Maybe a
22:56:59 <geekosaur> also, missing set of parens
22:57:16 <kannon> I am a dumbass thanks hpc
22:57:45 <hpc> this is a pretty common issue with learning ADT syntax
22:58:01 × funsafe quits (~funsafe@76.105.238.154) (Ping timeout: 248 seconds)
22:58:46 <hpc> i think GADT syntax would make more sense if you're learning the language, but i have no real evidence for it other than my own experience
22:58:47 nate4 joins (~nate@98.45.169.16)
22:58:52 <hpc> but that's a whole other thing
22:59:09 <hpc> something you can google later maybe
22:59:49 funsafe joins (~funsafe@76.105.238.154)
23:01:56 <kannon> thanks all. also, in haskell, anyone have a simple explanation for the math notation like when I see forall a.a :: " ... ". is that like when in abs algebra the set has to be all of the same type?
23:02:34 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Ping timeout: 240 seconds)
23:02:43 <kannon> (never finished abstract algebra)
23:03:46 <hpc> it comes from logic, and in that context it's fairly obvious - https://en.wikipedia.org/wiki/Forall
23:04:21 <hpc> in haskell, it's basically just bringing type variables into scope
23:04:42 <hpc> kind of like how a lambda brings value-level variables into scope
23:04:53 <EvanR> forall types a . something something a something
23:05:09 <EvanR> where what "types" means can be refined with kind signatures
23:05:22 <hpc> (\x -> ...) is kind of like saying "for all x, this other thing that uses x"
23:05:27 <hpc> :t map
23:05:29 <lambdabot> (a -> b) -> [a] -> [b]
23:05:32 <hpc> % :t map
23:05:32 <yahb2> map :: (a -> b) -> [a] -> [b]
23:05:42 <hpc> bah, pretend that shows foralls
23:05:50 <hpc> map :: forall a b. the rest of it
23:06:13 <hpc> is saying "for all types a and b, there's a function 'map' that does the things map does"
23:06:57 <geekosaur> % :set -fprint-explicit-foralls
23:06:57 <yahb2> <no output>
23:06:58 <hpc> this gets interesting when you can put that forall somewhere other than right at the beginning
23:07:03 <geekosaur> % :t map
23:07:03 <yahb2> map :: forall {a} {b}. (a -> b) -> [a] -> [b]
23:07:12 <hpc> but that's too interesting for someone just starting out
23:07:23 <hpc> the thing to google is RankNTypes
23:08:19 <kannon> so yeah one doesn't really need to think of that notation. it's sort of redundant?
23:08:42 <hpc> it's redundant until it isn't
23:09:11 <hpc> but more or less yeah, so it gets omitted until you're doing the weird stuff
23:09:21 <kannon> hmmm ok thanks
23:09:59 <EvanR> the conventional use of a, b, c as type variables makes it easy to infer that you intended to just introduce them, but you can name them anything, then it's less obvious
23:10:29 <monochrom> Implicit quantifiers are historically proven to impede learning.
23:10:32 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
23:10:45 <hpc> other common type variable conventions are f, g, m, k, s
23:10:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7587:2ca7:7a17:98c6) (Remote host closed the connection)
23:10:45 <EvanR> especially when you have some other type signature in scope using scoped type variables
23:11:03 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
23:11:06 <hpc> or you can just give them full names, if you're doing something specific enough that a single letter isn't helpful
23:14:06 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7587:2ca7:7a17:98c6)
23:15:28 <kannon> I was reading Rank N types literature.. I don't follow this: https://wiki.haskell.org/Rank-N_types
23:16:31 <kannon> when forall is written on the left of (->) or right, i.e.
23:16:51 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
23:17:36 <hpc> it changes who "picks the type", so to speak
23:18:20 <hpc> if you have say, foo :: forall a. Num a => (a -> a) -> Int -> Int, you can't define it as foo f x = f x
23:18:34 <hpc> because someone might pass an f :: Double -> Double, and that would be valid
23:18:58 <hpc> but if you instead wrote foo :: (forall a. Num a => (a -> a)) -> Int -> Int, you can define it as foo f x = f x
23:19:20 <hpc> but now the only things that you can pass as f have to be as polymorphic as what foo's type says it should be
23:19:30 <hpc> it has to be something that can be applied to any number
23:19:49 <hpc> this also means you can write foo :: (forall a. Num a => (a -> a)) -> (Int, Double) -> (Int, Double)
23:19:54 <hpc> foo f (x, y) = (f x, f y)
23:20:26 <hpc> because it knows f is polymorphic enough to be applied to both an Int and a Double without breaking any rules
23:20:57 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
23:21:04 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-4880-a368-0091-2141.res6.spectrum.com) (Remote host closed the connection)
23:21:14 <kannon> I will study that hpc. thank you!
23:21:31 <hpc> (this is a very simplified explanation, there's a lot to learn about higher-ranked types and definitely more than i can properly explain)
23:22:28 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
23:22:59 TonyStone joins (~TonyStone@2603-7080-8607-c36a-514e-68a6-af12-10c9.res6.spectrum.com)
23:25:00 <kannon> so it's like this: forall m a. m (m a) -> m a ... m is added because it confirms that all a's need to be contained in a monad structure ?
23:25:55 <kannon> both m and a are on the right side of the (->) operator
23:26:01 <kannon> pardon left side
23:28:01 prolic joins (~prolic@2803:2a00:2c0f:b96d:69a9:fa3b:385:e53d)
23:28:05 <hpc> on the outside, as it were
23:28:15 <hpc> read it like forall m a. (m (m a) -> m a)
23:29:03 <hpc> relative to (->), there's 3 places in the syntax tree forall can appear
23:29:17 <hpc> outside and right are essentially the same
23:29:23 <hpc> and left is the weird one
23:30:21 <kannon> what would you write if you put it on the "right" ?
23:31:27 <kannon> (m (m a) -> m a) forall m a.
23:31:35 <monochrom> It is very simple and robotic. Suppose "v :: forall t. blahbah". Then the receiver of v chooses what t becomes. The provider is not allowed to.
23:31:50 × shapr quits (~user@2600:4040:2d31:7100:c9e6:4184:8419:55f7) (Ping timeout: 255 seconds)
23:32:39 <monochrom> Therefore, for example, suppose you code up "foo :: forall a. (forall b. -> [b]) -> Maybe a", and let me use it.
23:32:40 <hpc> kannon: more like (Something Monomorphic -> forall a. a)
23:32:48 <hpc> is the same as forall a. (Something Monomorphic -> a)
23:33:02 <monochrom> I am the receiver of the outer "forall a", therefore I choose what a becomes, you don't.
23:33:24 <hpc> (can't think of a good example where the type variable isn't also on the left :P)
23:33:31 o-90 joins (~o-90@gateway/tor-sasl/o-90)
23:33:41 <monochrom> But I have to pass a parameter "p :: forall b. b -> [b]" to you. You are the receiver of that "forall b". Therefore, you choose what b becomes, I don't.
23:34:45 × prolic quits (~prolic@2803:2a00:2c0f:b96d:69a9:fa3b:385:e53d) (Quit: Client closed)
23:34:56 <monochrom> This is the same in the 2-person-game semantics of logic.
23:35:35 <kannon> so to be clear the "outer is the far left, correct?
23:35:37 <monochrom> When I have to prove a "forall x ..." theorem, I am the provider of that theorem, therefore I don't choose what x is; users of that theorem choose.
23:35:43 <kannon> "outer"
23:36:06 <monochrom> I imagine an Arabic writer would write it at the far right.
23:36:35 <hpc> kannon: outside the parens, but the nature of forall syntax does put it on the left visually yeah
23:36:48 <monochrom> Actually I imagine that an English mathematician would write like "x + 1 > x for all x" so it's far right too.
23:37:24 <hpc> haha
23:37:52 <monochrom> Now consider "there exists c>0 s.t. x+c > x for all x".
23:37:58 hpc tries as hard as he can not to rant about how mathematicians write :P
23:38:15 <kannon> I cannot let humor enter into this at this stage :/
23:38:17 <monochrom> Sorry, I just did. >:)
23:38:53 <kannon> but I will get to the bottom of it....thanks
23:39:13 <hpc> or will you... get to the undefined of it? :D
23:39:38 <kannon> but is this related to overloaded functions?
23:39:45 <monochrom> No.
23:40:10 <hpc> this has all been part of plain old parametric polymorphism
23:40:31 <monochrom> http://www.vex.net/~trebla/humour/tautologies.html #0
23:41:40 <hpc> #4 has a permanent place on my whiteboard
23:42:11 <hpc> it has a very thecodelesscode kind of feel to it
23:42:22 <kannon> I am willing to be the brunt of jokes. :)
23:43:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
23:44:14 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
23:45:05 × pleo quits (~pleo@user/pleo) (Quit: quit)
23:45:24 <kannon> anyone know how to use this blasted irssi chat client? I cannot scroll upward. or is there a log of this chat?
23:45:53 <dsal> topic has a logs url
23:46:08 <kannon> can't see it dsal
23:46:34 <yushyin> /topic
23:46:41 <hpc> pageup/pagedown
23:47:21 <dsal> https://ircbrowse.tomsmeding.com/browse/lchaskell
23:47:37 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:47:38 <kannon> got it dsal / hpc thanks
23:47:56 <kannon> itchyjunk ? lol
23:49:17 mvk joins (~mvk@2607:fea8:5ce3:8500::4588)
23:50:50 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
23:54:00 × ph88 quits (~ph88@2a02:8109:9e00:71d0::f476) (Quit: Leaving)
23:58:51 <kannon> pageup
23:58:57 <kannon> shit
23:59:28 juri__ joins (~juri@79.140.114.236)

All times are in UTC on 2022-06-18.