2021/02/12

2021-02-12 00:00:05 +0100 <isovector> totbwf: slack just got all weird for me
2021-02-12 00:00:55 +0100 <DigitalKiwi> i usually just make a shell.nix that i can run normal cabal commands from so i pretty much just cargo cult the same file around and change the packages i want cached and then using cabal v2- as normal but
2021-02-12 00:00:57 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:ccf7:ea8d:5b43:dead) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 00:01:32 +0100 <DigitalKiwi> https://gist.github.com/Kiwi/e055dc459d8c967851f1f76c7ac8a790 allows me to make sure i always have everything i need to build my website with hakyll
2021-02-12 00:01:36 +0100hseg(~gesh@185.120.124.95) (Ping timeout: 240 seconds)
2021-02-12 00:02:20 +0100 <DigitalKiwi> i've tested it before; i can clone my website from a computer i've never been on before and it will let me build my site
2021-02-12 00:02:40 +0100 <raehik> Neat
2021-02-12 00:03:01 +0100 <raehik> I stick with Slack (or rather, avoid Cabal) for my own sanity while I'm still learning
2021-02-12 00:03:18 +0100 <raehik> I'll make sure to look at Nix when that fails eventually
2021-02-12 00:03:29 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-02-12 00:03:51 +0100 <DigitalKiwi> i use cabal instead of stack for the same reason lol
2021-02-12 00:03:57 +0100 <Uniaika> s/Slack/stack/ I think, raehik ;)
2021-02-12 00:04:09 +0100 <DigitalKiwi> don't use slack or stack, problem solved
2021-02-12 00:04:12 +0100 <raehik> ^ hah oops
2021-02-12 00:07:01 +0100 <DigitalKiwi> other than making sure i have another ten versions of ghc what does stack supposedly do better these days than cabal? honest question even if snarky
2021-02-12 00:08:28 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:dfce:d41e:8b36:8b28)
2021-02-12 00:08:40 +0100 <sclv> it makes it easy to use the stackage package set
2021-02-12 00:08:41 +0100 <DigitalKiwi> like, yeah, cabal used to have problems, but afaik it's fixed almost all of them? and i've yet to have an experience with stack that was any better :/
2021-02-12 00:08:42 +0100 <sclv> that's it
2021-02-12 00:09:00 +0100 <sclv> so if you want to have all stackage packages in scope by default and basically nothing else, then thats nice for you
2021-02-12 00:09:17 +0100 <DigitalKiwi> i get that with nix ;D
2021-02-12 00:11:04 +0100 <DigitalKiwi> https://dpaste.com/4KAEL7BF6
2021-02-12 00:11:19 +0100 <monochrom> DigitalKiwi: A benefit is very pinned library versions, e.g., you just say "lts-..." and you have nailed a whole lot of library version numbers.
2021-02-12 00:11:25 +0100 <raehik> I think I was burned by "how tf do I use Cabal" a year ago, when the v2 commands weren't recommended (or perhaps there were just no guides for them)
2021-02-12 00:12:02 +0100 <sclv> monochrom: well again you get that with nix
2021-02-12 00:12:10 +0100 <monochrom> Ah
2021-02-12 00:12:13 +0100 <sclv> but arguably nix has somewhat moar rampup
2021-02-12 00:12:28 +0100 <sclv> ie. i use it at work because we have nix people who solve that shit for me
2021-02-12 00:12:39 +0100 <DigitalKiwi> monochrom: oh right yeah i saw snobyberg harass someone off of the internet over that one time on twitter for pointing out how they do it with cabal
2021-02-12 00:12:51 +0100 <sclv> for personal projects i stick with v2 because its most convenient
2021-02-12 00:13:05 +0100 <monochrom> haha harass
2021-02-12 00:13:16 +0100 <DigitalKiwi> 'ardly know 'er
2021-02-12 00:13:23 +0100 <monochrom> I mean yikes but also haha
2021-02-12 00:13:32 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-02-12 00:13:49 +0100 <monochrom> Then again the point is more stackage than stack.
2021-02-12 00:14:00 +0100 <DigitalKiwi> new haskell user refugee from scala
2021-02-12 00:14:31 +0100 <DigitalKiwi> deleted all of his tweets and account haven't seen him in... wow probaly years now?
2021-02-12 00:15:35 +0100 <monochrom> Someone or some bot did check that each lts-xxx is a set of version numbers that build fine together. You don't have that on hackage. However, on cabal if you are happy with your current dependency version tree, you can "cabal freeze" and it's usually good enough.
2021-02-12 00:16:47 +0100 <DigitalKiwi> oh they are alive at least they forked an emacs config 18 days ago
2021-02-12 00:16:50 +0100 <monochrom> There is another point. It is a short-term benefit and a long-term hinderance to growth.
2021-02-12 00:17:03 +0100 <Uniaika> DigitalKiwi: who was it?
2021-02-12 00:17:08 +0100 <DigitalKiwi> fommil
2021-02-12 00:17:11 +0100 <Uniaika> oh
2021-02-12 00:17:21 +0100 <DigitalKiwi> :(
2021-02-12 00:17:32 +0100 <Rembane> Maybe they stopped using Twitter and became super productive?
2021-02-12 00:17:37 +0100Rembaneis naively optimistic
2021-02-12 00:18:02 +0100 <monochrom> With stack you only need to know one tool, "stack", as a beginner. You don't need to know (yet) there is a GHC and it has a version number. Oh, stack decides to install 10 GHC versions behind your back? Well that's behind your back, you can look the other way.
2021-02-12 00:18:05 +0100 <sclv> this is pure gossip but iirc fommil deleted their twitter because of more scala than haskell drama
2021-02-12 00:18:17 +0100 <sclv> its been so long and who wants to remember/dredge up the specifics tho
2021-02-12 00:18:47 +0100 <monochrom> In the long term though, the abstraction leaks, you will have to know eventually.
2021-02-12 00:18:52 +0100 <DigitalKiwi> poor fommil :( writes a book for scala gives it away for free and then gets treated like shit by 'promininent' members of both scala and haskell 'communities' >.>
2021-02-12 00:19:32 +0100 <sclv> anyway many people learn that once they delete twitter they're happier and more productive
2021-02-12 00:19:39 +0100 <sclv> (i can think of a few more people i wish learned that, lol)
2021-02-12 00:20:06 +0100DigitalKiwiwhispers to sclv "fommil is that you"
2021-02-12 00:20:49 +0100 <monochrom> The ultimate lesson to learn: https://www.smbc-comics.com/comic/app-3
2021-02-12 00:21:05 +0100 <Uniaika> http://lambda-the-ultimate.org/ <- ah
2021-02-12 00:21:14 +0100 <DigitalKiwi> yeah i guess i don't mean to imply fommil left solely because of snoyberg
2021-02-12 00:21:26 +0100jedws(~jedws@101.184.202.248)
2021-02-12 00:21:40 +0100isovector(~isovector@S010650395561ee49.gv.shawcable.net) (Ping timeout: 256 seconds)
2021-02-12 00:21:41 +0100 <sclv> lmao at the comic
2021-02-12 00:21:49 +0100hiroaki(~hiroaki@2a02:908:4b18:8c40::e69c) (Ping timeout: 272 seconds)
2021-02-12 00:21:49 +0100 <Uniaika> hahaha
2021-02-12 00:22:25 +0100 <DigitalKiwi> i mean bitemyapp was involved too in the same conversation (but yes i know it was probably more scala than haskell but it was sure of a hell of a welcoming party)
2021-02-12 00:22:33 +0100 <sclv> reminds me of the old "phdcomics" or whatever with the student thinking about all the things their advisor might be thinking about them, and the advisor thinking "what should i have for lunch"
2021-02-12 00:22:50 +0100swarmcollectivehas never created a Twitter account, but has read maybe 5 or 6 tweets.
2021-02-12 00:22:56 +0100swarmcollectivewill probably keep it that way.
2021-02-12 00:24:12 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-02-12 00:24:20 +0100 <DigitalKiwi> i mostly only tweet when i make art and i haven't made art in a while so :(
2021-02-12 00:24:47 +0100mimi_vx(~mimi@2a01:490:16:1026:54d:93e0:a239:fb65)
2021-02-12 00:25:30 +0100 <DigitalKiwi> Uniaika: was lta broken when you went to it?
2021-02-12 00:26:14 +0100 <DigitalKiwi> erm, well it's mysql, so arguably it was always broken, but what i mean is did it load?
2021-02-12 00:27:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:ccf7:ea8d:5b43:dead)
2021-02-12 00:27:13 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:ccf7:ea8d:5b43:dead) (Client Quit)
2021-02-12 00:27:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 00:32:43 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-02-12 00:33:11 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-02-12 00:33:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 00:34:02 +0100 <raehik> hmm, Stack shebang with ghci doesn't seem to retain the language pragmas
2021-02-12 00:34:49 +0100 <raehik> ah but that looks like common behaviour in ghci. dang
2021-02-12 00:35:31 +0100 <raehik> my program is compiled with pragmas, but they don't get loaded in ghci so I have to :set -XOverloadedStrings
2021-02-12 00:36:04 +0100ski(~ski@ed-3358-10.studat.chalmers.se)
2021-02-12 00:37:47 +0100 <arahael> monochrom: But at the same time, you don't have to mess with complicated stuff such as cabal sandboxes, new-cabal, old-cabal, and all that stuff. But cabal today seems much simpler, I don't think I would have gone with stack today.
2021-02-12 00:37:48 +0100 <swarmcollective> raehik, are you setting the pragmas at the top of the source files, or in the .cabal file, or in the cabal.project, or not using cabal?
2021-02-12 00:37:54 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
2021-02-12 00:38:00 +0100 <arahael> monochrom: But in the past, I chose stack and didn't regret it.
2021-02-12 00:38:08 +0100jakob_(~textual@p200300f49f0a5500b1781738d6a5e868.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2021-02-12 00:38:22 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-12 00:38:30 +0100 <raehik> swarmcollective: I'm setting pragmas in the source files, and executing them in shell (stack shebang that does exec ghci)
2021-02-12 00:39:27 +0100 <swarmcollective> raehik, Ah. I've only used cabal repl. Though, I've not specifically tested if it recognized the pragmas in the source files.
2021-02-12 00:40:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 00:40:09 +0100 <raehik> turns out ghci never kept those pragmas for the repl
2021-02-12 00:40:19 +0100 <raehik> stack ghci does (likely cabal repl too), but not regular ghci
2021-02-12 00:40:30 +0100 <raehik> *stack ghci does if you use default-extensions
2021-02-12 00:41:39 +0100Tops21(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de)
2021-02-12 00:42:50 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
2021-02-12 00:43:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Client Quit)
2021-02-12 00:43:11 +0100Tops22(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de)
2021-02-12 00:44:36 +0100Tops2(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2021-02-12 00:45:51 +0100Tops2(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de)
2021-02-12 00:46:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-12 00:46:53 +0100Tops23(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de)
2021-02-12 00:47:15 +0100Tops21(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
2021-02-12 00:49:10 +0100Tops22(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
2021-02-12 00:49:19 +0100jakob_(~textual@p578f27b0.dip0.t-ipconnect.de)
2021-02-12 00:49:33 +0100 <ephemient> if you just want default extensions in your ghci, feel free to add `:set -X...` to your ~/.ghci
2021-02-12 00:49:45 +0100Tops23(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-02-12 00:49:54 +0100isovector(~isovector@S010650395561ee49.gv.shawcable.net)
2021-02-12 00:51:23 +0100Tops2(~Tobias@dyndsl-095-033-021-211.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
2021-02-12 00:51:23 +0100minoru_shiraeesh(~shiraeesh@77.94.25.210) (Ping timeout: 265 seconds)
2021-02-12 00:51:31 +0100 <ephemient> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#the-ghci-files
2021-02-12 00:55:25 +0100 <raehik> ephemient: yeah that sorts it well enough for me
2021-02-12 00:55:30 +0100 <raehik> thanks
2021-02-12 00:56:25 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-12 00:58:27 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Remote host closed the connection)
2021-02-12 01:00:51 +0100irchaxwell(~IRCHaxwel@2a00:23a8:4382:a900:4d37:2faa:bfe1:2753)
2021-02-12 01:01:25 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-02-12 01:02:16 +0100bennofs_(~quassel@dslb-094-222-091-116.094.222.pools.vodafone-ip.de)
2021-02-12 01:03:36 +0100totte(~totte@chakra/totte) (Ping timeout: 256 seconds)
2021-02-12 01:04:37 +0100denisse_(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-02-12 01:05:00 +0100denisse_(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-12 01:06:16 +0100bennofs__(~quassel@dslb-188-103-038-242.188.103.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2021-02-12 01:08:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-12 01:15:02 +0100tremon(~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2021-02-12 01:15:42 +0100totte(~totte@chakra/totte)
2021-02-12 01:16:11 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-144a-d72e-d888-983c.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-12 01:16:21 +0100jakob_(~textual@p578f27b0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2021-02-12 01:17:00 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds)
2021-02-12 01:18:30 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-02-12 01:18:59 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-12 01:24:15 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-02-12 01:25:10 +0100alx741(~alx741@186.178.110.40) (Quit: alx741)
2021-02-12 01:28:25 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 240 seconds)
2021-02-12 01:30:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 01:30:38 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-02-12 01:33:28 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
2021-02-12 01:34:14 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-02-12 01:34:26 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
2021-02-12 01:34:47 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-12 01:35:10 +0100jakob_(~textual@p200300f49f0a5500c1eecd74cb6c1047.dip0.t-ipconnect.de)
2021-02-12 01:35:24 +0100isovector(~isovector@S010650395561ee49.gv.shawcable.net) (Ping timeout: 272 seconds)
2021-02-12 01:37:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 01:38:50 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-02-12 01:39:18 +0100landonf(landonf@mac68k.info) (Excess Flood)
2021-02-12 01:39:58 +0100landonf(landonf@mac68k.info)
2021-02-12 01:40:44 +0100jakob_(~textual@p200300f49f0a5500c1eecd74cb6c1047.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2021-02-12 01:45:55 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-02-12 01:54:08 +0100isovector(~isovector@172.103.216.166)
2021-02-12 01:56:09 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-02-12 01:58:21 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2021-02-12 01:58:50 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2021-02-12 01:59:21 +0100bennofs__(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 02:00:49 +0100Stuk(~Stuk@139.28.218.148) (Remote host closed the connection)
2021-02-12 02:02:45 +0100bennofs_(~quassel@dslb-094-222-091-116.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-02-12 02:03:03 +0100cgfbee(~bot@oc1.itim-cj.ro) (Ping timeout: 256 seconds)
2021-02-12 02:06:27 +0100cgfbee(~bot@oc1.itim-cj.ro)
2021-02-12 02:06:32 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-2cec-d2c6-bc96-c9bd.res6.spectrum.com)
2021-02-12 02:07:53 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 02:10:09 +0100dhil(~dhil@80.208.56.181) (Ping timeout: 264 seconds)
2021-02-12 02:11:01 +0100rajivr(uid269651@gateway/web/irccloud.com/x-gpwnjnvfhvelcuhe)
2021-02-12 02:15:14 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-02-12 02:22:38 +0100CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
2021-02-12 02:26:12 +0100charukiewicz[m](charukiewi@gateway/shell/matrix.org/x-oommeswbtsisshqm) ("User left")
2021-02-12 02:26:55 +0100alx741(~alx741@186.178.110.40)
2021-02-12 02:27:29 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 02:28:53 +0100Ishutin_(~Ishutin@178-164-208-197.pool.digikabel.hu)
2021-02-12 02:30:06 +0100Ishutin(~Ishutin@92-249-182-126.pool.digikabel.hu) (Read error: Connection reset by peer)
2021-02-12 02:31:35 +0100minoru_shiraeesh(~shiraeesh@77.94.25.210)
2021-02-12 02:38:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 02:40:14 +0100borne(~fritjof@200116b864f7290069fc6bd724c60777.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-12 02:41:11 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 02:41:34 +0100epicfail^(~epicfail^@185.163.110.108)
2021-02-12 02:42:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 02:45:54 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-12 02:46:24 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 02:46:35 +0100stiell(~stian@fsf/member/stiell) (Quit: WeeChat 2.0.1)
2021-02-12 02:46:48 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-02-12 02:47:02 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 02:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 02:47:43 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 02:48:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 02:49:48 +0100arahael(~arahael@121-44-10-207.tpgi.com.au) (Quit: WeeChat 2.7.1)
2021-02-12 02:50:59 +0100hexfive(~hexfive@50.35.83.177)
2021-02-12 02:51:47 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-02-12 02:52:21 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
2021-02-12 02:53:22 +0100arahael(~arahael@121-44-10-207.tpgi.com.au)
2021-02-12 02:53:45 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-02-12 03:00:21 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 03:00:56 +0100earthy(~arthurvl@deban2.xs4all.space) (Ping timeout: 240 seconds)
2021-02-12 03:02:38 +0100toorevitimirp(~tooreviti@117.182.180.8)
2021-02-12 03:02:47 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
2021-02-12 03:03:25 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Ping timeout: 272 seconds)
2021-02-12 03:04:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 03:05:29 +0100earthy(~arthurvl@deban2.xs4all.space)
2021-02-12 03:06:40 +0100shridhar123(~shridhar9@183.83.38.71)
2021-02-12 03:08:21 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 03:12:30 +0100lemmih(~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b) (Remote host closed the connection)
2021-02-12 03:12:33 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com)
2021-02-12 03:12:48 +0100lemmih(~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b)
2021-02-12 03:14:30 +0100lemmih(~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b) (Remote host closed the connection)
2021-02-12 03:14:35 +0100viluon(uid453725@gateway/web/irccloud.com/x-xypldvhtsmepkmee) (Quit: Connection closed for inactivity)
2021-02-12 03:14:48 +0100lemmih(~lemmih@2406:3003:2072:44:d219:4fa6:3f89:cc6b)
2021-02-12 03:15:10 +0100pricly_yellow(~pricly_ye@static.90.189.158.212.sinor.ru)
2021-02-12 03:16:08 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 03:16:23 +0100minoru_shiraeesh(~shiraeesh@77.94.25.210) (Ping timeout: 265 seconds)
2021-02-12 03:16:49 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-12 03:17:05 +0100Tario(~Tario@201.192.165.173)
2021-02-12 03:17:05 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds)
2021-02-12 03:17:25 +0100shridhar123(~shridhar9@183.83.38.71) (Quit: Leaving)
2021-02-12 03:19:14 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 03:20:24 +0100teej(uid154177@gateway/web/irccloud.com/x-vcedsdnwagtwbuul)
2021-02-12 03:21:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 03:21:38 +0100xff0x(~xff0x@2001:1a81:5241:ba00:8e3f:649f:1f66:7cc2) (Ping timeout: 264 seconds)
2021-02-12 03:23:02 +0100kw(d4662d5d@212.102.45.93) (Ping timeout: 240 seconds)
2021-02-12 03:23:23 +0100xff0x(~xff0x@2001:1a81:527e:8e00:8467:ecc0:1d06:b5e)
2021-02-12 03:24:51 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-02-12 03:27:12 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-02-12 03:27:14 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-12 03:29:50 +0100conal(~conal@64.71.133.70)
2021-02-12 03:30:26 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-12 03:31:10 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-02-12 03:31:16 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-02-12 03:31:36 +0100dmwit(~dmwit@pool-108-18-106-204.washdc.fios.verizon.net)
2021-02-12 03:31:50 +0100Lord_of_Life_Lord_of_Life
2021-02-12 03:32:09 +0100jedws(~jedws@101.184.202.248)
2021-02-12 03:33:26 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu)
2021-02-12 03:34:13 +0100 <dmwit> So, the docs for formatTime say "%0ES: seconds of minute as two digits, with decimal point and <width> (default 12) decimal places".
2021-02-12 03:34:22 +0100 <dmwit> % formatTime defaultTimeLocale "%03ES" (1.1 :: NominalDiffTime)
2021-02-12 03:34:22 +0100 <yahb> dmwit: "01.100000000000"
2021-02-12 03:34:47 +0100 <dmwit> I was expecting this to produce "01.100". Is this a bug in me or the library?
2021-02-12 03:36:50 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
2021-02-12 03:37:47 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 03:37:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-12 03:46:08 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 03:46:54 +0100carlomagno(~cararell@148.87.23.4) (Ping timeout: 246 seconds)
2021-02-12 03:47:24 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 03:47:44 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 03:47:52 +0100Tario(~Tario@201.192.165.173)
2021-02-12 03:48:58 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866)
2021-02-12 03:55:28 +0100 <glguy> dmwit, "An optional E character indicates an alternate formatting. Currently this only affects %Z and %z."
2021-02-12 03:55:36 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-xvjuaqpzyyceggep) ()
2021-02-12 03:55:41 +0100 <glguy> What are you reading about using it with %S?
2021-02-12 03:55:50 +0100 <glguy> I'm guessing I'm looking at the wrong file
2021-02-12 03:58:48 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2021-02-12 03:58:56 +0100 <glguy> OH, I see it below
2021-02-12 03:59:23 +0100polyinsecure(~personal@36.79.248.225)
2021-02-12 03:59:45 +0100polyinsecure(~personal@36.79.248.225) ()
2021-02-12 04:00:36 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-02-12 04:01:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 04:02:11 +0100carlomagno(~cararell@148.87.23.12)
2021-02-12 04:02:42 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-12 04:03:41 +0100alx741(~alx741@186.178.110.40) (Quit: alx741)
2021-02-12 04:04:31 +0100 <glguy> dmwit, I'd go with bug :)
2021-02-12 04:06:36 +0100CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) (Ping timeout: 240 seconds)
2021-02-12 04:08:13 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 04:08:35 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-12 04:09:46 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:09:58 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 04:10:02 +0100juri_(~juri@178.63.35.222) (Ping timeout: 265 seconds)
2021-02-12 04:10:17 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:10:41 +0100juri_(~juri@178.63.35.222)
2021-02-12 04:14:11 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-02-12 04:14:32 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 04:15:00 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com)
2021-02-12 04:15:19 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-12 04:16:14 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:16:40 +0100Guest_45(493ffd08@c-73-63-253-8.hsd1.ca.comcast.net)
2021-02-12 04:17:13 +0100Guest_45(493ffd08@c-73-63-253-8.hsd1.ca.comcast.net) (Client Quit)
2021-02-12 04:21:39 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 04:25:38 +0100deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
2021-02-12 04:26:05 +0100darjeeling_(~darjeelin@39.185.119.195) (Ping timeout: 240 seconds)
2021-02-12 04:29:24 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-12 04:31:00 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 04:31:32 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-12 04:31:32 +0100finn_elijaGuest60949
2021-02-12 04:31:32 +0100FinnElijafinn_elija
2021-02-12 04:35:06 +0100Guest60949(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-02-12 04:41:01 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-02-12 04:42:00 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 04:42:10 +0100 <dmwit> Oh, yeah, I should have specified that this was in the NominalDiffTime doc section.
2021-02-12 04:42:20 +0100polyinsecure(~personal@36.79.248.225)
2021-02-12 04:42:24 +0100 <dmwit> Okay, thanks, I'll double-check it still happens in the git version and then report. ^_^
2021-02-12 04:42:47 +0100polyinsecure(~personal@36.79.248.225) ()
2021-02-12 04:42:58 +0100polyinsecure(~personal@36.79.248.225)
2021-02-12 04:43:00 +0100raym(~ray@115.187.32.9) (Quit: leaving)
2021-02-12 04:43:16 +0100raym(~ray@45.64.220.98)
2021-02-12 04:44:07 +0100polyinsecure(~personal@36.79.248.225) ()
2021-02-12 04:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 04:47:43 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 04:50:52 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:51:09 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 04:53:59 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:55:20 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
2021-02-12 04:55:36 +0100jamm_(~jamm@unaffiliated/jamm) (Read error: No route to host)
2021-02-12 04:55:47 +0100jedws(~jedws@101.184.202.248)
2021-02-12 04:55:57 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 04:56:56 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8859:7e60:23d3:f866) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 05:01:07 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-02-12 05:01:34 +0100_vaibhavingale_(~Adium@203.188.228.9)
2021-02-12 05:02:07 +0100theDon(~td@muedsl-82-207-238-072.citykom.de) (Ping timeout: 256 seconds)
2021-02-12 05:04:02 +0100theDon(~td@94.134.91.31)
2021-02-12 05:05:21 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds)
2021-02-12 05:06:06 +0100_vaibhavingale_(~Adium@203.188.228.9) (Ping timeout: 265 seconds)
2021-02-12 05:08:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 05:09:42 +0100polyrain(~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead)
2021-02-12 05:15:49 +0100knupfer(~Thunderbi@200116b82cdbcf00c04908ec8f79be9b.dip.versatel-1u1.de)
2021-02-12 05:16:48 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-02-12 05:17:34 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 05:19:14 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 05:19:17 +0100ubert(~Thunderbi@p200300ecdf25d901e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-02-12 05:19:20 +0100ubert1(~Thunderbi@p200300ecdf25d9b3e6b318fffe838f33.dip0.t-ipconnect.de)
2021-02-12 05:21:40 +0100ubert1ubert
2021-02-12 05:22:01 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-02-12 05:24:02 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-12 05:24:30 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-12 05:25:02 +0100conal(~conal@64.71.133.70)
2021-02-12 05:27:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 05:29:22 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-12 05:31:18 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-12 05:32:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 05:32:36 +0100polyrain(~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 05:32:54 +0100plutoniix(~q@184.82.202.124)
2021-02-12 05:34:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 05:34:39 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-12 05:35:23 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 05:36:56 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-12 05:37:13 +0100Tario(~Tario@201.192.165.173)
2021-02-12 05:37:45 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds)
2021-02-12 05:37:51 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 05:39:33 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-12 05:40:33 +0100polyrain(~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead)
2021-02-12 05:41:53 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600:dfce:d41e:8b36:8b28) (Ping timeout: 246 seconds)
2021-02-12 05:47:02 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-12 05:47:48 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
2021-02-12 05:50:11 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2021-02-12 05:50:31 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-02-12 05:53:55 +0100carlomagno(~cararell@148.87.23.12) (Remote host closed the connection)
2021-02-12 05:54:24 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600::3f)
2021-02-12 05:55:44 +0100carlomagno(~cararell@148.87.23.12)
2021-02-12 05:56:05 +0100Wuzzy(~Wuzzy@p5790e290.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-12 05:57:44 +0100 <arahael> This has probably been pointed out endlessly here, but is there a response for https://frasertweedale.github.io/blog-fp/posts/2021-02-12-haskell-dependency-confusion.html ?
2021-02-12 05:58:38 +0100 <isovector> art
2021-02-12 05:58:41 +0100isovector(~isovector@172.103.216.166) ("WeeChat 2.9")
2021-02-12 06:00:57 +0100 <Axman6> I spoke to frase in another channel about it, I don't think there's one solution to it, there's quite a lot that would need to be done to be able to have more trust in haskell packages
2021-02-12 06:02:31 +0100 <Axman6> stack tries to address some of the issues, by allowing developers to sign their releases (not sure if cabal/hackage support that these days?), and pinning versions by default, so you at least get to choose when a package gets updated, and therefore know when to be looking to suspicious changes. cabal lock files can do the same thing, I think?
2021-02-12 06:03:19 +0100 <Axman6> the idea of specifying hackage servers is a good one, and could help make the haskell ecosystem a bit more distributed (but then things like ensuring that things are run securely is also distributed, which is less than ideal)
2021-02-12 06:04:25 +0100 <Axman6> all eggs in one fortified, highly targeted basket or spread across multiple possibly less secure baskets? not sure which is a better trade off
2021-02-12 06:06:54 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:59d6:7765:8e88:73ee)
2021-02-12 06:08:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-12 06:14:33 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-12 06:16:44 +0100xcmw(~textual@dyn-72-33-2-152.uwnet.wisc.edu)
2021-02-12 06:17:01 +0100johnjay(~pi@38.120.10.99)
2021-02-12 06:17:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 06:18:58 +0100 <charukiewicz> nix can help mitigate this problem, since it forces you to specify sha256 hashes for most of the dependencies you pin. if you pin a package set, the underlying packages won't change out from under you. and if your internal dependencies are defined in terms of overlays, I believe they'll take precendence over the nixpkgs set.
2021-02-12 06:19:08 +0100hiptobecubic(~john@unaffiliated/hiptobecubic) (Ping timeout: 272 seconds)
2021-02-12 06:22:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 06:26:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 06:26:55 +0100 <charukiewicz> in fact, Nix is mentioned in the article (without much detail). So I think the specific nix features that prevent this issue from occuring is pinning package sets + internal dependencies defined in terms of overlays.
2021-02-12 06:29:32 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Remote host closed the connection)
2021-02-12 06:30:53 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-vpguxmddsrmujfdr)
2021-02-12 06:32:43 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-02-12 06:33:00 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-12 06:35:31 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 06:36:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 06:36:26 +0100howdoi(uid224@gateway/web/irccloud.com/x-mpkeicsrzhkjjmag) (Quit: Connection closed for inactivity)
2021-02-12 06:39:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-12 06:47:18 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-12 06:47:31 +0100 <sclv> Theres discussion on the reddit
2021-02-12 06:52:26 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-02-12 06:52:43 +0100_vaibhavingale_(~Adium@203.188.228.9)
2021-02-12 06:59:39 +0100zaquest(~notzaques@5.128.210.178)
2021-02-12 07:02:30 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-02-12 07:03:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 07:03:10 +0100forgottenone(~forgotten@176.42.17.164)
2021-02-12 07:06:02 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer)
2021-02-12 07:10:01 +0100 <johnw> Axman6: one basket to rule them all
2021-02-12 07:12:58 +0100monochrom(trebla@216.138.220.146)
2021-02-12 07:13:25 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
2021-02-12 07:13:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 07:25:43 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 07:26:37 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 07:27:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 07:29:36 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-02-12 07:30:48 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-02-12 07:31:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 07:33:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 07:35:47 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-02-12 07:36:08 +0100ephemera__(~E@122.34.1.187) (Quit: ephemera__)
2021-02-12 07:37:23 +0100 <siraben> charukiewicz: one issue that came up on #nixos-dev was how GitHub lets the commit hash be a hash of any branch of any fork of that repo
2021-02-12 07:37:42 +0100 <siraben> So a hash change could look like a version bump but in fact point to an outside repo
2021-02-12 07:38:22 +0100 <siraben> Though SuperSandro2000 ran a script to check all GitHub hashes recently and only found a dozen or so instances of commits not belonging to any branch of that repo, probably caused by force-pushes
2021-02-12 07:38:31 +0100ephemera_(~E@122.34.1.187)
2021-02-12 07:38:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-12 07:39:31 +0100 <siraben> The problem of nominal dependencies was stated well in the Nix thesis, a package only needs to be named "hello" with the right version to satisfy a dependency spec "hello: ^1.0.0"
2021-02-12 07:41:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 07:42:06 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 07:45:11 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-12 07:45:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 07:46:12 +0100bahamas(~lucian@188.27.48.99)
2021-02-12 07:46:12 +0100bahamas(~lucian@188.27.48.99) (Changing host)
2021-02-12 07:46:12 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-02-12 07:46:18 +0100 <charukiewicz> siraben: I'm not sure I understand the security issue there. If you're specifying a commit hash on the GH repo NixOS/nixpkgs in your nixpkgs.json or however you pin your nixpkgs set, shouldn't you know that you're specfying a commit that is on one of the main branches (whether it be a release branch or unstable)?
2021-02-12 07:47:01 +0100 <siraben> charukiewicz: that's the hash for NixOS/nixpkgs, what about the expressions within Nixpkgs?
2021-02-12 07:47:01 +0100 <charukiewicz> I have seen issues where commits cease to exist, but yeah that seems to happen when you depend on the lastest commit in the unstable branch
2021-02-12 07:47:03 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 07:47:28 +0100 <siraben> However because Nix makes the entire dep graph explicit a full automated audit is possible to check nothing fishing is going on
2021-02-12 07:47:35 +0100 <siraben> s/fishing/fishy
2021-02-12 07:48:45 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-12 07:49:17 +0100 <whataday> what's the point that use a data type to wrap functions?
2021-02-12 07:50:12 +0100 <c_wraith> To.. not have a rule that you can't put functions in data types?
2021-02-12 07:51:01 +0100 <c_wraith> Though it turns out nice when you want to pass behavior around without defunctionalizing it.
2021-02-12 07:51:38 +0100 <whataday> and can it be implemented in OOP with class?
2021-02-12 07:52:13 +0100 <whataday> runReader :: Reader r a -> (r -> a)
2021-02-12 07:53:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 07:53:44 +0100 <Axman6> doing it in OOP probably uses some nonsense "pattern", I can't remember which one it would be
2021-02-12 07:53:49 +0100 <Axman6> use*
2021-02-12 07:54:21 +0100 <c_wraith> in some sense, sure. OOP uses objects of a common supertype in place of passing functions around.
2021-02-12 07:54:35 +0100 <charukiewicz> siraben: At least in terms of Haskell, I'm thinking of it as a given commit on NixOS/nixpkgs has a given snapshot of the haskellPackages set, each of which have point to a specific hackage package defined by a version/sha256. Is there something else I'm not considering?
2021-02-12 07:55:24 +0100 <siraben> c_wraith: classes with function members are common in OOP IIRC
2021-02-12 07:55:48 +0100 <siraben> (at least in Dart)
2021-02-12 07:56:06 +0100 <siraben> charukiewicz: ok yeah, in that case, assuming you trust the Nixpkgs commit, now you have to trust the maintainer of the haskellPackages set
2021-02-12 07:56:29 +0100 <siraben> I'm not familiar with how hackage packages are specified, they can also point to GitHub repos right?
2021-02-12 07:56:53 +0100 <siraben> Axman6: probably the "functor (function object)" pattern in C++
2021-02-12 07:57:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 07:58:10 +0100 <c_wraith> But if you limit yourself to thinking of functions the way OOP textbooks talk about objects, you're going to miss a lot of useful patterns.
2021-02-12 07:58:39 +0100 <siraben> definitely.
2021-02-12 07:59:04 +0100 <lambdaclan> Hello everyone. I am Haskell beginner but an experienced developer in many other languages and have been looking for ways to improve my skills and stay motivated. Even though I am reading a few books and watching some video courses I am eager to get my hands dirty.
2021-02-12 07:59:22 +0100 <lambdaclan> Anyone know any projects that welcome newbies like myself?
2021-02-12 07:59:28 +0100 <whataday> wrap a function into a type, and use a function to extract that type, useful?
2021-02-12 07:59:48 +0100 <Axman6> yes
2021-02-12 08:00:13 +0100 <whataday> we can pass data type instead of functions?
2021-02-12 08:00:34 +0100 <Axman6> the particular example you chose isn't particularly useful, because the useful things we do with Reader can also all be done with just functions s -> a
2021-02-12 08:00:46 +0100 <Axman6> State is a more useful example:
2021-02-12 08:00:48 +0100 <Axman6> :t runState
2021-02-12 08:00:49 +0100 <lambdabot> State s a -> s -> (a, s)
2021-02-12 08:01:37 +0100 <Axman6> State s a contains a function s -> (a,s), anf this forms a useful monad for modifying some state sequentially
2021-02-12 08:02:26 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 264 seconds)
2021-02-12 08:02:51 +0100 <whataday> useful to change State's "context"?
2021-02-12 08:02:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 08:03:09 +0100 <charukiewicz> siraben: I just went to check to confirm, the main haskellPackages set is defined as a yaml file that is used to generate "hackage" expression that points only to hackage. From what I can tell, there are no haskellPackages that point to GitHub repos.
2021-02-12 08:03:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 08:03:46 +0100 <whataday> without data type, could we still express monad with function form?
2021-02-12 08:04:10 +0100 <whataday> or monad depends on data type?
2021-02-12 08:04:16 +0100puke(~vroom@217.138.252.222) (Quit: puke)
2021-02-12 08:04:23 +0100 <siraben> charukiewicz: Ok, hm. Then I'm not sure where dependency confusion would arise
2021-02-12 08:04:41 +0100michalz(~user@185.246.204.47)
2021-02-12 08:04:57 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 08:05:16 +0100 <charukiewicz> Yeah, maybe I'm missing something, but as far as I can tell, if you're pointing at a given commit of NixOS/nixpkgs, you get a singular snapshot of hackage.
2021-02-12 08:06:46 +0100 <Axman6> whataday: your questions aren't making much sense. In haskell, "Data" and "functions" are both values, neither is particularly special. data can contain functions, functions produce data, functions can accept data, functions can accept functions. they're all just values
2021-02-12 08:07:02 +0100 <Axman6> :t map
2021-02-12 08:07:03 +0100 <lambdabot> (a -> b) -> [a] -> [b]
2021-02-12 08:07:22 +0100 <Axman6> a function which accepts a function, and a list, and applies that function to each element of the list
2021-02-12 08:07:25 +0100 <Axman6> :t State
2021-02-12 08:07:27 +0100 <lambdabot> error:
2021-02-12 08:07:27 +0100 <lambdabot> • Data constructor not in scope: State
2021-02-12 08:07:27 +0100 <lambdabot> • Perhaps you meant one of these:
2021-02-12 08:08:01 +0100 <whataday> yeah, a data constructor is also a function
2021-02-12 08:08:28 +0100 <Axman6> hmm, not sure what the constructor would be called in lambdabot, but State :: (s -> (a,s)) -> State s a; The State constructor takes a function and produces "data"
2021-02-12 08:08:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 08:08:56 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
2021-02-12 08:09:37 +0100 <c_wraith> lambdabot has the types from transformers. there is not State constructor because State is a type alias for StateT Identity
2021-02-12 08:09:43 +0100 <c_wraith> :t state
2021-02-12 08:09:45 +0100 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
2021-02-12 08:09:47 +0100 <Axman6> right
2021-02-12 08:09:48 +0100 <whataday> what's the point turn a value to another one?
2021-02-12 08:10:08 +0100 <Axman6> I don't understand the question
2021-02-12 08:10:32 +0100 <whataday> function s -> (a,s) is a value
2021-02-12 08:10:43 +0100 <whataday> State s a is another value
2021-02-12 08:11:04 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-02-12 08:11:38 +0100 <whataday> turn a function value to a data type value, what's the point? it doesn't have a effect
2021-02-12 08:11:46 +0100 <c_wraith> It makes it a different type
2021-02-12 08:11:47 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-02-12 08:12:36 +0100 <c_wraith> that's important because it means you can attach new sets of instances to it
2021-02-12 08:12:52 +0100polyrain(~polyrain@2001:8003:e4d8:4101:44e:ad37:2025:8ead) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 08:13:01 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 08:13:20 +0100 <whataday> but functions do that too?
2021-02-12 08:14:23 +0100 <c_wraith> You can only have one instance of Functor for functions.
2021-02-12 08:14:35 +0100 <c_wraith> What do you do if you want different behaviors in different contexts?
2021-02-12 08:15:14 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-02-12 08:16:09 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-02-12 08:16:11 +0100 <whataday> function overload?
2021-02-12 08:17:50 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-02-12 08:18:00 +0100 <c_wraith> the only thing that functions even somewhat like that in Haskell is type classes.
2021-02-12 08:18:43 +0100 <c_wraith> But they can't help you. Functor is intentionally blind to that sort of thing
2021-02-12 08:19:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 08:20:09 +0100thc202(~thc202@unaffiliated/thc202)
2021-02-12 08:20:16 +0100 <c_wraith> When you match up the kinds and types in Functor to (->), you get fmap :: (a -> b) -> (r -> a) -> (r -> b)
2021-02-12 08:20:25 +0100 <siraben> If I linearize everything in my Haskell program, and assuming I'm working with mutable data structures, will there be no GC?
2021-02-12 08:20:37 +0100 <siraben> Or rather, how can linear programs be written so that allocation and deallocation are explicit?
2021-02-12 08:20:50 +0100 <c_wraith> that's it. Only one type is possible. And that type has only one possible implementation
2021-02-12 08:21:16 +0100 <Uniaika> hello there
2021-02-12 08:23:01 +0100 <dminuoso> So I have `ZonedTime` in a few data types, but I need Eq for these. I have the option of writing out an orphan instance on Eq (this is an exe component, so its not too worrysome), but is there something else that would allow me to generate `deriving` instances without an orphan instances?
2021-02-12 08:23:05 +0100poscat1(~poscat@123.116.67.131)
2021-02-12 08:23:10 +0100 <dminuoso> Writing out the eq instance would be tedious here
2021-02-12 08:23:15 +0100poscat(~poscat@123.116.95.228) (Ping timeout: 272 seconds)
2021-02-12 08:23:40 +0100 <c_wraith> you can create orphans with -XStandaloneDeriving....
2021-02-12 08:24:13 +0100 <Uniaika> A group of volunteers and I (in the context of the HF Documentation Task Force) are looking at fixing pages of the Wiki. We've produced a list of pages with a desired course of action (deletion, translation, etc), but I'm looking for someone more senior than me to review them
2021-02-12 08:24:19 +0100 <dminuoso> Oh, no the problem is not about the Eq instance on ZonedTime, but all the data types containing it.
2021-02-12 08:24:31 +0100 <dminuoso> Ideally I'd like to inject a dictionary for `Eq ZonedTime` into a deriving mechanism
2021-02-12 08:24:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 08:25:00 +0100 <c_wraith> you might be able to do some horrible thing with deriving via
2021-02-12 08:25:08 +0100 <c_wraith> But that's so ugly
2021-02-12 08:26:18 +0100 <dminuoso> Mmm, you mean something along the lines of having some `data Foo .. deriving Eq via InjectEq Foo '['(ZonedTime, Dict (Eq ZonedTime))] ?
2021-02-12 08:26:51 +0100 <c_wraith> yes, something awful like that
2021-02-12 08:27:04 +0100 <c_wraith> StandaloneDeriving would be a lot nicer
2021-02-12 08:28:08 +0100 <dminuoso> Ah I guess the code snippet was really poor pseudo code, but anyway
2021-02-12 08:28:19 +0100 <dminuoso> c_wraith: Yeah I suppose providing an orphan instance is the best option here.
2021-02-12 08:29:49 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 08:30:29 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-12 08:34:50 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-12 08:35:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 08:38:09 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-02-12 08:38:31 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-12 08:38:36 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-12 08:40:17 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 08:41:13 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-02-12 08:41:57 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 264 seconds)
2021-02-12 08:43:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 08:43:53 +0100seveg(~gabriel@188-167-252-202.dynamic.chello.sk)
2021-02-12 08:45:34 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-02-12 08:46:48 +0100vilpan(~0@212.117.1.172)
2021-02-12 08:47:57 +0100bennofs__(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2021-02-12 08:48:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-12 08:49:02 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 08:50:25 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Client Quit)
2021-02-12 08:50:33 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-12 08:51:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 08:52:47 +0100xff0x(~xff0x@2001:1a81:527e:8e00:8467:ecc0:1d06:b5e) (Ping timeout: 260 seconds)
2021-02-12 08:53:36 +0100xff0x(~xff0x@2001:1a81:527e:8e00:a69b:cc8b:4a92:3035)
2021-02-12 08:54:42 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-02-12 08:55:50 +0100knupfer(~Thunderbi@200116b82cdbcf00c04908ec8f79be9b.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-12 08:55:57 +0100seveg(~gabriel@188-167-252-202.dynamic.chello.sk) (Ping timeout: 246 seconds)
2021-02-12 08:56:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 08:56:47 +0100epicfail^(~epicfail^@185.163.110.108) (Remote host closed the connection)
2021-02-12 08:58:07 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-12 08:59:26 +0100xff0x(~xff0x@2001:1a81:527e:8e00:a69b:cc8b:4a92:3035) (Ping timeout: 264 seconds)
2021-02-12 09:00:31 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2021-02-12 09:00:40 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 09:01:16 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:59d6:7765:8e88:73ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 09:02:15 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 09:02:47 +0100aggin(~ecm@103.88.87.92)
2021-02-12 09:03:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 09:05:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-12 09:05:43 +0100seveg(~gabriel@188-167-252-202.dynamic.chello.sk)
2021-02-12 09:07:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 09:08:29 +0100bitmagie(~Thunderbi@200116b806fb310044a1b05c24a8db83.dip.versatel-1u1.de)
2021-02-12 09:08:49 +0100Varis(~Tadas@unaffiliated/varis)
2021-02-12 09:09:29 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2021-02-12 09:12:17 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 09:12:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 09:13:02 +0100MidAutumnHotaru5(~MidAutumn@unaffiliated/midautumnhotaru)
2021-02-12 09:13:06 +0100smtx(~smtx@195.140.213.38)
2021-02-12 09:13:40 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-02-12 09:13:43 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
2021-02-12 09:14:45 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Ping timeout: 240 seconds)
2021-02-12 09:14:45 +0100MidAutumnHotaru5MidAutumnHotaru
2021-02-12 09:14:57 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2021-02-12 09:15:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 09:15:55 +0100kuribas(~user@ptr-25vy0i94cz0gl50t8i4.18120a2.ip6.access.telenet.be)
2021-02-12 09:16:26 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 09:16:34 +0100aggin(~ecm@103.88.87.92) (Read error: Connection reset by peer)
2021-02-12 09:16:45 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk) (Client Quit)
2021-02-12 09:16:55 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 09:17:07 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 256 seconds)
2021-02-12 09:19:18 +0100xff0x(~xff0x@2001:1a81:527e:8e00:c5b0:5b02:bc7c:c0ba)
2021-02-12 09:20:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 09:21:49 +0100notzmv(~user@unaffiliated/zmv) (Read error: Connection reset by peer)
2021-02-12 09:22:22 +0100notzmv`(~user@191.13.168.188)
2021-02-12 09:24:14 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-12 09:29:39 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-12 09:30:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 09:30:12 +0100borne(~fritjof@200116b86438180069fc6bd724c60777.dip.versatel-1u1.de)
2021-02-12 09:31:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 09:31:52 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2021-02-12 09:32:48 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 09:34:09 +0100vchlup_(~vchlup@nat.brnet.cz) (Ping timeout: 264 seconds)
2021-02-12 09:36:16 +0100 <whataday> could I say data type is class in OOP?
2021-02-12 09:36:26 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 09:37:21 +0100 <dminuoso> whataday: *in Java-style OOP
2021-02-12 09:37:27 +0100 <dminuoso> The comparison seems fair
2021-02-12 09:37:45 +0100 <dminuoso> Although classes in Java-style OOP typically come with sub-typing
2021-02-12 09:38:01 +0100 <whataday> why not Kotlin-style or python style?
2021-02-12 09:39:00 +0100 <dminuoso> whataday: Sorry, I should have said Simula-style
2021-02-12 09:39:08 +0100 <dminuoso> But sure, Kotlin/Python works too
2021-02-12 09:40:26 +0100 <dminuoso> whataday: I just want to emphasize, that not all OOP languages either adopt the word "class", or that they have the concept of classes as "value templates" or "subtyping entitites" at all
2021-02-12 09:40:36 +0100 <dminuoso> Consider something like Smalltalk
2021-02-12 09:41:30 +0100 <dminuoso> Where things are really blurry
2021-02-12 09:41:44 +0100bitmagie(~Thunderbi@200116b806fb310044a1b05c24a8db83.dip.versatel-1u1.de) (Quit: bitmagie)
2021-02-12 09:43:29 +0100 <whataday> so the previous question what's the point to wrap a function into a data type? could to trans to what's the point using objects to instead of functions as parameters?
2021-02-12 09:44:26 +0100 <dminuoso> whataday: Well, since functions are first-class values in Haskell, why forbid them as fields in a record?
2021-02-12 09:45:07 +0100 <whataday> benefits?
2021-02-12 09:45:48 +0100 <koz_> whataday: Underneath, type class dictionaries are exactly that - records of functions.
2021-02-12 09:46:01 +0100 <koz_> And that's how dictionary passing implementation of type classes works.
2021-02-12 09:46:09 +0100 <koz_> I'd say that's a good reason, no?
2021-02-12 09:47:08 +0100 <whataday> but I'm asking about types not type class
2021-02-12 09:47:19 +0100 <dminuoso> whataday: The point is, you could do this on the value level yourself
2021-02-12 09:47:32 +0100 <koz_> Yep, exactly.
2021-02-12 09:47:39 +0100 <dminuoso> whataday: Here's a simple example `data Logger = Logger { logDebug :: String -> IO (); logInfo :: String -> IO (); logLength :: IO Int }`
2021-02-12 09:47:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 09:48:00 +0100 <dminuoso> Now, you can parametrize all your functions with `Logger`, and voila, you have logging facilities everywhere
2021-02-12 09:48:59 +0100 <whataday> aha, just like class Logger has some methy
2021-02-12 09:49:03 +0100 <whataday> methods
2021-02-12 09:49:15 +0100 <dminuoso> Not quite
2021-02-12 09:49:25 +0100 <dminuoso> methods correspond to *any* function taking a data type
2021-02-12 09:50:23 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-12 09:50:43 +0100 <whataday> so what's the proper way to decribe that?
2021-02-12 09:50:51 +0100 <whataday> describe
2021-02-12 09:51:08 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-12 09:51:09 +0100 <dminuoso> whataday: Consider something like..
2021-02-12 09:51:12 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 09:51:50 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-etfcqaohweqrgnsm)
2021-02-12 09:52:11 +0100 <dminuoso> `data Alg = Alg { name :: String; approx :: String -> Int }` where `approx` is some function that calculates something. And perhaps you have some function `improve :: P -> Alg -> Alg` that "modifies" the internal function,
2021-02-12 09:52:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 09:52:43 +0100 <dminuoso> This you cannot describe with methods anymore
2021-02-12 09:52:52 +0100 <dminuoso> Or well, you could encode it into them
2021-02-12 09:53:36 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-02-12 09:54:34 +0100 <whataday> aha, what about data Alg' = Alg {...}?
2021-02-12 09:54:37 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-12 09:55:20 +0100 <whataday> use same name to type constructor and data constructor is not fair
2021-02-12 09:55:31 +0100 <dminuoso> It is confusing, yeah
2021-02-12 09:56:15 +0100 <whataday> that record type looks like a class constructor to me
2021-02-12 09:56:40 +0100 <dminuoso> whataday: Sure, but `approx` is not a method, it's rather like an instance variable that contains a function
2021-02-12 09:56:46 +0100 <dminuoso> As such you can change/replace it
2021-02-12 09:56:53 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:2413:85cb:bba4:fb22)
2021-02-12 09:57:02 +0100 <dminuoso> (With a method, you'd have to encode being able to change it with internal state, somehow)
2021-02-12 09:57:22 +0100 <whataday> based on that record type, I can construct a class with String parameter, it has two methods name and approx
2021-02-12 09:57:35 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 09:58:24 +0100 <whataday> name needn't a parameter and return that class parameter
2021-02-12 09:58:37 +0100 <whataday> a function without a parameter
2021-02-12 09:58:50 +0100 <whataday> that's available in OOP
2021-02-12 09:59:37 +0100 <whataday> but not available in Haskell, 'cause everyone function is an unary function in Haskell?
2021-02-12 10:00:12 +0100svc0[m](svc0matrix@gateway/shell/matrix.org/x-bpxqtevxuqyganbo) (Quit: Idle for 30+ days)
2021-02-12 10:00:30 +0100knupfer(~Thunderbi@i5E86B4CE.versanet.de)
2021-02-12 10:02:02 +0100 <whataday> improve that can use new an instance of class Alg to implement?
2021-02-12 10:02:14 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:50ad:ccb:148c:6cba)
2021-02-12 10:02:25 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
2021-02-12 10:03:24 +0100 <dminuoso> whataday: Re "function without a parameter" - this comparison is flawed in that this is a confusion of terms.
2021-02-12 10:03:42 +0100 <dminuoso> What a language like say Python calls "a function" is *not* the same thing that Haskell calls a function.
2021-02-12 10:04:11 +0100 <whataday> you mean evaluate strategy?
2021-02-12 10:04:13 +0100 <dminuoso> Let's call what C/C++/Python/much of the imperative programming world names functions "routines"
2021-02-12 10:04:40 +0100 <dminuoso> A "routine is a sequence of actions" that are free to manipulate the world. For example doing IO
2021-02-12 10:05:07 +0100 <dminuoso> A "function" otoh is just a mapping between values in the mathematical sense.
2021-02-12 10:05:21 +0100 <dminuoso> Like the `sin` function
2021-02-12 10:05:26 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 10:05:51 +0100 <whataday> hey, what about name :: _ -> String?
2021-02-12 10:06:25 +0100 <dminuoso> So what say C calls a function, would be called an IO action in Haskell instead.
2021-02-12 10:06:27 +0100 <dminuoso> e.g.
2021-02-12 10:06:48 +0100 <dminuoso> When writing `int get_number(void);` in C, then the corresponding/matching type in Haskell would be `IO Int`
2021-02-12 10:07:08 +0100 <whataday> right
2021-02-12 10:07:24 +0100 <dminuoso> So you see, this "lack of arguments" in C because they're visually suggesting functions, but really just mean "routines/actions"
2021-02-12 10:08:30 +0100charukiewicz(~charukiew@irouteince04.i.subnet.rcn.com) (Quit: charukiewicz)
2021-02-12 10:08:30 +0100 <whataday> what about f = lambda _: return 3 in python?
2021-02-12 10:08:33 +0100 <dminuoso> Ah!
2021-02-12 10:08:43 +0100charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-02-12 10:08:44 +0100 <dminuoso> That's another trick to model lazy evaluation in Python!
2021-02-12 10:08:45 +0100 <whataday> does this f is a action?
2021-02-12 10:08:51 +0100 <dminuoso> Possibly
2021-02-12 10:08:57 +0100 <dminuoso> Or an effect, depends on the situation
2021-02-12 10:09:04 +0100 <dminuoso> LIke if you wrote `f = lambda _: print("foo")`
2021-02-12 10:09:15 +0100 <whataday> but it's equal to f = 3?
2021-02-12 10:09:24 +0100 <dminuoso> Not quite
2021-02-12 10:09:28 +0100 <dminuoso> Consider something like
2021-02-12 10:09:36 +0100 <whataday> print is an IO action
2021-02-12 10:09:42 +0100 <whataday> but return 3 isn't
2021-02-12 10:09:55 +0100 <dminuoso> Arguably it is
2021-02-12 10:10:10 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-12 10:10:27 +0100pera(~pera@unaffiliated/pera)
2021-02-12 10:10:28 +0100 <dminuoso> Python lacks the ability to be outside this effectful system
2021-02-12 10:10:33 +0100 <whataday> that f equal to a constant variable f which is 3
2021-02-12 10:10:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 10:11:16 +0100 <dminuoso> So in Python you can use lambdas to implement lazy evaluation, something like `f = lambda _: return expensive_computation`
2021-02-12 10:11:26 +0100 <dminuoso> And then, if you ever need the value, you can evaluate it on-demand by "calling it"
2021-02-12 10:11:43 +0100 <dminuoso> (But here, you're still using this routine/IO effect system to implement it)
2021-02-12 10:12:03 +0100 <dminuoso> since python is not allowed to reorder effects freely
2021-02-12 10:12:04 +0100 <whataday> fine...
2021-02-12 10:12:24 +0100 <dminuoso> In Haskell we dont need this trick either, but if we had to
2021-02-12 10:12:26 +0100 <dminuoso> we could do something like
2021-02-12 10:12:46 +0100 <dminuoso> `f :: () -> Int` - which amusingly would look like `f ()` if one wanted the Int inside
2021-02-12 10:12:48 +0100ciwowic(uid472783@gateway/web/irccloud.com/x-qukqqlhkmcggcdaj)
2021-02-12 10:13:04 +0100 <dminuoso> But that was assuming that, some hypothetical version of Haskell, was strict
2021-02-12 10:13:15 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 10:13:33 +0100 <dminuoso> But we dont even need that trick, since `f :: Int` already is lazy, so you dont even need to do that
2021-02-12 10:13:49 +0100 <whataday> ok
2021-02-12 10:16:21 +0100 <whataday> use OOP to think some monads would be ?
2021-02-12 10:18:51 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-12 10:20:50 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-02-12 10:22:06 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-12 10:23:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 10:23:48 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 246 seconds)
2021-02-12 10:28:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 10:30:15 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-02-12 10:30:39 +0100lambda-11235(~lambda-11@2600:1700:7c70:4600::3f) (Quit: Bye)
2021-02-12 10:31:20 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 10:31:23 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-02-12 10:33:31 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-wvvgdsbomferygig) (Quit: Connection closed for inactivity)
2021-02-12 10:36:02 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-12 10:36:27 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 10:38:48 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-02-12 10:40:05 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 10:40:16 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 10:40:27 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-02-12 10:40:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 10:41:20 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 272 seconds)
2021-02-12 10:42:43 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-12 10:43:03 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-02-12 10:45:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 10:46:28 +0100 <kuribas> is there a strict "view" for lens?
2021-02-12 10:46:33 +0100 <kuribas> :t view
2021-02-12 10:46:34 +0100 <lambdabot> MonadReader s m => Getting a s a -> m a
2021-02-12 10:46:45 +0100 <merijn> What does that even mean?
2021-02-12 10:47:13 +0100 <kuribas> using a strict Const I guess?
2021-02-12 10:47:37 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it)
2021-02-12 10:48:35 +0100danza(~francesco@151.53.65.193)
2021-02-12 10:48:44 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-02-12 10:49:40 +0100 <kuribas> > view traverse [Sum 1, Sum 3, Sum 4, Sum 5]
2021-02-12 10:49:42 +0100 <lambdabot> Sum {getSum = 13}
2021-02-12 10:51:56 +0100 <Franciman> :t view
2021-02-12 10:51:58 +0100 <lambdabot> MonadReader s m => Getting a s a -> m a
2021-02-12 10:52:05 +0100dyeplexer(~lol@unaffiliated/terpin) (Read error: Connection reset by peer)
2021-02-12 10:52:36 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-12 10:52:41 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-12 10:53:21 +0100forgottenone(~forgotten@176.42.17.164) (Ping timeout: 264 seconds)
2021-02-12 10:54:05 +0100 <kuribas> or it's already strict?
2021-02-12 10:54:51 +0100mauro^(mauro@ip98-184-89-2.mc.at.cox.net)
2021-02-12 10:54:59 +0100 <kuribas> but then, toListOf traverse is very inefficient?
2021-02-12 10:55:25 +0100seveg(~gabriel@188-167-252-202.dynamic.chello.sk) (Ping timeout: 240 seconds)
2021-02-12 10:55:42 +0100 <kuribas> because it will do a repeated append?
2021-02-12 10:55:59 +0100seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk)
2021-02-12 10:56:20 +0100forgottenone(~forgotten@176.42.28.155)
2021-02-12 10:56:43 +0100todda7(~torstein@athedsl-258913.home.otenet.gr) (Quit: Konversation terminated!)
2021-02-12 10:56:51 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-02-12 10:57:01 +0100 <kuribas> ah, it uses Endo, neat...
2021-02-12 10:57:14 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-02-12 10:57:36 +0100 <kuribas> So in that case I suppose it is efficient to use view on a strict monoid...
2021-02-12 10:57:53 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru)
2021-02-12 10:58:02 +0100 <idnar> view l = Reader.asks (getConst #. l Const); toListOf l = foldrOf l (:) []
2021-02-12 10:58:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 10:58:55 +0100 <idnar> foldrOf l f z = flip appEndo z . foldMapOf l (Endo #. f)
2021-02-12 10:59:10 +0100 <kuribas> then using view on a non-strict monoid is inefficient, right?
2021-02-12 10:59:16 +0100plutoniix(~q@184.82.202.124) (Ping timeout: 240 seconds)
2021-02-12 10:59:40 +0100 <Taneb> > views (const ()) [1..100000000]
2021-02-12 10:59:41 +0100 <kuribas> > view (traverse . to (:[])) [1, 3, 4, 5]
2021-02-12 10:59:41 +0100 <lambdabot> error:
2021-02-12 10:59:41 +0100 <lambdabot> • Couldn't match type ‘()’ with ‘s0 -> Const r s0’
2021-02-12 10:59:41 +0100 <lambdabot> Expected type: LensLike' (Const r) s0 a0
2021-02-12 10:59:43 +0100 <lambdabot> [1,3,4,5]
2021-02-12 11:00:04 +0100 <kuribas> :t views
2021-02-12 11:00:05 +0100 <lambdabot> MonadReader s m => LensLike' (Const r) s a -> (a -> r) -> m r
2021-02-12 11:00:10 +0100 <Taneb> > views traverse (const ()) [1..100000000]
2021-02-12 11:00:12 +0100 <lambdabot> ()
2021-02-12 11:00:50 +0100 <kuribas> > views traverse (:[]) [1, 3, 4, 5]
2021-02-12 11:00:52 +0100 <lambdabot> [1,3,4,5]
2021-02-12 11:01:59 +0100 <kuribas> > appEndo $ views (traverse . traverse) (Endo . (:[])) [Just 1, Nothing, 3, Nothing, 4, 5]
2021-02-12 11:02:01 +0100 <lambdabot> error:
2021-02-12 11:02:01 +0100 <lambdabot> • Couldn't match type ‘[a0]’ with ‘a -> a’
2021-02-12 11:02:01 +0100 <lambdabot> Expected type: a0 -> a -> a
2021-02-12 11:02:04 +0100dhil(~dhil@80.208.56.181)
2021-02-12 11:02:05 +0100 <Taneb> Seems approximately linear to me
2021-02-12 11:02:06 +0100 <idnar> kuribas: it's ~the same as foldMap
2021-02-12 11:02:17 +0100 <kuribas> idnar: foldMap' then?
2021-02-12 11:02:42 +0100 <Taneb> > head $ views traverse (:[]) [1..100000000000000000000000000]
2021-02-12 11:02:43 +0100 <lambdabot> 1
2021-02-12 11:02:54 +0100 <Taneb> And seems lazy enough
2021-02-12 11:03:01 +0100 <kuribas> hmm, indeed
2021-02-12 11:03:27 +0100 <idnar> @hoogle foldMap'
2021-02-12 11:03:28 +0100 <lambdabot> Data.Foldable foldMap' :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
2021-02-12 11:03:28 +0100 <lambdabot> Relude.Foldable.Reexport foldMap' :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
2021-02-12 11:03:28 +0100 <lambdabot> Data.RAVec.NonEmpty foldMap' :: Monoid m => (a -> m) -> NERAVec' n b a -> m
2021-02-12 11:03:42 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 11:04:23 +0100 <idnar> what?
2021-02-12 11:04:36 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr) (Ping timeout: 240 seconds)
2021-02-12 11:05:06 +0100 <kuribas> Taneb: how does that work? Doesn't const evaluate from left to right?
2021-02-12 11:05:47 +0100 <kuribas> liftA2 _ (Const x) (Const y) = Const (x `mappend` y)
2021-02-12 11:06:30 +0100 <idnar> "Since: 4.13.0.0" ah
2021-02-12 11:07:01 +0100 <kuribas> > traverse Const [a, b, c]
2021-02-12 11:07:03 +0100 <lambdabot> Const (a <> b <> c <> mempty)
2021-02-12 11:07:10 +0100 <Taneb> kuribas: yeah? So it ends up "head ([1] ++ ...)" = "head (1 : ...)" = "1"
2021-02-12 11:07:24 +0100 <Taneb> Well, it evaluates the same way as the underlying monoid
2021-02-12 11:07:40 +0100 <Taneb> It's traverse @List that matters here
2021-02-12 11:12:20 +0100 <kuribas> Then it's inefficient for strict folds?
2021-02-12 11:13:06 +0100 <merijn> Yes, no, maybe, it depends.
2021-02-12 11:13:11 +0100 <merijn> ENOTENOUGHINFO
2021-02-12 11:13:33 +0100 <Taneb> :t sumOf
2021-02-12 11:13:34 +0100 <lambdabot> Num a => Getting (Endo (Endo a)) s a -> s -> a
2021-02-12 11:13:46 +0100 <Taneb> kuribas: yes, that's why sumOf uses that type rather than Getting (Sum a) s a
2021-02-12 11:14:18 +0100 <kuribas> Taneb: how do you fold my own monoid then?
2021-02-12 11:14:56 +0100 <dminuoso> kuribas: The same way sumOf does. Use foldlOf' yourself?
2021-02-12 11:14:57 +0100 <merijn> kuribas: "Endo mappend"?
2021-02-12 11:15:09 +0100 <kuribas> :t foldlOf'
2021-02-12 11:15:10 +0100 <lambdabot> Getting (Endo (Endo r)) s a -> (r -> a -> r) -> r -> s -> r
2021-02-12 11:15:37 +0100 <kuribas> dminuoso: that's not very elegant
2021-02-12 11:15:59 +0100 <kuribas> there should be view'
2021-02-12 11:16:02 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 11:16:22 +0100 <dminuoso> What type would view' have exactly?
2021-02-12 11:16:35 +0100plutoniix(~q@184.82.202.124)
2021-02-12 11:16:43 +0100plutoniix(~q@184.82.202.124) (Max SendQ exceeded)
2021-02-12 11:16:45 +0100 <kuribas> :t \l -> foldlOf' l (<>) mempty
2021-02-12 11:16:46 +0100 <lambdabot> Monoid r => Getting (Endo (Endo r)) s r -> s -> r
2021-02-12 11:17:08 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 11:17:09 +0100plutoniix(~q@184.82.202.124)
2021-02-12 11:17:21 +0100 <dminuoso> I dont think that one passes the Fairbairn threshold.
2021-02-12 11:18:07 +0100 <dminuoso> And at the very best, Id name it `foldOf'`
2021-02-12 11:18:27 +0100 <dminuoso> Or something akin to that, since that one needs a Fold
2021-02-12 11:18:52 +0100 <kuribas> :t view
2021-02-12 11:18:53 +0100plutoniix(~q@184.82.202.124) (Max SendQ exceeded)
2021-02-12 11:18:53 +0100 <lambdabot> MonadReader s m => Getting a s a -> m a
2021-02-12 11:19:21 +0100plutoniix(~q@184.82.202.124)
2021-02-12 11:19:33 +0100 <dminuoso> kuribas: The key is in Getting.
2021-02-12 11:19:38 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-12 11:19:56 +0100 <dminuoso> Or.. Im not sure what else you can do with it
2021-02-12 11:20:49 +0100 <kuribas> in fact, the foldOf example in lens is bad: foldOf (folded.folded) [[Sum 1,Sum 4],[Sum 8, Sum 8],[Sum 21]] => Sum {getSum = 42}
2021-02-12 11:21:59 +0100 <kuribas> it will run in linear space
2021-02-12 11:22:03 +0100 <kuribas> instead of constant
2021-02-12 11:22:05 +0100ph88(~ph88@2a02:8109:9e00:7e5c:f87d:231f:92a3:5029)
2021-02-12 11:25:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 11:26:11 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:90c5:cd54:af9d:fe90) (Ping timeout: 272 seconds)
2021-02-12 11:26:27 +0100 <kuribas> dminuoso: foldOf ~= view
2021-02-12 11:29:27 +0100 <kuribas> dminuoso: so then view' :: MonadReader s m => Getting (Endo (Endo a)) s a -> m a
2021-02-12 11:30:17 +0100fendor(~fendor@91.141.3.135.wireless.dyn.drei.com)
2021-02-12 11:34:26 +0100plutoniix(~q@184.82.202.124) (Quit: Leaving)
2021-02-12 11:38:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 11:40:41 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 11:41:57 +0100xsarnik0(xsarnik@gateway/shell/fi.muni.cz/x-mtygofcqfiilprho) (Ping timeout: 264 seconds)
2021-02-12 11:41:57 +0100Jajik(xchlup2@gateway/shell/fi.muni.cz/x-jsygcbuiktdwntcl) (Ping timeout: 264 seconds)
2021-02-12 11:42:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 11:43:42 +0100seveg(~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 260 seconds)
2021-02-12 11:44:20 +0100Jajik(xchlup2@gateway/shell/fi.muni.cz/x-wwrhdukwaxbktttf)
2021-02-12 11:44:24 +0100__monty__(~toonn@unaffiliated/toonn)
2021-02-12 11:45:21 +0100xsarnik0(xsarnik@gateway/shell/fi.muni.cz/x-jfjbrmgxfogbjeng)
2021-02-12 11:46:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 260 seconds)
2021-02-12 11:48:41 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-02-12 11:49:11 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-12 11:51:26 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-12 11:52:20 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Remote host closed the connection)
2021-02-12 11:52:43 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-02-12 11:55:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 11:56:26 +0100pavonia(~user@unaffiliated/siracusa)
2021-02-12 11:57:54 +0100fendor_(~fendor@77.119.131.42.wireless.dyn.drei.com)
2021-02-12 11:58:29 +0100xcmw(~textual@dyn-72-33-2-152.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-12 11:58:37 +0100ulidtko(~ulidtko@194.54.80.38) (Ping timeout: 256 seconds)
2021-02-12 12:00:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 12:00:29 +0100vilpan(~0@212.117.1.172) (Ping timeout: 272 seconds)
2021-02-12 12:01:08 +0100fendor(~fendor@91.141.3.135.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-02-12 12:02:16 +0100dyeplexer(~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
2021-02-12 12:03:09 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-12 12:03:24 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-12 12:11:44 +0100vilpan(~0@212.117.1.172)
2021-02-12 12:13:02 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-02-12 12:13:18 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-12 12:14:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 12:16:14 +0100ulidtko(~ulidtko@31.133.98.210)
2021-02-12 12:16:33 +0100darjeeling_(~darjeelin@39.185.119.195)
2021-02-12 12:17:12 +0100 <Franciman> Hi, I am using persistent-sqlite library, but I don't understand how it deals with transactions
2021-02-12 12:17:20 +0100 <Franciman> do you know where I can find info about this?
2021-02-12 12:17:43 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds)
2021-02-12 12:18:12 +0100ulidtko|k(~ulidtko@194.54.80.38)
2021-02-12 12:19:29 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 12:20:25 +0100ulidtko(~ulidtko@31.133.98.210) (Ping timeout: 240 seconds)
2021-02-12 12:22:47 +0100 <mouseghost> as in internally or what
2021-02-12 12:23:37 +0100 <Franciman> as in, I want to get the control of what happens
2021-02-12 12:24:20 +0100 <__monty__> Franciman: merijn is probably intimately familiar and I also believe he'd recommend using sqlite-simple instead.
2021-02-12 12:24:39 +0100 <Franciman> yup, I know, unfortunately I cannot choose
2021-02-12 12:25:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-12 12:25:50 +0100borne(~fritjof@200116b86438180069fc6bd724c60777.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-12 12:26:09 +0100borne(~fritjof@83.135.92.91)
2021-02-12 12:26:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:26:45 +0100 <Franciman> IIUC persistent wants me to start a connection for each transaction
2021-02-12 12:26:51 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-12 12:27:18 +0100 <__monty__> Possible. Sqlite-simple uses a connection for every query.
2021-02-12 12:28:24 +0100 <kuribas> what does a connection mean in sqlite? Opening the file?
2021-02-12 12:28:32 +0100 <kuribas> That seems very inefficient
2021-02-12 12:30:01 +0100 <__monty__> Don't know, don't really care, doubt it.
2021-02-12 12:30:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 12:31:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-12 12:31:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:32:11 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-02-12 12:32:59 +0100 <Franciman> ah ok understood!
2021-02-12 12:33:21 +0100 <Franciman> https://www.stackage.org/haddock/nightly-2021-02-12/persistent-2.11.0.2/Database-Persist-Sql.html#… here is where transactions are run
2021-02-12 12:33:33 +0100 <Franciman> started/committed*
2021-02-12 12:35:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 12:37:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-12 12:37:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:38:33 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
2021-02-12 12:39:48 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-12 12:42:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-12 12:43:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 12:43:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:45:49 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-12 12:46:17 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 12:47:20 +0100ciwowic(uid472783@gateway/web/irccloud.com/x-qukqqlhkmcggcdaj) (Quit: Connection closed for inactivity)
2021-02-12 12:47:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
2021-02-12 12:48:16 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Remote host closed the connection)
2021-02-12 12:48:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-12 12:49:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:50:56 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
2021-02-12 12:50:57 +0100carlomagno(~cararell@148.87.23.12) (Remote host closed the connection)
2021-02-12 12:51:00 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-12 12:51:08 +0100carlomagno(~cararell@148.87.23.12)
2021-02-12 12:51:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 12:53:27 +0100seveg(~gabriel@188-167-252-202.dynamic.chello.sk)
2021-02-12 12:53:28 +0100Major_Biscuit(~Major_Bis@x065156.citg-m.tudelft.nl)
2021-02-12 12:54:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-12 12:54:24 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-12 12:54:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 12:55:14 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-12 12:56:29 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 13:00:14 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-vpguxmddsrmujfdr) (Quit: Connection closed for inactivity)
2021-02-12 13:00:16 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-02-12 13:00:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-12 13:00:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 13:03:09 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
2021-02-12 13:03:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 13:06:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-12 13:06:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 13:07:05 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk) (Quit: aramend)
2021-02-12 13:07:14 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 13:08:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 13:08:34 +0100glguy(x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer)
2021-02-12 13:09:13 +0100exasperr(bab72765@186.183.39.101)
2021-02-12 13:10:22 +0100glguy(x@freenode/staff/haskell.developer.glguy)
2021-02-12 13:11:48 +0100aramend_(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 13:12:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-12 13:12:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 13:12:50 +0100qwfpluy(3e605a22@62.96.90.34)
2021-02-12 13:13:30 +0100 <qwfpluy> what's the best Haskell library for copying files onto an Azure VM?
2021-02-12 13:13:36 +0100cmcma20(~cmcma20@l37-192-2-125.novotelecom.ru)
2021-02-12 13:13:45 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 264 seconds)
2021-02-12 13:13:45 +0100aramend_aramend
2021-02-12 13:18:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-12 13:18:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 13:18:27 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds)
2021-02-12 13:19:10 +0100irchazwell_(~IRCHaxwel@2a00:23a8:4382:a900:8bf:2df2:112c:f379)
2021-02-12 13:19:16 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-12 13:20:04 +0100forgottenone(~forgotten@176.42.28.155) (Ping timeout: 265 seconds)
2021-02-12 13:20:17 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk) (Quit: aramend)
2021-02-12 13:20:29 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 13:20:33 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-02-12 13:21:53 +0100exasperr(bab72765@186.183.39.101) ()
2021-02-12 13:22:02 +0100 <merijn> Franciman: The short answer is: Nowhere
2021-02-12 13:22:41 +0100irchaxwell(~IRCHaxwel@2a00:23a8:4382:a900:4d37:2faa:bfe1:2753) (Ping timeout: 265 seconds)
2021-02-12 13:22:55 +0100 <merijn> Franciman: And I can't really recommend using persistent-sqlite due to utter lack of documentation how to properly manage transactions correctly
2021-02-12 13:23:22 +0100 <Franciman> thanks, I am going to report
2021-02-12 13:23:30 +0100qwfpluy(3e605a22@62.96.90.34) (Quit: Connection closed)
2021-02-12 13:23:59 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 13:24:03 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2021-02-12 13:24:04 +0100 <merijn> Franciman: I've got my own abstractions on top of it, but the odds of me *documenting* those to the extent that they're useful to others before the heat-death of the universe is roughly 0 :)
2021-02-12 13:24:47 +0100 <merijn> Franciman: If you're sufficiently stubborn/masochistic you can try and figure things out from the code here: https://github.com/merijn/Belewitte/tree/master/benchmark-analysis/src/Sql
2021-02-12 13:25:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 13:25:12 +0100 <merijn> Franciman: Although I'd probably recommend just using sqlite-simple instead
2021-02-12 13:25:17 +0100liyang(~liyang@cpc80675-stap13-2-0-cust362.12-2.cable.virginm.net)
2021-02-12 13:25:54 +0100pera(~pera@unaffiliated/pera)
2021-02-12 13:25:58 +0100 <tdammers> my impression of persistent in general is that it gets you things that aren't very important, at the price of fairly brittle abstractions
2021-02-12 13:26:03 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-rekqucmexfsrpwoo)
2021-02-12 13:26:07 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 13:26:23 +0100 <merijn> tdammers: Oh, it's *much* worse
2021-02-12 13:26:24 +0100 <Franciman> merijn, thanks
2021-02-12 13:26:39 +0100 <tdammers> merijn: worse than brittle abstractions? I'm all ears.
2021-02-12 13:26:40 +0100 <merijn> I don't think anyone who is not a persistent contributor can write safe code with it
2021-02-12 13:27:08 +0100 <tdammers> because it's a brittle abstraction.
2021-02-12 13:27:30 +0100 <merijn> tdammers: I meant more like "because half the API is unsafe in subtle ways"
2021-02-12 13:27:51 +0100 <merijn> tdammers: There's lots of conduit APIs for streaming, great idea!
2021-02-12 13:28:15 +0100 <merijn> Except, conduit at some point got rid of eager cleanup during early termination
2021-02-12 13:28:45 +0100 <merijn> tdammers: Which means none of the functions returning conduit streams correctly finalize their queries if you don't process the whole stream, leaking resources
2021-02-12 13:28:47 +0100Tops2(~Tobias@dyndsl-095-033-095-154.ewe-ip-backbone.de)
2021-02-12 13:29:00 +0100 <tdammers> right, so a brittle abstraction :D
2021-02-12 13:29:18 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
2021-02-12 13:30:04 +0100 <Franciman> gosh
2021-02-12 13:30:11 +0100 <Franciman> none of this is written in the docs
2021-02-12 13:30:38 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 264 seconds)
2021-02-12 13:31:56 +0100 <merijn> Franciman: I think that, at this point, I'm the largest contributor to persistent-sqlite, mostly because fixing/improving it was less work than migrating my code off of it...but yeah, like I said, I'd probably go with sqlite-simple on a new codebase
2021-02-12 13:32:07 +0100 <Franciman> sad
2021-02-12 13:32:08 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
2021-02-12 13:32:09 +0100 <Franciman> thanks
2021-02-12 13:32:12 +0100 <Franciman> I can not
2021-02-12 13:32:37 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2021-02-12 13:33:12 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2021-02-12 13:33:15 +0100 <merijn> Franciman: the "MonadReader SqlBackend"/ReaderT SqlBackend things in persistent are, effectively, transaction scopes, so you don't want those readers stretching over your entire application
2021-02-12 13:33:29 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 13:33:57 +0100 <merijn> I rolled my own Transaction monad in the directory I linked
2021-02-12 13:35:00 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
2021-02-12 13:36:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 13:37:12 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-12 13:39:28 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Remote host closed the connection)
2021-02-12 13:41:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 13:43:48 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-12 13:43:59 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-12 13:47:02 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 13:50:04 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-12 13:50:12 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:50ad:ccb:148c:6cba) (Quit: Leaving)
2021-02-12 13:50:45 +0100dyeplexer(~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
2021-02-12 13:51:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 13:52:34 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 256 seconds)
2021-02-12 13:54:16 +0100Major_Biscuit(~Major_Bis@x065156.citg-m.tudelft.nl) (Ping timeout: 256 seconds)
2021-02-12 13:55:31 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-12 13:56:59 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 13:57:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 13:57:40 +0100tsaka__(~torstein@athedsl-258913.home.otenet.gr)
2021-02-12 13:58:50 +0100 <Athas> > signum (0/0)
2021-02-12 13:58:52 +0100 <lambdabot> NaN
2021-02-12 13:59:44 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-02-12 14:01:28 +0100 <merijn> :t signum
2021-02-12 14:01:29 +0100 <lambdabot> Num a => a -> a
2021-02-12 14:01:31 +0100iye(~itai@87.70.56.140)
2021-02-12 14:01:34 +0100 <liyang> > (<> " batman!") $ concatMap show $ replicate 16 $ signum (0/0)
2021-02-12 14:01:36 +0100 <lambdabot> "NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN batman!"
2021-02-12 14:01:57 +0100 <merijn> Athas: Not sure what you expected there :p
2021-02-12 14:02:07 +0100 <iye> does anyone know who i should email to get cabal 3.4 to be available to download on haskell.org?
2021-02-12 14:02:17 +0100 <iye> i'm having a bit of trouble finding the contact email
2021-02-12 14:02:44 +0100 <Athas> merijn: I did expect that, I'm just confused because my interpreter doesn't give the right result, even though it ultimately boils down to Haskell's signum...
2021-02-12 14:03:10 +0100 <liyang> > signum (negate 1 / 0)
2021-02-12 14:03:13 +0100 <lambdabot> -1.0
2021-02-12 14:03:54 +0100 <Ferdirand> > signum (negate 1 / negate 0)
2021-02-12 14:03:56 +0100 <lambdabot> 1.0
2021-02-12 14:04:30 +0100 <Athas> Oh, of course, I round-trip Floats through Rational... that's a no-no.
2021-02-12 14:04:46 +0100 <merijn> Athas: I was about to say, are you sure it's double you're working with
2021-02-12 14:04:57 +0100 <Ferdirand> > signum (negate 1 / fromInteger (negate 0))
2021-02-12 14:04:58 +0100 <Athas> So before I'm off to Hoogle, what's a good way of converting between floating-point types in Haskell?
2021-02-12 14:04:59 +0100 <lambdabot> -1.0
2021-02-12 14:05:05 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 14:05:13 +0100 <liyang> realToFrac
2021-02-12 14:05:16 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 240 seconds)
2021-02-12 14:05:19 +0100 <merijn> liyang: He said good :p
2021-02-12 14:05:29 +0100 <merijn> Athas: That sounds like a cursed question :p
2021-02-12 14:05:30 +0100 <liyang> oh
2021-02-12 14:05:51 +0100 <merijn> > realToFrac (0/0 :: Double) :: Float -- hmm
2021-02-12 14:05:52 +0100 <lambdabot> -Infinity
2021-02-12 14:06:01 +0100 <merijn> That's at least somewhat reasonable
2021-02-12 14:06:21 +0100 <mouseghost> pi = 3.14
2021-02-12 14:06:31 +0100 <liyang> merijn: we can't stop here, this is IEEE-754 country.
2021-02-12 14:06:46 +0100 <merijn> liyang: That's perfectly correct for IEEE-754
2021-02-12 14:06:53 +0100 <Athas> Had the Haskell designers never heard about IEEE 754 when they wrote the report? I feel every year I find a new wart.
2021-02-12 14:06:54 +0100 <merijn> oh, wait
2021-02-12 14:06:57 +0100 <merijn> I take it back
2021-02-12 14:07:12 +0100 <merijn> That's not reasonable, I was just not paying attention
2021-02-12 14:07:25 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-02-12 14:07:29 +0100 <merijn> Athas: Of course not, IEEE-754 is for pragmatic people
2021-02-12 14:07:41 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 14:07:43 +0100 <Athas> They should have left out Float and Double rather than half-assing them.
2021-02-12 14:07:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 14:08:02 +0100 <Athas> You can't half-ass floats. You need both cheeks or it will hurt you eventually.
2021-02-12 14:08:04 +0100 <merijn> I mean, Float/Double are fine, it's the conversions/classes the mess up
2021-02-12 14:08:16 +0100 <Athas> It's the class instances that are messed up.
2021-02-12 14:08:49 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-12 14:09:05 +0100 <Athas> Well, I guess I would write custom code again.
2021-02-12 14:09:41 +0100smtx(~smtx@195.140.213.38) ()
2021-02-12 14:11:13 +0100 <merijn> Athas: Make a float-cast to match Herbert's int-cast :>
2021-02-12 14:11:19 +0100 <Athas> What?
2021-02-12 14:11:41 +0100 <merijn> @hackage int-cast
2021-02-12 14:11:41 +0100 <lambdabot> https://hackage.haskell.org/package/int-cast
2021-02-12 14:11:44 +0100 <Franciman> merijn, what do you think about `beam` ?
2021-02-12 14:11:47 +0100 <Franciman> @hackage beam
2021-02-12 14:11:47 +0100 <lambdabot> https://hackage.haskell.org/package/beam
2021-02-12 14:11:59 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 265 seconds)
2021-02-12 14:12:07 +0100 <merijn> Franciman: The beam API gives me nightmare
2021-02-12 14:12:09 +0100 <merijn> +s
2021-02-12 14:12:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 14:13:04 +0100CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
2021-02-12 14:16:02 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 272 seconds)
2021-02-12 14:16:42 +0100son0p(~son0p@181.58.39.182)
2021-02-12 14:17:50 +0100michalz(~user@185.246.204.47) (Remote host closed the connection)
2021-02-12 14:20:39 +0100Tario(~Tario@201.192.165.173)
2021-02-12 14:20:48 +0100iye(~itai@87.70.56.140) (Remote host closed the connection)
2021-02-12 14:23:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 14:23:59 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
2021-02-12 14:26:24 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 14:26:48 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 272 seconds)
2021-02-12 14:27:05 +0100darjeeling_(~darjeelin@39.185.119.195) (Ping timeout: 256 seconds)
2021-02-12 14:28:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 14:29:29 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-12 14:30:21 +0100_vaibhavingale_(~Adium@203.188.228.9) (Quit: Leaving.)
2021-02-12 14:34:04 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:2413:85cb:bba4:fb22) (Ping timeout: 240 seconds)
2021-02-12 14:34:04 +0100 <dminuoso> outerJoin_' :: forall s a b be db. (BeamSqlBackend be, BeamSqlBackendSupportsOuterJoin be, Projectible be a, Projectible be b, ThreadRewritable (QNested s) a, ThreadRewritable (QNested s) b, Retaggable (QExpr be s) (WithRewrittenThread (QNested s) s a), Retaggable (QExpr be s) (WithRewrittenThread (QNested s) s b)) => Q be db (QNested s) a -> Q be db (QNested s) b -> ((WithRewrittenThread (QNested
2021-02-12 14:34:06 +0100 <dminuoso> s) s a, WithRewrittenThread (QNested s) s b) -> QExpr be s SqlBool) -> Q be db s (Retag Nullable (WithRewrittenThread (QNested s) s a), Retag Nullable (WithRewrittenThread (QNested s) s b))
2021-02-12 14:34:12 +0100 <dminuoso> Good luck!
2021-02-12 14:34:21 +0100 <merijn> dminuoso: But it's typesafe!
2021-02-12 14:34:41 +0100 <merijn> I'd rather just write tests for my manual queries :p
2021-02-12 14:34:59 +0100 <merijn> you know, if I wrote tests to begin with >.>
2021-02-12 14:35:06 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:53e8:7f49:1e5f:691)
2021-02-12 14:36:15 +0100 <dminuoso> Snoyman described it really well in one of his recent blog articles
2021-02-12 14:36:24 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 14:36:36 +0100 <dminuoso> https://www.snoyman.com/blog/2020/11/haskell-bad-parts-2/ down the section titled "Hubris"
2021-02-12 14:37:23 +0100jamm__(~jamm@unaffiliated/jamm)
2021-02-12 14:37:42 +0100 <Franciman> LOL
2021-02-12 14:38:05 +0100 <Franciman> is snoyman the author of persistent too?
2021-02-12 14:38:31 +0100 <dminuoso> Yeah, but I'd argue this fact is irrelevant here.
2021-02-12 14:39:00 +0100 <Franciman> sure
2021-02-12 14:39:02 +0100 <Franciman> why not
2021-02-12 14:39:03 +0100irchazwell_(~IRCHaxwel@2a00:23a8:4382:a900:8bf:2df2:112c:f379) (Ping timeout: 265 seconds)
2021-02-12 14:39:08 +0100 <Franciman> yes it is irrelevant
2021-02-12 14:39:10 +0100 <Franciman> just asking
2021-02-12 14:39:17 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 14:39:18 +0100 <Franciman> I read his tutorial on persistent
2021-02-12 14:40:23 +0100 <dminuoso> My point is just, burying something in the type system just for the sake of having it in the type system should not be the goal
2021-02-12 14:40:50 +0100 <dminuoso> It usually comes at the cost of readability of code and sanity when deciphering complex compiler diagnostics.
2021-02-12 14:41:02 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2021-02-12 14:41:36 +0100 <Franciman> I think that programming as a whole is essentially flawed
2021-02-12 14:41:43 +0100forgottenone(~forgotten@176.42.25.228)
2021-02-12 14:41:46 +0100 <merijn> Snooyman is the original author of persistent
2021-02-12 14:41:58 +0100 <merijn> He's basically not involved in current maintenance/development
2021-02-12 14:42:09 +0100pera(~pera@unaffiliated/pera)
2021-02-12 14:42:28 +0100 <dminuoso> Having a type safe SQL language just means a *certain* class of bugs is absent. There's still an awful lot of ways for the code to do the wrong thing. beam cant help you with any of these:
2021-02-12 14:42:38 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:53e8:7f49:1e5f:691) (Ping timeout: 264 seconds)
2021-02-12 14:43:18 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:fdee:4ba2:d966:c97a)
2021-02-12 14:43:38 +0100 <pjb> Franciman: yes, but we haven't found a replacement yet.
2021-02-12 14:43:56 +0100 <dminuoso> I feel like Haskell programming is a constant juggling about how much I can encode into the type system without hindering code ergonomics and readability
2021-02-12 14:44:07 +0100Deide(~Deide@217.155.19.23)
2021-02-12 14:44:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 14:44:16 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 14:44:21 +0100 <dminuoso> Encode a possible failure? Then `Maybe` has a good annoyance-to-performance ratio.
2021-02-12 14:45:39 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 14:45:42 +0100 <dminuoso> Do I make a separate data type here? Maybe encode invariants as phantom type tags?
2021-02-12 14:46:27 +0100Major_Biscuit(~Major_Bis@x065156.citg-m.tudelft.nl)
2021-02-12 14:47:15 +0100 <Franciman> <pjb> Franciman: yes, but we haven't found a replacement yet. <- to what?
2021-02-12 14:48:43 +0100 <dminuoso> To programming.
2021-02-12 14:49:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
2021-02-12 14:49:15 +0100 <Franciman> oh
2021-02-12 14:49:17 +0100 <Franciman> ehe
2021-02-12 14:50:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 14:51:54 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 246 seconds)
2021-02-12 14:55:42 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-12 14:55:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-12 14:57:28 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-csedumvwrelmlxyd)
2021-02-12 14:59:40 +0100 <merijn> I don't suppose the Haskell Foundation page has a bugtracker somewhere?
2021-02-12 15:00:49 +0100 <merijn> Because it's probably not intended to be *entirely* broken with cookies disabled >.>
2021-02-12 15:01:31 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 272 seconds)
2021-02-12 15:03:12 +0100 <Uniaika> > GET https://haskell.foundation/favicon.ico 404
2021-02-12 15:03:13 +0100 <Uniaika> ah!
2021-02-12 15:03:13 +0100 <lambdabot> error:
2021-02-12 15:03:13 +0100 <lambdabot> • Data constructor not in scope: GET :: t1 -> t0
2021-02-12 15:03:14 +0100 <lambdabot> • Perhaps you meant ‘GT’ (imported from Data.Ord)error: Variable not in ...
2021-02-12 15:03:47 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-12 15:06:48 +0100 <merijn> Uniaika: http://files.inconsistent.nl/screenshot1.png
2021-02-12 15:07:02 +0100 <Uniaika> bloody hell
2021-02-12 15:07:06 +0100 <merijn> It can't even load images: http://files.inconsistent.nl/screenshot2.png
2021-02-12 15:07:20 +0100 <Uniaika> send a screenshot of your browser console?
2021-02-12 15:07:37 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 15:08:38 +0100 <hpc> needs https :P
2021-02-12 15:08:38 +0100carlomagno(~cararell@148.87.23.12) (Remote host closed the connection)
2021-02-12 15:08:52 +0100carlomagno(~cararell@148.87.23.8)
2021-02-12 15:09:00 +0100 <merijn> hpc: What does?
2021-02-12 15:09:08 +0100 <hpc> files.inconsistent.nl
2021-02-12 15:09:34 +0100 <Uniaika> it's hosted on user.fm
2021-02-12 15:09:36 +0100 <merijn> hpc: That's just the free webspace offered by my mail provider
2021-02-12 15:09:44 +0100 <hpc> ah
2021-02-12 15:10:24 +0100 <merijn> Well, with a custom domain pointing at it, but I mainly use it as convenient personal pastebin/image host :p
2021-02-12 15:10:43 +0100 <merijn> Uniaika: Looks like react is handling things...very gracefully: http://files.inconsistent.nl/screenshot3.png
2021-02-12 15:10:54 +0100usr25(~J@93.red-83-43-59.dynamicip.rima-tde.net)
2021-02-12 15:12:23 +0100 <Uniaika> merijn: oof, just activate localStorage mate :p
2021-02-12 15:12:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 15:12:37 +0100 <merijn> tbh, the entire page looks like it could just be static html, so I don't understand why the insanity leading to this rendering is even necessary
2021-02-12 15:12:42 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
2021-02-12 15:14:07 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 15:14:12 +0100 <merijn> Uniaika: It's not disabled afaik/can see in the settins, just blocking all not whitelisted cookies
2021-02-12 15:17:20 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-02-12 15:20:05 +0100vilpan(~0@212.117.1.172) ()
2021-02-12 15:20:28 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-12 15:22:14 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-12 15:22:48 +0100 <Uniaika> merijn: it' not a cookie problem, it's localStorage
2021-02-12 15:22:51 +0100 <Uniaika> another API
2021-02-12 15:23:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 15:24:02 +0100geekosaur(82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
2021-02-12 15:25:26 +0100 <merijn> Uniaika: Yes, but Chrome seems to block localStorage when cookies are blocked
2021-02-12 15:26:04 +0100 <Uniaika> haha
2021-02-12 15:26:10 +0100 <Uniaika> merijn: try with FF?
2021-02-12 15:26:55 +0100Wuzzy(~Wuzzy@p57a2e574.dip0.t-ipconnect.de)
2021-02-12 15:27:03 +0100aramend_(~aramend@5.186.115.107.cgn.fibianet.dk)
2021-02-12 15:27:29 +0100 <merijn> Uniaika: I mean, I can make it work by enabling cookies, but I don't actually care enough about their site to enable cookies for it
2021-02-12 15:28:02 +0100 <merijn> I don't negotiate with terrorists^H^H^H^H^H^H^bad website builders
2021-02-12 15:28:09 +0100 <hc> haha, true merijn
2021-02-12 15:28:11 +0100 <Uniaika> topos: ^
2021-02-12 15:28:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 15:28:33 +0100 <danza> about partial functions in Haskell, i changed perspective after reading the "denotational semantics" chapter of the wikibook. I started to think that partial functions can be idiomatically handled in Haskell, and refining a partial definition can be used as a development methodology
2021-02-12 15:29:50 +0100 <liyang> oh yah half my functions are defined in terms of undefined
2021-02-12 15:30:13 +0100 <danza> then i started using `undefined` and found it quite powerful
2021-02-12 15:30:22 +0100 <Uniaika> it's quite powerful during development cycle
2021-02-12 15:31:10 +0100aramend(~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 256 seconds)
2021-02-12 15:31:26 +0100 <danza> it's powerful and idiomatic and totally unsafe. Maybe some of my assumptions were wrong before getting to this
2021-02-12 15:31:48 +0100aramend_(~aramend@5.186.115.107.cgn.fibianet.dk) (Ping timeout: 246 seconds)
2021-02-12 15:31:52 +0100 <liyang> danza: are half of your typesigs `_` too?
2021-02-12 15:32:11 +0100 <liyang> (Which admittedly is not quite the same as `undefined`.)
2021-02-12 15:32:18 +0100 <danza> :D nope, yet it's handy once in a while
2021-02-12 15:32:55 +0100 <merijn> Uniaika: Call me crazy, but my cookie allow list is probably <100 entries and I try and manually audit entries on there every so often, you better be offering some real value before I enable them :)
2021-02-12 15:33:22 +0100 <merijn> danza: Why undefined, rather than typed holes?
2021-02-12 15:33:29 +0100 <merijn> > (1 :: Int) + _
2021-02-12 15:33:35 +0100 <lambdabot> error:
2021-02-12 15:33:35 +0100 <lambdabot> • Found hole: _ :: Int
2021-02-12 15:33:35 +0100 <lambdabot> • In the second argument of ‘(+)’, namely ‘_’
2021-02-12 15:33:46 +0100 <merijn> _ is strictly better than undefined
2021-02-12 15:33:57 +0100 <Uniaika> undefined compiles ;)
2021-02-12 15:33:58 +0100 <liyang> keepin' it oldskool
2021-02-12 15:34:03 +0100 <merijn> Uniaika: So does _
2021-02-12 15:34:07 +0100 <merijn> Uniaika: -fdefer-typed-holes
2021-02-12 15:34:17 +0100 <Uniaika> ah, didn't know that one
2021-02-12 15:34:24 +0100 <merijn> Uniaika: Nobody seems too
2021-02-12 15:34:36 +0100 <Uniaika> nope
2021-02-12 15:34:42 +0100 <merijn> I didn't slave away on my first GHC patch a decade ago for my flag to go ignored >.<
2021-02-12 15:34:51 +0100 <liyang> (But appreciated the reminder, merijn. :)
2021-02-12 15:35:28 +0100 <liyang> `-fignore-defer-type-holes`
2021-02-12 15:35:30 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-02-12 15:35:38 +0100 <merijn> Uniaika: Hell, if you use -fdefer-typed-holes the resulting crash will give you a source location, unlike undefined!
2021-02-12 15:36:02 +0100 <merijn> liyang: type holes and typed holes, despite similar names are pretty much unrelated :p
2021-02-12 15:36:45 +0100 <liyang> I noticed that and wondered if anyone else would, but figured s/type/&d/ wasn't worth the noise.
2021-02-12 15:37:47 +0100geekosaur(82650c7a@130.101.12.122)
2021-02-12 15:37:59 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-02-12 15:38:09 +0100mem3r[m](mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx)
2021-02-12 15:38:18 +0100 <danza> i just use `undefined` in my own experimental code. Typed holes seem indeed like a good alternative for safer code... my point was a different one though... that somehow Haskell embeds both easy bottom production and elimination, so maybe it's just a different way to look at the program where partial functions are still very common but somewhat less scary
2021-02-12 15:38:57 +0100 <merijn> danza: I mean, GHC Haskell gives you about 2 dozen different unsafe ways to break purity
2021-02-12 15:39:07 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
2021-02-12 15:40:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 15:41:08 +0100 <swarmcollective> Are there safe ways to break purity? :)
2021-02-12 15:41:47 +0100 <merijn> Depends on your definition of safe, way, break, and purity :p
2021-02-12 15:41:56 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com)
2021-02-12 15:42:47 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-12 15:42:52 +0100 <swarmcollective> My first thought was s/break/escape, but that result seems somehow backwards.
2021-02-12 15:43:35 +0100bennofs__(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 15:43:42 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-02-12 15:44:05 +0100 <geekosaur> depending on how you think about it, ST enables that.
2021-02-12 15:44:16 +0100 <Feuermagier> swarmcollective, no. every time you break purity a child is sacrificed by an object orientated programmer
2021-02-12 15:44:57 +0100 <merijn> I've murdered so many children, then...
2021-02-12 15:45:34 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-12 15:45:53 +0100swarmcollectivecan't stop laughing (and crying at the potential for that to be somewhat true)
2021-02-12 15:45:58 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 15:47:01 +0100 <nshepperd2> to break purity safely: just don't mess up :p
2021-02-12 15:47:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: http://files.inconsistent.nl/what-are-you-supposed-to-be.jpg)
2021-02-12 15:51:45 +0100bennofs__(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-02-12 15:53:47 +0100geekosaur(82650c7a@130.101.12.122) (Quit: Connection closed)
2021-02-12 15:54:35 +0100l8star(~l8star@business-90-187-113-149.pool2.vodafone-ip.de) (Remote host closed the connection)
2021-02-12 15:55:04 +0100mem3r[m]mem3r
2021-02-12 15:55:30 +0100mem3r(mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx) (Changing host)
2021-02-12 15:55:30 +0100mem3r(mem3rmatri@unaffiliated/svn)
2021-02-12 15:55:30 +0100mem3r(mem3rmatri@unaffiliated/svn) (Changing host)
2021-02-12 15:55:30 +0100mem3r(mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx)
2021-02-12 15:56:40 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 15:56:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 15:57:54 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 15:58:04 +0100son0p(~son0p@181.58.39.182) (Ping timeout: 240 seconds)
2021-02-12 15:58:19 +0100juri_(~juri@178.63.35.222) (Ping timeout: 256 seconds)
2021-02-12 15:58:22 +0100ezzieyguywufatezzieyguywuf
2021-02-12 15:58:37 +0100 <ulidtko|k> hmmmmm
2021-02-12 15:58:41 +0100ulidtko|kulidtko
2021-02-12 15:58:49 +0100 <ulidtko> this guy says: https://thma.github.io/posts/2021-01-30-How-QuickCheck-destroyed-my-favourite-theory.html
2021-02-12 15:58:56 +0100 <ulidtko> > In abstract algebra, a monoid is a set equipped with an associative binary operation and an identity element.
2021-02-12 15:58:57 +0100 <lambdabot> <hint>:1:20: error: <hint>:1:20: error: parse error on input ‘,’
2021-02-12 15:59:18 +0100 <ulidtko> which gets me confused
2021-02-12 15:59:28 +0100 <ulidtko> isn't this the same definition as a group?
2021-02-12 15:59:37 +0100DamienCassou(damiencass@gateway/shell/matrix.org/x-uynpprvpuvzncoug)
2021-02-12 16:00:26 +0100 <yushyin> ulidtko: group also has an inverse element
2021-02-12 16:00:59 +0100 <ulidtko> ahhhh. indeed!
2021-02-12 16:01:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 16:01:42 +0100raym(~ray@45.64.220.98) (Quit: leaving)
2021-02-12 16:01:58 +0100raym(~ray@45.64.220.98)
2021-02-12 16:02:01 +0100 <ulidtko> https://en.wikipedia.org/wiki/Semigroup#/media/File:Magma_to_group4.svg should print myself a sticker with this diagram
2021-02-12 16:03:01 +0100atezzieyguywufezzieyguywuf
2021-02-12 16:03:04 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 16:06:12 +0100Jd007(~Jd007@162.156.11.151)
2021-02-12 16:10:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 16:10:57 +0100miuon(44ad48b1@cpe-68-173-72-177.nyc.res.rr.com)
2021-02-12 16:11:04 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
2021-02-12 16:11:07 +0100miuon(44ad48b1@cpe-68-173-72-177.nyc.res.rr.com) (Client Quit)
2021-02-12 16:11:14 +0100netsoundW1(~netsoundW@185.163.110.108)
2021-02-12 16:14:01 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net)
2021-02-12 16:14:46 +0100mizu_no_oto(~textual@cpe-66-66-222-11.rochester.res.rr.com) (Quit: Computer has gone to sleep.)
2021-02-12 16:14:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 16:17:00 +0100toorevitimirp(~tooreviti@117.182.180.8) (Remote host closed the connection)
2021-02-12 16:17:33 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-02-12 16:17:40 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
2021-02-12 16:20:08 +0100juri_(~juri@178.63.35.222)
2021-02-12 16:21:36 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Quit: Leaving)
2021-02-12 16:23:07 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43)
2021-02-12 16:27:04 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
2021-02-12 16:27:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 16:29:24 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64)
2021-02-12 16:32:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 16:34:09 +0100conal(~conal@64.71.133.70) (Ping timeout: 264 seconds)
2021-02-12 16:35:01 +0100conal(~conal@107.181.166.164)
2021-02-12 16:35:20 +0100 <hpc> that would make a neat physical object to have around too
2021-02-12 16:35:55 +0100 <hpc> as a cube with some representative structures at each corner
2021-02-12 16:36:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 16:37:21 +0100whitten(c75a9d0b@199.90.157.11)
2021-02-12 16:37:46 +0100ulidtko|k(~ulidtko@31.133.98.210)
2021-02-12 16:38:09 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it)
2021-02-12 16:39:02 +0100 <whitten> hello #Haskell. I've been told that the programming language Haskell provides backtracking similarly to the Prolog programming language.   How would I find a discussion of this, and the limits of it ?
2021-02-12 16:39:27 +0100conal_(~conal@64.71.133.70)
2021-02-12 16:39:38 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 264 seconds)
2021-02-12 16:40:08 +0100thc202(~thc202@unaffiliated/thc202)
2021-02-12 16:40:10 +0100conal(~conal@107.181.166.164) (Ping timeout: 265 seconds)
2021-02-12 16:40:43 +0100ulidtko(~ulidtko@194.54.80.38) (Read error: Connection reset by peer)
2021-02-12 16:41:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 16:41:41 +0100 <whitten> I've also been told that Haskell can do backtracking but only by Haskell implementing a prolog interpreter
2021-02-12 16:42:16 +0100 <whitten> Does anyone know about where to learn about Haskell backtracking ?
2021-02-12 16:42:16 +0100 <lortabac> whitten: in Haskell you can emulate non-determinism with lists
2021-02-12 16:43:01 +0100 <lortabac> but contrarily to Prolog, it's not built-in behavior
2021-02-12 16:43:45 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
2021-02-12 16:44:08 +0100 <whitten> so if you have an emulation of non-determinism with a list, can you have a list which is lazy evaluated ?  Maybe with the end of the list containing a "future continuation" to calculate more answers if called ?
2021-02-12 16:44:30 +0100 <lortabac> yes, laziness is what allows emulating non-determinism in Haskell
2021-02-12 16:45:43 +0100Ishutin_(~Ishutin@178-164-208-197.pool.digikabel.hu) (Remote host closed the connection)
2021-02-12 16:45:45 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 16:45:52 +0100 <lortabac> whitten: this is an article that I wrote on my company's blog, you can find some examples there https://medium.com/vptech/a-practical-introduction-to-constraint-programming-2037c91833ba
2021-02-12 16:46:09 +0100 <sclv> whitten: https://hackage.haskell.org/package/logict
2021-02-12 16:51:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
2021-02-12 16:51:43 +0100 <lortabac> whitten: that said, you cannot do logic programming easily in Haskell (unless you implement Prolog as a library, but that's the case for any language)
2021-02-12 16:53:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 16:53:13 +0100son0p(~son0p@181.58.39.182)
2021-02-12 16:54:26 +0100 <whitten> Wow!   Thanks for the links (GRIN)
2021-02-12 16:54:31 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Remote host closed the connection)
2021-02-12 16:54:44 +0100Feuermagier(~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
2021-02-12 16:56:36 +0100borne(~fritjof@83.135.92.91) (Ping timeout: 265 seconds)
2021-02-12 16:57:18 +0100usr25(~J@93.red-83-43-59.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
2021-02-12 16:57:23 +0100ixaxaar(~ixaxaar@49.207.197.94)
2021-02-12 16:58:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 16:58:16 +0100minoru_shiraeesh(~shiraeesh@5.101.59.132)
2021-02-12 17:00:11 +0100AmitLevy[m](amitmostly@gateway/shell/matrix.org/x-nixsvyyufgklkpzb) (Quit: Idle for 30+ days)
2021-02-12 17:00:32 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-12 17:06:43 +0100kuribas(~user@ptr-25vy0i94cz0gl50t8i4.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-02-12 17:08:16 +0100 <whitten> so you don't have all the extra-logical things like CUT (!) as it interacts with backtracking ?
2021-02-12 17:08:55 +0100pricly_yellow(~pricly_ye@static.90.189.158.212.sinor.ru) (Ping timeout: 272 seconds)
2021-02-12 17:09:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 17:14:29 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 17:16:00 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
2021-02-12 17:16:18 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 17:16:20 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
2021-02-12 17:16:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 17:17:06 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-02-12 17:19:23 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-12 17:20:42 +0100aggin(~ecm@103.88.87.92)
2021-02-12 17:21:33 +0100bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 264 seconds)
2021-02-12 17:22:42 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 17:24:51 +0100 <pja> Haskell doesn’t have anything equivalent to cut built in to the language.
2021-02-12 17:24:57 +0100CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) (Remote host closed the connection)
2021-02-12 17:25:02 +0100 <c_wraith> whitten: not within list. list is not the greatest form of non-determinism, though. Using it results in a depth-first search, which may be quite bad for your particular problem.
2021-02-12 17:25:13 +0100 <pja> You’d have to write a Prolog style evaluator yourself.
2021-02-12 17:26:42 +0100 <c_wraith> It looks like LogicT provides some related tools
2021-02-12 17:26:54 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net)
2021-02-12 17:27:15 +0100 <c_wraith> along with using a non-determinism strategy that is less depth-first
2021-02-12 17:28:49 +0100hiptobecubic(~john@unaffiliated/hiptobecubic)
2021-02-12 17:28:58 +0100 <pja> There’s https://hackage.haskell.org/package/monoid-absorbing-0.1.0.4/docs/Data-List-Cut.html
2021-02-12 17:30:05 +0100cmcma20(~cmcma20@l37-192-2-125.novotelecom.ru) (Remote host closed the connection)
2021-02-12 17:31:23 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Client Quit)
2021-02-12 17:31:29 +0100 <c_wraith> That package is pretty old - it predates the AMP
2021-02-12 17:31:43 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net)
2021-02-12 17:31:45 +0100minoru_shiraeesh(~shiraeesh@5.101.59.132) (Ping timeout: 264 seconds)
2021-02-12 17:31:54 +0100 <c_wraith> and hasn't been updated since
2021-02-12 17:32:30 +0100 <c_wraith> It has a (Functor m, Monad m) constraint listed in the docs!
2021-02-12 17:32:59 +0100 <pja> Wow. That is old!
2021-02-12 17:33:22 +0100 <pja> Even older: this paper from FLOPS95 :) https://www.cs.york.ac.uk/plasma/publications/pdf/MatsushitaRuncimanFLOPS95.pdf
2021-02-12 17:33:51 +0100 <pja> on implementing Prolog features in Haskell; contains some discussion of various interpretations of Cut & how they show up in functional code.
2021-02-12 17:33:59 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-12 17:36:05 +0100juuandyy(~juuandyy@90.106.228.121)
2021-02-12 17:36:21 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vsagpjpzhwerujij)
2021-02-12 17:36:34 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 17:37:29 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-12 17:38:49 +0100jamm__(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-12 17:39:01 +0100aggin(~ecm@103.88.87.92) (Quit: WeeChat 3.0.1)
2021-02-12 17:40:47 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-12 17:41:40 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-qvbndnpfxrzxkdhr)
2021-02-12 17:42:26 +0100saitamaplus(uid272474@gateway/web/irccloud.com/x-temxuccrtcofhywg)
2021-02-12 17:43:19 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
2021-02-12 17:43:29 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Client Quit)
2021-02-12 17:44:06 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Remote host closed the connection)
2021-02-12 17:44:31 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f)
2021-02-12 17:46:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-12 17:49:08 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-02-12 17:51:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-12 17:55:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 17:56:37 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 17:56:38 +0100xcmw(~textual@dyn-72-33-2-47.uwnet.wisc.edu)
2021-02-12 17:57:57 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-02-12 17:59:59 +0100whitten(c75a9d0b@199.90.157.11) (Quit: Connection closed)
2021-02-12 18:00:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 18:00:34 +0100whitten(c75a9d0b@199.90.157.11)
2021-02-12 18:02:40 +0100geekosaur(42d52137@66.213.33.55)
2021-02-12 18:03:28 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-02-12 18:03:30 +0100whitten(c75a9d0b@199.90.157.11) (Client Quit)
2021-02-12 18:04:11 +0100 <geekosaur> isn't there a Haskell-like logic language, though? (Mercury I think?)
2021-02-12 18:04:16 +0100 <Franciman> yes
2021-02-12 18:04:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 18:06:10 +0100alx741(~alx741@186.178.110.40)
2021-02-12 18:07:35 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2021-02-12 18:08:05 +0100lawid(~quassel@dslb-090-186-199-090.090.186.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-02-12 18:09:28 +0100lawid(~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de)
2021-02-12 18:09:38 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
2021-02-12 18:12:40 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 18:12:45 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
2021-02-12 18:14:06 +0100ania123(5e89ad7c@94.137.173.124)
2021-02-12 18:14:31 +0100ania123(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-02-12 18:14:51 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-02-12 18:15:02 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-12 18:15:45 +0100 <giogiogio> hi all
2021-02-12 18:18:05 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
2021-02-12 18:19:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 18:21:25 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer)
2021-02-12 18:22:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 18:22:37 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-12 18:23:24 +0100mem3r(mem3rmatri@gateway/shell/matrix.org/x-ppyfejfxeldedgmx) ("User left")
2021-02-12 18:24:58 +0100 <dolio> There was Curry, too, which was a sort of hybrid, I think.
2021-02-12 18:25:20 +0100 <giogiogio> is Curry alive?
2021-02-12 18:25:29 +0100 <dolio> Not that I know of.
2021-02-12 18:25:39 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-12 18:26:03 +0100 <giogiogio> :)
2021-02-12 18:26:08 +0100 <giogiogio> :(
2021-02-12 18:26:34 +0100 <sclv> Haskell Brooks Curry (September 12, 1900 – September 1, 1982)
2021-02-12 18:27:00 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-02-12 18:27:07 +0100 <sclv> oh lmao i didn't know birkhoff was his advisor!!
2021-02-12 18:27:49 +0100 <sclv> birkhoff advised an entire freaking generation of basic mathematics
2021-02-12 18:27:51 +0100 <sclv> stunning
2021-02-12 18:28:00 +0100conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-12 18:29:15 +0100vchlup(~vchlup@2a00:102a:5005:7a38:e57c:c364:6921:7c4f) (Ping timeout: 272 seconds)
2021-02-12 18:30:25 +0100rajivr(uid269651@gateway/web/irccloud.com/x-gpwnjnvfhvelcuhe) (Quit: Connection closed for inactivity)
2021-02-12 18:30:29 +0100conal(~conal@64.71.133.70)
2021-02-12 18:33:07 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 18:34:22 +0100tabemann(~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 260 seconds)
2021-02-12 18:41:02 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-02-12 18:46:41 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Remote host closed the connection)
2021-02-12 18:46:55 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-12 18:48:17 +0100tremon(~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-02-12 18:49:09 +0100bahamas(~lucian@unaffiliated/bahamas)
2021-02-12 18:51:33 +0100juuandyy(~juuandyy@90.106.228.121) (Ping timeout: 264 seconds)
2021-02-12 18:51:45 +0100minoru_shiraeesh(~shiraeesh@5.101.59.127)
2021-02-12 18:52:09 +0100nckx(~nckx@tobias.gr) (Ping timeout: 264 seconds)
2021-02-12 18:53:38 +0100juuandyy(~juuandyy@90.106.228.121)
2021-02-12 18:54:34 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-12 18:57:36 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
2021-02-12 18:59:28 +0100danza(~francesco@151.53.65.193) (Quit: Leaving)
2021-02-12 19:05:34 +0100Synthetica(uid199651@gateway/web/irccloud.com/x-lrtvuqebgbvyegmr)
2021-02-12 19:06:27 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-12 19:07:09 +0100Major_Biscuit(~Major_Bis@x065156.citg-m.tudelft.nl) (Ping timeout: 264 seconds)
2021-02-12 19:09:18 +0100bahamas(~lucian@unaffiliated/bahamas) (Quit: leaving)
2021-02-12 19:09:27 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-02-12 19:10:27 +0100kmein(~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
2021-02-12 19:10:42 +0100kmein(~weechat@static.173.83.99.88.clients.your-server.de)
2021-02-12 19:10:42 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-02-12 19:10:49 +0100usr25(~J@93.red-83-43-59.dynamicip.rima-tde.net)
2021-02-12 19:12:43 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 19:15:07 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-12 19:17:17 +0100usr25(~J@93.red-83-43-59.dynamicip.rima-tde.net) (Quit: Bye)
2021-02-12 19:19:11 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-12 19:19:17 +0100ph88(~ph88@2a02:8109:9e00:7e5c:f87d:231f:92a3:5029) (Ping timeout: 272 seconds)
2021-02-12 19:20:06 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 19:20:07 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-12 19:20:49 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Client Quit)
2021-02-12 19:22:21 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-12 19:22:29 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-12 19:24:35 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 256 seconds)
2021-02-12 19:26:16 +0100 <my_name_is_not_j> Hello, I wanted to check if my understanding of this syntax was correct; does `import Module.Name DataType(..)` just import all of the constructors of `DataType` or does it do something more/something else? I tried to google this using "import haskell two dots" but I didn't get any results..
2021-02-12 19:26:42 +0100 <dminuoso> my_name_is_not_j: constructors, instances and fields
2021-02-12 19:26:44 +0100 <my_name_is_not_j> * Hello, I wanted to check if my understanding of this syntax was correct; does `import Module.Name (DataType(..))` just import all of the constructors of `DataType` or does it do something more/something else? I tried to google this using "import haskell two dots" but I didn't get any results..
2021-02-12 19:28:29 +0100 <my_name_is_not_j> By "instances", do you mean the type classes that the data type inherits from? So if I import a `data` that is a type instance of `Eq`, `Eq` is automatically imported too? (actually this might be a bad example since `Eq` is probably included in Prelude)
2021-02-12 19:28:42 +0100 <lyxia> my_name_is_not_j: The Haskell Report has that kind of information https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-1010005.3
2021-02-12 19:29:42 +0100giogiogio(5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
2021-02-12 19:30:19 +0100 <dminuoso> my_name_is_not_j: All instances from the module.
2021-02-12 19:30:32 +0100 <geekosaur> my_name_is_not_j, actually instances are imported regardless of qualification or listing. and that means any typeclass instances declared in the imported module
2021-02-12 19:31:03 +0100 <my_name_is_not_j> But `(..)` does not automatically also import all the parent type classes? So I noticed if a type class implements `Default`, I had to import `def` separately. Is this unnecessary or did I do something wrong?
2021-02-12 19:31:10 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-12 19:31:16 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 265 seconds)
2021-02-12 19:31:27 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-12 19:31:39 +0100hyiltiz(~quassel@31.220.5.250)
2021-02-12 19:31:39 +0100hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-02-12 19:31:39 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-02-12 19:32:31 +0100 <my_name_is_not_j> I guess I'm just not entirely sure what the word "instances" means in this context. I thought it means parent type classes, but maybe I am using the wrong vocabulary
2021-02-12 19:32:41 +0100 <my_name_is_not_j> * I guess I'm just not entirely sure what the word "instances" means in this context. I thought it meant parent type classes, but maybe I am using the wrong vocabulary
2021-02-12 19:33:14 +0100 <geekosaur> typeclasses are not OO
2021-02-12 19:33:16 +0100shaprawakens
2021-02-12 19:33:23 +0100 <dminuoso> my_name_is_not_j: A typeclass is "a bag of types", or "a protocol/interface"
2021-02-12 19:33:47 +0100shaprstuffs more types in his bag
2021-02-12 19:33:55 +0100 <dminuoso> my_name_is_not_j: An `instance declaration` says that a particular type belongs to that class (think of the word class as "set" for which a type can belong to), or alternatively, it conforms to the said protocol/interface.
2021-02-12 19:34:00 +0100 <koz_> shapr is sneaking out with a Santa sack of types.
2021-02-12 19:34:34 +0100 <dminuoso> Under the hood, an instance in GHC is compiled into a record of functions/values. So importing instances amounts to bringing these records into scope.
2021-02-12 19:35:15 +0100 <dminuoso> Say you want to compare two things `a` and `b` of type `T` for equality, then you need to have the `instance Eq T` in scope in order to use `a == b`
2021-02-12 19:35:57 +0100nckx(~nckx@tobias.gr)
2021-02-12 19:37:41 +0100l8star_(~l8star@business-90-187-113-149.pool2.vodafone-ip.de)
2021-02-12 19:39:28 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 19:41:26 +0100 <my_name_is_not_j> Under the hood, these instances are records of functions/value, so in this case is it okay to think of it like Eq has one big record indicating which things it is an interface to, and once you import `T(..)`, this record is updated to add `T` to it?
2021-02-12 19:42:28 +0100 <dminuoso> Yeah, that sounds adequate
2021-02-12 19:42:33 +0100 <my_name_is_not_j> Maybe more like the "set" of types that `Eq` has been implemented with is added to?
2021-02-12 19:42:36 +0100 <my_name_is_not_j> OK
2021-02-12 19:42:43 +0100 <dminuoso> Yes! That last summary is spot on
2021-02-12 19:43:03 +0100 <dminuoso> i.e. "Maybe more like the "set" of types that `Eq` has been implemented with is added to"
2021-02-12 19:43:56 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2021-02-12 19:43:57 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43) (Quit: WeeChat 2.3)
2021-02-12 19:45:11 +0100 <my_name_is_not_j> OK, and when you said `T(..)` also imports all of its "fields", do you mean the getters for the Constructor? Usually from what I have seen, Constructors are like one giant record, and each named field acts as a getter. So does importing all the "fields" mean you are importing all the getters for the fields in the record?
2021-02-12 19:45:33 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Ping timeout: 264 seconds)
2021-02-12 19:45:48 +0100 <my_name_is_not_j> I guess "getter" is more OOP terminology lol...
2021-02-12 19:45:49 +0100 <dminuoso> my_name_is_not_j: Interesting bit, if we look at ZF set theory, then the term "class" is a sort of "synonym" to "set" (its used to so we can have "classes of sets", while forbidding sets to contain sets and classes to contain classes)
2021-02-12 19:46:12 +0100 <dminuoso> And it's possible that `class` is used in a similar sense in Haskell
2021-02-12 19:46:31 +0100 <koz_> dminuoso: Do Haskell types not form a set or something?
2021-02-12 19:46:59 +0100 <koz_> I guess 'Type' is not disjoint from any of its members.
2021-02-12 19:47:08 +0100 <dminuoso> In Hask, types are sets yeah
2021-02-12 19:47:20 +0100 <dminuoso> (that is, Hask is a subcategory of Set)
2021-02-12 19:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 19:47:31 +0100 <koz_> Yeah, but sets don't form a set.
2021-02-12 19:47:37 +0100 <koz_> Something something Russel's Paradox.
2021-02-12 19:47:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 19:47:51 +0100 <dminuoso> my_name_is_not_j: Yes, "the getters for the constructors". Note, we can also update records using fields, and we can construct them with fields too.
2021-02-12 19:48:15 +0100 <dminuoso> koz_: Right. That's pretty much why ZF set theory was created.
2021-02-12 19:48:29 +0100 <dminuoso> (Next to type theory, both designed to avoid russels paradox)
2021-02-12 19:48:42 +0100 <boxscape> koz_ there is no set of all sets, but there may not be one type for every set, so there may yet be a set of all types
2021-02-12 19:48:57 +0100 <koz_> boxscape: Figures.
2021-02-12 19:49:03 +0100 <koz_> Russel's Paradox is why we can't have nice things.
2021-02-12 19:49:10 +0100 <boxscape> (in particular, algebraic data types are only countably infinite)
2021-02-12 19:49:18 +0100 <my_name_is_not_j> Oh nice, I've never heard of ZF set theory but I have done Peano arithmetic before (seems like PA is referenced in ZF's wikipedia article)
2021-02-12 19:49:38 +0100 <my_name_is_not_j> ZF set theory sounds like a stronger version of PA
2021-02-12 19:49:39 +0100 <dminuoso> my_name_is_not_j: For instance, if we have `data User = User { name :: Text, age :: Int }` then we can create a value using `f = User { name = "Robert", age = 17 }`
2021-02-12 19:49:39 +0100 <boxscape> koz_ I imagine the whole `Type :: Type` thing breaks everything though anyway
2021-02-12 19:50:42 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 240 seconds)
2021-02-12 19:50:45 +0100 <koz_> boxscape: Yeah, that's what I meant when I said that Type is not disjoint from any of its elements.
2021-02-12 19:50:52 +0100 <dminuoso> my_name_is_not_j: Or, alternatively, we can chance a records field like this: `f user = user{ age = 19 }`
2021-02-12 19:50:53 +0100 <boxscape> ah, right, makes sense
2021-02-12 19:50:58 +0100 <dminuoso> my_name_is_not_j: So, we call them "fields"
2021-02-12 19:51:00 +0100 <koz_> Which breaks... some axiom of ZFC I can't be bothered to look up right now.
2021-02-12 19:51:17 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-12 19:51:26 +0100 <dminuoso> boxscape: Well, its well known that TypeInType gives you an unsound logic.
2021-02-12 19:51:38 +0100 <dminuoso> So all bets are off, anyway. :P
2021-02-12 19:51:59 +0100 <boxscape> dminuoso I'm not sure anyone has actually proven that is the case *in haskell*, though I would certainly be very surprised if it wasn't
2021-02-12 19:52:05 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
2021-02-12 19:52:59 +0100 <boxscape> (and of course haskell is unsound in other ways as well)
2021-02-12 19:53:37 +0100 <dminuoso> boxscape: Of course someone has.
2021-02-12 19:53:46 +0100 <koz_> boxscape: The fact that Haskell is unsound in other ways is one of the reasons Type :: Type got adopted.
2021-02-12 19:54:01 +0100 <koz_> (not the primary or exclusive one, but I recall hearing it as a counter-argument to its unsoundness)
2021-02-12 19:54:07 +0100 <my_name_is_not_j> thanks dminuoso! I think I get it now :)
2021-02-12 19:54:21 +0100 <boxscape> yeah, goldfire wrote that in his thesis I believe
2021-02-12 19:54:29 +0100swarmcollectiveis reminded of the misery encountered when trying to mistakenly reinvent pattern matching using the typeOf function.
2021-02-12 19:54:40 +0100 <dminuoso> Well, he actually cited another publication that proved it
2021-02-12 19:54:56 +0100 <dminuoso> ean-Yves Girard. Interprétation fonctionnelle et élimination des coupures del’arithmétique d’ordre supérieur. PhD thesis, Université Paris 7, 1972
2021-02-12 19:55:56 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 19:55:58 +0100 <boxscape> dminuoso do you have the page number of the thesis handy where cites it?
2021-02-12 19:56:09 +0100 <koz_> Of course it's Girard, who else.
2021-02-12 19:59:15 +0100fresheyeball(~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com)
2021-02-12 19:59:44 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815)
2021-02-12 19:59:48 +0100 <boxscape> (main discussion is on page 63 apparently)
2021-02-12 20:00:07 +0100 <boxscape> interestingly he also writes "Despite the questionable reputation of the Type:Type axiom, languages with this feature have been proved type-safe for some time."
2021-02-12 20:00:22 +0100 <boxscape> (https://cs.brynmawr.edu/~rae/papers/2016/thesis/eisenberg-thesis.pdf)
2021-02-12 20:00:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
2021-02-12 20:01:42 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-02-12 20:01:51 +0100 <koz_> boxscape: Does that include dependently-typed ones?
2021-02-12 20:01:55 +0100roconnor(~roconnor@host-104-157-194-235.dyn.295.ca) (Remote host closed the connection)
2021-02-12 20:02:12 +0100roconnor(~roconnor@host-104-157-194-235.dyn.295.ca)
2021-02-12 20:02:19 +0100 <dminuoso> boxscape: "type safety" is something different entirely than an unsound logic
2021-02-12 20:02:22 +0100 <boxscape> koz_ he cites "Luca Cardelli. A polymorphicλ-calculus with Type:Type.", which doesn't sound dependently typed I suppose
2021-02-12 20:02:26 +0100 <boxscape> dminuoso ah, interesting
2021-02-12 20:03:00 +0100 <minoru_shiraeesh> boxscape: what does "being proved for some time" mean? is something is proved, it is proved from that time till the eternity
2021-02-12 20:03:04 +0100 <dminuoso> boxscape: Pierce defines type safety as progress + preservation, for instance.
2021-02-12 20:03:27 +0100 <dminuoso> boxscape: So Id have to read the context first, what Eisenberg meant
2021-02-12 20:03:33 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-12 20:03:41 +0100 <minoru_shiraeesh> * if something is proved, it is proved from that time till the eternity
2021-02-12 20:03:55 +0100 <dminuoso> (Where progress means well-typed terms are not stuck, and preservation means a one-step evaluation gives another well typed term)
2021-02-12 20:04:14 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-02-12 20:04:45 +0100 <koz_> dminuoso: Is the 'type safety = progress + preservation' the generally-accepted definition?
2021-02-12 20:04:47 +0100 <dmwit> Pierce doesn't define type safety as progress+preservation, and in fact frequently rants about people that believe that's the definition. Progress+preservation is one proof technique for showing that a language is type-safe.
2021-02-12 20:04:56 +0100 <boxscape> minoru_shiraeesh I imagine he worded it this way to indicate that it was proved type-safe for some languages in the past and may yet be proved type safe for others
2021-02-12 20:05:01 +0100 <koz_> Lol, never mind, got my answer.
2021-02-12 20:05:38 +0100 <Franciman> +1 dmwit
2021-02-12 20:06:05 +0100 <koz_> dmwit: How does Pierce define it?
2021-02-12 20:06:21 +0100 <dminuoso> dmwit: Mmm, perhaps the chapter name "Type Safety = proress + preservation" is really misleading then.
2021-02-12 20:06:35 +0100 <dmwit> A well-typed program doesn't go wrong. (The meaning of "go wrong" varies from language to language, just like "well-typed" does.)
2021-02-12 20:06:36 +0100 <dminuoso> dmwit: I do understand what you're saying.
2021-02-12 20:06:48 +0100 <Franciman> in those chapters go wrong = get stuck
2021-02-12 20:06:50 +0100 <Franciman> usually
2021-02-12 20:07:11 +0100 <dmwit> I guess it's also possible that Pierce rants about it now because it was a mistake he cured himself of in the past. ^_^
2021-02-12 20:07:43 +0100 <dminuoso> dmwit: And in fact, Pierce has a footnote "The slogan “safety is progress plus preservation” (using a canonical forms lemma) was articulated by Harper; a variant was proposed by Wright and Felleisen (1994)."
2021-02-12 20:07:52 +0100 <dminuoso> So it's confusing at least.
2021-02-12 20:08:08 +0100 <dmwit> Right. Usually you first define what terms are values. Then you say that a well-typed term always keeps having a possible evaluation step unless it's already a value.
2021-02-12 20:08:25 +0100 <Franciman> and it does not change types :P
2021-02-12 20:08:36 +0100 <dmwit> Changing types might be okay!
2021-02-12 20:08:45 +0100 <Franciman> isn't it the preservation part?
2021-02-12 20:09:05 +0100 <dmwit> It is. The whole claim I'm making is that preservation is not part of the definition.
2021-02-12 20:09:15 +0100 <dminuoso> So, asking something not-so-obvious.. what exactly does "well-typed" mean now?
2021-02-12 20:09:21 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
2021-02-12 20:09:28 +0100 <Franciman> there is a proof that it has a type
2021-02-12 20:09:33 +0100 <dmwit> Usually "well-typed" means "there is a typing judgment".
2021-02-12 20:09:34 +0100 <Franciman> according to rules
2021-02-12 20:10:02 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-12 20:10:04 +0100 <dminuoso> dmwit: Ah! It was my bad, Pierce is very inconsistent with using a hyphen here.
2021-02-12 20:10:20 +0100 <dminuoso> `A term t is typable (or well typed) if there is some T such that t : T`
2021-02-12 20:10:45 +0100 <dminuoso> brrr. I need a pdf reader with better fuzzy searching
2021-02-12 20:12:07 +0100 <lyxia> I wonder if all this talk of terms and types and stuckness might be clouding things conceptually. well-typed = the compiler has a built-in static analysis and that analysis run on your program says OK ; safety = the static analysis rules out a certain class of failures.
2021-02-12 20:12:45 +0100 <dmwit> mmm
2021-02-12 20:13:02 +0100 <dmwit> Minor nitpick: I think there are systems where typability is not decidable.
2021-02-12 20:13:16 +0100 <lyxia> That's fair
2021-02-12 20:13:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-12 20:13:26 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-12 20:13:36 +0100 <dmwit> But yes, the big thrust is right.
2021-02-12 20:14:37 +0100 <minoru_shiraeesh> isn't unit (I mean `()`) an example of Type:Type thing?
2021-02-12 20:15:25 +0100 <dmwit> Not... really?
2021-02-12 20:15:52 +0100 <dmwit> I mean, Type is the main example of Type:Type.
2021-02-12 20:15:55 +0100geekosaur(42d52137@66.213.33.55)
2021-02-12 20:16:36 +0100 <dmwit> Maybe the confusion is because () :: ()? But then it stops there; () :: (() :: Type).
2021-02-12 20:16:46 +0100 <koz_> Terms are not types (yet)
2021-02-12 20:16:47 +0100 <minoru_shiraeesh> so unit is something else: it is a type with only one value
2021-02-12 20:16:55 +0100 <dmwit> It's just syntactic overloading. You would have the same language if you named them UnitComputation and UnitType.
2021-02-12 20:17:07 +0100 <minoru_shiraeesh> they just look the same in text form
2021-02-12 20:17:12 +0100 <dmwit> right
2021-02-12 20:17:58 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 20:18:44 +0100 <electricityZZZZ> so when i read that seL4 was hand-transcribed from haskell to C, can somebody give me an idea of what was done?
2021-02-12 20:19:05 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-12 20:19:30 +0100fissureman(~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 20:20:03 +0100fissureman(~quassel@c-73-163-84-25.hsd1.dc.comcast.net)
2021-02-12 20:21:00 +0100 <dmwit> Oh, and scrolling back a bit: set theory is not sufficient for making a model of Hask-the-category. Polymorphism screws everything up.
2021-02-12 20:22:45 +0100 <dmwit> (Intuitive explanation: the type `forall a. a -> a` would have to be, like, a function that took a set and produced the identity function for that set. But if you could have that, then you could have the set of all sets just by taking the first part of each pair in that outer function.)
2021-02-12 20:23:13 +0100 <dmwit> (You have to be more careful than that, obviously; that only shows that *one* way of trying to embed Hask in SET doesn't work. But it has been proven that no way can exist.)
2021-02-12 20:25:00 +0100 <minoru_shiraeesh> if you decide to represent types with tuples and then you represent the empty tuple's type with the empty tuple itself, then it would be both a value and a type at the same time
2021-02-12 20:25:27 +0100juuandyy(~juuandyy@90.106.228.121) (Ping timeout: 246 seconds)
2021-02-12 20:25:43 +0100 <dmwit> Suppose I agree. Then what?
2021-02-12 20:25:57 +0100 <monochrom> "That way lies madness."
2021-02-12 20:26:52 +0100 <dmwit> Just because the same set represents both a term and that term's type doesn't mean that the type-version's type is itself.
2021-02-12 20:26:56 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-12 20:27:06 +0100 <minoru_shiraeesh> idk, it's theoretically possible to make unit a Type:Type thing
2021-02-12 20:27:14 +0100juuandyy(~juuandyy@90.106.228.121)
2021-02-12 20:27:41 +0100puke(~vroom@217.138.252.197)
2021-02-12 20:27:53 +0100 <dmwit> Sure, we could do it by defining () = Type, e.g.
2021-02-12 20:28:01 +0100 <minoru_shiraeesh> or maybe I'm confusing the abstract notion of type with it's low-level representation, which is irrelevant
2021-02-12 20:28:01 +0100 <dminuoso> minoru_shiraeesh: I think you're just observing the basis of singletons.
2021-02-12 20:28:02 +0100 <dmwit> But that's not the way Haskell works.
2021-02-12 20:28:14 +0100 <dminuoso> Namely that if you have a singleton value with a singleton type, you can go between them seamlessly
2021-02-12 20:28:24 +0100 <dminuoso> (i.e. there's a sort of cross-universe isomorphism)
2021-02-12 20:28:34 +0100ixaxaar(~ixaxaar@49.207.197.94) (Remote host closed the connection)
2021-02-12 20:28:35 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243)
2021-02-12 20:28:45 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815) (Quit: WeeChat 1.9.1)
2021-02-12 20:28:48 +0100 <dminuoso> (err, if you have a singleton value, then you can go towards the type and back again)
2021-02-12 20:28:57 +0100 <dminuoso> but that does not make the value the type
2021-02-12 20:29:46 +0100 <dmwit> Challenge problem: you want to have a type-level data structure and a term-level representation of it. What goes wrong if you term-level representation has more than just one inhabitant that represents the same type (but all the types have at least one representation)?
2021-02-12 20:30:17 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2021-02-12 20:30:43 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
2021-02-12 20:30:57 +0100alexelcu(~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-12 20:31:14 +0100 <dmwit> e.g. `data SBool a where SFalse :: SBool False; STrue :: SBool True; SFileNotFound :: SBool False`
2021-02-12 20:31:33 +0100alexelcu(~alexelcu@142.93.180.198)
2021-02-12 20:32:04 +0100juuandyy(~juuandyy@90.106.228.121) (Ping timeout: 256 seconds)
2021-02-12 20:32:17 +0100 <merijn> dmwit: Is this "the map is not the territory" for dependent types? >.>
2021-02-12 20:32:44 +0100giogiogio(5e89ad7c@94.137.173.124)
2021-02-12 20:32:46 +0100 <dmwit> I like that interpretation! ^_^
2021-02-12 20:33:36 +0100 <merijn> I wasn't entirely sure it made sense, but then I decided I'm too tired to care whether it was wise, deep insight or meaningless gobbledy-gook
2021-02-12 20:33:46 +0100whitten(c75a9d0b@199.90.157.11)
2021-02-12 20:34:18 +0100 <merijn> It can go on monochrom's collection page :p
2021-02-12 20:34:56 +0100 <dmwit> Anyway, AFAIK nothing really "goes wrong". So I think we should talk about "injections" (or "surjections", depending on which way you think of the mapping going) instead of "singletons".
2021-02-12 20:36:01 +0100 <boxscape> what goes wrong if you're missing a value?
2021-02-12 20:36:05 +0100 <dmwit> "Singletons" does have the advantage of being pretty unambiguous, tho
2021-02-12 20:36:20 +0100hexagenic(~mattias@2001:2002:51e0:74c9:2d9e:2414:5749:9a98)
2021-02-12 20:36:23 +0100 <dmwit> If you're missing a value, it's possible that you can't reflect the result of some type-level computation back to the term level.
2021-02-12 20:36:30 +0100 <boxscape> I see
2021-02-12 20:38:44 +0100 <merijn> boxscape: Realistically, what happens is that you hate yourself for attempting to go the hasochism route :p
2021-02-12 20:38:55 +0100 <boxscape> yes I can see that happening
2021-02-12 20:39:59 +0100 <merijn> boxscape: That's a classic side-effects of hasochism/singletons ;)
2021-02-12 20:42:15 +0100 <dmwit> that too =P
2021-02-12 20:42:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 20:43:25 +0100 <Uniaika> merijn: can I get your feedback on something?
2021-02-12 20:43:44 +0100 <merijn> Uniaika: "It Depends" :p
2021-02-12 20:44:50 +0100 <Uniaika> merijn: https://gitlab.haskell.org/ghc/ghc/-/issues/19358
2021-02-12 20:46:53 +0100 <merijn> Uniaika: iirc (but, don't like, bet your house on it) all the input output functions convert from platform specific line endings to \n (and \n to platform specific newlines) on input/output
2021-02-12 20:47:16 +0100 <Uniaika> thank fuck I don't have a house then :')
2021-02-12 20:47:22 +0100 <Uniaika> thanks I'll try to see what getLine does
2021-02-12 20:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 20:47:26 +0100 <Uniaika> oh wait
2021-02-12 20:47:30 +0100 <Uniaika> I can ask on #ghc instead
2021-02-12 20:47:43 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-12 20:47:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 20:48:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Ping timeout: 264 seconds)
2021-02-12 20:50:06 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-12 20:50:06 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-12 20:50:06 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-12 20:50:45 +0100 <monochrom> By default, the I/O system shields you from "newline varies with platform".
2021-02-12 20:51:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 20:51:46 +0100 <monochrom> If you getChar you will get just one \n. If you want to output a newline you just write one \n. The RTS translates for you.
2021-02-12 20:51:57 +0100 <monochrom> This is not even GHC-specific. This is a Haskell Report requirement.
2021-02-12 20:52:23 +0100 <monochrom> unlines inserts \n only, and this is exactly right, you would not want otherwise.
2021-02-12 20:52:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 20:53:17 +0100giogiogio2(5e89ad7c@94.137.173.124)
2021-02-12 20:54:54 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-12 20:56:22 +0100giogiogio(5e89ad7c@94.137.173.124) (Ping timeout: 240 seconds)
2021-02-12 20:57:02 +0100 <monochrom> Especially when you use "unlines" for "interact".
2021-02-12 20:57:16 +0100__minoru__shirae(~shiraeesh@109.166.56.65)
2021-02-12 20:57:56 +0100minoru_shiraeesh(~shiraeesh@5.101.59.127) (Ping timeout: 240 seconds)
2021-02-12 20:58:28 +0100 <monochrom> The meta comment is, as usual, I'm surprised that the poster did not first think "let me actually test getChar or interact on Windows to see if \r\n actually slips through".
2021-02-12 21:01:49 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-12 21:02:28 +0100 <xsperry> IIRC it works the same as C, when file handle is set to text mode \r\n is converted to \n
2021-02-12 21:02:33 +0100 <xsperry> in C*
2021-02-12 21:02:59 +0100 <geekosaur> yes. and you use the "b" modifier with fopen or O_BINARY with open to not do that translation
2021-02-12 21:07:05 +0100knupfer(~Thunderbi@i5E86B4CE.versanet.de) (Ping timeout: 240 seconds)
2021-02-12 21:08:40 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-12 21:10:02 +0100 <__minoru__shirae> lol to hasochism
2021-02-12 21:10:18 +0100 <__minoru__shirae> does that mean "haskell masochism"?
2021-02-12 21:10:20 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-12 21:11:16 +0100 <monochrom> oh heh
2021-02-12 21:12:06 +0100 <merijn> __minoru__shirae: Yes, but also no
2021-02-12 21:12:33 +0100 <merijn> __minoru__shirae: Specifically, it's referring to a paper called "Hasochism" that showed how to do "improvised dependent types" in GHC Haskell
2021-02-12 21:12:54 +0100 <merijn> __minoru__shirae: But that name obviously derived from the masochism necessary to go through approach :p
2021-02-12 21:13:05 +0100raym(~ray@45.64.220.98) (Ping timeout: 240 seconds)
2021-02-12 21:13:19 +0100 <merijn> __minoru__shirae: http://homepages.inf.ed.ac.uk/slindley/papers/hasochism.pdf
2021-02-12 21:14:12 +0100 <merijn> Or...in the words of Jeff Goldblum
2021-02-12 21:14:30 +0100 <merijn> "Your scientists were so preoccupied with whether they could, they forgot to stop and think whether they should" :p
2021-02-12 21:16:52 +0100 <__minoru__shirae> now somebody should write a paper about haskell hedonism
2021-02-12 21:17:13 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 21:17:42 +0100lawid(~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de) (Quit: lawid)
2021-02-12 21:18:01 +0100 <__minoru__shirae> no, hedonism is not the opposite of masochism, it's the opposite of ascetism
2021-02-12 21:18:02 +0100fresheyeball(~isaac@ec2-35-155-97-88.us-west-2.compute.amazonaws.com) (Quit: WeeChat 2.9)
2021-02-12 21:18:25 +0100 <__minoru__shirae> haskell sadism? no
2021-02-12 21:18:43 +0100 <sm[m]> Haskell: Wearing the Velvet Shirt
2021-02-12 21:18:48 +0100 <geekosaur> haskell sadism is beam :)
2021-02-12 21:19:01 +0100 <Uniaika> haha
2021-02-12 21:19:08 +0100 <Uniaika> koz_ would agree
2021-02-12 21:19:30 +0100 <koz_> Don't even get me started.
2021-02-12 21:19:43 +0100lawid(~quassel@dslb-088-075-110-201.088.075.pools.vodafone-ip.de)
2021-02-12 21:20:10 +0100 <merijn> No offense to the authors, but I literally can't fathom the kind of person who would look at beam or squeal and go "ah, yes, now here's an API well-suited to robust and easily maintained software"
2021-02-12 21:20:39 +0100 <merijn> Like...are they martians who go lost on earth and failing to conceal their alien thinking from us? >.>
2021-02-12 21:21:13 +0100 <merijn> oh, wait
2021-02-12 21:21:15 +0100 <Uniaika> Squeal, I undersetand
2021-02-12 21:21:21 +0100 <merijn> Are they maybe homesick C++ programmers?
2021-02-12 21:21:25 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-02-12 21:21:26 +0100 <Uniaika> we used it for one service, at $previous_job
2021-02-12 21:21:44 +0100 <Uniaika> it encapsulates the SQL semantics and is very useful for *one particular type of business critical query*
2021-02-12 21:22:06 +0100 <Uniaika> if you stop halfway up, like any other "type-safe sql generator", there is no gain
2021-02-12 21:22:15 +0100 <Uniaika> I'd rather use postgresql-simple and write actual tests
2021-02-12 21:22:55 +0100 <merijn> Uniaika: My real life actions suggestion I'd rather use x-simple and not write tests xD
2021-02-12 21:23:37 +0100 <Uniaika> merijn: and you're paid for that? lucky you!
2021-02-12 21:24:17 +0100 <merijn> I am not >.>
2021-02-12 21:26:48 +0100howdoi(uid224@gateway/web/irccloud.com/x-xihpryoksnskstor)
2021-02-12 21:36:05 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vsagpjpzhwerujij) (Quit: Connection closed for inactivity)
2021-02-12 21:42:44 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-02-12 21:42:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-12 21:43:43 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
2021-02-12 21:45:59 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2021-02-12 21:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-12 21:47:44 +0100zebrag(~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
2021-02-12 21:48:09 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-12 21:51:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 21:53:28 +0100son0p(~son0p@181.58.39.182) (Quit: Lost terminal)
2021-02-12 21:56:58 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
2021-02-12 21:58:01 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-02-12 21:58:15 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-12 21:58:16 +0100 <hololeap> cabal question: would a dependency "ghcide <= 0.7.3" reject ghcide-0.7.3.0 ? this is what i just ran into
2021-02-12 21:58:43 +0100 <sclv> i think that the version numbers are such that x.0 is greater than x
2021-02-12 21:58:50 +0100 <geekosaur> yeh
2021-02-12 21:59:05 +0100 <geekosaur> it compares them lexically
2021-02-12 21:59:06 +0100 <sclv> don't think of it as decimals, think of it as "dot separated integers"
2021-02-12 21:59:19 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2021-02-12 21:59:24 +0100 <hololeap> ok, i'll let the maintainer know. just checking
2021-02-12 21:59:46 +0100 <sclv> this arises from not wanting them to be the same, (i.e. have equality be strict) and then you have to pick _some_ ordering and this one makes more sense than the alternative
2021-02-12 22:02:17 +0100son0p(~son0p@181.136.122.143)
2021-02-12 22:04:22 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-12 22:04:34 +0100son0p_(~son0p@181.136.122.143)
2021-02-12 22:04:45 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-12 22:06:54 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 265 seconds)
2021-02-12 22:08:12 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-02-12 22:09:18 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43)
2021-02-12 22:09:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-12 22:12:25 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-02-12 22:12:48 +0100mauro^(mauro@ip98-184-89-2.mc.at.cox.net) ()
2021-02-12 22:15:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d) (Remote host closed the connection)
2021-02-12 22:16:16 +0100rj(~x@gateway/tor-sasl/rj) (Quit: rj)
2021-02-12 22:16:37 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-12 22:19:02 +0100fendor_(~fendor@77.119.131.42.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-12 22:19:26 +0100fendor_(~fendor@77.119.131.42.wireless.dyn.drei.com)
2021-02-12 22:22:56 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
2021-02-12 22:24:46 +0100boxscape(4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Connection closed)
2021-02-12 22:27:35 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2021-02-12 22:27:43 +0100hexagenic(~mattias@2001:2002:51e0:74c9:2d9e:2414:5749:9a98) (Quit: WeeChat 1.9.1)
2021-02-12 22:34:23 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-02-12 22:37:07 +0100_bo(~bo@178.150.122.153)
2021-02-12 22:41:02 +0100 <giogiogio2> hi all
2021-02-12 22:41:09 +0100DataComputist(~lumeng@50.43.26.251) (Quit: Leaving...)
2021-02-12 22:41:17 +0100 <giogiogio2> f : R -> R
2021-02-12 22:41:24 +0100 <giogiogio2> x : int
2021-02-12 22:41:28 +0100 <Franciman> hi gio^{3}2
2021-02-12 22:41:38 +0100 <giogiogio2> f(x) : R
2021-02-12 22:41:40 +0100 <giogiogio2> ok?
2021-02-12 22:41:45 +0100 <giogiogio2> since Int  R
2021-02-12 22:41:53 +0100 <Franciman> I can not see the simbol
2021-02-12 22:41:58 +0100 <Franciman> Int is a subtype of R ?
2021-02-12 22:42:03 +0100 <giogiogio2> yes
2021-02-12 22:42:06 +0100 <Franciman> ok ^^
2021-02-12 22:42:21 +0100 <ephemient> ℤ⊂ℝ
2021-02-12 22:42:52 +0100 <giogiogio2> right
2021-02-12 22:43:10 +0100 <giogiogio2> f : R -> R
2021-02-12 22:43:23 +0100 <giogiogio2> x : S
2021-02-12 22:43:41 +0100styledash(~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat)
2021-02-12 22:43:41 +0100 <giogiogio2> S ~ R  where ~ is similarity relation
2021-02-12 22:43:48 +0100alx741(~alx741@186.178.110.40) (Quit: alx741)
2021-02-12 22:43:53 +0100 <giogiogio2> is, f(x) well typed?
2021-02-12 22:44:21 +0100styledash(~styledash@157.230.173.136)
2021-02-12 22:46:35 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-12 22:48:27 +0100dysfigured(~dysfigure@li490-89.members.linode.com) (Quit: I hate quit messages.)
2021-02-12 22:49:26 +0100 <giogiogio2> Franciman ?
2021-02-12 22:49:54 +0100 <Franciman> hi gio^{3}2
2021-02-12 22:50:06 +0100 <Franciman> uat is similarity relation?
2021-02-12 22:50:18 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b157:e532:1043:694d)
2021-02-12 22:50:35 +0100 <giogiogio2> assume, it is reflexive and symmetric
2021-02-12 22:50:49 +0100 <giogiogio2> assume, that two types are "close"
2021-02-12 22:50:50 +0100 <Franciman> but not transitive?
2021-02-12 22:50:52 +0100 <giogiogio2> to each other
2021-02-12 22:50:54 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net)
2021-02-12 22:50:59 +0100 <giogiogio2> not transitive
2021-02-12 22:51:18 +0100 <giogiogio2> ~ is a distance let say
2021-02-12 22:51:21 +0100 <Franciman> I haz no idea :<
2021-02-12 22:51:27 +0100 <Franciman> it depends on the typing rules
2021-02-12 22:51:30 +0100 <Franciman> do you got the typing rules?
2021-02-12 22:51:31 +0100loller_(uid358106@gateway/web/irccloud.com/x-fffioyebuytxyore)
2021-02-12 22:51:41 +0100 <giogiogio2> no
2021-02-12 22:52:17 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-12 22:53:24 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-02-12 22:54:30 +0100geekosaur(42d52137@66.213.33.55) (Quit: Connection closed)
2021-02-12 22:54:43 +0100dysfigured(dysfigured@2600:3c00::f03c:92ff:feb4:be75)
2021-02-12 22:55:05 +0100ezrakilty(~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
2021-02-12 22:57:17 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-02-12 22:57:38 +0100henninb(~henninb@63-228-50-251.mpls.qwest.net)
2021-02-12 22:57:54 +0100writenix(~quassel@151.189.63.94.rev.vodafone.pt)
2021-02-12 22:58:24 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-12 22:59:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-12 23:02:01 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-12 23:02:31 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-12 23:05:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 23:13:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-12 23:18:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-12 23:19:55 +0100greeem(bab72765@186.183.39.101)
2021-02-12 23:20:09 +0100davama(~davama@static-72-89-161-13.nycmny.fios.verizon.net) (Remote host closed the connection)
2021-02-12 23:20:16 +0100giogiogio2(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-02-12 23:21:21 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-02-12 23:21:24 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de) (Quit: No Ping reply in 180 seconds.)
2021-02-12 23:21:49 +0100swarmcollective(~joseph@cpe-65-31-18-174.insight.res.rr.com) (Quit: WeeChat 2.8)
2021-02-12 23:23:41 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-rekqucmexfsrpwoo) (Quit: Connection closed for inactivity)
2021-02-12 23:24:34 +0100son0p_(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-02-12 23:27:18 +0100rj(~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
2021-02-12 23:28:44 +0100writenix(~quassel@151.189.63.94.rev.vodafone.pt) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-02-12 23:29:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-12 23:30:21 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-12 23:30:37 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Client Quit)
2021-02-12 23:33:49 +0100greeem(bab72765@186.183.39.101) ()
2021-02-12 23:35:14 +0100danvet_(~danvet@212-51-149-181.fiber7.init7.net)
2021-02-12 23:37:44 +0100bennofs_(~quassel@dslb-094-222-083-015.094.222.pools.vodafone-ip.de)
2021-02-12 23:39:57 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-12 23:42:48 +0100Franciman(~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
2021-02-12 23:43:17 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-12 23:44:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-12 23:44:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-12 23:48:03 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-02-12 23:50:49 +0100henninb(~henninb@63-228-50-251.mpls.qwest.net) (Quit: leaving)
2021-02-12 23:52:03 +0100_bo(~bo@178.150.122.153) (Quit: Leaving)