Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-10 (liberachat/#haskell)

00:08:57 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
00:09:23 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
00:11:35 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
00:13:21 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
00:14:02 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
00:15:33 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:25:48 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
00:27:47 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
00:28:06 euandreh joins (~Thunderbi@189.6.18.7)
00:29:33 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
00:37:44 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
00:40:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
00:46:14 bratwurst joins (~dfadsva@2604:3d09:207f:f650::5b03)
00:48:52 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 252 seconds)
00:51:56 Aditya joins (~Aditya@182.69.193.180)
00:52:20 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e574:ea25:1127:161e) (Remote host closed the connection)
00:52:54 <Aditya> Hi! I'm taking CIS 194 2013, and need some help in verifying my solution to homework 8. Would really appreciate any help I can get!
00:52:55 <Aditya> https://www.reddit.com/r/haskell/comments/14vf5fj/cis_194_need_help_in_homework_8/
00:54:41 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::7fe) (Quit: Konversation terminated!)
00:56:37 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:56:37 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:56:37 wroathe joins (~wroathe@user/wroathe)
01:00:07 greentail_ joins (~greentail@2804:214:8138:acbf:d227:d151:8ed4:ed2)
01:00:52 × greentail quits (~greentail@user/clcuc) (Ping timeout: 240 seconds)
01:01:47 <monochrom> Yes it's totally DP on a tree.
01:05:08 × Aditya quits (~Aditya@182.69.193.180) (Ping timeout: 246 seconds)
01:09:51 euandreh joins (~Thunderbi@189.6.18.7)
01:11:40 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:17:48 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:19 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e574:ea25:1127:161e)
01:29:38 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
01:30:15 aforemny_ joins (~aforemny@i59F516FE.versanet.de)
01:31:12 × aforemny quits (~aforemny@2001:9e8:6ce6:bf00:5f8d:332e:63d8:1cdc) (Ping timeout: 240 seconds)
01:35:22 lainon joins (~textual@c-98-54-78-2.hsd1.al.comcast.net)
01:35:28 Inst__ joins (~Inst@2601:6c4:4081:2fc0:3d31:5858:1e60:ad46)
01:35:44 aforemny joins (~aforemny@i59F516C6.versanet.de)
01:36:32 × aforemny_ quits (~aforemny@i59F516FE.versanet.de) (Ping timeout: 246 seconds)
01:38:50 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:3d93:58ae:6f7f:58ed) (Ping timeout: 246 seconds)
01:40:05 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:40:18 × greentail_ quits (~greentail@2804:214:8138:acbf:d227:d151:8ed4:ed2) (Read error: Connection reset by peer)
01:44:28 greentail joins (~greentail@2804:214:82da:807f:92f2:a5f9:1071:9b3a)
01:46:16 × aforemny quits (~aforemny@i59F516C6.versanet.de) (Ping timeout: 245 seconds)
01:46:39 aforemny joins (~aforemny@2001:9e8:6cf2:5300:45aa:4dd1:3123:67f4)
01:48:33 × phma quits (~phma@2001:5b0:215a:da58:dcbf:27e8:323f:f6ce) (Read error: Connection reset by peer)
01:48:58 phma joins (phma@2001:5b0:215a:da58:9c8b:e5df:6a6f:34d2)
02:01:02 × Xe quits (~cadey@tailscale/xe) (Ping timeout: 258 seconds)
02:04:02 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
02:06:16 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
02:06:25 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
02:07:29 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:07:59 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Read error: Connection reset by peer)
02:08:05 machined1od joins (~machinedg@d198-53-218-113.abhsia.telus.net)
02:08:13 ec joins (~ec@gateway/tor-sasl/ec)
02:12:22 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
02:12:36 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
02:12:37 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:12:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:12:38 finn_elija is now known as FinnElija
02:13:53 × machined1od quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
02:14:11 × td_ quits (~td@i53870924.versanet.de) (Ping timeout: 245 seconds)
02:14:28 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
02:15:26 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:16:06 td_ joins (~td@i53870925.versanet.de)
02:17:53 × mei quits (~mei@user/mei) (Remote host closed the connection)
02:18:36 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
02:20:17 mei joins (~mei@user/mei)
02:28:25 DavSanchez joins (~davsanche@219.red-88-8-2.dynamicip.rima-tde.net)
02:28:47 × DavSanchez quits (~davsanche@219.red-88-8-2.dynamicip.rima-tde.net) (Client Quit)
02:30:47 Xe joins (~cadey@tailscale/xe)
02:31:19 × mmhat quits (~mmh@p200300f1c731a302ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.1)
02:31:29 <bratwurst> so to model a widget with internal state using reactive-banana i could use accumB?
02:32:03 <bratwurst> i don't know why i find this so hard. it seems so simple at first but when i get down to writing things it all falls apart
02:33:09 <bratwurst> i have pseudocode at https://pastebin.com/DgPfsMV3
02:34:08 <bratwurst> so instead of applyHandler i would use accumB
02:34:21 <bratwurst> maybe i should just call it a night. my brain tired
02:35:57 × lainon quits (~textual@c-98-54-78-2.hsd1.al.comcast.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
02:42:20 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
02:43:49 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
02:43:53 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
02:44:02 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
02:46:16 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
02:46:16 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
02:46:16 wroathe joins (~wroathe@user/wroathe)
02:56:24 × ddellacosta quits (~ddellacos@143.244.47.83) (Ping timeout: 246 seconds)
03:00:00 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.)
03:01:08 Taneb joins (~Taneb@runciman.hacksoc.org)
03:03:07 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 245 seconds)
03:09:00 ddellacosta joins (~ddellacos@143.244.47.100)
03:10:33 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
03:10:47 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e574:ea25:1127:161e) (Remote host closed the connection)
03:15:10 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 260 seconds)
03:19:11 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
03:21:20 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
03:23:18 aforemny_ joins (~aforemny@i59F516C7.versanet.de)
03:24:03 × aforemny quits (~aforemny@2001:9e8:6cf2:5300:45aa:4dd1:3123:67f4) (Ping timeout: 246 seconds)
03:24:19 bratwurst joins (~dfadsva@2604:3d09:207f:f650::5b03)
03:25:48 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:29:05 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 246 seconds)
03:48:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e574:ea25:1127:161e)
03:58:02 jsomedon joins (uid606872@id-606872.hampstead.irccloud.com)
04:00:23 × actioninja6 quits (~actioninj@user/actioninja) (Quit: see ya mane)
04:00:51 actioninja6 joins (~actioninj@user/actioninja)
04:10:48 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:17:00 gentauro joins (~gentauro@user/gentauro)
04:26:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
04:31:29 Daniel[m]1 joins (~danieltan@2001:470:69fc:105::3:6e5e)
04:41:52 qqq joins (~qqq@92.43.167.61)
04:43:32 × foul_owl quits (~kerry@71.212.137.212) (Ping timeout: 252 seconds)
04:45:31 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
04:45:31 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
04:45:32 dibblego joins (~dibblego@haskell/developer/dibblego)
04:56:15 foul_owl joins (~kerry@193.29.61.81)
05:07:12 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
05:07:59 Lycurgus joins (~juan@user/Lycurgus)
05:08:50 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
05:11:48 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
05:12:33 × falafel quits (~falafel@2603-7000-a700-8710-299a-43b3-78f1-709f.res6.spectrum.com) (Ping timeout: 246 seconds)
05:15:45 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
05:16:32 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
05:20:02 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
05:23:47 michalz joins (~michalz@185.246.207.193)
05:25:38 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
05:26:43 <Inst__> is Vec.take equivalent to Vec.slice?
05:26:51 <Axman6> what is Vec
05:28:30 <Inst__> import qualified Data.Vector as Vec
05:29:06 <Axman6> they're related, you can implement take using slice, but not the other way around (without drop)
05:29:29 <Inst__> slice makes a promise of not copying the underlying vector
05:29:33 <Inst__> but tbh it probably won't work if I tco it
05:29:42 <Inst__> because it'll still pass the vector around which isn't what i want
05:30:10 <Axman6> there's a function which expplicitly copies the data into a new vec of the right size IIRC
05:30:28 <Axman6> possibly called copy
05:30:49 califax joins (~califax@user/califx)
05:31:33 <Inst__> back to arguing with mr clojurian i guess
05:31:54 <Inst__> interesting observation based on multiple data points: people really don't get where clauses, it screws with their heads
05:32:09 <Axman6> hmm, maybe I am not remembering correctly, I might be thinking of bytrestring. copy for vector is slightly different
05:32:35 <Inst__> the python and rust version updates array index variables
05:33:30 <Axman6> https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector.html#v:force
05:33:55 <Axman6> of course, because they love to break your programs by using mutation. we get to make that explicit using MVector
05:34:30 <c_wraith> rust doesn't have one slice function. It has several, and the one you use depends on the ownership semantics you want, especially compared to ownership of the parent.
05:35:36 <Inst__> i mean i have a haskell accum param version using index variables being mutated via accumulating parameter version
05:35:56 <Inst__> *accumulating parameter recursion)
05:36:08 <Axman6> I'm not sure what that means, but if you're doing a lot of updates to a vector, you definitewly want to be using the ST monad
05:36:29 <Inst__> it' ssort of a toy example i'm arguing about, which mr clojure will never admit is more readable. The benefit is more, "where clauses are strange to conventional programmers"
05:36:49 <Inst__> https://blog.logrocket.com/rust-vs-python-could-rust-replace-python/
05:37:17 <Axman6> I think that is both nonsense, and superficial. it's not important and you shouldn't spend so much time trying to convince others they're wrong
05:38:10 <Inst__> it's more of a research project, i.e, he's a contrarian by nature and forces me to reexamine my assumptions
05:38:21 <Inst__> where clauses being strange I think is an important finding
05:38:22 <monochrom> You simply shouldn't read blogs in the first place.
05:38:28 <Axman6> if someone is so confused by such a simple concept as where clauses, then that's their problem. They make many functions much clearer, and can help a lot with the ideas of clean code
05:38:44 <Inst__> i don't mean it as an assault on where clauses, i prefer and love them myself
05:38:46 <Axman6> monochrom: even Don Stewart's? D: I learnt so much
05:39:00 <Inst__> but the point is more, for a traditionally trained programmer, where clauses present a challenge
05:39:11 <Inst__> because they're used to thinking sequentially
05:39:19 <monochrom> Rare exceptions. "The exception proves the rule." >:)
05:39:21 <Axman6> yes, as does declarative programming in general
05:39:32 <Axman6> monochrom: phew
05:39:52 <monochrom> Blogs are assumed garbage until proven golden.
05:40:08 <monochrom> Likewise for generally all of social media, all of internet.
05:40:24 <Inst__> i don't think that blog is useful, more, it was an opportunity to see how it'd look in Haskell, and potentially to benchmark vs Rust and Python with the toy examples
05:40:29 <monochrom> There are a few exception gems. If you come across them, cool. The rest, skip.
05:40:39 Inst__ is now known as Inst
05:42:04 <monochrom> I have spent my young days going to Usenet telling people why they're wrong. Time to recognize that it is a data sink, most humans are broken.
05:42:19 <Inst> but i guess the question is, when TCO is being applied, and you're cycling slices of a vector, is the vector copied every time, or are you just passing the array indices?
05:42:59 <monochrom> And even now I'm bothering to say all this, only because I'm taking a break from creating a midterm test, having finished a fun question.
05:43:03 <Inst> that is actually a productive and useful question; i.e, should we be passing array indices for this purpose, or does slice / take provide sufficient efficiency?
05:43:07 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
05:43:23 <Axman6> it depends on what you're doing to the vector. if you use any "modification" functions that return a new vector, then yes it is copied, if not, no, it'll be passing around a single pointer
05:44:11 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:44:12 <Inst> so as long as it's pure slice, it's equivalent to passing the array indices around
05:44:15 <Axman6> monochrom: I'd be interested to see the question, but I qould guess the liklihood of your students being here is high
05:44:34 <monochrom> I went to the linked Data.Vector doc page and did a ctrl-F "copy". Basically all functions there specify whether they copy or not. I don't think there is any rocket science left in this.
05:44:44 <Axman6> yes, slicing a vector allocates like four or five words
05:45:11 <monochrom> Oooohhhh sometimes it is true that even if they see the question now they're still toasted. >:D
05:46:06 <Inst> i really should stop using 4k monitor on 100% scaling
05:46:17 <Axman6> Hopefully some in the class will find it fun though, I probably would've been one of those students back in the day. I (evidently) loved my first Haskell course
05:46:40 <monochrom> That depends on whether it's 12-inch 4k or 120-inch 4k.
05:46:49 <Inst> 17 inch
05:46:51 × greentail quits (~greentail@2804:214:82da:807f:92f2:a5f9:1071:9b3a) (Ping timeout: 246 seconds)
05:47:20 <monochrom> That's like my 20th century CRT.
05:47:55 <monochrom> I thought today's minimum is like 24-inch esp. for 4k.
05:48:00 <Inst> i'm nerdy enough about screen ergonomics to fantasize about the day where laptops are replaced with a 23 inch flexscreen
05:48:53 <monochrom> Perhaps switch to a VR headset.
05:48:55 <Axman6> you can buy extra screens that attach to either side of your laptop's screen
05:49:16 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
05:49:25 <monochrom> Really? That is so clip-on. :)
05:49:40 <Inst> thanks for blowing my mind
05:49:52 <Inst> https://www.amazon.com/SOOMFON-Portable-Monitor-Extender-Display/
05:50:34 <Axman6> Linux Tech Tips had a review of one a few weeks ago, that endedup looking like a much more reasonable product than you're initially expect
05:53:55 <Inst> is there a connection between Lenovo and cool product ideas that never take off?
05:54:08 <Inst> like, you used to be able to buy a thinkpad with an integrated second screen in the W700DS line
05:55:07 nick4 joins (~nick@2600:8807:9084:7800:a561:1c80:7b95:a84)
05:59:35 × nick4 quits (~nick@2600:8807:9084:7800:a561:1c80:7b95:a84) (Ping timeout: 246 seconds)
05:59:56 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:03:10 trev joins (~trev@user/trev)
06:04:37 <jackdk> "Linux Tech Tips" <- be fair, they did a vid on TempleOS too
06:07:35 acidjnk joins (~acidjnk@p200300d6e7072f378113020857ee2821.dip0.t-ipconnect.de)
06:07:43 × jsomedon quits (uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
06:10:04 <nyc> There is some sort of problem with an inplace ghc and ghc-pkg check not passing.
06:11:46 Guest93 joins (~Guest93@162-228-244-199.lightspeed.tukrga.sbcglobal.net)
06:16:09 × Guest93 quits (~Guest93@162-228-244-199.lightspeed.tukrga.sbcglobal.net) (Quit: Client closed)
06:18:42 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 246 seconds)
06:21:38 euandreh joins (~Thunderbi@189.6.18.7)
06:25:24 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
06:27:22 Guest8058 joins (~finn@176-151-21-224.abo.bbox.fr)
06:27:49 <geekosaur> nyc, is that by any chance related to https://gitlab.haskell.org/ghc/ghc/-/issues/23594 ?
06:29:09 <nyc> I don't know, let me look.
06:29:38 <geekosaur> (ticket title refers to aarch64 but I think it was found to be more general?)
06:29:50 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
06:30:44 × dibblego quits (~dibblego@haskell/developer/dibblego) (Excess Flood)
06:30:52 <nyc> geekosaur: I'm trying to use an inplace ghc vs. a bindist.
06:35:08 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
06:35:08 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
06:35:08 dibblego joins (~dibblego@haskell/developer/dibblego)
06:43:00 Aditya joins (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
06:45:52 × xilo quits (~yourname@84.32.165.17) (Remote host closed the connection)
06:47:32 × mauke quits (~mauke@user/mauke) (Ping timeout: 246 seconds)
06:50:51 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
06:51:07 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
06:51:07 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
06:51:07 dibblego joins (~dibblego@haskell/developer/dibblego)
06:52:40 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
06:54:02 × Guest8058 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 260 seconds)
06:57:21 gurkenglas joins (~gurkengla@dynamic-046-114-183-037.46.114.pool.telefonica.de)
06:59:32 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
07:00:33 misterfish joins (~misterfis@46.44.172.198)
07:06:25 <nyc> geekosaur: There are files missing in the ‘base-4.16.4.0’ package, doesn't look good.
07:09:23 <Axman6> jackdk: uh, yes, Linus. They do quite a bit of content about open source os's, since they have so much data to store, they do a lot with the ones focused on chonky filesystems
07:14:04 titibandit joins (~titibandi@user/titibandit)
07:14:36 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
07:16:36 × gurkenglas quits (~gurkengla@dynamic-046-114-183-037.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
07:17:10 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:20:58 jsomedon joins (uid606872@id-606872.hampstead.irccloud.com)
07:27:42 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
07:29:16 berberman_ joins (~berberman@user/berberman)
07:30:35 × berberman quits (~berberman@user/berberman) (Ping timeout: 264 seconds)
07:32:08 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:33:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:34:05 berberman joins (~berberman@user/berberman)
07:35:12 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:35:23 × berberman_ quits (~berberman@user/berberman) (Ping timeout: 264 seconds)
07:35:24 ijqq_ joins (uid603979@id-603979.helmsley.irccloud.com)
07:35:42 fweht joins (uid404746@id-404746.lymington.irccloud.com)
07:35:52 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
07:37:43 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
07:39:09 CiaoSen joins (~Jura@2a05:5800:288:fd00:664b:f0ff:fe37:9ef)
07:43:02 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
07:43:03 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
07:43:03 dibblego joins (~dibblego@haskell/developer/dibblego)
07:43:28 × kimiamania6 quits (~681cf57f@user/kimiamania) (Ping timeout: 250 seconds)
07:47:53 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
07:48:33 kimiamania6 joins (~681cf57f@user/kimiamania)
07:48:43 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
07:48:43 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
07:48:44 dibblego joins (~dibblego@haskell/developer/dibblego)
07:49:10 Guest8058 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
07:51:58 fendor joins (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
07:52:11 × Aditya quits (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Ping timeout: 246 seconds)
07:53:43 ubert joins (~Thunderbi@178.115.41.81.wireless.dyn.drei.com)
07:57:15 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
08:00:10 × ubert quits (~Thunderbi@178.115.41.81.wireless.dyn.drei.com) (Quit: ubert)
08:01:47 zeenk joins (~zeenk@2a02:2f04:a00b:1800::7fe)
08:06:52 × drdo quits (~drdo@bl5-28-156.dsl.telepac.pt) (Ping timeout: 250 seconds)
08:07:39 alexherbo2 joins (~alexherbo@2a01cb000b1eec001411a588c41916b2.ipv6.abo.wanadoo.fr)
08:08:13 ubert joins (~Thunderbi@178.115.41.81.wireless.dyn.drei.com)
08:10:08 × phma quits (phma@2001:5b0:215a:da58:9c8b:e5df:6a6f:34d2) (Read error: Connection reset by peer)
08:11:28 phma joins (phma@2001:5b0:211f:7128:686c:a14f:dc50:817d)
08:11:29 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: No Ping reply in 180 seconds.)
08:11:49 danse-nr3 joins (~francesco@151.43.244.23)
08:12:00 drdo joins (~drdo@bl5-28-156.dsl.telepac.pt)
08:12:54 hrberg joins (~quassel@171.79-160-161.customer.lyse.net)
08:18:08 × misterfish quits (~misterfis@46.44.172.198) (Ping timeout: 250 seconds)
08:18:08 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 250 seconds)
08:18:59 TMA joins (tma@twin.jikos.cz)
08:19:49 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::7fe) (Remote host closed the connection)
08:20:11 zeenk joins (~zeenk@2a02:2f04:a00b:1800::fba)
08:22:35 × tv1 quits (~tv@user/tv) (Quit: derp)
08:22:48 tv joins (~tv@user/tv)
08:23:58 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
08:24:53 × hueso quits (~root@user/hueso) (Quit: hueso)
08:36:38 misterfish joins (~misterfis@87.215.131.102)
08:36:57 hueso joins (~root@user/hueso)
08:38:25 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
08:41:27 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
08:44:22 × rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 245 seconds)
08:45:06 Midjak joins (~Midjak@82.66.147.146)
08:46:14 mmhat joins (~mmh@p200300f1c731a302ee086bfffe095315.dip0.t-ipconnect.de)
08:51:18 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
08:53:19 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
08:57:52 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
09:00:19 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
09:04:15 × passiva quits (~passiva@bcdcac82.skybroadband.com) (Ping timeout: 246 seconds)
09:08:10 delYsid joins (~user@user/delYsid)
09:08:26 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:09:19 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
09:11:37 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
09:16:56 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
09:17:07 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
09:20:16 × dibblego quits (~dibblego@haskell/developer/dibblego) (Quit: λ)
09:21:03 × mmhat quits (~mmh@p200300f1c731a302ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.1)
09:21:16 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
09:23:38 dibblego joins (~dibblego@116.255.1.157)
09:23:38 × dibblego quits (~dibblego@116.255.1.157) (Changing host)
09:23:38 dibblego joins (~dibblego@haskell/developer/dibblego)
09:24:46 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
09:25:29 Pickchea joins (~private@user/pickchea)
09:26:08 × ubert quits (~Thunderbi@178.115.41.81.wireless.dyn.drei.com) (Quit: ubert)
09:27:43 × jsomedon quits (uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
09:27:59 × mei quits (~mei@user/mei) (Remote host closed the connection)
09:29:22 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
09:29:32 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
09:29:45 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:30:01 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
09:30:23 mei joins (~mei@user/mei)
09:32:37 Lord_of_Life_ is now known as Lord_of_Life
09:34:11 × Guest8058 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds)
09:39:57 tremon joins (~tremon@83.80.159.219)
09:40:08 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
09:40:14 × CiaoSen quits (~Jura@2a05:5800:288:fd00:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
09:44:44 lainon joins (~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd)
09:45:01 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
09:46:41 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 245 seconds)
09:47:06 passiva joins (~passiva@bcdcac82.skybroadband.com)
09:49:32 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
09:57:28 × alexherbo2 quits (~alexherbo@2a01cb000b1eec001411a588c41916b2.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
09:57:47 alexherbo2 joins (~alexherbo@2a01cb000b1eec001411a588c41916b2.ipv6.abo.wanadoo.fr)
09:58:15 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
10:02:38 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
10:02:41 __monty__ joins (~toonn@user/toonn)
10:03:30 Guest8058 joins (~finn@176-151-21-224.abo.bbox.fr)
10:04:19 CiaoSen joins (~Jura@2a05:5800:288:fd00:664b:f0ff:fe37:9ef)
10:05:09 × lainon quits (~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd) (Quit: My Mac has gone to sleep. ZZZzzz…)
10:06:23 razetime joins (~quassel@117.193.3.22)
10:08:36 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
10:12:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e574:ea25:1127:161e) (Remote host closed the connection)
10:12:56 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
10:14:39 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
10:19:28 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds)
10:25:23 talismanick joins (~user@76.133.152.122)
10:27:25 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
10:30:12 lainon joins (~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd)
10:32:54 × lainon quits (~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd) (Client Quit)
10:34:05 <danse-nr3> would you say the haskell community is hype-resistant?
10:36:55 ripspin joins (~chatzilla@1.145.246.16)
10:38:51 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
10:42:52 × danse-nr3 quits (~francesco@151.43.244.23) (Ping timeout: 250 seconds)
10:44:59 × Guest8058 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 264 seconds)
10:49:40 × talismanick quits (~user@76.133.152.122) (Remote host closed the connection)
10:56:44 <Inst> ummm, tbh, I'll stop criticizing the Haskell community, griping is often inaccurate and is not really helpful
10:56:49 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
10:57:37 <Inst> griping isn't going to make the Haskell community all come together, fix Accelerate, get Brick working on Windows, implement dependent types into GHC within 2 years, get HaskTorch working within 2 years, etc
10:58:14 <dminuoso> Before we get a fixed accelerate, brick on windows or dependent types... can I just have something THish with cross compilation first?
10:58:46 <Inst> Brick on Windows, if you check Github, is actually coming along quite well
10:59:05 <Inst> i'd give it another 6 months before beta version is ready
10:59:33 <Inst> I popped up to ask about ArrayFire, since it got recommended by Gabriella Gonzalez
10:59:48 <Inst> and it was updated recently on Hackage, is ArrayFire actually useful for ML tasks in Haskell?
10:59:59 <Inst> What's the tradeoffs vs tensorflow / pytorch (implicitly hasktorch)?
11:01:03 Guest8058 joins (~finn@176-151-21-224.abo.bbox.fr)
11:06:48 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
11:08:45 <delYsid> Wait, there is ongoing work to port Brick to Windows? Where can I donate?!
11:12:52 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
11:13:32 × shryke quits (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Quit: WeeChat 4.0.1)
11:13:33 elred joins (~root@user/elred)
11:13:39 <elred> has anyone good with logic read the haskell road to logic, math and programming who'd consider it a good book?
11:13:44 danse-nr3 joins (~francesco@151.43.244.23)
11:14:28 <Inst> https://github.com/jtdaugherty/brick/issues/445
11:14:40 <Inst> https://github.com/jtdaugherty/vty/issues/251
11:16:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Ping timeout: 240 seconds)
11:17:48 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
11:21:00 <danse-nr3> Inst, actually ... i did not mean to complain. Being hype-resistant is something positive to me
11:21:30 <Inst> i mean i'd claim that Haskellers tend to be a bit hypeful, but the fact that the hipster community has moved onto Rust has helped
11:22:25 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
11:23:12 <danse-nr3> XD
11:29:11 greentail joins (~greentail@189.40.91.203)
11:30:01 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
11:36:02 × acidjnk quits (~acidjnk@p200300d6e7072f378113020857ee2821.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
11:49:56 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
11:52:32 <Axman6> danse-nr3: the "avoid success at all costs" mantra has helped a lot. Most of us are quite happy for Haskell not to be the world's number one programming language, if people don't want to put the effort into learning it, that's their loss. Despite this, as a language it has been highly influential to other languages, and in many ways that's kind of the point of the language - to be a testbed for programming language research
11:54:48 delYsid parts (~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
11:58:21 jonathan joins (~jonathan@c83-252-3-92.bredband.tele2.se)
11:58:40 × danse-nr3 quits (~francesco@151.43.244.23) (Read error: Connection reset by peer)
11:58:56 danse-nr3 joins (~francesco@151.57.243.172)
11:59:55 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
12:00:57 <jonathan> If I use servant-client to create tests for my servant API, will those tests catch api regressions? Asking because I can see two scenarios: 1) servant-client automatically updates to match servant api (including changes to the JSON), potentially "masking" regressions 2) Servant-client needs to be manually updated to match latest api, with tests breaking in test-time (discovering any breaking changes)
12:01:30 <jonathan> (it might function in some other way, but I hope my question is clear enough)
12:05:29 rainbyte joins (~rainbyte@181.31.239.226)
12:12:02 <danse-nr3> thanks Axman6 ... i hope haskell is mature enough that being a testbed is not its main point :P ... then it can be particularly suited to research, that is true, but being a test for other languages is an uncomfortable position to have
12:12:29 <danse-nr3> jonathan, i think the client updates with the server, that is the point of servant. You might want to plan for interface versioning
12:13:40 mechap joins (~mechap@user/mechap)
12:15:18 <jonathan> Right. I'm sitting on a codebase with a lot of autoerived from/to json instances, making changes to data types a potential api breakage. As such I want regression tests to guard against accidents. I asked my question to check whether servant-client can help with this :)
12:15:43 <jonathan> I also think "pobably not", but I'll wait and see if someone knows for sure :)
12:26:04 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
12:27:23 × Guest8058 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
12:28:56 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 246 seconds)
12:30:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:30:51 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
12:32:42 acidjnk joins (~acidjnk@p200300d6e7072f37a5880f011a21b87c.dip0.t-ipconnect.de)
12:36:21 <probie> Is there an easy way to check bounds? e.g. if I specify `foo >= 1.2 && < 1.3` is there a tool to try building my library against every version of foo on hackage that's within those bounds that cabal can produce a build plan for?
12:36:25 <danse-nr3> jonathan, well if you have a separate package that depends on the former version of the data types, that could catch errors
12:40:10 <jonathan> So move Api.hs and all the data types into a separate package, use it in both prod and tests, with versioning?
12:43:22 <danse-nr3> it is just an idea. Maybe check how much effort it takes to spot one of those JSON errors with servant-client before ... you could work off another checkout of the repo
12:43:34 × kimiamania6 quits (~681cf57f@user/kimiamania) (Quit: PegeLinux)
12:43:59 <danse-nr3> probie, i am not aware of any
12:44:56 kimiamania6 joins (~681cf57f@user/kimiamania)
12:53:14 <__monty__> probie: I think Hackage runs some form of dependency matrix check. Note that the combinatorial explosion makes that pretty much unfeasible pragmatically.
12:55:52 × mechap quits (~mechap@user/mechap) (Ping timeout: 240 seconds)
12:59:22 × razetime quits (~quassel@117.193.3.22) (Ping timeout: 245 seconds)
13:00:20 razetime joins (~quassel@117.193.6.176)
13:01:19 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
13:01:39 <__monty__> probie: http://matrix.hackage.haskell.org/
13:05:32 × heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 240 seconds)
13:05:45 × finsternis quits (~X@23.226.237.192) (Ping timeout: 246 seconds)
13:06:14 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
13:06:15 finsternis joins (~X@23.226.237.192)
13:06:17 Aditya joins (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
13:06:29 heartburn joins (~gass@2a00:d880:3:1::b1e4:b241)
13:07:27 Aditya is now known as aditya211935
13:07:32 <aditya211935> Hi! I'm taking CIS 194 2013, and need some help in verifying my solution to homework 8. Would really appreciate any help I can get!
13:07:32 <aditya211935> https://www.reddit.com/r/haskell/comments/14vf5fj/cis_194_need_help_in_homework_8/
13:07:50 aditya211935 is now known as aditya
13:08:14 aditya is now known as aditya211935
13:08:18 <Inst> has anyone tried using arrayfire as a replacement for accelerate?
13:14:13 <__monty__> probie: Well, that page isn't loading for me so it's probably not very useful. Here's the code that should be driving it https://github.com/haskell-CI/hackage-matrix-builder Might only be a matrix across GHC versions though. But maybe you can base something off of it.
13:14:26 flounders joins (~flounders@24.246.133.1)
13:18:00 shryke joins (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd)
13:18:02 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
13:19:30 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 260 seconds)
13:21:46 barcisz joins (~barcisz@79.191.32.38.ipv4.supernova.orange.pl)
13:22:55 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
13:23:41 bratwurst joins (~dfadsva@2604:3d09:207f:f650::5b03)
13:24:46 mechap joins (~mechap@user/mechap)
13:28:11 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::5b03) (Ping timeout: 264 seconds)
13:34:45 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:40:30 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:40:30 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:40:30 wroathe joins (~wroathe@user/wroathe)
13:45:05 × aditya211935 quits (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Quit: Ping timeout (120 seconds))
13:45:26 Aditya joins (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
13:48:15 nick3 joins (~nick@wsip-174-78-110-18.pn.at.cox.net)
13:48:24 × Aditya quits (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Client Quit)
13:49:53 ystael joins (~ystael@user/ystael)
13:59:11 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
14:00:23 <danse-nr3> Inst, not really, but are they not quite different tools? Accelerate seems to be in native haskell. Cool project by the way
14:02:31 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
14:03:49 <Inst> accelerate the last i checked was broken for recent GHCs
14:06:15 <geekosaur> accelerate has lots of backends, doesn't it?
14:06:53 falafel joins (~falafel@cpe-24-102-77-214.nyc.res.rr.com)
14:08:44 falafel_ joins (~falafel@2603-7000-a700-8710-eb64-0ac1-9c05-0860.res6.spectrum.com)
14:09:08 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (Ping timeout: 240 seconds)
14:09:27 shriekingnoise joins (~shrieking@186.137.175.87)
14:11:16 × falafel quits (~falafel@cpe-24-102-77-214.nyc.res.rr.com) (Ping timeout: 245 seconds)
14:11:55 <danse-nr3> i think that there is another package for high dimensionality in haskell called repa
14:13:32 dmgk parts (~dmgk@user/dmgk) ()
14:15:17 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
14:16:08 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
14:17:18 <danse-nr3> geekosaur, yes it seems to have a couple of different backends distributed as external package addons https://hackage.haskell.org/package/accelerate
14:18:48 <Athas> I can't decide whether I think '--test-show-details=streaming' should be the default for 'cabal test'.
14:19:06 <Athas> On the one hand, it feels good to see a bunch of succesful tests scroll by. On the other hand, I do associate lack of output with success.
14:19:25 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
14:20:57 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
14:21:02 × alexherbo2 quits (~alexherbo@2a01cb000b1eec001411a588c41916b2.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds)
14:22:53 <danse-nr3> yeah, that is a common pattern for command line tools and it helps a lot. I am not sure ... sounds like an improvement
14:23:21 <Axman6> I'm a little scared; I made a pretty significant change to the ghc AArch64 backend, and the first time it compiled, all the tests passed D:
14:24:51 <danse-nr3> type safety works! Nah probably it is all untested
14:25:34 <Axman6> nah this is fundamental enough that things would segfault or produce invalid assembly if I got it really wrong
14:27:25 Guest55 joins (~Guest55@p200300ef9728cc30ee453a171b87db59.dip0.t-ipconnect.de)
14:29:55 <Athas> Axman6: you must have broken the test suite.
14:30:04 <Athas> The test suite uses the AArch64 backend too, right?
14:30:25 <Axman6> it's possible.. nah unliklely, I haven't written any tests (=
14:35:21 × CiaoSen quits (~Jura@2a05:5800:288:fd00:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
14:35:55 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
14:37:47 × Guest55 quits (~Guest55@p200300ef9728cc30ee453a171b87db59.dip0.t-ipconnect.de) (Quit: Client closed)
14:38:24 Guest8058 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
14:40:25 <zzz> self testing test suites <3
14:40:26 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
14:43:02 Sgeo joins (~Sgeo@user/sgeo)
14:49:04 <Athas> I wonder how hunit is tested.
14:49:38 × rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 252 seconds)
14:53:12 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
14:53:25 × acidjnk quits (~acidjnk@p200300d6e7072f37a5880f011a21b87c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
14:54:03 <zzz> XD https://github.com/hspec/HUnit
14:58:52 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
14:59:07 Aditya joins (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
15:00:04 ryantrinkle joins (~ryantrink@204.2.90.61)
15:03:25 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
15:04:55 misterfish joins (~misterfis@87.215.131.102)
15:05:04 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
15:05:41 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
15:06:00 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
15:07:23 ec_ joins (~ec@gateway/tor-sasl/ec)
15:08:18 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:08:29 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
15:10:01 mauke joins (~mauke@user/mauke)
15:10:26 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
15:10:49 × Aditya quits (~Aditya@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Quit: Client closed)
15:13:24 cheater joins (~Username@user/cheater)
15:16:26 × razetime quits (~quassel@117.193.6.176) (Ping timeout: 246 seconds)
15:17:08 razetime joins (~quassel@117.193.1.101)
15:19:12 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
15:22:22 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:23:13 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
15:24:06 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
15:24:54 thegeekinside joins (~thegeekin@189.217.90.138)
15:28:55 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
15:29:23 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:32:23 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 264 seconds)
15:33:50 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
15:34:04 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
15:38:42 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds)
15:39:16 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
15:40:57 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
15:48:13 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:49:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
15:50:59 ec_ is now known as ec
15:51:29 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:58:44 × danse-nr3 quits (~francesco@151.57.243.172) (Read error: Connection reset by peer)
15:58:55 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
15:59:26 danse-nr3 joins (~francesco@151.43.249.175)
16:01:16 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 245 seconds)
16:01:59 thegeekinside joins (~thegeekin@189.217.90.138)
16:02:42 jsomedon joins (uid606872@id-606872.hampstead.irccloud.com)
16:11:30 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
16:12:47 × danse-nr3 quits (~francesco@151.43.249.175) (Ping timeout: 246 seconds)
16:18:55 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
16:19:05 Guest|5 joins (~Guest|5@m20677150111.austincc.edu)
16:19:34 × Guest|5 quits (~Guest|5@m20677150111.austincc.edu) (Client Quit)
16:20:12 Psybur joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
16:20:56 gmg joins (~user@user/gehmehgeh)
16:25:05 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
16:25:56 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:26:02 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:28:20 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
16:35:20 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Remote host closed the connection)
16:45:30 alexherbo2 joins (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net)
16:46:11 × razetime quits (~quassel@117.193.1.101) (Remote host closed the connection)
16:46:44 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:48:10 notzmv joins (~zmv@user/notzmv)
16:49:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
16:49:14 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
16:51:49 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
16:53:48 lainon joins (~textual@c-98-54-78-2.hsd1.al.comcast.net)
16:54:27 × ripspin quits (~chatzilla@1.145.246.16) (Remote host closed the connection)
16:59:33 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
16:59:55 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
17:03:31 × alexherbo2 quits (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net) (Remote host closed the connection)
17:03:49 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
17:03:50 alexherbo2 joins (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net)
17:04:19 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
17:05:01 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
17:05:27 × alexherbo2 quits (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net) (Remote host closed the connection)
17:05:51 alexherbo2 joins (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net)
17:06:47 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:06:59 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:07:06 elain4_ joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
17:07:46 × elain4_ quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Client Quit)
17:09:34 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Ping timeout: 260 seconds)
17:11:23 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
17:15:56 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
17:21:58 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 250 seconds)
17:30:52 greentail_ joins (~greentail@2804:214:8138:acbf:d227:d151:8ed4:ed2)
17:31:19 × greentail quits (~greentail@189.40.91.203) (Remote host closed the connection)
17:37:14 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Remote host closed the connection)
17:38:18 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
17:38:31 danse-nr3 joins (~francesco@151.43.255.148)
17:41:00 slack1256 joins (~slack1256@191.125.135.105)
17:41:49 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::fba) (Quit: Konversation terminated!)
17:42:27 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
17:47:59 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:52:06 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds)
17:52:49 × JimL quits (~quassel@89.162.16.26) (Quit: No Ping reply in 180 seconds.)
17:54:11 JimL joins (~quassel@89.162.16.26)
17:54:17 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
17:55:50 acidjnk joins (~acidjnk@p200300d6e7072f37a5880f011a21b87c.dip0.t-ipconnect.de)
17:58:48 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
17:59:52 × dfg quits (~dfg@user/dfg) (Quit: I hate quit messages.)
18:01:00 dfg joins (~dfg@dfg.rocks)
18:01:00 × dfg quits (~dfg@dfg.rocks) (Changing host)
18:01:00 dfg joins (~dfg@user/dfg)
18:03:38 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
18:10:31 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
18:10:53 × mechap quits (~mechap@user/mechap) (Ping timeout: 246 seconds)
18:12:15 × jsomedon quits (uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
18:12:22 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
18:16:13 gurkenglas joins (~gurkengla@dynamic-046-114-179-181.46.114.pool.telefonica.de)
18:17:47 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
18:19:25 __monty__ joins (~toonn@user/toonn)
18:19:32 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds)
18:20:17 aditya211935 joins (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
18:20:27 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
18:20:48 × aditya211935 quits (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Remote host closed the connection)
18:21:04 aditya211935 joins (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
18:21:19 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
18:25:17 × aditya211935 quits (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Remote host closed the connection)
18:25:55 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
18:27:23 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
18:29:22 × barcisz quits (~barcisz@79.191.32.38.ipv4.supernova.orange.pl) (Quit: Connection closed)
18:29:55 <tomsmeding> Athas: I hate 'cabal test' with a passion
18:30:11 <tomsmeding> I just 'cabal run' the test-suite and am happy that way
18:30:40 <tomsmeding> not only is streaming useful to see progress and see early that things are stuck somewhere, or that you can cancel the test run because everything is failing
18:31:01 <tomsmeding> and to not hvae to open a file to see test results after things failed, which misses colouring
18:36:29 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
18:38:21 × ryantrinkle quits (~ryantrink@204.2.90.61) (Ping timeout: 245 seconds)
18:38:53 <Hecate> tomsmeding: I think the behaviour will be better in the next release, I've seen a PR in that direction
18:40:45 × red-snai- quits (~snail@static.151.210.203.116.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
18:41:41 <tomsmeding> Hecate: link, what's the behaviour change?
18:41:49 <tomsmeding> or keyword
18:42:17 aditya211935 joins (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
18:42:27 <mauke> does haskell have a standard testing protocol now?
18:42:32 thegeekinside joins (~thegeekin@189.217.90.138)
18:43:01 × JimL quits (~quassel@89.162.16.26) (Quit: No Ping reply in 180 seconds.)
18:44:21 JimL joins (~quassel@89.162.16.26)
18:46:36 × aditya211935 quits (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Remote host closed the connection)
18:46:43 dcoutts joins (~duncan@185.201.60.13)
18:49:21 × greentail_ quits (~greentail@2804:214:8138:acbf:d227:d151:8ed4:ed2) (Changing host)
18:49:21 greentail_ joins (~greentail@user/clcuc)
18:49:31 greentail_ is now known as greentail
18:51:13 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:51:55 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
18:52:06 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
18:54:15 <Hecate> https://github.com/haskell/cabal/pull/8942 tomsmeding
18:55:32 × dcoutts quits (~duncan@185.201.60.13) (Ping timeout: 240 seconds)
18:57:29 ryantrinkle joins (~ryantrink@204.2.90.61)
18:59:15 aditya211935 joins (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
19:00:00 dcoutts joins (~duncan@185.201.60.220)
19:03:01 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
19:03:50 × aditya211935 quits (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Ping timeout: 246 seconds)
19:04:15 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
19:05:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:05:59 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:06:19 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
19:09:02 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds)
19:13:20 × fendor quits (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
19:13:30 <chreekat> <Hecate> "https://github.com/haskell/cabal..." <- Hallelujah
19:16:10 × alexherbo2 quits (~alexherbo@2a02-8440-2141-4ce9-1c88-8cfa-59ea-93ed.rev.sfr.net) (Remote host closed the connection)
19:16:18 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:20:43 aditya211935 joins (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c)
19:22:33 × m1dnight quits (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.0.0)
19:22:47 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
19:23:00 m1dnight joins (~christoph@78-22-4-67.access.telenet.be)
19:24:45 × trev quits (~trev@user/trev) (Quit: trev)
19:24:50 × aditya211935 quits (~aditya211@2401:4900:1c33:e779:cc41:bf2:4e42:7c4c) (Ping timeout: 246 seconds)
19:24:51 <tomsmeding> \o/
19:26:45 × jludwig quits (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
19:27:27 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
19:27:54 ec joins (~ec@gateway/tor-sasl/ec)
19:30:23 m21it joins (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
19:31:16 × danse-nr3 quits (~francesco@151.43.255.148) (Ping timeout: 245 seconds)
19:31:21 <m21it> Is there some optic which is capable of creating keys like `x & at key ?~ val` but dealing with multiple keys at once like for example each is doing `x & each %~ (+1)`, so I want something like `x & ats keys ?~ val`?
19:39:51 × dcoutts quits (~duncan@185.201.60.220) (Ping timeout: 246 seconds)
19:44:52 × michalz quits (~michalz@185.246.207.193) (Remote host closed the connection)
19:47:36 <Noinia> my hoogle-fu is failing me. Clearly something like this must exist in base somewhere instead of in some random 'extra' package:
19:47:40 <Noinia> guard' b x = if b then empty else pure x :: Alternative f => Bool -> a -> f a
19:47:53 <Noinia> any ideas?
19:49:27 <Noinia> err, I guess I want if not b then emtpy, but whatever
19:50:50 <probie> :t \b x -> x <$ guard b
19:50:50 <lambdabot> Alternative f => Bool -> a -> f a
19:50:56 × lainon quits (~textual@c-98-54-78-2.hsd1.al.comcast.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
19:53:16 qqq joins (~qqq@92.43.167.61)
19:56:13 <Noinia> ah nice!
19:57:01 <Noinia> Thanks!
19:57:01 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:59:04 <probie> Noinia: I don't see it used with `guard` particularly often, but the idiom `x <$ someParser` pops up a lot when people using parsing libraries like parsec
20:00:25 × greentail quits (~greentail@user/clcuc) (Ping timeout: 240 seconds)
20:02:08 greentail joins (~greentail@2804:214:8110:943f:f26e:d89b:2b54:3cc1)
20:08:49 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:09:00 jludwig joins (~justin@li657-110.members.linode.com)
20:09:31 × jludwig quits (~justin@li657-110.members.linode.com) (Read error: Connection reset by peer)
20:21:49 hisa3877 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
20:25:34 jludwig joins (~justin@li657-110.members.linode.com)
20:26:22 bratwurst joins (~dfadsva@2604:3d09:207f:f650::5b03)
20:28:55 × jludwig quits (~justin@li657-110.members.linode.com) (Client Quit)
20:29:17 Candlestick joins (mirc-rockc@179.152.251.228)
20:29:39 <EvanR> i can't seem to trigger a monomorphism restriction-based error in ghci even while enabling MonomorphismRestriction and MonoLocalBinds. Is this phenomenon just gone
20:29:49 Candlestick parts (mirc-rockc@179.152.251.228) ()
20:29:53 jludwig joins (~justin@li657-110.members.linode.com)
20:30:55 × Guest8058 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
20:30:57 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
20:35:46 <geekosaur> https://paste.tomsmeding.com/yD7RkV8i
20:36:31 <geekosaur> the error then happens when you use `g` at some type that `(+)` would work at
20:37:16 pavonia joins (~user@user/siracusa)
20:38:03 <int-e> > let x = 1 in truncate x + x
20:38:04 <lambdabot> 2
20:38:24 <int-e> (that fails with the monomorpism restriction enabled)
20:39:09 <EvanR> i tried this
20:39:16 <EvanR> > let f = 5 in (5+1, sqrt 5)
20:39:17 <lambdabot> (6,2.23606797749979)
20:39:20 <EvanR> and this
20:39:35 <EvanR> > let f = \x -> x in (f 'a', f 1)
20:39:36 <lambdabot> ('a',1)
20:39:49 <EvanR> MonoLocalBinds enabled, still works
20:40:08 <EvanR> wait
20:40:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:40:16 <EvanR> > let f = 5 in (f+1, sqrt f)
20:40:17 <lambdabot> (6,2.23606797749979)
20:40:46 <EvanR> grrr
20:41:19 <EvanR> > let f = 5 in (f `div` 2, sqrt f)
20:41:21 <lambdabot> (2,2.23606797749979)
20:41:49 <int-e> EvanR: note that the type changes with MonoLocalBinds
20:42:22 <int-e> hmm, no. but it does with MonomorphismRestriction
20:42:40 <EvanR> I see that
20:42:54 <EvanR> :t let f = 5 in (f `div` 2, sqrt f)
20:42:55 <lambdabot> (Integral a, Floating b) => (a, b)
20:43:10 <EvanR> (Integral b, Floating b) => (b,b)
20:44:20 emmanuelux joins (~emmanuelu@user/emmanuelux)
20:45:59 Guest6127 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
20:47:07 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:49:15 <int-e> forall a. Num a => a is "closed" following the description of https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/let_generalisation.html so it'll stay generalized
20:49:37 notzmv joins (~zmv@user/notzmv)
20:50:16 <int-e> I feel that documentation lacks a convincing negative example (something that is generalized without MonoLocalBinds but isn't with MonoLocalBinds)
20:50:37 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
20:50:43 × Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection)
20:51:39 <int-e> > let f x = let p y = (x, y) in (p '1', p 1) -- apparently this is an example, from https://www.haskell.org/ghc/blog/20100930-LetGeneralisationInGhc7.html
20:51:41 <lambdabot> <no location info>: error:
20:51:41 <lambdabot> not an expression: ‘let f x = let p y = (x, y) in (p '1', p 1) -- appare...
20:51:52 <int-e> err,
20:52:10 <int-e> > let f x = let p y = (x, y) in (p '1', p 1) in f ()
20:52:11 <lambdabot> error:
20:52:11 <lambdabot> • No instance for (Num Char) arising from the literal ‘1’
20:52:11 <lambdabot> • In the first argument of ‘p’, namely ‘1’
20:52:44 <int-e> (would be accepted with NoMonoLocalBinds)
20:55:41 <EvanR> hear me out for a second, why the hell is this even a thing. Why not just generalize let defined functions like a sane person. Don't think I've seen an explanation of this. I.e. the whole point
20:55:44 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
20:56:41 <EvanR> compile performance?
20:57:30 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1)
21:00:12 <geekosaur> you mean, why does it exist? type family resolution, apparently
21:00:25 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
21:00:25 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 240 seconds)
21:00:47 <sm> out of order! out of order! it is unvarnished poppycock, gentlemen and ladies! He challenges our time-honoured traditions. I call for the member to return to his seat!
21:00:55 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
21:01:08 <EvanR> no!
21:01:27 <bratwurst> i feel like an idiot. i couldn't understand 'mapAccumB'. just now i realized that's what my widgets are is 'mapAccumB'
21:01:40 <EvanR> monomorphism restriction pre-dates type families entirely?
21:01:43 <tomsmeding> EvanR: https://paste.tomsmeding.com/GX6T6hyY
21:01:46 <geekosaur> https://www.haskell.org/ghc/blog/20100930-LetGeneralisationInGhc7.html
21:01:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:4c9c:5689:ea96:76a1) (Ping timeout: 240 seconds)
21:01:56 <geekosaur> oh, someone linked that
21:02:03 <tomsmeding> would you have expected the hi to be printed twice?
21:02:12 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
21:02:17 <EvanR> yeah I was looking at this blog
21:02:34 <geekosaur> there's also a paper about it
21:02:45 <geekosaur> https://www.microsoft.com/en-us/research/publication/outsideinx-modular-type-inference-with-local-assumptions/ section 4.2
21:02:49 <EvanR> have that paper open xD
21:03:01 <EvanR> but why was MR a thing in e.g. haskell 1.0
21:03:13 <EvanR> haskell89 xD
21:03:19 <tomsmeding> EvanR: have you seen my paste?
21:03:25 <EvanR> going there next
21:03:38 <tomsmeding> EvanR: addendum is that repeating 'print (a :: Float)' also repeats hi
21:03:57 × califax quits (~califax@user/califx) (Remote host closed the connection)
21:03:58 <geekosaur> because if you treat a top level binding without parameters as a "constant", as is usually expected, it'll be separately a constant/memoized at each type
21:04:00 <tomsmeding> whereas writing 'let b = trace "bye" (42 :: Float)' and then repeating 'print b' only gives "bye" the first time
21:04:14 <tomsmeding> a polymorphic value is a function
21:04:15 califax joins (~califax@user/califx)
21:04:21 <tomsmeding> you invoke it each time you use it
21:04:24 <geekosaur> which can waste memory and produce other surprises
21:05:08 <tomsmeding> the only reaon why two uses of 'a' at type Float would not result in "hi" twice in a source file (as opposed to the repl) is common subexpression elimination perhaps firing, but CSE is kinda reluctant in GHC
21:05:27 <tomsmeding> substitute "trace" with "really expensive computation" of course
21:07:12 <mauke> geekosaur: I don't think it's memoized at all
21:07:28 <geekosaur> mm, no, it'd be a function of a dictionary
21:07:32 <geekosaur> sorry
21:07:56 <EvanR> when I did let f = 5, yeah ok there's a dictionary involved
21:08:00 <EvanR> but
21:08:12 <EvanR> with MR enabled this still works
21:08:28 <mauke> ... are you asking about the MR or not?
21:08:31 <EvanR> let f = undefined in (f `div` 2, sqrt f)
21:08:44 <EvanR> :t let f = undefined in (f `div` 2, sqrt f)
21:08:45 <lambdabot> (Integral a, Floating b) => (a, b)
21:08:48 <EvanR> not (b,b)
21:09:14 × falafel_ quits (~falafel@2603-7000-a700-8710-eb64-0ac1-9c05-0860.res6.spectrum.com) (Ping timeout: 246 seconds)
21:10:06 <EvanR> in this case f's polymorphic but not a function
21:10:22 <EvanR> that we know of
21:10:25 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Ping timeout: 240 seconds)
21:11:54 <EvanR> but ok tomsmeding, you're saying it's really about constants which depend on choice of type class
21:12:49 <tomsmeding> EvanR: if a thing 'x' is polymorphic in a type variable a' without taking a type class dictionary depending on 'a', perhaps 'x' can be evaluated once and then used at all types 'a' without recomputation?
21:13:08 <tomsmeding> seems like parametricity implies that recomputation is not necessary in that case
21:13:09 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
21:13:22 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
21:13:49 × slack1256 quits (~slack1256@191.125.135.105) (Read error: Connection reset by peer)
21:14:33 <geekosaur> EvanR, that one is not MR, it's MLB
21:14:38 <tomsmeding> the section of the haskell report linked from the MR GHC user guide page ( https://www.haskell.org/onlinereport/decls.html#sect4.5.5 ) explicitly mentions type classes in some fashion
21:14:45 slack1256 joins (~slack1256@186.11.22.119)
21:14:54 <EvanR> MLB?
21:14:59 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
21:15:02 <tomsmeding> MonoLocalBinds
21:15:27 <EvanR> it works with MonoLocalBinds enabled
21:15:29 <geekosaur> mm, but it still works
21:15:32 × elred quits (~root@user/elred) (Ping timeout: 250 seconds)
21:15:56 <EvanR> tomsmeding, alright, that clears up some of the ancient motivations
21:15:59 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
21:16:34 califax joins (~califax@user/califx)
21:17:02 <tomsmeding> perhaps the "Which bindings are affected?" section of https://www.haskell.org/ghc/blog/20100930-LetGeneralisationInGhc7.html applies?
21:17:17 elred joins (~root@45.84.139.171)
21:17:49 <tomsmeding> i.e. the f bindings we're talking about here do not fall under the reponsibility of MonoLocalBinds but of MonomorphismRestriction, because they are fake-local: they don't reference any local variables so could have been global
21:17:55 <geekosaur> I just dropped in a partial type signature and found that the type of f doesn't involve a typeclass
21:18:23 tomsmeding is off to bed
21:18:53 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
21:20:04 <Hecate> nacht
21:20:17 Lycurgus joins (~juan@user/Lycurgus)
21:20:34 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
21:21:25 × acidjnk quits (~acidjnk@p200300d6e7072f37a5880f011a21b87c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:22:39 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:24:23 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:25:11 × nick3 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 264 seconds)
21:26:52 × Inst quits (~Inst@2601:6c4:4081:2fc0:3d31:5858:1e60:ad46) (Ping timeout: 245 seconds)
21:35:46 nick3 joins (~nick@2600:100d:b16c:65e0:b00a:235b:2088:f41c)
21:36:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:43:10 boxscape_ joins (~boxscape_@81.191.27.107)
21:44:32 <boxscape_> Hi, I uploaded a new version of my package yesterday https://hackage.haskell.org/package/monadic-bang-0.1.1.0 and the badge says "Build: PlanningFailed", apparently because I require at least base 4.17, but 4.16 is installed. Is there something I should do here or does this just not work with GHC >= 9.4?
21:46:41 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
21:46:52 × JimL quits (~quassel@89.162.16.26) (Ping timeout: 240 seconds)
21:46:52 JimL_ joins (~quassel@89.162.16.26)
21:56:58 lainon joins (~textual@2601:7c0:cb00:c0a0:68c0:c255:9c8b:3dd)
21:57:58 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
21:58:07 <geekosaur> that's probably a question for #haskell-infrastructure
21:59:33 <boxscape_> will try thank you
22:01:26 boxscape_ is now known as boxscape
22:01:41 × boxscape quits (~boxscape_@81.191.27.107) (Changing host)
22:01:41 boxscape joins (~boxscape_@user/boxscape)
22:01:56 × jonathan quits (~jonathan@c83-252-3-92.bredband.tele2.se) (Ping timeout: 252 seconds)
22:02:16 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
22:04:23 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Client Quit)
22:04:38 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
22:11:42 <jackdk> Hackage might not be trying to build your package with the newer GHC?
22:12:37 <boxscape> jackdk right my question is partially whether I should be doing something to change that or if that's out of my control
22:13:21 <jackdk> I don't know. If you can admit earlier GHCs then you can loosen the base lower bound but that's all I got
22:13:44 <boxscape> yeah can't unfortunately because it relies on plugin features I added in GHC 9.4
22:16:10 × nick3 quits (~nick@2600:100d:b16c:65e0:b00a:235b:2088:f41c) (Ping timeout: 260 seconds)
22:18:03 <geekosaur> my guess is you're out of luck
22:18:47 <geekosaur> someone needs to sit down and fix hackage-matrix, but everyone's afraid to touch it 🙂
22:21:07 <boxscape> oh well, I can live with this for now I guess
22:22:51 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
22:25:35 <geekosaur> (wow, hasn't been touched since ghc 8.4, /me suspects this will require some work)
22:25:58 <geekosaur> (yes, I am silly enough to have cloned it and tried to build)
22:25:59 acidjnk joins (~acidjnk@p200300d6e7072f97cd043d78b3570e0c.dip0.t-ipconnect.de)
22:26:55 × Guest6127 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
22:27:28 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
22:29:07 nick3 joins (~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730)
22:30:26 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
22:30:47 dcoutts joins (~duncan@212.187.244.66)
22:31:58 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
22:32:29 dmgk joins (~dmgk@user/dmgk)
22:36:16 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
22:37:14 mechap joins (~mechap@user/mechap)
22:39:29 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Konversation terminated!)
22:42:05 wroathe joins (~wroathe@user/wroathe)
22:42:48 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
22:44:35 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:45:25 × nick3 quits (~nick@2600:8807:9084:7800:81a9:9ad8:11b2:d730) (Ping timeout: 240 seconds)
22:50:18 × m21it quits (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
22:50:37 m21it joins (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
22:54:20 dcoutts_ joins (~duncan@79.137.104.194)
22:55:51 × dcoutts quits (~duncan@212.187.244.66) (Ping timeout: 245 seconds)
22:57:27 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
22:58:13 <bratwurst> anyone willing to give some guidance on reactive-banana?
22:58:24 <bratwurst> i have code at https://pastebin.com/NHbe46jb
22:58:52 × YuutaW quits (~YuutaW@2404:f4c0:f9c3:502::100:17b7) (Quit: ZNC 1.8.2 - https://znc.in)
22:59:08 <bratwurst> my first question is with kbw definition
22:59:15 YuutaW joins (~YuutaW@mail.yuuta.moe)
22:59:42 <bratwurst> i get that doodleB is the behavior.
22:59:51 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
23:00:47 <bratwurst> so should 'kbFocused' actually be taking something from 'changes'?
23:01:23 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
23:01:29 <bratwurst> i should end up with something of type 'Event ?'
23:01:43 euandreh joins (~Thunderbi@189.6.18.7)
23:01:57 × wroathe quits (~wroathe@user/wroathe) (Read error: Connection reset by peer)
23:01:59 <bratwurst> because every time doodle changes i want to see if it was a kb focus change
23:02:02 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
23:02:06 wroathe joins (~wroathe@user/wroathe)
23:04:06 × m21it quits (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
23:04:24 m21it joins (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
23:04:47 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
23:04:48 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
23:05:56 × gurkenglas quits (~gurkengla@dynamic-046-114-179-181.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
23:07:04 × acidjnk quits (~acidjnk@p200300d6e7072f97cd043d78b3570e0c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
23:07:55 × buckwheatsuperpo quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
23:09:36 gurkenglas joins (~gurkengla@2.247.242.115)
23:09:38 <jackdk> Please try and use fewer/longer messages - you've pushed everything else off the screen. I don't know what reactive-banana<->sdl binding you're using. I haven't done FRP for a while but you almost never want to construct `Event`/`Behavior` from scratch unless you're binding to something outside your little FRP world. You do that with `fromAddHandler` to make a `MomentIO (Event a)` or `fromChanges` to make a `MomentIO (Behavior a)`
23:10:40 × gurkenglas quits (~gurkengla@2.247.242.115) (Read error: Connection reset by peer)
23:11:02 × greentail quits (~greentail@2804:214:8110:943f:f26e:d89b:2b54:3cc1) (Ping timeout: 245 seconds)
23:11:33 <jackdk> I'd also recommend the links I've collected at http://jackkelly.name/wiki/haskell/learning.html#functional-reactive-programming . Even if you're not going all the way to `reflex`, the workshop is great for getting around the abstractions, and you can bring back the idea of a `Dynamic a = (Event a, Behavior a)` where the event fires iff the behavior changes. I'd build those with `mapAccum` in bananaland.
23:14:00 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
23:17:59 <EvanR> don't try to make e.g. a sine wave behavior and then fire an event every time it changes
23:18:28 <EvanR> it voids the warranty
23:18:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:19:01 <ski> % let emptyList = Debug.Trace.trace "emptyList" []
23:19:01 <yahb2> <no output>
23:19:05 <ski> % emptyList
23:19:05 <yahb2> emptyList ; []
23:19:07 <ski> % emptyList :: [Bool]
23:19:07 <yahb2> []
23:19:50 <bratwurst> reason i'm finding this confusing is cause when i write something "naturally" the api seems to expect something different
23:20:14 <ski> bratwurst : hm, why `DatatypeContexts' ?
23:20:15 <EvanR> sounds like a bug in the naturally part
23:21:00 <bratwurst> ski: oh sorry. i had it as a class def but didn't think i needed overloading so i meant to change it to an existential type
23:21:17 <bratwurst> EvanR: i would agree :)
23:21:40 × m21it quits (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b) (Remote host closed the connection)
23:21:53 <bratwurst> for example, i don't get how kbFocused becomes a 'Behavior'
23:21:55 <ski> it's generally agreed that `DatatypeContexts' doesn't do what you expect it to do, or at least that what it does doesn't tend to be that useful
23:21:59 m21it joins (~m21it@2800:ac:4021:c91e:57d4:3c1b:25c6:c66b)
23:23:04 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
23:24:59 <ski> bratwurst : do note that `exists c. (c,c -> ..c..)' is equivalent to `nu c. ..c..' (greatest fixed point)
23:25:43 <bratwurst> ski: i will probably end up discarding my widget definition once i understand rb better
23:25:48 <jackdk> Remember that `Behavior` is an `Applicative`, so you can lift pure values into it without fussing around with IORefs or whatever.
23:27:00 <ski> by which i mean to point out that `data Widget b = forall c. MkWidget Box c (Key -> c -> (b,c)) (Mouse -> c -> (b,c))' (note i omitted `Render c => ' after `forall c. ', since i don't know how `Render' is defined) is equivalent to `data Widget b = MkWidget Box (Key -> (b,Widget b)) (Mouse -> (b,Widget b))'
23:27:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
23:28:29 buckwheatsuperpo joins (~buckwheat@209.122.211.192)
23:30:00 <ski> there seems to be no `writeIORef', yea
23:30:57 <ski> i imagine `type DoodleIO = IORef Doodle' as well as (correction) `kbFocused :: DoodleIO -> IO Nick'
23:32:04 <bratwurst> ski: yes you have that right. sorry not everything is there because i'm still trying to wrap my head around what i'm doing wrong
23:32:59 ski 's not really that familiar with `reactive-banana', fwiw
23:33:39 <bratwurst> yeah there's not much on hackage to go by either.
23:34:09 dcoutts joins (~duncan@79.137.104.194)
23:34:26 <ski> .. oh, `Widget' was a class, with `Render' as superclass, yesterday
23:34:30 ski 'd forgotten
23:35:25 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds)
23:35:26 × dcoutts_ quits (~duncan@79.137.104.194) (Ping timeout: 245 seconds)
23:35:27 <ski> anyway, `Widget Key AppEvent WidgetInternalState' for `Widget a b c' sounds like you'd want to keep `c' private (existential)
23:35:42 <bratwurst> in my lib, 'class Render a' has one method 'render :: Sz -> a -> Picture'
23:36:04 <bratwurst> 'Widget' is for things that have a size, a position and can be drawn
23:36:49 <bratwurst> ski: it seems like i will be replacing my 'Widget' definition with behaviors and mapAccumB
23:37:07 <bratwurst> i'm just not sure how
23:37:08 <ski> ok, good. so `data Widget b = forall c. MkWidget Box c (Sz -> c -> Picture) (Key -> c -> (b,c)) (Mouse -> c -> (b,c))' then corresponds to `data Widget b = MkWidget Box (Sz -> Picture) (Key -> (b,Widget b)) (Mouse -> (b,Widget b))''
23:38:05 <bratwurst> what would be the name of how you're transforming this?
23:38:23 <ski> <ski> bratwurst : do note that `exists c. (c,c -> ..c..)' is equivalent to `nu c. ..c..' (greatest fixed point)
23:38:53 <bratwurst> lol. i don't know what 'nu' is. what do i look up?
23:39:09 <bratwurst> so nu is a greek symbol?
23:39:21 <bratwurst> defined to represent the greatest fixed point
23:39:23 <ski> hm .. i guess i sometimes call this (in the reverse direction), the "State encoding" (cf. "Church encoding")
23:40:26 <ski> ("Church encoding" being how `forall r. (..r.. -> r) -> r' is equivalent to `mu r. ..r..')
23:40:36 <ski> yes, greek symbols
23:40:55 <ski> consider
23:41:07 <ski> data Nat = Zero | Succ Nat
23:41:27 <ski> we can reformulate/refactor this as/to
23:41:55 <ski> newtype Nat = MkNat (Either () Nat)
23:42:07 <ski> (or `Maybe' in place of `Either ()', if you prefer)
23:42:20 <ski> bratwurst : you see this ?
23:44:03 <bratwurst> 'Left ()' would terminate things and there would be as many wraps as <n>
23:44:11 <ski> yes
23:44:26 <ski> in more "algebraic" notation, we could write the above as
23:44:30 <ski> Nat = 1 + Nat
23:45:32 <jackdk> bratwurst: Possibly useful to you: a small example which reads stdin and prints to stdout https://www.irccloud.com/pastebin/4vKg7tBe/BananaLines.hs
23:45:55 × dcoutts quits (~duncan@79.137.104.194) (Ping timeout: 240 seconds)
23:46:57 <ski> (replacing `()' (the "unit" type, which has one (total / non-partial) inhabitant) with `1', and replacing `Either t u' (the "sum" type, which has `m + n' inhabitants, if `t' has `m' inhabitants and `u' has `n') with `t + u')
23:47:47 <ski> anyway, the problem now is that the *equation* `Nat = 1 + Nat' (in the unknown `Nat') has more than one solution
23:47:52 mauke_ joins (~mauke@user/mauke)
23:47:58 × ijqq_ quits (uid603979@id-603979.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
23:49:05 <ski> more generally, we have an equation of the form `t = F t', where `t' is the unknown/sought, and `F' is some type function. this is a "fixed point equation", because we're asking for an input (type) `t' to pass to `F', that gives the same `t' back as output (type)
23:49:30 × mauke quits (~mauke@user/mauke) (Ping timeout: 260 seconds)
23:49:30 mauke_ is now known as mauke
23:50:09 <bratwurst> ok. makes sense so far
23:50:30 <ski> anyway, the *least* fixed point solution `t' for `t = 1 + t' is `t = Nat', for our usual intended notion of `Nat' ((finite !) natural numbers). the least fixed point is written `mu t. 1 + t'
23:51:43 <ski> the *greatest* fixed point solution `t' for `t = 1 + t' would be a notion of "(extended) natural numbers" that also contains an "infinity", namely what you get by `inf = Succ inf' / `inf = MkNat (Right inf)' in Haskell .. it's infinitely deep, never stops
23:51:59 <ski> the greatest fixed point is written `nu t. 1 + t'
23:52:25 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
23:52:48 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:53:18 <ski> because Haskell is non-strict, we actually get the greatest fixed-point solution, with `data Nat = Zero | Succ Nat' (or the `newtype' variant), since we can define `int = Succ inf' (and we can compute with it)
23:53:46 <bratwurst> i think i get what you're saying now. because 'c' is a parameter to everything in my type it's "not there"
23:53:55 <ski> (well, it's more complicated in Haskell, because you also have "bottom" values, like `_|_',`Succ _|_',`Succ (Succ _|_)',.. in `Nat' ..)
23:55:38 <ski> anyway, *often* we really *intend* the *least* fixed point solution (the "finitely deep data structures, wrt some data type recursion"), rather than the *greatest* fixed point solution (the "potentially infinitely deep data structures / processes, wrt some data type recursion") .. so we can *pretend* that the recursive type we have (abstractly) is of the form `mu r. ..r..'
23:56:17 <ski> anyway, you should be able to convince yourself that `[a] = mu r. 1 + a * r'
23:56:51 <ski> however, when one's doing e.g. "OO"-like things, usually one wants the greatest fixed point version
23:56:58 <ski> simplest non-trivial example is probably
23:57:14 <ski> data Stream a = MkStream {head :: a,tail :: Stream a}
23:57:20 <ski> clearly, the corresponding equation here is
23:57:28 <ski> Stream a = a * Stream a
23:58:19 <ski> but if we only intend *finitely* deep values, then this type would be *empty* (as it would be in a strict programming language, like e.g. SML,OCaml,F# ..)
23:58:31 <ski> so, in this case, we really mean `Stream a = nu s. a * s'
23:59:20 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
23:59:46 <ski> we can send a `head' message to a "stream object", and it'll tell us its current element value. and we can send a `tail' message to it, and it'll generate a new object state for us (usually traditional OO would use mutation of the original object here, but if we instead return a clone with some private state updated, this is what we get)

All times are in UTC on 2023-07-10.