Home liberachat/#haskell: Logs Calendar

Logs on 2022-01-23 (liberachat/#haskell)

00:00:17 × vglfr quits (~vglfr@88.155.24.103) (Ping timeout: 240 seconds)
00:00:59 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
00:01:53 vglfr joins (~vglfr@88.155.24.103)
00:02:12 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
00:05:34 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
00:06:02 alx741 joins (~alx741@157.100.93.160)
00:08:46 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:14:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
00:14:32 × jespada quits (~jespada@87.74.36.188) (Ping timeout: 240 seconds)
00:16:10 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
00:16:54 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
00:17:23 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
00:17:24 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
00:17:52 jespada joins (~jespada@87.74.36.188)
00:17:52 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
00:18:15 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
00:18:53 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
00:19:12 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:19:45 <d34df00d> Also, is there a way to use a -XCPP macro in an instance declaration?
00:19:46 × Constraintegic quits (~thomasbul@2001:a61:1300:6601:cc3f:6a1f:a742:f56f) (Ping timeout: 250 seconds)
00:20:10 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
00:20:16 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
00:20:32 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
00:20:35 <d34df00d> I have #if MIN_VERSION_GLASGOW_HASKELL(9,2,0,0) \n #define #define REP(older, newer) newer ..., and I'm trying to use it as `instance AsmArg Int8 'IntRep REP(Int#, Int8#) where …`
00:20:45 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
00:20:53 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
00:20:54 <d34df00d> This gives me `Not in scope: type constructor or class ‘REP’`
00:21:20 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
00:22:02 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
00:22:04 <int-e> d34df00d: there's nothing special about instances here; is the CPP language extension actually enabled?
00:22:24 <d34df00d> int-e: yep.
00:22:41 <d34df00d> And doing `type Foo = REP(Int#, Int8#)` works as expected.
00:23:04 <geekosaur> are you on os x?
00:23:46 <geekosaur> if so, use cpphs; os xs's cpp will have stopped parsing at the '
00:23:48 <d34df00d> Nope.
00:23:59 <geekosaur> (or otherwise using clang instead of gcc)
00:24:03 <int-e> oh, the '
00:24:12 <d34df00d> But that's a good advise, I probably need to support os x, thanks.
00:24:32 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
00:25:05 <geekosaur> hm, come to think of it I'm not sure gcc's cpp will do any better with that single quote
00:25:41 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
00:25:47 <geekosaur> you might in any case see if cpphs works better
00:25:52 × simpleauthority quits (~simpleaut@user/simpleauthority) (Quit: ZNC 1.8.2 - https://znc.in)
00:25:58 <int-e> you can maybe do silly things like {-'-}'
00:26:22 <int-e> instead of just '
00:26:25 <EvanR> {-'-}' looks like one of those escher drawings right now
00:26:44 alx741 joins (~alx741@157.100.93.160)
00:26:49 <d34df00d> I think I'll just conditionally define some type aliases.
00:26:57 lavaman joins (~lavaman@98.38.249.169)
00:30:26 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:30:50 × fr33domlover quits (~fr33@2.55.162.28) (Quit: fr33domlover)
00:31:56 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
00:32:43 simpleauthority joins (~simpleaut@user/simpleauthority)
00:32:48 × CHUD quits (~CHUD@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
00:34:24 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
00:38:06 machinedgod joins (~machinedg@24.105.81.50)
00:38:43 × Tuplanolla quits (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
00:39:07 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
00:39:18 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
00:39:28 × Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection)
00:41:41 zebrag joins (~chris@user/zebrag)
00:45:21 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:47:32 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
00:47:45 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
00:48:20 alx741 joins (~alx741@157.100.93.160)
00:48:53 × LiaoTao_ quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
00:49:15 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
00:50:05 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
00:50:44 × nitrix quits (~nitrix@user/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
00:50:58 × xff0x quits (~xff0x@2001:1a81:52f4:b00:92cd:1cec:76b4:462b) (Ping timeout: 250 seconds)
00:51:23 nitrix joins (~nitrix@user/nitrix)
00:51:43 xff0x joins (~xff0x@2001:1a81:52f4:b00:bacd:f4ac:13db:1a99)
00:51:43 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:54:18 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
00:55:34 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
00:58:44 akurilin_ joins (uid322841@id-322841.ilkley.irccloud.com)
01:00:58 lechner joins (~lechner@debian/lechner)
01:01:50 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:47 califax joins (~califax@user/califx)
01:02:56 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
01:06:16 justsomeguy joins (~justsomeg@user/justsomeguy)
01:09:51 lavaman joins (~lavaman@98.38.249.169)
01:09:58 alx741 joins (~alx741@157.100.93.160)
01:11:17 × myShoggoth quits (~myShoggot@97-120-67-120.ptld.qwest.net) (Ping timeout: 240 seconds)
01:11:38 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:11 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
01:12:13 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
01:12:27 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
01:13:57 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
01:14:53 CHUD joins (~CHUD@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
01:16:01 × CHUD quits (~CHUD@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
01:17:00 CHUD joins (~CHUD@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
01:17:23 wolftivystan joins (~wolftivys@31.6.41.128)
01:17:45 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:06 Tomtesting joins (~Tomtestin@2600:1700:4012:180::40)
01:18:29 <wolftivystan> hi yall
01:19:13 benin joins (~benin@183.82.31.24)
01:22:54 <EvanR> hi
01:24:25 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
01:25:12 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
01:28:09 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
01:28:18 myShoggoth joins (~myShoggot@97-120-67-120.ptld.qwest.net)
01:29:26 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
01:29:46 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:30:09 × wolftivystan quits (~wolftivys@31.6.41.128) (Quit: Client closed)
01:31:20 alx741 joins (~alx741@157.100.93.160)
01:32:55 × Tomtesting quits (~Tomtestin@2600:1700:4012:180::40) (Quit: Client closed)
01:40:25 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
01:40:39 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
01:44:46 vysn joins (~vysn@user/vysn)
01:45:24 Tomtesting joins (~Tomtestin@2600:1700:4012:180::40)
01:45:40 × Tomtesting quits (~Tomtestin@2600:1700:4012:180::40) (Client Quit)
01:45:46 × unyu quits (~pyon@user/pyon) (Quit: WeeChat 3.4)
01:45:57 × CHUD quits (~CHUD@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net) (Remote host closed the connection)
01:53:32 tommd joins (~tommd@67-42-147-226.ptld.qwest.net)
01:54:22 unyu joins (~pyon@user/pyon)
01:57:28 lavaman joins (~lavaman@98.38.249.169)
02:01:27 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
02:01:27 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 268 seconds)
02:02:03 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
02:02:30 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
02:03:18 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
02:05:37 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
02:05:52 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
02:09:13 × justache quits (~justache@user/justache) (Ping timeout: 256 seconds)
02:11:50 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
02:14:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
02:16:16 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
02:17:08 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
02:24:55 justache joins (~justache@user/justache)
02:25:11 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
02:25:17 × xff0x quits (~xff0x@2001:1a81:52f4:b00:bacd:f4ac:13db:1a99) (Ping timeout: 240 seconds)
02:27:17 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
02:27:25 xff0x joins (~xff0x@2001:1a81:5332:3500:27a3:a6cb:e9bf:c60f)
02:29:49 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
02:32:20 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Remote host closed the connection)
02:32:34 shapr joins (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab)
02:33:13 Akiva joins (~Akiva@user/Akiva)
02:34:12 cassaundra joins (~cassaundr@c-71-59-237-188.hsd1.or.comcast.net)
02:35:00 cassaundra is now known as cynomys
02:35:00 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Read error: Connection reset by peer)
02:35:10 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
02:35:10 × cynomys quits (~cassaundr@c-71-59-237-188.hsd1.or.comcast.net) (Client Quit)
02:36:12 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
02:37:19 zaquest joins (~notzaques@5.130.79.72)
02:38:57 cynomys joins (~cassaundr@c-71-59-237-188.hsd1.or.comcast.net)
02:39:18 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
02:41:02 × polyphem quits (~rod@2a02:810d:840:8754:b6f3:5141:3b3:83de) (Ping timeout: 240 seconds)
02:43:19 × cynomys quits (~cassaundr@c-71-59-237-188.hsd1.or.comcast.net) (Changing host)
02:43:19 cynomys joins (~cassaundr@user/cynomys)
02:43:23 × cynomys quits (~cassaundr@user/cynomys) (Quit: leaving)
02:45:19 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Remote host closed the connection)
02:46:34 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
02:47:07 cynomys joins (~cassaundr@user/cynomys)
02:48:15 polyphem joins (~rod@2a02:810d:840:8754:b6f3:5141:3b3:83de)
02:56:15 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:57:48 ensyde joins (~ensyde@2600:1700:2050:1040:68c5:7698:b1fb:66cc)
02:57:56 califax- joins (~califax@user/califx)
02:58:13 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
03:00:24 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
03:00:24 califax- is now known as califax
03:01:23 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
03:04:07 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
03:04:16 × Topsi quits (~Tobias@dyndsl-095-033-026-019.ewe-ip-backbone.de) (Read error: Connection reset by peer)
03:04:23 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
03:06:07 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
03:06:26 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
03:08:57 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
03:09:03 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Client Quit)
03:09:25 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
03:12:19 × cynomys quits (~cassaundr@user/cynomys) (Quit: leaving)
03:12:22 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
03:15:22 × alx741 quits (~alx741@157.100.93.160) (Quit: alx741)
03:15:30 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:15:55 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:16:21 cynomys joins (~cassaundr@user/cynomys)
03:17:05 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:17:05 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:17:05 finn_elija is now known as FinnElija
03:20:49 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
03:22:20 boxscape_ joins (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de)
03:25:02 <boxscape_> hm so you can't use callbacks to Haskell in unsafe FFI calls, AFAIU. I wonder, is it possible to set up a Haskell thread that waits until it's woken up by a callback written in C that's passed to the FFI call instead? (Ideally without the haskell thread periodically having to poll a global pointer or something, since that would introduce a delay)
03:27:14 <boxscape_> I suppose, worst-case scenario, you could set up a socket in haskell and in C and wait for a connection on the haskell side
03:27:55 <boxscape_> (what I mean to say by that is that even the worst-case scenario seems alright)
03:30:11 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
03:30:27 × td_ quits (~td@94.134.91.124) (Ping timeout: 256 seconds)
03:30:29 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
03:31:21 mbuf joins (~Shakthi@223.184.116.99)
03:32:11 td_ joins (~td@94.134.91.105)
03:32:23 <monochrom> That sounds like more coding and no less overhead than safe FFI.
03:35:24 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
03:37:15 <boxscape_> monochrom trouble is, I'm not in control of that, because I'm using a library that provides Haskell bindingss
03:37:34 × cynomys quits (~cassaundr@user/cynomys) (Quit: Lost terminal)
03:38:07 geekosaur joins (~geekosaur@xmonad/geekosaur)
03:42:32 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
03:43:46 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
03:47:03 cynomys joins (~cynomys@user/cynomys)
03:49:16 <EvanR> boxscape_, in the words of Lt. Barclay from "The Nth Degree" TNG episode: "I need a better interface"
03:49:45 <EvanR> (you should be barclay)
03:55:00 <boxscape_> I'll probably shelve this for now, because what I'm trying to accomplish is mostly optional in the context of the application as a whole
03:58:04 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
03:58:17 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
03:59:43 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds)
04:07:40 zebrag joins (~chris@user/zebrag)
04:13:19 × vglfr quits (~vglfr@88.155.24.103) (Ping timeout: 256 seconds)
04:17:17 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 256 seconds)
04:19:11 × turlando quits (~turlando@user/turlando) (Ping timeout: 256 seconds)
04:20:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
04:26:12 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds)
04:26:55 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
04:27:20 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
04:27:50 ChaiTRex joins (~ChaiTRex@user/chaitrex)
04:32:33 deadmarshal joins (~deadmarsh@95.38.228.242)
04:47:55 × deadmarshal quits (~deadmarsh@95.38.228.242) (Read error: Connection reset by peer)
04:52:34 deadmarshal joins (~deadmarsh@95.38.228.242)
04:54:15 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:56:14 × xff0x quits (~xff0x@2001:1a81:5332:3500:27a3:a6cb:e9bf:c60f) (Ping timeout: 250 seconds)
04:57:00 xff0x joins (~xff0x@2001:1a81:5332:3500:12ba:a184:ba98:5b9c)
05:01:01 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
05:02:02 img joins (~img@user/img)
05:13:17 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
05:13:50 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
05:15:14 img joins (~img@user/img)
05:17:11 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
05:22:08 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
05:22:21 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
05:22:53 × raym quits (~raym@user/raym) (Quit: kernel update, rebooting...)
05:26:30 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
05:28:37 raym joins (~raym@user/raym)
05:36:16 vglfr joins (~vglfr@88.155.24.103)
05:38:59 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
05:39:12 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
05:45:30 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 276 seconds)
05:49:06 × xff0x quits (~xff0x@2001:1a81:5332:3500:12ba:a184:ba98:5b9c) (Ping timeout: 250 seconds)
05:49:37 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
05:49:59 xff0x joins (~xff0x@2001:1a81:5332:3500:cae3:31:4918:e255)
05:50:12 ksqsf joins (~user@2001:da8:d800:611:4ed:dff2:5312:7ded)
05:50:41 Guest35 joins (~Guest35@mobile-user-c3a5cc-243.dhcp.inet.fi)
05:51:16 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
05:51:37 × Guest35 quits (~Guest35@mobile-user-c3a5cc-243.dhcp.inet.fi) (Client Quit)
05:52:34 × tommd quits (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds)
05:57:04 Jing joins (~hedgehog@240e:390:7c53:a7e1:c16c:1790:8bf6:b4b5)
05:59:15 lavaman joins (~lavaman@98.38.249.169)
06:01:37 × shapr quits (~user@2601:7c0:c37c:46d0:e679:6b02:49c:44ab) (Ping timeout: 240 seconds)
06:01:50 <EvanR> cool https://www.seas.upenn.edu/~cis120/archive/16sp/hw/hw05/
06:03:17 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
06:03:21 <ski> oh, OCaml
06:04:32 <EvanR> your mission, if you choose to accept it, is to do this in haskell
06:04:42 <EvanR> and reveal how the ****
06:05:04 × prasad quits (~user@c-73-170-49-136.hsd1.ca.comcast.net) (Remote host closed the connection)
06:05:32 <EvanR> I got close to this at one point using a cocoa front-end and IPC to the haskell program
06:05:46 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
06:06:04 <energizer> that is too pixellated for me in 2022
06:07:12 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
06:07:24 <EvanR> good for pixel art xD
06:07:34 <EvanR> anyway, ocaml has "a graphics module" and we do not
06:08:49 <energizer> for gui i really enjoy reading https://raphlinus.github.io/
06:08:52 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
06:09:05 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
06:09:22 <energizer> he's building a gui in rust
06:09:40 <EvanR> vulkan omg
06:14:48 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
06:16:09 × nitrix quits (~nitrix@user/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
06:18:04 <EvanR> suspicious of "the stack monoid" I had to click, then assured yes we're talking about monoids of the form (a -> a) where a = list
06:22:56 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
06:26:02 × xff0x quits (~xff0x@2001:1a81:5332:3500:cae3:31:4918:e255) (Ping timeout: 240 seconds)
06:27:14 xff0x joins (~xff0x@2001:1a81:5332:3500:8d55:d8c4:1b30:723c)
06:27:37 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
06:32:20 <EvanR> k that blog is a rabbit hole energizer
06:32:46 <energizer> iknowrite
06:33:39 <energizer> those people hang in https://xi.zulipchat.com/
06:54:18 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:57:57 × myShoggoth quits (~myShoggot@97-120-67-120.ptld.qwest.net) (Ping timeout: 240 seconds)
07:02:17 × deadmarshal quits (~deadmarsh@95.38.228.242) (Ping timeout: 240 seconds)
07:05:22 × ksqsf quits (~user@2001:da8:d800:611:4ed:dff2:5312:7ded) (Ping timeout: 250 seconds)
07:14:40 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:21:51 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
07:22:17 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
07:23:13 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
07:23:26 chexum joins (~quassel@gateway/tor-sasl/chexum)
07:24:20 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Client Quit)
07:25:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
07:26:10 × iteratee quits (~kyle@162.218.222.107) (Ping timeout: 250 seconds)
07:30:03 iteratee joins (~kyle@162.218.222.107)
07:31:57 ksqsf joins (~user@2001:da8:d800:611:4ed:dff2:5312:7ded)
07:34:37 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
07:36:17 × ksqsf quits (~user@2001:da8:d800:611:4ed:dff2:5312:7ded) (Ping timeout: 240 seconds)
07:39:16 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
07:40:03 × foul_owl quits (~kerry@94.140.8.106) (Ping timeout: 250 seconds)
07:40:33 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:41:31 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
07:44:07 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
07:47:51 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
07:47:53 ksqsf joins (~user@2001:da8:d800:611:4ed:dff2:5312:7ded)
07:49:02 lavaman joins (~lavaman@98.38.249.169)
07:49:10 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
07:52:57 × ksqsf quits (~user@2001:da8:d800:611:4ed:dff2:5312:7ded) (Ping timeout: 268 seconds)
07:55:07 foul_owl joins (~kerry@174-21-143-101.tukw.qwest.net)
07:56:57 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:00:28 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
08:00:51 max22- joins (~maxime@2a01cb0883359800bdabf9fff345f0d6.ipv6.abo.wanadoo.fr)
08:04:26 ksqsf joins (~user@2001:da8:d800:611:4ed:dff2:5312:7ded)
08:05:34 × boxscape_ quits (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de) (Quit: Connection closed)
08:07:28 deadmarshal joins (~deadmarsh@95.38.228.242)
08:09:04 × ksqsf quits (~user@2001:da8:d800:611:4ed:dff2:5312:7ded) (Ping timeout: 250 seconds)
08:09:43 ardell joins (~ardell@user/ardell)
08:12:57 ksqsf joins (~user@2001:da8:d800:611:7dfb:bd19:a073:ff4e)
08:13:29 × ardell quits (~ardell@user/ardell) (Client Quit)
08:17:44 × ksqsf quits (~user@2001:da8:d800:611:7dfb:bd19:a073:ff4e) (Ping timeout: 250 seconds)
08:19:52 lavaman joins (~lavaman@98.38.249.169)
08:20:30 mmhat joins (~mmh@55d48476.access.ecotel.net)
08:20:35 SummerSonw joins (~The_viole@203.77.49.232)
08:21:37 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
08:24:14 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
08:28:33 ksqsf joins (~user@222.195.66.54)
08:31:21 × SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 257 seconds)
08:32:57 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 240 seconds)
08:41:58 SummerSonw joins (~The_viole@203.77.49.232)
08:42:59 chomwitt joins (~chomwitt@2a02:587:dc03:8b00:12c3:7bff:fe6d:d374)
08:45:08 × chomwitt quits (~chomwitt@2a02:587:dc03:8b00:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
08:45:31 ksqsf joins (~user@222.195.66.54)
08:48:21 × ksqsf quits (~user@222.195.66.54) (Remote host closed the connection)
08:48:41 ksqsf joins (~user@222.195.66.54)
08:49:52 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
08:53:17 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 240 seconds)
08:54:58 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
08:56:30 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
09:00:34 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
09:01:43 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Remote host closed the connection)
09:03:17 × ensyde quits (~ensyde@2600:1700:2050:1040:68c5:7698:b1fb:66cc) (Ping timeout: 240 seconds)
09:06:56 Constraintegic joins (~thomasbul@2001:a61:1307:2b01:b1e2:16ab:18b4:8efc)
09:08:02 _ht joins (~quassel@82-168-34-160.fixed.kpn.net)
09:09:34 gehmehgeh joins (~user@user/gehmehgeh)
09:09:41 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Remote host closed the connection)
09:11:16 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
09:16:02 califax- joins (~califax@user/califx)
09:17:19 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
09:17:24 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
09:17:24 califax- is now known as califax
09:17:43 geekosaur joins (~geekosaur@xmonad/geekosaur)
09:21:25 ksqsf joins (~user@2001:da8:d800:611:e57c:4d5c:cbc6:ba78)
09:23:26 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
09:25:14 klf joins (~klf@66.220.205.98)
09:26:02 × ksqsf quits (~user@2001:da8:d800:611:e57c:4d5c:cbc6:ba78) (Ping timeout: 240 seconds)
09:26:18 <klf> need a refresher.
09:26:18 <klf> foldr f 4 (1:2:3:[])
09:27:35 <klf> What is the order of operation here? Does the concatenation occur before everything else?
09:27:35 <polyphem> klf: == (1 `f` 2 `f` 3 `f` 4)
09:28:57 <polyphem> klf: == (1 `f` (2 `f` (3 `f` (4))))
09:30:04 <xsperry> > foldr f z [a,b,c]
09:30:07 <lambdabot> f a (f b (f c z))
09:30:40 <xsperry> > foldr f z [1,2,3]
09:30:42 <lambdabot> f 1 (f 2 (f 3 z))
09:30:44 <xsperry> > foldl f z [1,2,3]
09:30:46 <lambdabot> f (f (f z 1) 2) 3
09:30:57 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
09:33:02 <klf> thank you
09:37:06 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
09:37:21 Tuplanolla joins (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi)
09:41:22 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
09:51:30 ksqsf joins (~user@2001:da8:d800:611:39cc:7ba1:9b3b:186e)
09:51:38 svi joins (~svi@2a01:e0a:3cc:4590:e6e2:2da1:f754:c5d8)
09:51:45 <svi> hello
09:51:59 <svi> I just started mingling with type families
09:52:17 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
09:53:38 <svi> I have this class : https://pastebin.com/RDX7Ld6E
09:54:25 <svi> but whenever i try to write instances i get "couldnt match type InstancedType with Frozen InstancedType"
09:54:27 <svi> ie
09:57:22 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
09:57:49 <svi> https://pastebin.com/WByGz6RA
09:57:59 <svi> god lol this is the worst syntax highlighting sorry
09:58:28 <svi> but yeah I feel like there is something I haven't gotten at all about type families, is the inner type supposed to not be exposed at all ?
09:58:45 <[exa]> svi: there's a friendly pastebin in topic but worry not
09:59:27 <svi> woo thanks
09:59:27 <[exa]> the inner type may be exposed; check out e.g. what the type-family-based transformers do
10:01:20 zer0bitz joins (~zer0bitz@2001:2003:f444:a000:25:3430:6d5f:c01)
10:01:49 <[exa]> svi: if I replace `data` by `type` there, it seems to start working
10:02:08 <[exa]> (on a very reduced example)
10:02:56 <svi> it works !
10:04:17 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:04:29 <[exa]> the underlying problem is that in the previous case the typesystem has no way to see the equality of `Frozen x ~ x` because it can't just "evaluate" the type synonym, but it technically _should_ work with data, except I have no idea how to
10:05:35 <klf> what is an usual way to execute putStrLn "hello world!" 10 times?
10:06:06 <[exa]> :t replicateM_
10:06:07 <polyphem> > :t replicateM
10:06:07 <lambdabot> Applicative m => Int -> m a -> m ()
10:06:08 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
10:06:24 <[exa]> klf: replicateM_ 10 $ whateverMonadAction
10:07:50 <[exa]> if you're new to monads, a less confusing intermediate step would be something like `mapM (\_ -> putStrLn "hello") [1..10]`
10:10:04 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
10:10:15 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:10:36 <klf> what is \_ ?
10:11:09 <[exa]> klf: a lambda with discarded value name
10:11:18 <klf> yea... that's what I thought.
10:11:27 <[exa]> :]
10:12:53 <[exa]> svi: anyway, with `data` families you need to provide actual data constructors there in `data`
10:14:04 <[exa]> svi: this kinda compiles here: https://paste.tomsmeding.com/Ufg4pnIi (I omitted the From/To JSON from the context tho)
10:14:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Ping timeout: 240 seconds)
10:17:42 <svi> ohhh I see ty ty
10:18:08 <svi> that is helpful, actually. you can derive inside the instance
10:18:50 <[exa]> yeah that actually saves you there, otherwise you couldn't use `data` because the instance would miss half of the prerequisities
10:20:27 mc47 joins (~mc47@xmonad/TheMC47)
10:21:37 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 240 seconds)
10:24:14 <ephemient> you can think of it as sequence_ [putStrLn "hello" | _ <- [1..10]] == sequence_ (replicate 10 (putStrLn "hello")) == replicateM_ 10 (putStrLn "hello"), or as == sequence_ (map (const (putStrLn "hello")) [1..10]) == mapM_ (const (putStrLn "hello")) [1..10], but either way…
10:28:54 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:31:54 × svi quits (~svi@2a01:e0a:3cc:4590:e6e2:2da1:f754:c5d8) (Quit: Client closed)
10:33:29 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
10:33:30 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:35:20 img joins (~img@user/img)
10:36:49 <klf> By putting '_' at the end of a function name suppresses the value of the function from being returned, right?
10:37:03 <klf> e.g. replicateM_
10:37:28 <Rembane> klf: It's a convention in some places.
10:37:38 <kitzman> hmm... 90% chance I don't know how to look for this - is there a way to display the data constructor of the type? i.e: X = A | B, typeOf shows X, typeRepTyCon shows X as well
10:37:56 Cheery joins (~cheery@7-239-179-185.static.tentacle.fi)
10:39:30 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:39:59 × vglfr quits (~vglfr@88.155.24.103) (Ping timeout: 256 seconds)
10:40:01 <Rembane> klf: Look at the type signature to get more reliable data of if the function evaluates to something more exciting than unit.
10:42:01 <ephemient> sequence_ and mapM_ can more efficient than sequence and mapM, but the other reason to use them is to avoid -Wunused-do-bind :)
10:43:17 <ephemient> actually seems that mapM/mapM_ is the example used in https://downloads.haskell.org/ghc/latest/docs/html/users_guide/using-warnings.html#ghc-flag--Wunused-do-bind
10:45:34 fendor joins (~fendor@91.141.78.76.wireless.dyn.drei.com)
10:46:22 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
10:46:31 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:47:49 Lord_of_Life_ is now known as Lord_of_Life
10:51:26 lavaman joins (~lavaman@98.38.249.169)
10:56:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
10:57:25 <ephemient> kitzman: something along these lines? https://stackoverflow.com/a/48179707
10:57:42 × califax quits (~califax@user/califx) (Remote host closed the connection)
10:57:56 califax joins (~califax@user/califx)
11:00:53 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
11:01:05 alx741 joins (~alx741@157.100.93.160)
11:01:14 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
11:02:20 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
11:02:28 HotblackDesiato_ joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
11:03:48 vglfr joins (~vglfr@88.155.24.103)
11:05:37 <klf> > sequence_ [putStrLn i | i <- [1..10]
11:05:39 <lambdabot> <hint>:1:37: error:
11:05:39 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
11:05:58 <klf> > sequence_ [putStrLn i | i <- [1..10]]
11:05:59 <lambdabot> error:
11:05:59 <lambdabot> • No instance for (Enum String)
11:05:59 <lambdabot> arising from the arithmetic sequence ‘1 .. 10’
11:06:11 <ephemient> > sequence_ [print i | i <- [1..10]]
11:06:12 <lambdabot> <IO ()>
11:06:26 <ephemient> mapM_ print [1..10]
11:06:39 <ephemient> (lambdabot won't do IO)
11:07:09 <klf> can you point out what I did wrong here: ' sequence_ [putStrLn i | i <- [1..10]]'
11:07:13 <geekosaur> % sequence_ [print i | i <- [1..10]]
11:07:13 <yahb> geekosaur: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10
11:07:27 <geekosaur> klf, a number is not a string
11:07:31 <ephemient> klf: putStrLn :: String -> IO (), i is not a String
11:07:40 <geekosaur> putStrLn, as its name suggests, prints Strings
11:08:25 <klf> I see.
11:09:10 <geekosaur> % sequence_ [putStrLn (show i) | i <- [1..10]]
11:09:11 <yahb> geekosaur: 1; 2; 3; 4; 5; 6; 7; 8; 9; 10
11:09:20 <geekosaur> which is the same as `print i`
11:09:26 <geekosaur> :t print
11:09:26 <lambdabot> Show a => a -> IO ()
11:11:40 DNH joins (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593)
11:12:28 <klf> re: "lambda won't do IO", which is in reference to '>'
11:12:41 <klf> Who is '%"?
11:12:47 <klf> he is more cooperative.
11:13:21 <geekosaur> yahb does IO, but is sandboxed. it's also actual ghci instead of mueval
11:13:26 <ephemient> yahb is yet another haskell bot
11:13:37 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:13:45 <geekosaur> % :!ls
11:13:45 <yahb> geekosaur: Eval; Eval.hi; Eval.hs; Eval.o; Eval.prof; Example; Example.hi; Example.hs; Example.o; Foo.hi; Foo.hs; Foo.o; Mod.hi; Mod.hs; Mod.o; Print; Print.hi; Print.hs; Print.o; Print.prof; a.out; example.txt; file; file.sh; file.txt; goobytest; hello; test; test.txt; tmp; x
11:14:03 <geekosaur> o.O
11:14:56 <klf> okay.
11:15:34 <geekosaur> oh, also if you expect a lot of output you can use %% instead of % and the output will be put in a pastebin
11:16:05 <geekosaur> (useful for things like :info)
11:16:33 <stilgart_> wow, that's good to know
11:23:12 × polyphem quits (~rod@2a02:810d:840:8754:b6f3:5141:3b3:83de) (Ping timeout: 250 seconds)
11:23:57 polyphem joins (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
11:26:08 fef joins (~thedawn@user/thedawn)
11:27:12 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
11:29:57 × polyphem quits (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 240 seconds)
11:31:17 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
11:31:57 × mbuf quits (~Shakthi@223.184.116.99) (Quit: Leaving)
11:34:12 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:34:32 polyphem joins (~rod@2a02:810d:840:8754:8362:a27b:a8a2:5eea)
11:41:45 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
11:46:37 × polyphem quits (~rod@2a02:810d:840:8754:8362:a27b:a8a2:5eea) (Ping timeout: 240 seconds)
11:47:46 polyphem joins (~rod@2a02:810d:840:8754:f8cc:a01b:29d5:d0e1)
11:49:50 python476 joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
11:57:18 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
11:58:30 <kitzman> ephemient: yes, thank you. i'll look into how that works.
11:59:36 python476 parts (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
11:59:58 <int-e> % readFile "goobytest"
11:59:58 <yahb> int-e: "Test1\nTest2\nTest3\n"
12:04:22 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
12:05:44 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
12:08:23 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 256 seconds)
12:13:50 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
12:17:16 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
12:17:26 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:18:10 gehmehgeh joins (~user@user/gehmehgeh)
12:18:57 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
12:21:19 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (Quit: leaving)
12:23:43 __monty__ joins (~toonn@user/toonn)
12:24:32 × ksqsf quits (~user@2001:da8:d800:611:39cc:7ba1:9b3b:186e) (Ping timeout: 240 seconds)
12:27:50 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:30:21 <ephemient> kitzman: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/generics.html https://wiki.haskell.org/GHC.Generics https://hackage.haskell.org/package/base/docs/GHC-Generics.html they're kinda dense… but basically Generic/Generic1 lets you work with the representation of a data type
12:31:25 × _ht quits (~quassel@82-168-34-160.fixed.kpn.net) (Ping timeout: 256 seconds)
12:31:49 _ht joins (~quassel@37.120.218.148)
12:32:00 × fendor quits (~fendor@91.141.78.76.wireless.dyn.drei.com) (Remote host closed the connection)
12:34:38 ksqsf joins (~user@2001:da8:d800:611:9c6a:d03:2f58:45c)
12:35:01 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
12:37:57 <jackdk> https://www.youtube.com/watch?v=yiT3fAA-BDo is a good introduction
12:38:42 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:38:54 gensyst joins (gensyst@user/gensyst)
12:39:57 <gensyst> Why was System.IO.openFile and Handle not made to automatically hClose the Handle upon the garbage collection of Handle?
12:40:02 × ksqsf quits (~user@2001:da8:d800:611:9c6a:d03:2f58:45c) (Ping timeout: 240 seconds)
12:40:02 <gensyst> Just out of curiosity.
12:40:46 <gensyst> I see no harm in it and only benefits. (However we still of course would have hClose if we really want to do it as early as possible.)
12:42:04 <gensyst> (well, there is one downside: overhead of registering the GC cleanup action)
12:42:35 ksqsf joins (~user@2001:da8:d800:611:c8a:43ed:910:2896)
12:43:33 AlexNoo_ is now known as AlexNoo
12:45:26 <maerwald> gensyst: I believe there was a similar discussion in libraries list once
12:46:32 <ephemient> there is `withFile` that will close the file descriptor at the end of the given action
12:48:43 <gensyst> ephemient, sure
12:48:50 <maerwald> gensyst: afair some people said using GC hooks in general is an anti-pattern
12:49:34 <ksqsf> imo gc is not deterministic enough for such scarce resources
12:49:46 <maerwald> however, streamly does use GC hooks that way
12:49:57 <gensyst> ksqsf, i agree actually. sometimes it happens way too late and unpredictably.
12:50:10 <gensyst> (s/it happens/it would happen)
12:50:24 <gensyst> maerwald, yeah exactly.
12:50:48 briandaed joins (~root@185.234.208.208.r.toneticgroup.pl)
12:50:51 <maerwald> well, I think because the only alternative solutions would be linear types
12:51:14 Axman6 joins (~Axman6@user/axman6)
12:52:51 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
12:53:33 lavaman joins (~lavaman@98.38.249.169)
12:53:52 chomwitt joins (~chomwitt@2a02:587:dc06:be00:12c3:7bff:fe6d:d374)
12:54:21 <gensyst> maerwald, i feel like Haskell/streamly is the way man was supposed to write programs
12:54:25 <gensyst> it's heaven
12:54:32 <ephemient> I think it could be useful to log a warning about leaked resources from the GC finalizer, similar to android's CloseGuard, but yeah. having actual program behavior depend on GC feels questionable to me
12:54:40 <maerwald> I use streamly, but the performance is VERY unpredictable
12:54:58 <maerwald> it can go from outperforming bytestring to being slower than conduit
12:55:32 <maerwald> requires a lot of knowledge about streamly itself and inlining
12:55:55 <maerwald> while with something like conduit you get ok performance and that rather consistently
12:56:16 <gensyst> maerwald, have you found any good tricks to find where bottlenecks appear? (if they are due to streamly or not). i wonder if it could be useful to learn how to read core lang to check if it got inlined into a tight loop
12:56:28 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
12:57:46 <maerwald> there are no general tricks other than https://github.com/composewell/streamly/blob/master/docs/optimizing.md
12:57:54 <maerwald> and that's usually not enough
12:58:15 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
12:58:17 <maerwald> you have to know which parts of the API perform better in cetrain circumstances etc
12:58:41 <maerwald> that kind of makes it dangerous to refactor your code
12:59:08 <maerwald> (as well as bumping GHC versions, because the inliner is not stable)
12:59:09 <gensyst> so one has got to profile all the time :)
13:00:30 <maerwald> I'd probably pick streamly for things, simply because I enjoy tinkering. But I'm not sure that's a good choice for a large codebase lots of people with different levels of performance-optimizing skills work on
13:01:13 <gensyst> perhaps profiling/timing ought to be part of a good CI
13:01:45 <maerwald> well, CI failing because of perfomance issues is another round-trip time slowing down development
13:01:54 × max22- quits (~maxime@2a01cb0883359800bdabf9fff345f0d6.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
13:02:16 <maerwald> depends on cost-benefit
13:02:44 <maerwald> probably most people don't care and don't need to. That's why conduit is still the most popular streaming library
13:02:55 <maerwald> although it's definitely not the most performant
13:03:10 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
13:03:29 <gensyst> maerwald, could this be because a program's bottleneck is usually not the conduit vs. streamly performance difference?
13:03:41 <gensyst> so even if they would have used streamly, it would not have made any perf diff
13:04:10 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
13:04:30 × beepsort quits (~beepsort@31.205.108.155) (Quit: client terminated!)
13:05:09 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
13:05:22 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
13:07:17 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
13:08:26 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Remote host closed the connection)
13:08:42 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
13:10:25 ph88 joins (~ph88@2a02:8109:9e00:71d0:3c42:1d7a:5c49:19d9)
13:13:42 × Constraintegic quits (~thomasbul@2001:a61:1307:2b01:b1e2:16ab:18b4:8efc) (Ping timeout: 250 seconds)
13:15:34 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:15:47 shapr joins (~user@c-68-35-49-128.hsd1.al.comcast.net)
13:20:02 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds)
13:21:38 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
13:22:00 <maerwald[m]> gensyst: depends. I mean the reason we have tricks like bytestring, lazy IO or use C ffi for eg yaml parsing is exactly because we don't have a native haskell streaming solution that can deliver all that. streamly could, but it has a long way to go
13:23:31 shapr` joins (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613)
13:24:10 goodtimeswithtom joins (~goodtimes@2600:1700:4012:180::40)
13:25:15 × shapr quits (~user@c-68-35-49-128.hsd1.al.comcast.net) (Ping timeout: 256 seconds)
13:26:22 notzmv joins (~zmv@user/notzmv)
13:28:20 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
13:28:41 kmein joins (~weechat@user/kmein)
13:28:59 × goodtimeswithtom quits (~goodtimes@2600:1700:4012:180::40) (Client Quit)
13:29:20 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
13:29:25 × deadmarshal quits (~deadmarsh@95.38.228.242) (Ping timeout: 256 seconds)
13:31:20 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
13:32:28 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
13:40:00 × raym quits (~raym@user/raym) (Remote host closed the connection)
13:43:21 vysn joins (~vysn@user/vysn)
13:46:44 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
13:46:44 allbery_b joins (~geekosaur@xmonad/geekosaur)
13:46:47 allbery_b is now known as geekosaur
13:46:52 ProfSimm joins (~ProfSimm@87.227.196.109)
13:49:24 raym joins (~raym@user/raym)
13:50:01 × shapr` quits (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613) (Remote host closed the connection)
13:51:02 SquidDev parts (~SquidDev@autoclave.squiddev.cc) (Bye!)
13:51:19 × mvk quits (~mvk@173.33.176.132) (Ping timeout: 256 seconds)
13:54:02 × klf quits (~klf@66.220.205.98) (Quit: Leaving)
13:56:41 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
14:01:46 shapr joins (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613)
14:02:09 FragByte_ joins (~christian@user/fragbyte)
14:05:00 <ldlework> gentauro: hey did you ever figure out how to get libssl working on that app you were stuck on with Nix?
14:05:02 × FragByte quits (~christian@user/fragbyte) (Ping timeout: 240 seconds)
14:05:02 FragByte_ is now known as FragByte
14:05:25 <ldlework> 21:16 <gentauro> I still get the "No usable version of libssl was found"
14:05:26 <ldlework> 21:16 <gentauro> :(
14:05:29 <ldlework> last march >_>'
14:07:17 × ksqsf quits (~user@2001:da8:d800:611:c8a:43ed:910:2896) (Ping timeout: 240 seconds)
14:09:13 lispy joins (~lispy3@84.69.59.93)
14:09:50 × lispy quits (~lispy3@84.69.59.93) (Remote host closed the connection)
14:10:24 deadmarshal joins (~deadmarsh@95.38.228.242)
14:11:06 machinedgod joins (~machinedg@24.105.81.50)
14:11:17 × shapr quits (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613) (Ping timeout: 240 seconds)
14:11:30 shapr`` joins (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613)
14:11:50 lispy joins (~lispy3@84.69.59.93)
14:12:12 max22- joins (~maxime@2a01cb08833598005b5f19f76fc72686.ipv6.abo.wanadoo.fr)
14:13:42 Pickchea joins (~private@user/pickchea)
14:16:06 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Ping timeout: 250 seconds)
14:19:17 × shapr`` quits (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613) (Ping timeout: 240 seconds)
14:19:30 shapr```` joins (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613)
14:19:34 × chomwitt quits (~chomwitt@2a02:587:dc06:be00:12c3:7bff:fe6d:d374) (Ping timeout: 250 seconds)
14:20:09 chomwitt joins (~chomwitt@2a02:587:dc06:be00:12c3:7bff:fe6d:d374)
14:22:14 × lispy quits (~lispy3@84.69.59.93) (Remote host closed the connection)
14:22:30 lispy joins (~lispy3@84.69.59.93)
14:25:17 × shapr```` quits (~user@2601:7c0:c37c:46d0:edc9:85cc:b84c:4613) (Ping timeout: 240 seconds)
14:25:30 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
14:27:03 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
14:27:35 × mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
14:30:07 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
14:30:23 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
14:31:29 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
14:31:44 ksqsf joins (~user@2001:da8:d800:611:8107:9924:1608:4322)
14:32:51 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
14:33:25 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
14:33:37 × lispy quits (~lispy3@84.69.59.93) (Quit: Leaving)
14:34:09 jakalx parts (~jakalx@base.jakalx.net) ()
14:34:09 alp joins (~alp@user/alp)
14:36:02 × ksqsf quits (~user@2001:da8:d800:611:8107:9924:1608:4322) (Ping timeout: 250 seconds)
14:37:32 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
14:38:17 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
14:41:37 × deadmarshal quits (~deadmarsh@95.38.228.242) (Ping timeout: 240 seconds)
14:46:17 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
14:48:21 ksqsf joins (~user@222.195.66.54)
14:49:38 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
14:52:43 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 256 seconds)
14:58:17 jakalx joins (~jakalx@base.jakalx.net)
14:59:37 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
14:59:50 soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
15:02:04 alp joins (~alp@user/alp)
15:02:33 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
15:04:52 × gensyst quits (gensyst@user/gensyst) (Quit: Leaving)
15:05:17 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
15:08:05 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
15:08:33 × raym quits (~raym@user/raym) (Quit: leaving)
15:11:08 × _ht quits (~quassel@37.120.218.148) (Ping timeout: 250 seconds)
15:11:32 × mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8)
15:11:33 _ht joins (~quassel@2a02:a468:b619:1:7ee4:4b51:626d:e55)
15:12:24 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
15:13:46 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
15:14:12 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
15:15:00 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
15:15:28 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
15:19:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Ping timeout: 240 seconds)
15:19:22 tavares joins (~tavares@user/tavares)
15:20:53 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:21:27 raym joins (~raym@user/raym)
15:23:59 ksqsf joins (~user@2001:da8:d800:611:89fb:49eb:d2b2:f4b1)
15:25:12 fef joins (~thedawn@user/thedawn)
15:32:32 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
15:41:41 LukeHoersten joins (~LukeHoers@user/lukehoersten)
15:41:57 × rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
15:42:50 rembo10 joins (~rembo10@remulis.com)
15:44:37 ec joins (~ec@gateway/tor-sasl/ec)
15:44:44 rusty joins (~rustyboy@2a02:2f0e:6209:3600:b8f6:c621:17f1:c195)
15:47:27 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:47:33 cheater joins (~Username@user/cheater)
15:49:42 × soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
15:51:36 soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
15:52:37 mmohammadi9812 joins (~Mohammad@2.178.202.163)
15:53:20 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
15:53:34 shapr joins (~user@2601:7c0:c37c:46d0:bf33:7711:bc65:c365)
15:53:37 × ksqsf quits (~user@2001:da8:d800:611:89fb:49eb:d2b2:f4b1) (Ping timeout: 240 seconds)
15:55:47 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:57:10 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:00:51 zmt00 joins (~zmt00@user/zmt00)
16:01:03 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
16:01:19 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
16:03:33 × SummerSonw quits (~The_viole@203.77.49.232) (Ping timeout: 256 seconds)
16:07:46 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:07:46 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
16:08:56 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
16:10:43 × soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
16:10:48 nattiestnate joins (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977)
16:14:34 mvk joins (~mvk@2607:fea8:5cdc:bf00::a2bf)
16:16:39 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
16:17:17 ksqsf joins (~user@2001:da8:d800:611:89fb:49eb:d2b2:f4b1)
16:19:48 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
16:21:34 EvanR joins (~EvanR@user/evanr)
16:21:36 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Quit: WeeChat 2.2-dev)
16:22:02 × ksqsf quits (~user@2001:da8:d800:611:89fb:49eb:d2b2:f4b1) (Ping timeout: 240 seconds)
16:22:15 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:22:34 × iteratee quits (~kyle@162.218.222.107) (Remote host closed the connection)
16:22:44 iteratee joins (~kyle@162.218.222.107)
16:22:57 ksqsf joins (~user@2001:da8:d800:611:95f9:c68e:df5d:9a46)
16:23:52 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
16:25:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
16:25:11 × nattiestnate quits (~nate@2001:448a:20a0:2d74:df0e:2d0:816:6977) (Quit: WeeChat 3.4)
16:26:37 × shapr quits (~user@2601:7c0:c37c:46d0:bf33:7711:bc65:c365) (Ping timeout: 240 seconds)
16:27:24 × ksqsf quits (~user@2001:da8:d800:611:95f9:c68e:df5d:9a46) (Ping timeout: 250 seconds)
16:28:28 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
16:29:06 × Jing quits (~hedgehog@240e:390:7c53:a7e1:c16c:1790:8bf6:b4b5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:33:59 × whatif quits (~user@123.123.223.41) (Quit: ERC (IRC client for Emacs 26.3))
16:35:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Remote host closed the connection)
16:36:52 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:37:20 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:38:01 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
16:39:03 ksqsf joins (~user@2001:da8:d800:611:69cf:4a16:9a7:fdb)
16:39:29 razetime joins (~quassel@49.207.209.26)
16:40:01 LukeHoersten joins (~LukeHoers@user/lukehoersten)
16:41:14 × rusty quits (~rustyboy@2a02:2f0e:6209:3600:b8f6:c621:17f1:c195) (Quit: Leaving)
16:41:57 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Ping timeout: 240 seconds)
16:42:26 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
16:43:32 × ksqsf quits (~user@2001:da8:d800:611:69cf:4a16:9a7:fdb) (Ping timeout: 240 seconds)
16:43:55 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
16:44:36 gehmehgeh joins (~user@user/gehmehgeh)
16:46:15 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
16:49:32 × tavares quits (~tavares@user/tavares) (Ping timeout: 240 seconds)
16:54:48 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
16:54:50 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:54:50 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:54:50 wroathe joins (~wroathe@user/wroathe)
16:56:04 ksqsf joins (~user@2001:da8:d800:611:b95c:c03a:1129:794a)
16:56:21 <__monty__> Is there a way to specify a dependency on non-Haskell executables in a cabal file.
16:57:47 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
16:57:53 gehmehgeh_ joins (~user@user/gehmehgeh)
17:01:38 × ksqsf quits (~user@2001:da8:d800:611:b95c:c03a:1129:794a) (Ping timeout: 250 seconds)
17:01:54 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
17:01:58 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:03:57 × mvk quits (~mvk@2607:fea8:5cdc:bf00::a2bf) (Ping timeout: 240 seconds)
17:04:03 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Remote host closed the connection)
17:04:57 motherfsck joins (~motherfsc@user/motherfsck)
17:05:27 × briandaed quits (~root@185.234.208.208.r.toneticgroup.pl) (Remote host closed the connection)
17:06:07 <maerwald> with a custom Setup.hs you can
17:06:14 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
17:08:29 mvk joins (~mvk@2607:fea8:5cdc:bf00::a2bf)
17:08:38 <Hecate> __monty__: what do you need to be done with this dependency?
17:08:41 <Hecate> like, ensure it's present?
17:08:44 <Hecate> build it?
17:09:21 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
17:09:48 × razetime quits (~quassel@49.207.209.26) (Ping timeout: 268 seconds)
17:10:01 <[itchyjunk]> I would like to write a partial function. :x
17:10:02 <[itchyjunk]> https://bpa.st/TA5A
17:10:04 Constraintegic joins (~thomasbul@2001:a61:1307:2b01:758:22d1:74ab:3b31)
17:10:08 <[itchyjunk]> But I feel all sorts of confused.
17:10:54 × mvk quits (~mvk@2607:fea8:5cdc:bf00::a2bf) (Read error: Connection reset by peer)
17:11:09 <EvanR> the type should make you feel uncomfortable
17:11:29 <EvanR> partial functions aren't great when they can easily be avoided
17:11:47 <[itchyjunk]> How can they be avoided when they are the goal? :x
17:11:48 mvk joins (~mvk@2607:fea8:5cdc:bf00::a2bf)
17:12:06 LukeHoersten joins (~LukeHoers@user/lukehoersten)
17:12:07 <EvanR> your goal is to write any partial function?
17:12:42 <monochrom> I thought you solved this one last time. Use pattern matching.
17:12:54 × burnsidesLlama quits (~burnsides@dhcp168-027.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
17:13:15 <[itchyjunk]> No, I filed it under `learn more pattern matching to solve this`.
17:13:27 <monochrom> OK, learn "case-of".
17:13:28 ksqsf joins (~user@2001:da8:d800:611:7d7c:8716:8858:5abe)
17:13:43 zebrag joins (~chris@user/zebrag)
17:13:52 <[itchyjunk]> Oh, i thought i could use case or use pattern matching :x maybe i misunderstood.
17:13:58 [itchyjunk] looks up case-of
17:14:02 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
17:15:48 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:16:57 × mmohammadi9812 quits (~Mohammad@2.178.202.163) (Ping timeout: 240 seconds)
17:17:46 <dsal> :t (fromJust .) -- [itchyjunk]
17:17:47 <lambdabot> (a -> Maybe c) -> a -> c
17:18:06 × ksqsf quits (~user@2001:da8:d800:611:7d7c:8716:8858:5abe) (Ping timeout: 250 seconds)
17:19:14 <dsal> Though avoiding partial functions is better.
17:19:41 <[itchyjunk]> I was just curious about them. :D
17:22:29 <__monty__> Hecate: Just declare it's necessary at run-time really.
17:23:46 <dsal> [itchyjunk]: `f True = 3` -- that's a simpler partial function. :)
17:24:53 <hpc> f = undefined -- also technically a partial function :D
17:26:45 <dsal> Oh yeah, and that one has a more flexible type signature.
17:26:57 <[itchyjunk]> So it's partial because it doesn't map the False to anything?
17:27:03 <dsal> Right.
17:27:15 <[itchyjunk]> But what about the `f = undefined` case?
17:27:19 <dsal> If you have a function that only works for some inputs, it's partial. You shouldn't do that.
17:27:21 <[itchyjunk]> Can't tell why that's partial
17:27:24 zincy_ joins (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
17:27:32 aku_ is now known as eagleflo
17:27:35 <dsal> :t undefined
17:27:37 <lambdabot> a
17:27:53 <dsal> heh. undefined can be any type, and is always a failure.
17:28:19 <dsal> It's a slightly different concept. In one case, you only consider some inputs and implicitly fail on others. In the other case, you explicitly wrote a failure.
17:29:43 gehmehgeh_ is now known as gehmehgeh
17:29:58 <Gurkenglas> A measure on X has type signature (X->R)->R. What it does is it integrates a function. A kernel between X and Y is a function X->(Y->R)->R. A derivative between two kernels f,g::X->(Y->R)->R is a function h::X->Y->R such that f x yr = g x yr * g x (h x). When I try to figure out what the composition X->Z->R of two derivatives X->Y->R and Y->Z->R is, I find that I am missing a (Y->R)->R to combine them. Is there
17:29:58 <Gurkenglas> some alternative definition of derivative which composes properly?
17:30:03 bash69 joins (~bash69@d24-141-9-87.home.cgocable.net)
17:30:22 × bash69 quits (~bash69@d24-141-9-87.home.cgocable.net) (Client Quit)
17:31:07 ksqsf joins (~user@2001:da8:d800:611:bd11:5994:94ee:a92c)
17:33:23 <Gurkenglas> I *suppose* that the X->Z->R could acquire a (Y->R)->R by plugging the X into either of the two X->(Y->R)->R. But which?
17:33:40 burnsidesLlama joins (~burnsides@dhcp168-027.wadham.ox.ac.uk)
17:34:29 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:35:57 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
17:36:18 × ksqsf quits (~user@2001:da8:d800:611:bd11:5994:94ee:a92c) (Ping timeout: 250 seconds)
17:36:29 <Gurkenglas> ...oh, it will of course turn out that both will produce the same X->Z->R. Thanks everyone :P?
17:36:59 LukeHoersten joins (~LukeHoers@user/lukehoersten)
17:38:56 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
17:39:41 <EvanR> [itchyjunk], you're right, undefined isn't partial in the sense that *something* works. Because in that case nothing works. But it's still a form of "partiality"
17:40:13 <EvanR> maybe we can invent the jargon "properly partial" in that *something* works xD
17:40:22 <EvanR> but that's usually little consolation
17:42:08 <EvanR> the bad news is your program just self destructed because it tried to do `head []'. The good news is that head [3] would've worked?
17:42:16 ksqsf joins (~user@222.195.66.54)
17:42:59 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:43:22 × Constraintegic quits (~thomasbul@2001:a61:1307:2b01:758:22d1:74ab:3b31) (Remote host closed the connection)
17:43:34 Constraintegic joins (~thomasbul@2001:a61:1307:2b01:758:22d1:74ab:3b31)
17:44:29 deadmarshal joins (~deadmarsh@95.38.228.242)
17:45:35 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:46:23 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
17:46:42 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
17:47:00 zincy__ joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com)
17:47:43 × zincy_ quits (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Read error: Connection reset by peer)
17:47:49 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 256 seconds)
17:47:52 × zincy quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Remote host closed the connection)
17:47:54 tom_ joins (~tom@host86-151-99-97.range86-151.btcentralplus.com)
17:49:27 lavaman joins (~lavaman@98.38.249.169)
17:51:57 × benin quits (~benin@183.82.31.24) (Ping timeout: 240 seconds)
17:53:33 × kuribas quits (~user@ptr-25vy0i8mxo9em8d53n7.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:54:02 dyeplexer joins (~dyeplexer@user/dyeplexer)
17:54:37 benin joins (~benin@183.82.31.24)
17:55:02 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
17:55:09 econo joins (uid147250@user/econo)
17:55:30 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
17:55:30 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
17:55:49 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
17:57:02 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:59:03 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:59:21 <Sqaure> Is there some package that provides time formats for different locales (however that is defined... country and/or language )?
18:00:05 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
18:00:43 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:00:45 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
18:02:08 <dsal> Every time something tries to provide me a time format based on my country and/or language, it's not the one I want. Google has a bunch of bugs open for that. (Temperature as well. I'm in the US, so clearly I want to see Fahrenheit)
18:03:05 <EvanR> Sqaure, hmm https://hackage.haskell.org/package/current-locale-0.2.0.1/docs/System-CurrentLocale.html
18:03:27 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
18:03:46 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
18:03:59 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
18:04:07 <EvanR> nvm that is 1. old and 2. for getting the current system time locale
18:04:36 <EvanR> not providing a smorgasbord to choose from
18:04:37 <Sqaure> Thanks for trying
18:05:11 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds)
18:05:28 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:05:29 × litharge quits (litharge@libera/bot/litharge) (*.net *.split)
18:08:01 × benin quits (~benin@183.82.31.24) (Ping timeout: 256 seconds)
18:08:05 <EvanR> do you want linux or windows
18:10:11 × zincy__ quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection)
18:11:07 neceve joins (~quassel@2.26.93.228)
18:15:38 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: sjdvjsk)
18:16:05 litharge joins (litharge@libera/bot/litharge)
18:19:31 lispy joins (~lispy3@84.69.59.93)
18:23:45 <[itchyjunk]> I am trying to write a helper function of type Maybe a -> Maybe b so that i can test my function
18:24:31 <[itchyjunk]> My function compiled but i am not sure what it does. so i wanted a helper to test it xD
18:24:31 <[itchyjunk]> https://bpa.st/NZTQ
18:25:33 edrx joins (~Eduardo@2804:56c:d2f8:7700:812f:d393:2bf3:f7a6)
18:26:53 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:26:58 <[itchyjunk]> Ah i kinda did it
18:27:00 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
18:27:08 <[itchyjunk]> i made go an identity function `Maybe a -> Maybe a`
18:27:19 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
18:27:45 <[itchyjunk]> So `f` here is a partial function?
18:27:46 <[itchyjunk]> https://bpa.st/G4MQ
18:27:58 <[itchyjunk]> If so, this was less exciting that I was expecting it to be.
18:30:09 <polyphem> [itchyjunk]: Maybe is usually used as a way to make partial functions total
18:30:28 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 250 seconds)
18:30:29 zincy joins (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
18:30:34 ChanServ sets mode +o geekosaur
18:30:54 <geekosaur> (just in case; they're restarting services)
18:31:14 <edrx> hi all, I'm struggling trying to prove a basic (?) equality in Agda... I guess that this should be obvious to people who know the material here - https://plfa.github.io/Equality/ - but I'm stuck =(. In english my question would be "how do I prove that if f ≡ f' and g ≡ g' then f ∘ g ≡ f' ∘ g'?", and my question in Agda is here: https://0x0.st/ooyP.txt
18:31:24 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:31:37 <edrx> (the question in Agda is slightly simpler)
18:31:41 <polyphem> [itchyjunk]: you want to avoid partial functions, they introduce possible bugs in your code
18:31:49 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
18:32:10 × zincy quits (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection)
18:32:39 tavares joins (~tavares@187.19.212.26)
18:32:44 × tavares quits (~tavares@187.19.212.26) (Changing host)
18:32:44 tavares joins (~tavares@user/tavares)
18:33:11 zincy joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com)
18:33:39 <polyphem> [itchyjunk]: why not take the partial function head, and try to implement a total version safeHead . i think it'll help you to grasp the concept and braden your understanding
18:34:01 <polyphem> *broaden
18:34:17 × ridcully_ quits (~ridcully@p57b52a9a.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
18:35:12 × robertm quits (robertm@lattice.rojoma.com) (Quit: WeeChat 3.0)
18:35:31 <agumonkey> polyphem: such as ?
18:35:31 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection)
18:35:47 ridcully_ joins (~ridcully@p508ac987.dip0.t-ipconnect.de)
18:35:56 <zzz> list fusion is the process by which (f p = length . filter p) is optimized, right?
18:36:13 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
18:36:19 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
18:37:27 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
18:37:38 robertm joins (robertm@lattice.rojoma.com)
18:37:50 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
18:39:24 <dsal> [itchyjunk]: Your `go` function is `id` Your `g` function is `(fromJust .)` -- but if you see `fromJust` in code, you can often just go ahead and file a bug.
18:39:59 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
18:43:50 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
18:43:56 × zincy quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection)
18:44:08 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:44:13 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
18:45:37 log101 joins (~log101@212.125.22.146)
18:46:40 × lispy quits (~lispy3@84.69.59.93) (Quit: Leaving)
18:47:18 lispy joins (~lispy3@84.69.59.93)
18:47:44 akegalj joins (~akegalj@141-136-204-193.dsl.iskon.hr)
18:49:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
18:49:12 akegalj parts (~akegalj@141-136-204-193.dsl.iskon.hr) ()
18:49:42 × alp quits (~alp@user/alp) (Ping timeout: 268 seconds)
18:50:06 akegalj joins (~akegalj@141-136-204-193.dsl.iskon.hr)
18:50:16 <[itchyjunk]> :D
18:50:30 <[itchyjunk]> I'll look at fromJust at some point, then.
18:51:46 <EvanR> oof...
18:52:03 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
18:52:07 <EvanR> fromJust defeats the purpose of Maybe
18:52:40 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
18:52:40 <EvanR> it's probably a code smell
18:55:07 × DNH quits (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:55:29 justsomeguy joins (~justsomeg@user/justsomeguy)
18:56:52 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
18:58:54 DNH joins (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593)
19:00:55 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
19:01:09 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
19:02:01 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:04:07 × kaph quits (~kaph@net-2-47-208-144.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
19:04:46 × ChanServ quits (ChanServ@services.libera.chat) (shutting down)
19:04:57 Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
19:05:18 ChanServ joins (ChanServ@services.libera.chat)
19:05:18 mercury.libera.chat sets mode +o ChanServ
19:06:02 <dsal> @src fromJust
19:06:02 <lambdabot> fromJust Nothing = undefined
19:06:02 <lambdabot> fromJust (Just x) = x
19:07:12 <EvanR> toJust undefined = Nothing
19:07:18 <EvanR> toJust x = Just x
19:07:35 × max22- quits (~maxime@2a01cb08833598005b5f19f76fc72686.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
19:07:53 × lispy quits (~lispy3@84.69.59.93) (Quit: Leaving)
19:08:27 <EvanR> (javascript beats haskell again)
19:09:02 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds)
19:10:17 × deadmarshal quits (~deadmarsh@95.38.228.242) (Ping timeout: 240 seconds)
19:11:21 × Constraintegic quits (~thomasbul@2001:a61:1307:2b01:758:22d1:74ab:3b31) (Remote host closed the connection)
19:11:23 Erutuon joins (~Erutuon@user/erutuon)
19:11:34 Constraintegic joins (~thomasbul@2001:a61:1307:2b01:3d2f:ad9e:d1f8:1d5d)
19:11:35 lispy joins (~lispy3@84.69.59.93)
19:13:45 × DNH quits (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:16:16 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
19:16:30 DNH joins (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593)
19:16:52 geekosaur sets mode -o geekosaur
19:17:54 mmohammadi9812 joins (~Mohammad@188.210.110.121)
19:19:00 × xff0x quits (~xff0x@2001:1a81:5332:3500:8d55:d8c4:1b30:723c) (Ping timeout: 250 seconds)
19:19:54 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
19:20:00 xff0x joins (~xff0x@2001:1a81:5332:3500:b49d:8e28:9fba:6720)
19:21:53 soxen joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
19:22:14 zincy joins (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
19:27:02 × zincy quits (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection)
19:29:03 × mmohammadi9812 quits (~Mohammad@188.210.110.121) (Ping timeout: 256 seconds)
19:29:03 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds)
19:29:44 motherfsck joins (~motherfsc@user/motherfsck)
19:31:51 × lispy quits (~lispy3@84.69.59.93) (Quit: Leaving)
19:32:59 <energizer> i am reading this post https://alessandrovermeulen.me/2013/07/13/the-difference-between-shallow-and-deep-embedding/
19:33:24 LukeHoersten joins (~LukeHoers@user/lukehoersten)
19:33:30 <energizer> i tried copying the first block but ghci says The type signature for ‘const’ lacks an accompanying binding
19:33:49 <geekosaur> ghci needs you to do grouping manually
19:34:02 <geekosaur> it can't tell the next thing you'll type will be the binding
19:34:22 <geekosaur> so use :{ and :} to type the declaration and definition as a group
19:34:32 <geekosaur> or load the whole thing from a file instead of typinjg it into ghci
19:35:11 <energizer> i did
19:35:24 <energizer> didnt help
19:35:45 max22- joins (~maxime@2a01cb0883359800e05a099bb642ef66.ipv6.abo.wanadoo.fr)
19:35:51 × log101 quits (~log101@212.125.22.146) (Ping timeout: 256 seconds)
19:36:03 neurocyte0917090 joins (~neurocyte@IP-045014188253.dynamic.medianet-world.de)
19:36:03 × neurocyte0917090 quits (~neurocyte@IP-045014188253.dynamic.medianet-world.de) (Changing host)
19:36:03 neurocyte0917090 joins (~neurocyte@user/neurocyte)
19:36:12 <geekosaur> oh, I see. thst whole thing is incomplete
19:36:22 <geekosaur> you're not supposed to type it in and evaluate it
19:36:59 <EvanR> heh, tutorial style where 1 line of code floats in isolation while they go on and on. Later you have no idea how it fits together
19:37:24 <geekosaur> they don't even define the '⊨' thye use later on
19:37:34 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
19:37:39 <energizer> grrr
19:38:22 <monochrom> This is why when I do this I include "-- mock code"
19:39:00 <geekosaur> right, it's all mock, none of it is complete or usable
19:40:27 log101 joins (~log101@212.125.22.146)
19:40:28 <zzz> can anyone cnofirm that list fusion is the process by which (f p = length . filter p) is optimized (by avoiding going thruogh the list twice)?
19:45:17 <[exa]> zzz: IMO in this case it might be just a simple case of inlining (not sure if there is a proper "definition" for fusion). I thought that list fusion is something where RULES hints trigger stuff like `map f . map g ===> map (f.g)`.
19:45:56 <[exa]> this looks comprehensive: https://stackoverflow.com/a/38910170/1043097
19:46:58 cynomys joins (~cynomys@user/cynomys)
19:51:00 alp joins (~alp@user/alp)
19:51:05 <zzz> thanks [exa]
19:52:15 <EvanR> hmm going through the list twice?
19:52:41 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Remote host closed the connection)
19:52:51 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
19:52:53 <EvanR> or just skipping a cons decons
19:53:23 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
19:55:24 × tavares quits (~tavares@user/tavares) (Ping timeout: 250 seconds)
19:55:34 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
19:56:24 × DNH quits (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:56:32 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
19:56:57 alp joins (~alp@user/alp)
19:57:15 DNH joins (~DNH@2a02:8108:1100:16d8:554b:fd6:4afe:d593)
19:57:37 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Ping timeout: 240 seconds)
19:59:17 × log101 quits (~log101@212.125.22.146) (Ping timeout: 256 seconds)
20:05:19 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds)
20:05:27 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:07:01 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
20:07:06 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
20:11:59 Guest|92 joins (~Guest|92@198.217.30.212)
20:12:06 × Guest|92 quits (~Guest|92@198.217.30.212) (Client Quit)
20:13:58 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
20:17:03 ksqsf joins (~user@2001:da8:d800:611:68c0:1790:f3ba:1b01)
20:17:29 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
20:17:51 motherfsck joins (~motherfsc@user/motherfsck)
20:21:24 × ksqsf quits (~user@2001:da8:d800:611:68c0:1790:f3ba:1b01) (Ping timeout: 250 seconds)
20:27:48 ddb1 is now known as ddb
20:28:16 × Constraintegic quits (~thomasbul@2001:a61:1307:2b01:3d2f:ad9e:d1f8:1d5d) (Remote host closed the connection)
20:28:33 Constraintegic joins (~thomasbul@2001:a61:1307:2b01:3d2f:ad9e:d1f8:1d5d)
20:31:34 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
20:31:40 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
20:32:14 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
20:34:24 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
20:35:09 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
20:36:19 xkuru joins (~xkuru@user/xkuru)
20:41:20 pavonia joins (~user@user/siracusa)
20:42:08 <zzz> i don't know
20:42:11 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
20:42:32 × Cheery quits (~cheery@7-239-179-185.static.tentacle.fi) (Ping timeout: 240 seconds)
20:47:24 × mmhat quits (~mmh@55d48476.access.ecotel.net) (Ping timeout: 250 seconds)
20:48:14 ProfSimm joins (~ProfSimm@87.227.196.109)
20:48:43 lispy joins (~lispy4@84.69.59.93)
20:49:13 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
20:49:42 ksqsf joins (~user@222.195.66.54)
20:50:58 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
20:51:04 × lispy quits (~lispy4@84.69.59.93) (Client Quit)
20:51:57 lispy joins (~lispy4@84.69.59.93)
20:52:00 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
20:52:59 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
20:54:20 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 250 seconds)
21:01:33 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Remote host closed the connection)
21:04:18 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 250 seconds)
21:05:17 mmhat joins (~mmh@55d4124f.access.ecotel.net)
21:05:53 motherfsck joins (~motherfsc@user/motherfsck)
21:07:34 myShoggoth joins (~myShoggot@97-120-67-120.ptld.qwest.net)
21:08:41 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
21:09:24 LukeHoersten joins (~LukeHoers@user/lukehoersten)
21:09:49 × _ht quits (~quassel@2a02:a468:b619:1:7ee4:4b51:626d:e55) (Remote host closed the connection)
21:11:53 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
21:13:39 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:15:14 klimnbrk joins (~barakvoid@2a02:14f:4:90c3:5267:c24a:c393:429d)
21:19:23 random-jellyfish joins (~random-je@user/random-jellyfish)
21:20:58 <[exa]> zzz: you may have a look at the optimized code dump
21:21:03 <[exa]> to be sure :D
21:21:52 <random-jellyfish> I want to create a list of strings this way, read the first string from IO and expect a number n, then read n more string from IO and append them to the list
21:22:16 <random-jellyfish> can I do that in a single expression?
21:22:22 <[exa]> likely
21:22:34 <[exa]> (spoiler: whole main function is a single expression :D )
21:22:50 <random-jellyfish> yes, I meant in a single line of code
21:23:00 <random-jellyfish> without many <-
21:23:12 <[exa]> other than that I guess you can just combine readLn, >>=, replicateN, and something extra to get the job done
21:23:15 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
21:23:27 <tomsmeding> @undo do { x <- f 1 ; y <- g 2; return x + y }
21:23:27 <lambdabot> f 1 >>= \ x -> g 2 >>= \ y -> return x + y
21:23:56 <[exa]> random-jellyfish: btw if you have a piece of code with <-'s we can work on it to improve it in steps
21:24:45 <random-jellyfish> I don't have any code yet
21:24:57 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 240 seconds)
21:25:38 LukeHoersten joins (~LukeHoers@user/lukehoersten)
21:26:00 <random-jellyfish> let's say you want to write an IO function that receives an Ethernet frame from a connection, somewhere in the Ethernet frame there is a field containing the length of the data contained by the frame
21:26:10 <random-jellyfish> how would you write such a function?
21:26:35 <random-jellyfish> first you'd have to read that length field, then fetch the rest of the data from IO
21:27:21 <random-jellyfish> I want this to be encoded as a lazy expression
21:28:42 <c_wraith> lazy probably doesn't mean anything useful in this context
21:29:05 × akegalj quits (~akegalj@141-136-204-193.dsl.iskon.hr) (Quit: leaving)
21:29:44 <random-jellyfish> I would like to first code it as a lazy expression using algebraic data types, then run it through an function that translates it to IO actions
21:30:18 <c_wraith> what does laziness add?
21:30:46 <c_wraith> like, I'm all for laziness. But I don't think you mean what Haskell calls laziness.
21:32:02 <random-jellyfish> what I actually want to do is to connect haskell to an HDL simulator, and from Haskell I want to send stimulus and monitor data traffic from signals
21:32:28 <random-jellyfish> the problem is that HDL simulators can run multiple "threads" in a simulated way
21:32:50 <random-jellyfish> they're kind of like green threads, they use coroutines behind the scenes
21:32:58 <random-jellyfish> I can't do that on the haskell side
21:33:04 <c_wraith> why not?
21:33:09 <random-jellyfish> so I have to model them
21:33:24 <random-jellyfish> and send them to the other side where they can be executed by the HDL simulator
21:33:32 × zer0bitz quits (~zer0bitz@2001:2003:f444:a000:25:3430:6d5f:c01) (Ping timeout: 240 seconds)
21:34:35 <random-jellyfish> for example: Wait (10,Ns) :=: (Wait (5,Ns) :+: Write 1 $ Signal 6)
21:34:49 <random-jellyfish> this would tell the HDL simulator to spawn 2 threads
21:34:51 <c_wraith> Like, I'm trying to understand the problem... You want to write code in a concurrent pattern that handles different portions of input from the simulator in each thread?
21:35:04 <c_wraith> why not... use threads?
21:35:09 <random-jellyfish> in one of them it just waits 10 ns, in the other one waits 5 ns then writes to a signal
21:35:34 <random-jellyfish> because HDL threads are not the same as Haskell threads
21:35:49 <random-jellyfish> HDL simulators have their own kernel with a thread scheduler built in
21:36:02 <random-jellyfish> I'd have to replicate that on the haskell side and sync them
21:36:03 <c_wraith> I still don't see where the problem is
21:36:10 <c_wraith> why would you need to do that?
21:37:02 <random-jellyfish> what kind of threads would you suggest I use on the haskell side?
21:37:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:38:14 <c_wraith> well, the first thing is to just try using forkIO.
21:38:23 <c_wraith> If it doesn't work, then you know more about why
21:39:07 <c_wraith> If you'd rather just write an event loop that happens to appear to use concurrent access, you can use a free monad, I suppose.
21:39:09 <random-jellyfish> it won't work, the threads have to be spawned on the HDL side
21:39:18 <c_wraith> What?
21:39:24 <c_wraith> How is that relevant to *anything*?
21:40:05 <c_wraith> You're mixing what your code needs to do with how the simulator works.
21:40:15 <c_wraith> separate them. There is no connection.
21:40:23 <c_wraith> What does *your code* need to do?
21:40:31 Cheery joins (~cheery@7-239-179-185.static.tentacle.fi)
21:40:52 <random-jellyfish> I plan to use zeroMQ to "link" haskell and the HDL simulator
21:41:17 <zzz> main = go 1 where go n = do ... ; go (n - 1)
21:41:49 <davean> random-jellyfish: you could call Haskell functions from the HDL side too of course
21:42:34 <c_wraith> Does your code need to model synchronous interactions with the hardware? In that case, you really need to run inside the HDL simulator
21:42:53 <c_wraith> Or alternatively, run the HDL simulator as a library
21:43:04 <random-jellyfish> I want to write the testbench in haskell
21:43:21 <random-jellyfish> so the haskell code should be the master and the simulator side the slave
21:43:30 ksqsf joins (~user@222.195.66.54)
21:43:35 <random-jellyfish> not sure if it's possible
21:43:43 <c_wraith> that sounds a lot like you need to handle everything synchronously
21:44:17 <zzz> would there be any difference between having [] a and NonEmpty a like we have now and just having NonEmpty and Maybe NonEmpty?
21:44:24 <c_wraith> ie, you need exactly control of the simulated time between signals and stimuli?
21:44:48 <zzz> *NonEmpty a and Maybe (NonEmpty a)
21:45:24 <c_wraith> zzz: well, [] and NonEmpty are both instances of Functor. Do you really want to reach for Compose Maybe NonEmpty every time you want the equivalent of fmap on lists?
21:45:43 <d34df00d> zzz: I guess you can build an isomoprhism between the two, so there isn't any theoretical difference.
21:45:51 <d34df00d> But there surely is practical/convenience/usability difference.
21:45:58 <zzz> i see
21:46:20 <c_wraith> it's easy to have isomorphism between the shapes. It's a lot harder for that isomorphism to preserve instances
21:46:24 <random-jellyfish> a testbench should be able to ask the simulator to do these things: drive bits to signals, read bits from signals, consume simulation time(e.g. wait 5ns), wait for the edge of a signal(e.g. wait rise of clk)
21:47:13 <d34df00d> c_wraith: why? Modulo Haskell expressiveness and the fact that you cannot easily write `instance Functor (Maybe . NonEmtpy)`
21:47:20 <random-jellyfish> I was hoping to able to model these actions as primitives using an alebgraic data types and combine them with 2 operators: a :+:b and a:=: b
21:47:32 <c_wraith> d34df00d: the instances that currently exist.
21:47:39 <d34df00d> And modulo that too.
21:47:44 <random-jellyfish> :+: runs two actions one after the other, :=: runs two actions in parallel
21:47:48 <c_wraith> you mean modulo everything? :P
21:47:56 <d34df00d> Hence the difference between "theoretically" and "practically".
21:48:09 <random-jellyfish> so I would have a tree of these primitives combined with :+: and :
21:48:13 <d34df00d> Nah, I mean modulo the disdain towards overlapping instances in this case.
21:48:27 × ksqsf quits (~user@222.195.66.54) (Ping timeout: 256 seconds)
21:48:38 <random-jellyfish> so I would have a tree of these primitives combined with :+: and :=:, translate it to json, send the json to the hdl simulator, decode it and run it there
21:48:51 <c_wraith> that's not just a practical difference. Data types having the same shape is only an isomorphism in code that examines them structurally. But Haskell provides theoretical mechanisms that don't map to structural examination.
21:49:45 <c_wraith> random-jellyfish: ok, so... Why not just do that? Why involve IO?
21:49:45 <d34df00d> Anyway, _practically_, if we're talking about instances, can't we just `newtype MaybeNonEmtpy a = MaybeNonEmpty (Maybe (NonEmpty a))`?
21:49:52 <zzz> c_wraith: i think i get what you mean but could yu prvide a simple example?
21:49:56 <d34df00d> Sure that's ugly as hell.
21:51:25 <random-jellyfish> c_wraith there is one problem my solution won't solve: the situation where I have to read a number from one signal and then wait that number of units of time
21:51:33 <d34df00d> zzz: not sure if c_wraith meant exactly that, but if you have `Maybe (NonEmtpy a)`, then you could do `fmap length`, and get `Maybe Int`. How would you translate that to plain old?
21:51:37 <d34df00d> plain old lists that is
21:51:45 <random-jellyfish> the output of one operation needs to be passed as input to another one
21:52:09 <c_wraith> random-jellyfish: so how does your json handle that?
21:52:28 <random-jellyfish> c_wraith that's where I got stuck
21:52:39 <random-jellyfish> I don't even know how to model that in haskell
21:52:57 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:53:36 <c_wraith> you have a bigger problem
21:53:58 <c_wraith> you're creating a programming language to target a programming language that doesn't exist to target an interpreter that doesn't exist.
21:54:08 <c_wraith> There are too many steps
21:54:28 <c_wraith> and too many unknowns
21:55:00 × Cheery quits (~cheery@7-239-179-185.static.tentacle.fi) (Ping timeout: 250 seconds)
21:55:24 <random-jellyfish> it's a thought experiment, the first thing I'd like to find out is if it's even possible
21:56:27 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
21:56:34 Cheery joins (~cheery@7-239-179-185.static.tentacle.fi)
21:57:54 <c_wraith> Is it possible? Sure. But the key phrase is "programming language"
21:58:16 <c_wraith> You're proposing creating something that needs to be a programming language as an intermediate exchange format.
21:58:58 <c_wraith> that suggests a lot of complexity. Maybe it's not necessary.
21:59:36 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
22:00:03 <c_wraith> Can the simulator run synchronously with an external program? Can it be run as a library? Can you use Haskell code as a library from the simulator?
22:00:17 <c_wraith> any of those would allow getting rid of the intermediate representation
22:00:52 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
22:00:53 <random-jellyfish> the haskell code and the HDL simulator will run as separate processes, and they will communicate with each other through a ZMQ socket
22:01:13 <c_wraith> that's a lot of commandments from on high
22:01:36 <random-jellyfish> on the HDL side I will have a whil(1) loop that will fetch json encoded commands from haskell and run them
22:02:02 <random-jellyfish> on the haskell side I generate those commands, encode them to json and send them
22:02:37 <random-jellyfish> I like the fact that haskell can model infinite data structures and combine them
22:02:43 <random-jellyfish> like infinite lists, infinite trees
22:02:58 <random-jellyfish> it can run functions on them to change them, etc.
22:03:02 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
22:03:25 <lispy> I've learned a bit about several languages, but have yet to start with Haskell.
22:03:58 <random-jellyfish> I was hoping to be able to create some infinite stimulus in haskell then break it in chunks and send it to the HDL simulator to execute
22:04:16 <random-jellyfish> but I also need to be able to read from signals, not just write to them
22:04:22 <c_wraith> random-jellyfish: does that mean the simulator has to run synchronously with the IO from the queue? If so... there's a way to force it to run synchronously with an external program
22:04:53 <random-jellyfish> yes, it should run in sync with the IO from the queue
22:05:10 <random-jellyfish> but that while(true) loop will run inside an HDL thread
22:05:37 <c_wraith> so if the queue ends up blocking for 100ms for some reason, the simulator will wait for it before running the next cycle?
22:05:40 <random-jellyfish> and when that thread makes a context switch while running a command, the scheduler will let other HDL threads to advance as well
22:06:59 <random-jellyfish> yes, waiting 100ms will give control to the HDL thread scheduler, which will resume other threads, and it will also update the simulation time by adding that 100ms to it
22:07:00 ksqsf joins (~user@2001:da8:d800:611:5f:3d9d:579f:683)
22:07:09 <random-jellyfish> it's simulated time not wall clock time
22:07:35 <random-jellyfish> waiting time just increments a counter
22:07:36 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
22:08:11 imalsogreg joins (~imalsogre@2601:147:300:f930::5d55)
22:08:18 × jrm quits (~jrm@156.34.173.250) (Read error: Connection reset by peer)
22:08:27 jrm2 joins (~jrm@156.34.173.250)
22:09:06 <c_wraith> Ok, I'm back to not understanding the problem. You're just writing functions of the form InternalState -> SignalOutputFromSimulator -> (SignalInputForSimulator, InternalState)
22:09:19 jrm2 is now known as jrm
22:09:57 <c_wraith> You can provide a lot of extra tools for creating those functions
22:10:10 <c_wraith> But that's all you need as the interface
22:11:19 <random-jellyfish> simulate $ map (WriteSignal "clk") cycle [0,1]
22:11:21 <c_wraith> Like, if you want to do some stuff with free monads for thinking about it in terms of multiple processes? Great. But get that part working first, and remember everything more complex is built on top of that.
22:11:28 × ksqsf quits (~user@2001:da8:d800:611:5f:3d9d:579f:683) (Ping timeout: 250 seconds)
22:11:44 <random-jellyfish> simulate $ map (WriteSignal "clk" :+: WaitTime (5,Ns) ) cycle [0,1]
22:11:55 <random-jellyfish> this would generate a clock signal
22:12:07 <random-jellyfish> 010101
22:12:15 Pickchea joins (~private@user/pickchea)
22:12:15 <random-jellyfish> with 5 ns between edges
22:12:20 <zzz> d34df00d: `length :: NonEmpty -> Nat` where `data Nat = One | Succ Nat`. According to this methodology you could have Nat and Nat0 (which wuold be Maybe Nat :p)
22:12:28 <random-jellyfish> that's how I imagine I would do it
22:12:30 <c_wraith> sure, great, whatever. Figure out how to translate that into the basic required IO type
22:12:40 <c_wraith> err. interface type. No IO involved
22:12:46 titusg joins (~user@2a00:23c6:ab8a:3c00:4d5b:fb1b:c853:9282)
22:13:26 <c_wraith> Or you could use like... a Mealy machine, if you don't want to have to make the internal state concrete
22:13:43 <random-jellyfish> it will have to reach IO since I use ZMQ to communicate to the HDL side
22:13:48 <c_wraith> irrelevant
22:13:55 <c_wraith> You're running a pure function to calculate what to send
22:13:58 <titusg> I'm getting an error claiming that Data.Text doesn't export elem...?
22:14:06 <c_wraith> that's the interesting part. The IO is just a side detail
22:14:12 <random-jellyfish> yes, true
22:14:13 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
22:14:46 <c_wraith> titusg: any chance the import of Data.Text has an import list that doesn't include elem?
22:15:11 <random-jellyfish> and how to I run a pure function that calculates this: read from a signal a value n, wait n nanoseconds or any time unit ?
22:15:35 <c_wraith> random-jellyfish: that's where the state portion I was talking about comes in. It needs to store that information
22:15:46 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:16:03 <titusg> c_wraith: nope, whole thing is imported (qualified)
22:17:41 <c_wraith> titusg: next thing to check - what version of text is it using?
22:18:51 <c_wraith> titusg: for instance, it looks like 1.2.0.0 doesn't define the function you want: https://hackage.haskell.org/package/text-1.2.0.0/docs/doc-index-E.html
22:19:11 <c_wraith> titusg: My best remaining guess is that it's a version thing.
22:20:03 <titusg> c_wraith: hmm, how do I check that? I'm using cabal and have no version constraints on text in the cabal file
22:20:58 <titusg> and it's a project I just started today so it seems odd
22:21:46 <titusg> c_wraith: ah, so I should set the version of text that I want I guess
22:21:53 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:22:28 <c_wraith> wow, I don't actually see a way to do that other than using cabal freeze and looking at the lock file it generates
22:22:54 <c_wraith> ls
22:22:57 <c_wraith> err, sorry
22:23:32 shriekingnoise joins (~shrieking@201.231.16.156)
22:23:45 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:24:15 <geekosaur> there should be a plan.json file with that information
22:24:33 <geekosaur> in dist-newstyle/cache
22:24:57 <c_wraith> yikes, that's not close to human-readable
22:24:57 × myShoggoth quits (~myShoggot@97-120-67-120.ptld.qwest.net) (Ping timeout: 240 seconds)
22:25:03 <geekosaur> you'll want something like jq to make its contents comprehensible
22:26:41 <c_wraith> I think it's easier to use cabal freeze and delete the freeze file afterwards. :P
22:26:45 <titusg> geekosaur: thx
22:26:55 <titusg> c_wraith: I'm using 1.2.4.1 which according to the docs does have elem
22:27:25 <c_wraith> I'm not seeing that.... https://hackage.haskell.org/package/text-1.2.4.1/docs/doc-index-E.html
22:27:51 <geekosaur> uh? elem's right at the top
22:28:04 <c_wraith> But not exported by Data.Text
22:28:18 <titusg> oh yeah
22:28:46 <c_wraith> I think you need 1.2.5.0 or 2.0.0.0
22:28:57 <geekosaur> yeh
22:28:58 <c_wraith> err. I guess the latter is just 2.0
22:30:15 <c_wraith> random-jellyfish: So what you really want to be doing, I think, is figuring out how to convert a DSL to a representation that looks like a Mealy machine.
22:30:43 <c_wraith> random-jellyfish: and you can fortunately build your DSL such that it contains enough information to do that conversion
22:31:41 <titusg> c_wraith geekosaur : that works, thx a lot
22:33:36 ksqsf joins (~user@2001:da8:d800:611:2d36:20e:dcdb:8588)
22:33:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
22:33:43 × titusg quits (~user@2a00:23c6:ab8a:3c00:4d5b:fb1b:c853:9282) (Quit: ERC (IRC client for Emacs 26.3))
22:34:08 <c_wraith> random-jellyfish: for reference, a Mealy machine looks like newtype Mealy in out = Mealy (in -> (out, Mealy in out)). That representation lets you implicitly use whatever state you need in the closure returned for handling the next step.
22:34:15 tavares joins (~tavares@187.19.212.26)
22:34:21 × tavares quits (~tavares@187.19.212.26) (Changing host)
22:34:21 tavares joins (~tavares@user/tavares)
22:34:31 <EvanR> so a synchronous time simulation
22:34:41 <c_wraith> yes
22:36:57 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
22:37:16 WingTillDie joins (~quassel@2001-b400-e2db-1da8-4062-cd4e-8589-7aec.emome-ip6.hinet.net)
22:37:54 × ksqsf quits (~user@2001:da8:d800:611:2d36:20e:dcdb:8588) (Ping timeout: 250 seconds)
22:38:06 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
22:38:20 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 250 seconds)
22:39:43 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 268 seconds)
22:41:40 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
22:41:40 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
22:41:40 wroathe joins (~wroathe@user/wroathe)
22:44:48 <EvanR> Mealy is like a resumable scanl
22:45:21 cyphase joins (~cyphase@user/cyphase)
22:46:05 lavaman joins (~lavaman@98.38.249.169)
22:46:08 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
22:49:04 × zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
22:49:11 <EvanR> wikipedia files mealy machines and moore machines under finite-state transducers
22:49:38 <EvanR> I dunno how important the finite part is xD
22:50:13 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:50:17 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
22:51:29 Guest|47 joins (~Guest|47@165.91.13.111)
22:51:42 × Guest|47 quits (~Guest|47@165.91.13.111) (Client Quit)
22:52:21 <random-jellyfish> c_wraith thanks, I'll look into that
22:52:47 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:57:47 zmt00 joins (~zmt00@user/zmt00)
22:58:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3) (Remote host closed the connection)
23:02:02 × Constraintegic quits (~thomasbul@2001:a61:1307:2b01:3d2f:ad9e:d1f8:1d5d) (Ping timeout: 240 seconds)
23:04:37 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: Textual IRC Client: www.textualapp.com)
23:06:17 × chomwitt quits (~chomwitt@2a02:587:dc06:be00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
23:17:12 <random-jellyfish> shouldn't Mealy be something like newtype Mealy in out = Mealy (in -> Mealy in out -> (out, Mealt in out)) ?
23:17:32 <random-jellyfish> since output is determined by current state and input
23:18:10 × Tuplanolla quits (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
23:18:31 × imalsogreg quits (~imalsogre@2601:147:300:f930::5d55) (Remote host closed the connection)
23:22:53 × klimnbrk quits (~barakvoid@2a02:14f:4:90c3:5267:c24a:c393:429d) (Ping timeout: 268 seconds)
23:26:29 × tavares quits (~tavares@user/tavares) (Ping timeout: 256 seconds)
23:27:46 ksqsf joins (~user@2001:da8:d800:611:88d2:4501:124e:aebc)
23:29:08 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
23:29:36 <mcgroin> I find this naming extremely confusing: newtype State s a = State s -> (a, s)
23:29:51 <mcgroin> This is a state transition action
23:30:13 <mcgroin> why not name it something like StateTransition ?
23:31:31 <mcgroin> State is static, and yet it contains a transition action... Similar naming abound in different libraries
23:31:51 <sclv> in this case its because it models the effect of having state
23:32:04 × ksqsf quits (~user@2001:da8:d800:611:88d2:4501:124e:aebc) (Ping timeout: 250 seconds)
23:32:24 <sclv> so `State s a` is "an a in the context of a State s"
23:32:40 Akiva joins (~Akiva@user/Akiva)
23:35:18 <monochrom> "StateTransitionFunction" is too long
23:35:45 notzmv joins (~zmv@user/notzmv)
23:36:15 <mcgroin> monochrom: It is but these are things that really frustrates beginners I feel
23:36:29 <geekosaur> only if they come from Java
23:36:40 yauhsien joins (~yauhsien@61-231-58-250.dynamic-ip.hinet.net)
23:37:01 <sclv> i have heard many frustrations of beginners and, some tooling issues aside, they are far more diverse than you would imagine
23:37:54 <mcgroin> geekosaur: so you think it's totally appropriate with this naming? I'm trying to bend my mind to look at it from various angles to make sense
23:38:10 <monochrom> I am unsympathetic because no one complained that "class Person { String name; int age; }" is confusing. And it is. Along the same logic as yours.
23:38:27 <geekosaur> I agree with sclv. <sclv> so `State s a` is "an a in the context of a State s"
23:38:36 <sclv> i gave the example it makes sense from: the angle in which you see "having a State of type s" is an _effect_
23:38:38 <monochrom> A record of name and age is clearly not a person.
23:38:53 <geekosaur> newcomers don't have problems with that name, they have problems with the underlying concept
23:38:56 <monochrom> A "non-confusing" name would be RecordOfPersonNameAndAge but who does that.
23:39:00 <sclv> monochrom: full rights for records of name and age!
23:39:09 × neceve quits (~quassel@2.26.93.228) (Ping timeout: 256 seconds)
23:39:12 <sclv> i'm taking this one to the supreme court
23:39:29 <sclv> if a corporation can be a person, well
23:39:57 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
23:40:17 <monochrom> Very early on everyone catches on the idea that you code up a model, you never have the real thing. And everyone has moved on.
23:40:54 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:40:57 × yauhsien quits (~yauhsien@61-231-58-250.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
23:41:56 <mcgroin> so no one thinks StateTransition is better... I have to rethink the whole thing again
23:42:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:42:41 <mcgroin> because that s in State s a is the actual state
23:42:45 <monochrom> You get the OOP people to s/Person/RecordOfPersonNameAndAge/. After that, we can talk again.
23:43:01 <sclv> if you're not comfortable with "the statement 'state is an effect'" you should start there
23:43:16 <sclv> and consider also if "Reader r" and "Writer w" make more sense to you or less sense or the same sense
23:43:20 × alp quits (~alp@user/alp) (Ping timeout: 250 seconds)
23:43:53 <mcgroin> sclv: i can get comfortable with redefining state and bend my mind to fit its new definition as an effect with time
23:44:36 <sclv> i mean that the names make sense only if you start with "these are names of monads which model effects" as _why_ they should make sense
23:44:49 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
23:45:00 <sclv> like the name is giving some abstract characterization of some concrete data
23:45:12 Hao joins (~Hao@222-154-98-23-fibre.sparkbb.co.nz)
23:45:36 <sclv> but the nature of the abstraction in question is important to understand why that name
23:45:53 <mcgroin> among all the features of Haskell, i find the way how it makes abstractions the most elusive
23:46:51 <geekosaur> haskell abstracts things nothing else can. naming won't help you understand them
23:47:14 <geekosaur> your brain needs hooks to hang the names on, and only experience will get you those hooks
23:47:45 <mcgroin> other languages make abstractions too of course. but some how haskell abstract data types, which is really hard to get and frankly doesn't seem to be relevant in real world programming. I wonder how many programmers can make abstractions like Monad
23:49:04 <mcgroin> The M thing is hard to get when someone already lay it out for you, not to mention to make new abstractions like Comonad etc...
23:49:50 <sclv> take it slow, only a few need to be learned at a time
23:49:59 <sclv> and each one is really learning a whole new way to look at something familiar
23:53:19 <c_wraith> random-jellyfish: the state is implicit in the function arrows in the definition of Mealy - the functions can close over whatever state they need. that's why the function returns a new Mealy machine - so it can close over new state.
23:54:17 × mvk quits (~mvk@2607:fea8:5cdc:bf00::a2bf) (Ping timeout: 240 seconds)
23:54:31 <mcgroin> sclv: Reader and Writer are more acceptable because they do imply an action in the names: the verbs read and write
23:56:48 SummerSonw joins (~The_viole@203.77.49.232)
23:58:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:5d8e:db89:f241:b6e3)
23:58:50 edrx parts (~Eduardo@2804:56c:d2f8:7700:812f:d393:2bf3:f7a6) (Killed buffer)
23:59:17 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
23:59:21 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)

All times are in UTC on 2022-01-23.