Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,799,755 events total
2026-01-25 21:35:11 <[exa]> but we've got our cozy haskell null!!!
2026-01-25 21:35:41 <tomsmeding> [exa]: let me invert the question: why are you parsing a ()?
2026-01-25 21:36:04 geekosaur wonders if it's to play a bit more nicely in ghci with ExtendedDefaultRules or something like that
2026-01-25 21:36:19 <[exa]> I wanted to nicely match if a value is empty, looked pretty much okay that way
2026-01-25 21:37:09 <geekosaur> tbh that actually feels a bit wrong to me, since null is in-band in JSON
2026-01-25 21:38:30 <[exa]> oh well look at that https://github.com/haskell/aeson/issues/788#issuecomment-939328524
2026-01-25 21:38:58 <[exa]> the philosophical reason is: in js everything can be null
2026-01-25 21:39:24 <monochrom> Does the empty object {} exist in JSON? I would be OK with that becoming () in Haskell. But then my idea still implies that parse errors still exist, e.g., parsing "5" to () should be an error.
2026-01-25 21:40:35 <geekosaur> that's what I meant by "in-band"
2026-01-25 21:40:50 <geekosaur> in Haskell it's a distinct type, not a distinct value inhabiting every type
2026-01-25 21:41:26 × oskarw quits (~user@user/oskarw) (Remote host closed the connection)
2026-01-25 21:42:41 pavonia joins (~user@user/siracusa)
2026-01-25 21:52:45 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
2026-01-25 21:53:08 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
2026-01-25 21:55:30 × DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Ping timeout: 252 seconds)
2026-01-25 21:57:57 <tomsmeding> do I really have to reach into ghc-internal to get the UserInterrupt exception, for detecting if someone ^C'd me?
2026-01-25 21:58:30 <tomsmeding> ah no I'm stupid, ignore, it's AsyncException in base
2026-01-25 22:07:16 <monochrom> :)
2026-01-25 22:07:58 <monochrom> But beware that it is only delivered to the main thread.
2026-01-25 22:11:28 mjacob joins (~mjacob@adrastea.uberspace.de)
2026-01-25 22:14:00 <mjacob> What are possible applications of cycles in functional reactive programming? I know that many frameworks forbid it unless there is a delay in each cycle. But it is hard to me to think of an example where cycles are useful (with or without delay).
2026-01-25 22:15:35 <tomsmeding> a clock? (disclaimer: have never used FRP)
2026-01-25 22:21:01 × oats quits (~oats@user/oats) (Read error: Connection reset by peer)
2026-01-25 22:21:16 oats joins (~oats@user/oats)
2026-01-25 22:22:50 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 245 seconds)
2026-01-25 22:30:45 <mjacob> tomsmeding: Where is the cycle in this example?
2026-01-25 22:31:05 <tomsmeding> the update to the time triggers an update to the time again, after a delay?
2026-01-25 22:31:14 <tomsmeding> as I said, I dunno, maybe this is nonsense :)
2026-01-25 22:32:35 <EvanR> early versions of FRP exploited recursive definitions (why you might be thinking of as cycles?) to implement some sort of state
2026-01-25 22:33:07 <geekosaur> I wasn't using FRP but a PSQ for a simulation, and one of the events was a status report that triggered every so often in simulated time and rescheduled itself for later
2026-01-25 22:33:08 <EvanR> but whether that counts as some sort of cycle, might depend on your concept of the underlying implementation
2026-01-25 22:33:25 <EvanR> e.g. interpreting recursion doesn't necessarily need anything cyclic
2026-01-25 22:33:49 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2026-01-25 22:34:00 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 244 seconds)
2026-01-25 22:34:01 <EvanR> in arrow FRP you wouldn't use recursion but ArrowLoop
2026-01-25 22:35:27 <geekosaur> plus most other events scheduled other events for later, since it was a population simulator so it was simulating various life events
2026-01-25 22:38:36 <monochrom> People invent all sorts of "plain/simple English" words to avoid saying "recursion". :)
2026-01-25 22:41:08 <monochrom> I once posed a homework question that defined infinite streams of Bool to represent timing diagrams of digital circuits, then had students code up a flip flop using a feedback loop. (One more "plain English" word for recursion!)
2026-01-25 22:41:59 <tomsmeding> monochrom: conversely, functional programmers call everything recursion that we have more precise words for :)
2026-01-25 22:42:05 <monochrom> (It had to go through a delay. I also had a "part (b)" in which the students had to show what would go wrong in Haskell if there were no delay.)
2026-01-25 22:42:36 <monochrom> Oh yeah all of us should just say "least fixed point" and be done with it!
2026-01-25 22:43:32 <monochrom> But we are worse than calling everything "recursion" aren't we? We call everything "function".
2026-01-25 22:44:23 <monochrom> https://www.slideshare.net/slideshow/fp-patterns-buildstufflt/41936137#13 >:)
2026-01-25 22:44:26 <tomsmeding> our functions either recurse or traverse
2026-01-25 22:58:41 <EvanR> oop, everything's an object. FP, everything's a function!
2026-01-25 22:59:10 × Square3 quits (~Square@user/square) (Ping timeout: 255 seconds)
2026-01-25 23:02:34 × mulk quits (~mulk@pd95143a6.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2026-01-25 23:04:34 mulk joins (~mulk@p5b1128da.dip0.t-ipconnect.de)
2026-01-25 23:08:29 × sp1ff` quits (~user@2601:1c2:4701:900::32d4) (Remote host closed the connection)
2026-01-25 23:11:22 × trickard quits (~trickard@cpe-86-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-25 23:11:35 trickard_ joins (~trickard@cpe-86-98-47-163.wireline.com.au)
2026-01-25 23:13:16 × Fijxu quits (~Fijxu@user/fijxu) (Quit: XD!!)
2026-01-25 23:14:35 Fijxu joins (~Fijxu@user/fijxu)
2026-01-25 23:20:07 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-01-25 23:20:27 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2026-01-25 23:28:35 Pozyomka joins (~pyon@user/pyon)
2026-01-25 23:36:42 weary-traveler joins (~user@user/user363627)
2026-01-25 23:42:48 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2026-01-25 23:44:10 × trickard_ quits (~trickard@cpe-86-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-25 23:44:23 trickard_ joins (~trickard@cpe-86-98-47-163.wireline.com.au)
2026-01-26 00:04:49 mixfix41 joins (~sdeny9ee@user/mixfix41)
2026-01-26 00:08:15 × xff0x quits (~xff0x@2405:6580:b080:900:3b58:3b23:6c7:a174) (Ping timeout: 245 seconds)
2026-01-26 00:12:11 xff0x joins (~xff0x@2405:6580:b080:900:1b91:f7b5:c35c:b57e)
2026-01-26 00:18:15 × xff0x quits (~xff0x@2405:6580:b080:900:1b91:f7b5:c35c:b57e) (Ping timeout: 245 seconds)
2026-01-26 00:19:25 xff0x joins (~xff0x@2405:6580:b080:900:572:fd16:77ee:a888)
2026-01-26 00:32:48 × xff0x quits (~xff0x@2405:6580:b080:900:572:fd16:77ee:a888) (Ping timeout: 252 seconds)
2026-01-26 00:33:47 xff0x joins (~xff0x@2405:6580:b080:900:41e3:7849:bdcf:b5e1)
2026-01-26 00:36:49 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
2026-01-26 00:50:02 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
2026-01-26 00:54:38 × trickard_ quits (~trickard@cpe-86-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-26 00:54:50 trickard_ joins (~trickard@cpe-86-98-47-163.wireline.com.au)
2026-01-26 00:56:16 × Tuplanolla quits (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.)
2026-01-26 01:02:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2026-01-26 01:05:27 × xff0x quits (~xff0x@2405:6580:b080:900:41e3:7849:bdcf:b5e1) (Ping timeout: 250 seconds)
2026-01-26 01:08:23 × emmanuelux quits (~em@user/emmanuelux) (Quit: bye)
2026-01-26 01:10:24 emmanuelux joins (~em@user/emmanuelux)
2026-01-26 01:14:00 × Fijxu quits (~Fijxu@user/fijxu) (Quit: XD!!)
2026-01-26 01:16:13 Fijxu joins (~Fijxu@user/fijxu)
2026-01-26 01:22:25 qqq joins (~qqq@185.54.21.105)
2026-01-26 01:37:13 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 246 seconds)
2026-01-26 01:39:49 × acidjnk quits (~acidjnk@p200300d6e71719732cd814db2eedd90f.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2026-01-26 01:40:14 omidmash8 joins (~omidmash@user/omidmash)
2026-01-26 01:42:04 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2026-01-26 01:42:04 omidmash8 is now known as omidmash
2026-01-26 01:42:10 cyphase joins (~cyphase@user/cyphase)
2026-01-26 01:51:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2026-01-26 01:55:54 jmcantrell_ joins (~weechat@user/jmcantrell)
2026-01-26 02:08:05 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-01-26 02:12:08 trickard_ is now known as trickard
2026-01-26 02:15:25 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
2026-01-26 02:15:41 weary-traveler joins (~user@user/user363627)
2026-01-26 02:19:34 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 246 seconds)
2026-01-26 02:21:43 Pozyomka joins (~pyon@user/pyon)
2026-01-26 02:45:28 × confusedalex quits (~confuseda@user/confusedalex) (Ping timeout: 246 seconds)
2026-01-26 02:56:20 confusedalex joins (~confuseda@user/confusedalex)
2026-01-26 02:57:06 × ski quits (~ski@remote11.chalmers.se) (Remote host closed the connection)
2026-01-26 03:02:10 jmcantrell_ is now known as jmcantrell
2026-01-26 03:18:27 FANTOM joins (~fantom@87.75.185.177)
2026-01-26 03:21:49 ski joins (~ski@remote11.chalmers.se)
2026-01-26 03:25:52 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)

All times are in UTC.