2022/01/23

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