2025/11/18

2025-11-18 00:08:07 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
2025-11-18 00:08:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 00:14:24 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-11-18 00:14:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-18 00:23:35 +0100auri_(~auri@fsf/member/auri) ()
2025-11-18 00:24:47 +0100auri(~auri@fsf/member/auri) auri
2025-11-18 00:26:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 00:30:42 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-11-18 00:31:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-18 00:34:31 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2025-11-18 00:34:52 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-11-18 00:42:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 00:42:00 +0100Zemy_(~Zemy@72.178.108.235) (Read error: Connection reset by peer)
2025-11-18 00:42:09 +0100Zemy(~Zemy@2600:100c:b049:cf82:704c:ffff:fe60:9d5c)
2025-11-18 00:42:29 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-18 00:43:06 +0100Zemy_(~Zemy@72.178.108.235)
2025-11-18 00:44:56 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc)
2025-11-18 00:46:36 +0100Zemy(~Zemy@2600:100c:b049:cf82:704c:ffff:fe60:9d5c) (Ping timeout: 256 seconds)
2025-11-18 00:47:08 +0100Zemy(~Zemy@2600:100c:b049:cf82:70a5:c4ff:fea8:36a5)
2025-11-18 00:47:08 +0100Zemy_(~Zemy@72.178.108.235) (Read error: Connection reset by peer)
2025-11-18 00:47:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-18 00:47:20 +0100trickard(~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-18 00:47:33 +0100trickard_(~trickard@cpe-50-98-47-163.wireline.com.au)
2025-11-18 00:47:43 +0100Zemy_(~Zemy@72.178.108.235)
2025-11-18 00:48:30 +0100Zemy(~Zemy@2600:100c:b049:cf82:70a5:c4ff:fea8:36a5) (Read error: Connection reset by peer)
2025-11-18 00:49:39 +0100Zemy(~Zemy@2600:100c:b049:cf82:9086:16ff:febf:b418)
2025-11-18 00:49:39 +0100Zemy_(~Zemy@72.178.108.235) (Read error: Connection reset by peer)
2025-11-18 00:50:13 +0100Zemy_(~Zemy@72.178.108.235)
2025-11-18 00:50:14 +0100Zemy(~Zemy@2600:100c:b049:cf82:9086:16ff:febf:b418) (Read error: Connection reset by peer)
2025-11-18 00:50:51 +0100Zemy(~Zemy@2600:100c:b049:cf82:fcfb:56ff:fea6:3ac1)
2025-11-18 00:50:51 +0100Zemy_(~Zemy@72.178.108.235) (Read error: Connection reset by peer)
2025-11-18 00:51:26 +0100Zemy_(~Zemy@72.178.108.235)
2025-11-18 00:53:47 +0100Enrico63(~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed)
2025-11-18 00:55:06 +0100Zemy(~Zemy@2600:100c:b049:cf82:fcfb:56ff:fea6:3ac1) (Ping timeout: 256 seconds)
2025-11-18 00:56:43 +0100bggd(~bgg@2a01:e0a:819:1510:2461:8c52:600a:b549)
2025-11-18 00:58:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 01:02:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-18 01:07:46 +0100turlando_(~turlando@user/turlando) (Ping timeout: 244 seconds)
2025-11-18 01:08:08 +0100trickard_(~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-18 01:08:22 +0100trickard_(~trickard@cpe-50-98-47-163.wireline.com.au)
2025-11-18 01:12:53 +0100mange(~mange@user/mange) mange
2025-11-18 01:13:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 01:15:04 +0100trickard_trickard
2025-11-18 01:17:05 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-11-18 01:18:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-18 01:23:03 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 260 seconds)
2025-11-18 01:23:41 +0100 <yin> I'm trying to understant FRP in haskell and the hypothetical Monad instance for Signals. My mind immediately went to call/cc from Scheme. Am I way off base?
2025-11-18 01:25:35 +0100 <EvanR> Signal doesn't sound like the original formulation of FRP. Which library is this from
2025-11-18 01:27:20 +0100 <EvanR> in conal's old blog, he mentioned maybe something about a monad instance for Events then later abandoned it
2025-11-18 01:28:44 +0100 <yin> EvanR: Signal would be Behaviour from Conal's. (>>=) :: Signal a -> (a -> Signal b) -> Signal b
2025-11-18 01:28:58 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-18 01:29:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 01:30:25 +0100 <EvanR> oh
2025-11-18 01:30:44 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2025-11-18 01:30:47 +0100 <EvanR> then monad can make sense in the same sense as the monad instance for Stream of Stream of a
2025-11-18 01:30:55 +0100 <EvanR> er, stream
2025-11-18 01:30:58 +0100bggd(~bgg@2a01:e0a:819:1510:2461:8c52:600a:b549) (Remote host closed the connection)
2025-11-18 01:31:02 +0100 <EvanR> join :: Stream (Stream a) -> Stream a
2025-11-18 01:31:21 +0100chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2025-11-18 01:32:42 +0100trickard(~trickard@cpe-50-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-18 01:32:55 +0100trickard_(~trickard@cpe-50-98-47-163.wireline.com.au)
2025-11-18 01:33:44 +0100 <EvanR> join :: Signal (Signal a) -> Signal a, assuming Signal = Behavior
2025-11-18 01:34:02 +0100 <EvanR> how useful that is I don't know
2025-11-18 01:34:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-18 01:35:36 +0100petrichor(~jez@user/petrichor) (Ping timeout: 256 seconds)
2025-11-18 01:37:49 +0100turlando(~turlando@user/turlando) turlando
2025-11-18 01:42:30 +0100turlando(~turlando@user/turlando) (Ping timeout: 265 seconds)
2025-11-18 01:43:44 +0100 <yin> my intuition is that bind would offer a way to dynamically change the control flow or dependency graph
2025-11-18 01:43:46 +0100 <yin> https://paste.jrvieira.com/1763426541194
2025-11-18 01:44:00 +0100turlando(~turlando@user/turlando) turlando
2025-11-18 01:44:40 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 256 seconds)
2025-11-18 01:45:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 01:45:09 +0100 <EvanR> Signal f <*> Signal x
2025-11-18 01:45:15 +0100 <EvanR> to make it more clear what's going on
2025-11-18 01:45:15 +0100synchromesh(~john@2406:5a00:2412:2c00:71c7:e357:fc79:c8b6) (Read error: Connection reset by peer)
2025-11-18 01:45:37 +0100 <EvanR> would give you, basically (not actual syntax), Signal (f x)
2025-11-18 01:45:41 +0100synchromesh(~john@2406:5a00:2412:2c00:6993:feea:8b51:a565) synchromesh
2025-11-18 01:45:45 +0100 <yin> right. i had that but (x t) looked weird to me :)
2025-11-18 01:46:36 +0100 <EvanR> the usual way to introduce a way to "dynamically" replace a behavior is to use an event
2025-11-18 01:46:55 +0100 <EvanR> something like Signal a -> Event (Signal a) -> Signal a
2025-11-18 01:47:16 +0100 <EvanR> the signal is replaced with the event payload when/if it happens. Before before any events, the first argument applies
2025-11-18 01:49:19 +0100xff0x(~xff0x@2405:6580:b080:900:fb28:6c11:a653:72c4) (Ping timeout: 260 seconds)
2025-11-18 01:49:59 +0100 <monochrom> If you think call/cc, you're a low-level person. It's not wrong, it just may be very helpful or very distracting depending on your purpose.
2025-11-18 01:51:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-11-18 01:52:33 +0100 <jackdk> I got a lot out of (in order): this old "FRP - Events and Behaviours" talk: https://www.youtube.com/watch?v=GXW1jBijhlk, the diagrams in the reactive-banana package, and https://github.com/qfpl/reflex-workshop/ (for hands-on experience). They might help you get your head around the mental models
2025-11-18 01:52:35 +0100 <yin> monochrom: it just had the same smell in my purposeless mind, that's all
2025-11-18 01:53:01 +0100 <monochrom> It's OK. Lately I smelled Yoneda lemma everywhere anyway. :)