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.