2021-12-18 00:01:31 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-18 00:02:37 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-12-18 00:05:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 00:06:32 +0100 | slack1256 | (~slack1256@191.125.99.206) (Ping timeout: 240 seconds) |
2021-12-18 00:09:02 +0100 | rond_ | (~rond_@100.42.200.146.dyn.plus.net) |
2021-12-18 00:09:29 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-18 00:11:12 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 00:12:00 +0100 | pfurla-matrix | (~pedrofurl@2001:470:69fc:105::1:51d7) |
2021-12-18 00:14:42 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 00:16:42 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-18 00:16:42 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 00:17:16 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-12-18 00:18:07 +0100 | aeka` | (~aeka@2606:9580:100:c:8757:8ee:ec9c:991c) (Ping timeout: 250 seconds) |
2021-12-18 00:19:47 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-12-18 00:22:51 +0100 | aeka | (~aeka@pool-100-4-208-71.albyny.fios.verizon.net) |
2021-12-18 00:23:22 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-18 00:29:58 +0100 | AlexNoo_ | (~AlexNoo@178.34.163.82) |
2021-12-18 00:31:57 +0100 | rond_ | (~rond_@100.42.200.146.dyn.plus.net) (Quit: Client closed) |
2021-12-18 00:32:07 +0100 | AlexZenon | (~alzenon@178.34.151.66) (Ping timeout: 268 seconds) |
2021-12-18 00:32:47 +0100 | Sofia1000 | (~Sofia1000@122-59-18-247-adsl.sparkbb.co.nz) (Quit: Client closed) |
2021-12-18 00:33:01 +0100 | Alex_test | (~al_test@178.34.151.66) (Ping timeout: 240 seconds) |
2021-12-18 00:33:11 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3) |
2021-12-18 00:33:59 +0100 | AlexNoo | (~AlexNoo@178.34.151.66) (Ping timeout: 268 seconds) |
2021-12-18 00:34:42 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 00:35:34 +0100 | AlexZenon | (~alzenon@178.34.163.82) |
2021-12-18 00:37:02 +0100 | Alex_test | (~al_test@178.34.163.82) |
2021-12-18 00:39:02 +0100 | jijimofo | (~cmo@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 240 seconds) |
2021-12-18 00:40:30 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2021-12-18 00:40:33 +0100 | Sofia1000 | (~Sofia1000@122-59-18-247-adsl.sparkbb.co.nz) |
2021-12-18 00:43:17 +0100 | machinedgod | (~machinedg@173.231.123.211) (Ping timeout: 240 seconds) |
2021-12-18 00:43:58 +0100 | <Sofia1000> | Thanks jackdk |
2021-12-18 00:46:17 +0100 | jijimofo | (~cmo@S010610561191f5d6.lb.shawcable.net) |
2021-12-18 00:46:25 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 00:47:01 +0100 | Jing | (~hedgehog@2604:a840:3::103e) (Remote host closed the connection) |
2021-12-18 00:47:45 +0100 | Jing | (~hedgehog@2604:a840:3::103e) |
2021-12-18 00:48:22 +0100 | michalz | (~michalz@185.246.204.104) (Remote host closed the connection) |
2021-12-18 00:48:50 +0100 | emf | (~emf@2600:1700:841:cc20:184c:c9e0:41bd:a50) |
2021-12-18 00:52:30 +0100 | emf_ | (~emf@2620:10d:c091:480::1:2a01) |
2021-12-18 00:52:57 +0100 | emf | (~emf@2600:1700:841:cc20:184c:c9e0:41bd:a50) (Ping timeout: 240 seconds) |
2021-12-18 00:54:46 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-18 00:58:35 +0100 | max22- | (~maxime@2a01cb08833598007b9c3a2aa19d2728.ipv6.abo.wanadoo.fr) |
2021-12-18 01:03:03 +0100 | Sofia1000 | (~Sofia1000@122-59-18-247-adsl.sparkbb.co.nz) (Quit: Client closed) |
2021-12-18 01:04:17 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 01:06:57 +0100 | emf_ | (~emf@2620:10d:c091:480::1:2a01) (Ping timeout: 240 seconds) |
2021-12-18 01:07:01 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 245 seconds) |
2021-12-18 01:07:33 +0100 | OscarZ | (~oscarz@5d.57.36a9.ip4.static.sl-reverse.com) |
2021-12-18 01:07:41 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-12-18 01:09:06 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) |
2021-12-18 01:10:39 +0100 | falafel | (~falafel@2603-8000-d800-688c-c489-b1e0-39de-1e29.res6.spectrum.com) |
2021-12-18 01:12:58 +0100 | max22- | (~maxime@2a01cb08833598007b9c3a2aa19d2728.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-18 01:14:21 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-12-18 01:15:02 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2021-12-18 01:16:11 +0100 | martin02 | (~silas@141.84.69.76) (Ping timeout: 250 seconds) |
2021-12-18 01:18:19 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-18 01:19:17 +0100 | jkaye | (~jkaye@2601:281:8300:7530:e699:4743:67a2:216e) (Ping timeout: 240 seconds) |
2021-12-18 01:23:44 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 01:28:38 +0100 | martin02 | (~silas@141.84.69.76) |
2021-12-18 01:30:20 +0100 | cf2m | (~cf2m@2804:14c:5bd7:8a9c::1001) |
2021-12-18 01:31:45 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
2021-12-18 01:31:57 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2021-12-18 01:32:26 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-12-18 01:34:24 +0100 | cf2m | (~cf2m@2804:14c:5bd7:8a9c::1001) (Good Bye) |
2021-12-18 01:37:22 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-18 01:40:52 +0100 | deadmarshal | (~deadmarsh@95.38.118.228) |
2021-12-18 01:41:50 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 01:41:57 +0100 | falafel | (~falafel@2603-8000-d800-688c-c489-b1e0-39de-1e29.res6.spectrum.com) (Ping timeout: 240 seconds) |
2021-12-18 01:43:34 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-12-18 01:44:41 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::745c) |
2021-12-18 01:45:30 +0100 | deadmarshal | (~deadmarsh@95.38.118.228) (Ping timeout: 268 seconds) |
2021-12-18 01:53:03 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 01:54:34 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-18 01:56:01 +0100 | emf_ | (~emf@2620:10d:c091:480::1:2a01) |
2021-12-18 01:57:28 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-18 01:58:37 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) (Ping timeout: 240 seconds) |
2021-12-18 02:02:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 02:02:17 +0100 | emf_ | (~emf@2620:10d:c091:480::1:2a01) (Ping timeout: 240 seconds) |
2021-12-18 02:03:55 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) |
2021-12-18 02:03:57 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-12-18 02:06:05 +0100 | machinedgod | (~machinedg@24.105.81.50) (Remote host closed the connection) |
2021-12-18 02:06:43 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-12-18 02:06:58 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-18 02:07:32 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2021-12-18 02:11:25 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-18 02:19:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 02:19:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 02:19:28 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 02:20:41 +0100 | wroathe | (~wroathe@user/wroathe) (Client Quit) |
2021-12-18 02:29:37 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) (Ping timeout: 240 seconds) |
2021-12-18 02:30:31 +0100 | acidjnk | (~acidjnk@p200300d0c7271e65d42c28944a29f404.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-18 02:31:53 +0100 | burnsidesLlama | (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-18 02:32:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 02:32:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 02:32:04 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 02:35:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 02:42:35 +0100 | hololeap | (~hololeap@user/hololeap) (Quit: Bye) |
2021-12-18 02:44:01 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-12-18 02:44:34 +0100 | <lechner> | Hi, when parsing JSON with optional fields, am I better off using Maybe or should I create separate types? Thanks! |
2021-12-18 02:45:33 +0100 | <hpc> | depends on what you want to express |
2021-12-18 02:45:43 +0100 | <hpc> | maybe when a field is missing it just means to use some default value |
2021-12-18 02:47:33 +0100 | cheater | (~Username@user/cheater) |
2021-12-18 02:48:17 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-18 02:48:54 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 02:51:06 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) |
2021-12-18 02:52:43 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2021-12-18 02:53:16 +0100 | cheater | (~Username@user/cheater) |
2021-12-18 02:57:17 +0100 | emf | (~emf@2620:10d:c091:480::1:2a01) (Ping timeout: 240 seconds) |
2021-12-18 02:59:35 +0100 | OscarZ | (~oscarz@5d.57.36a9.ip4.static.sl-reverse.com) (Quit: Leaving) |
2021-12-18 03:00:39 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 03:15:12 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-12-18 03:15:46 +0100 | jijimofo | (~cmo@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 245 seconds) |
2021-12-18 03:15:57 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2021-12-18 03:16:53 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-12-18 03:17:02 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-18 03:18:27 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-12-18 03:18:33 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 03:21:06 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2021-12-18 03:26:37 +0100 | mmhat | (~mmh@55d47b0f.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-12-18 03:31:37 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-12-18 03:31:48 +0100 | emf | (~emf@2620:10d:c091:480::1:2e5a) |
2021-12-18 03:32:21 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-12-18 03:32:32 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-12-18 03:32:40 +0100 | ub | (~Thunderbi@p200300ecdf0a5d68805dbf0fab6de770.dip0.t-ipconnect.de) |
2021-12-18 03:34:02 +0100 | ubert | (~Thunderbi@p200300ecdf0a5db5805dbf0fab6de770.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-18 03:34:02 +0100 | ub | ubert |
2021-12-18 03:37:17 +0100 | evocatus | (~evocatus@62.182.78.42) (Ping timeout: 256 seconds) |
2021-12-18 03:37:26 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 245 seconds) |
2021-12-18 03:37:57 +0100 | emf | (~emf@2620:10d:c091:480::1:2e5a) (Ping timeout: 240 seconds) |
2021-12-18 03:38:41 +0100 | <dsal> | You can have other default values than Nothing as well. |
2021-12-18 03:39:01 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-18 03:41:07 +0100 | mmhat | (~mmh@55d47734.access.ecotel.net) |
2021-12-18 03:42:51 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-18 03:48:17 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-12-18 03:53:13 +0100 | mmhat | (~mmh@55d47734.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-12-18 03:57:17 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-12-18 03:59:13 +0100 | pfurla | (~pfurla@172.58.27.44) (Read error: Connection reset by peer) |
2021-12-18 03:59:17 +0100 | xff0x | (~xff0x@port-92-193-238-190.dynamic.as20676.net) (Ping timeout: 240 seconds) |
2021-12-18 03:59:19 +0100 | pfurla_ | (~pfurla@2804:18:5822:b7a4:5d55:ee0c:b89:ab0a) |
2021-12-18 04:01:33 +0100 | xff0x | (~xff0x@2001:1a81:5394:f900:dd60:fd82:cbed:c232) |
2021-12-18 04:06:03 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-18 04:06:03 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-12-18 04:06:03 +0100 | finn_elija | FinnElija |
2021-12-18 04:07:59 +0100 | x_kuru | (xkuru@user/xkuru) |
2021-12-18 04:09:01 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 04:11:17 +0100 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 256 seconds) |
2021-12-18 04:11:46 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-18 04:22:02 +0100 | td_ | (~td@94.134.91.242) (Ping timeout: 240 seconds) |
2021-12-18 04:23:58 +0100 | td_ | (~td@94.134.91.199) |
2021-12-18 04:24:43 +0100 | x_kuru_ | (~xkuru@user/xkuru) |
2021-12-18 04:27:02 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 04:27:09 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-18 04:28:55 +0100 | x_kuru | (xkuru@user/xkuru) (Ping timeout: 268 seconds) |
2021-12-18 04:31:31 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-18 04:32:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 04:35:52 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 04:41:53 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-18 04:44:04 +0100 | hololeap | (~hololeap@user/hololeap) (Quit: Bye) |
2021-12-18 04:45:45 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-18 04:48:06 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-12-18 04:48:52 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2021-12-18 04:49:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 04:49:57 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 04:49:57 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 04:50:57 +0100 | sourcemage | (~sourcemag@c-24-14-124-168.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-12-18 04:51:06 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 04:51:17 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2021-12-18 04:52:09 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 04:53:40 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 04:59:33 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 05:07:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 05:09:06 +0100 | <glguy> | I imagine things just aren't there yet, but I wanted to check that this is what's expected and not just that my installation is messed up. I tried using ghc on arm mac and couldn't install ghcid, doctest fell over on a file that used UTF-8, and hls only reported supporting up to 8.10 |
2021-12-18 05:09:13 +0100 | <glguy> | anyone had more luck with arm mac ghc? |
2021-12-18 05:10:54 +0100 | <xerox> | I don't have arm specific problems nowadays anymore |
2021-12-18 05:11:33 +0100 | <glguy> | Are you able to install ghcid on it, then? |
2021-12-18 05:12:04 +0100 | <xerox> | there is one of its dependencies that is lagging behind because the maintainer is not to be found |
2021-12-18 05:12:27 +0100 | <xerox> | so I had to build it manually with a vendored version, with the small fix |
2021-12-18 05:13:02 +0100 | <glguy> | HLS? |
2021-12-18 05:13:15 +0100 | <xerox> | HLS I don't use sorry |
2021-12-18 05:13:46 +0100 | <glguy> | I lean more on ghcid than HLS, so if that one's fixable I might be ok |
2021-12-18 05:14:02 +0100 | <glguy> | gotta figure out which computer I can use for AoC this weekend :) |
2021-12-18 05:14:45 +0100 | <xerox> | I ended up compiling master a month ago with the calling convention fix for ioctl to have ghci work, sticking with that for now :D |
2021-12-18 05:15:05 +0100 | <xerox> | there it is: https://github.com/biegunka/terminal-size/pull/16 |
2021-12-18 05:18:14 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-18 05:19:26 +0100 | <glguy> | Which ghc version does that work with? |
2021-12-18 05:19:26 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 05:19:58 +0100 | <xerox> | mine reports 9.3.20211020 |
2021-12-18 05:20:30 +0100 | <xerox> | ah but did I compile it with this, or with another... maybe I can figure that out |
2021-12-18 05:20:49 +0100 | <xerox> | I compiled it with ghc-8.10.7 from ghcup |
2021-12-18 05:20:49 +0100 | <glguy> | 9.0.1 and 9.2.1 generate different errors each for me :) |
2021-12-18 05:21:19 +0100 | <glguy> | OK, 8.10.7 is working better, thanks |
2021-12-18 05:21:26 +0100 | <xerox> | excellent |
2021-12-18 05:22:18 +0100 | <glguy> | Are you using 9.3 because 9.2.1 is broken in an interesting way or just because 9.3 is newer? |
2021-12-18 05:23:05 +0100 | <xerox> | it was the first branch that I was able to compile successfully, with the ioctl fix, so I just stuck with it, I had some problems compiling the release branch/tags that I can't remember right now |
2021-12-18 05:23:32 +0100 | <glguy> | What's the ioctl fix? |
2021-12-18 05:23:35 +0100 | <xerox> | so I guess the former, the situation might have changed tho |
2021-12-18 05:23:58 +0100 | <glguy> | I see that this PR mentions ioctl, but is that also related to picking a GHC in general? |
2021-12-18 05:24:10 +0100 | <xerox> | ghci had broken line editing, because a ioctl inside ghc was done incompatibly just like the terminal-size issue above |
2021-12-18 05:27:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 05:28:26 +0100 | <xerox> | it was libraries/haskeline/System/Console/Haskeline/Backend/Posix.hsc 66:foreign import capi "sys/ioctl.h ioctl" ioctl |
2021-12-18 05:28:40 +0100 | <xerox> | so any ghc with this fix ("capi") will not have broken ghci line editing |
2021-12-18 05:29:06 +0100 | <xerox> | there is also a workaround for it if you can't get such a ghc, if I can find it again... |
2021-12-18 05:30:44 +0100 | <xerox> | here https://gitlab.haskell.org/ghc/ghc/-/issues/20079#note_364118 |
2021-12-18 05:33:13 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-18 05:33:24 +0100 | <xerox> | https://www.haskell.org/ghc/blog/20210709-capi-usage.html |
2021-12-18 05:34:17 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 240 seconds) |
2021-12-18 05:34:46 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-18 05:37:08 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 05:38:25 +0100 | <dsal> | glguy: I've been running an M1 for a while. nix+stack. It's a bit of a balancing act, but mostly works. |
2021-12-18 05:38:41 +0100 | <dsal> | My mac's in the shop right now, though. Wife dropped a spoon on the screen which is apparently enough to completely disable it. |
2021-12-18 05:41:45 +0100 | <hololeap> | spwned |
2021-12-18 05:42:24 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 05:43:56 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-18 05:44:56 +0100 | <dsal> | haha. :( |
2021-12-18 05:47:03 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 256 seconds) |
2021-12-18 05:48:20 +0100 | <hololeap> | :( |
2021-12-18 05:48:21 +0100 | off^ | (~off@64.253.22.77) |
2021-12-18 05:50:25 +0100 | <EvanR> | There Is No Spoon *myth busted* |
2021-12-18 05:50:59 +0100 | shapr | (~user@12.5.211.156) |
2021-12-18 05:52:07 +0100 | <sm> | woah. Noted, keep spouse and cutlery away from mac |
2021-12-18 05:52:31 +0100 | <int-e> | @pl \((a,b),(c,d)) -> ((a,c),(b,d)) |
2021-12-18 05:52:32 +0100 | <lambdabot> | uncurry (uncurry (flip flip snd . (ap .) . flip flip fst . ((.) .) . (. (,)) . flip . (((.) . (,)) .) . (,))) |
2021-12-18 05:53:07 +0100 | <dsal> | I was sitting by the fire. She was standing over making (me) a drink. Spoon fell and hit just the edge of my screen. Doesn't take much to make expensive worthless. Only $99 to get it fixed. But also a lot of time. |
2021-12-18 05:54:06 +0100 | <monochrom> | You are trying to ship your spouse, a spoon, and an M1 Mac across the river. The boat can only hold two passengers... |
2021-12-18 05:55:28 +0100 | <int-e> | Can I throw the spoon all the way across? |
2021-12-18 05:58:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-18 05:59:17 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 05:59:36 +0100 | <monochrom> | Not if the M1 Mac is also on the other side, bearing the risk of getting hit by the spoon. |
2021-12-18 06:03:43 +0100 | <hololeap> | lol |
2021-12-18 06:06:57 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-12-18 06:08:58 +0100 | <hololeap> | if I have (a -> Logic b) and [a], and I want to search each problem space enumerated by [a], is asum from Data.Foldable what I need? |
2021-12-18 06:09:16 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-18 06:09:20 +0100 | <hololeap> | assuming I want a depth-first search |
2021-12-18 06:09:34 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-12-18 06:12:37 +0100 | <hololeap> | e.g. (\f xs -> asum (f <$> xs)) :: (a -> Logic b) -> [a] -> Logic b |
2021-12-18 06:14:51 +0100 | <hololeap> | I suppose that only makes sense if I'm looking for a single result, otherwise it shouldn't stop on the first successful branch, but keep gathering results instead |
2021-12-18 06:15:39 +0100 | <hololeap> | then again a depth-first search implies a single result |
2021-12-18 06:16:29 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 06:17:38 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 06:18:55 +0100 | selkirk | (~selkirk@182.69.202.102) |
2021-12-18 06:24:14 +0100 | shapr | (~user@12.5.211.156) (Ping timeout: 268 seconds) |
2021-12-18 06:25:45 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 06:27:13 +0100 | x_kuru_ | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-18 06:39:08 +0100 | <hololeap> | >>> observeAll ((pure 'a' `interleave` pure 'b' `interleave` pure 'c') `interleave` (pure 'd' `interleave` pure 'e') `interleave` pure 'f') |
2021-12-18 06:39:15 +0100 | <hololeap> | "afdceb" |
2021-12-18 06:39:42 +0100 | <hololeap> | so it starts with the front, then goes to the back and works to the left? |
2021-12-18 06:42:16 +0100 | samebchase | (~samebchas@51.15.68.182) |
2021-12-18 06:44:15 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 06:52:54 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
2021-12-18 06:52:54 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 06:54:54 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-12-18 06:55:10 +0100 | <hololeap> | >>> observeAll $ foldl interleave mzero (pure <$> "abcdefg") |
2021-12-18 06:55:11 +0100 | <hololeap> | "agfedcb" |
2021-12-18 06:55:14 +0100 | <hololeap> | seems like it |
2021-12-18 06:55:33 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-12-18 07:03:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 07:07:51 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-12-18 07:10:52 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 07:13:02 +0100 | monochrom | (trebla@216.138.220.146) |
2021-12-18 07:13:45 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-18 07:14:08 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-18 07:14:26 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-18 07:18:57 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 07:21:59 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-18 07:23:41 +0100 | <hololeap> | if you use foldr instead, it comes out as "abcdefg" ... weird |
2021-12-18 07:23:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 07:26:26 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2021-12-18 07:28:07 +0100 | EvanR | (~evan@user/evanr) (Remote host closed the connection) |
2021-12-18 07:31:03 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-18 07:33:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-18 07:36:32 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 07:37:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-18 07:41:22 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 07:47:22 +0100 | int-e | sighs |
2021-12-18 07:47:29 +0100 | <int-e> | ...reading is so hard... |
2021-12-18 07:48:52 +0100 | wehttam | (~wehttam@159.196.24.74) |
2021-12-18 07:57:27 +0100 | EvanR | (~evan@user/evanr) |
2021-12-18 08:00:21 +0100 | <EvanR> | i/o sync errors causing my linux to freeze and crash in the middle of my almost getting tonights answer did not help |
2021-12-18 08:04:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 08:05:57 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::745c) (Ping timeout: 240 seconds) |
2021-12-18 08:08:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-18 08:15:13 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 08:15:13 +0100 | EvanR | (~evan@user/evanr) (Remote host closed the connection) |
2021-12-18 08:15:30 +0100 | img | (~img@user/img) |
2021-12-18 08:16:34 +0100 | wehttam | (~wehttam@159.196.24.74) () |
2021-12-18 08:16:48 +0100 | EvanR | (~evan@user/evanr) |
2021-12-18 08:20:37 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 240 seconds) |
2021-12-18 08:26:02 +0100 | Sobhan | (~Sobhan@modemcable039.128-131-66.mc.videotron.ca) |
2021-12-18 08:26:18 +0100 | <Sobhan> | Hi |
2021-12-18 08:26:37 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-12-18 08:27:59 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 256 seconds) |
2021-12-18 08:28:24 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 08:29:00 +0100 | <Sobhan> | i'm trying to short circuit a calculation in ST monad (STUArray), i want my function to run until it hits a certain condition, right now i use https://dpaste.com/E6CRB8LKR the trace shows that it reaches the solution but it doesn't stop. it's like it's stop in a 1 : goto 1 type of loop (no allocations) |
2021-12-18 08:29:24 +0100 | <Sobhan> | (yes it's for advent of code) |
2021-12-18 08:29:45 +0100 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
2021-12-18 08:29:49 +0100 | <Sobhan> | also `it :: STUArray s (Int, Int) Int -> ST s Int` |
2021-12-18 08:30:21 +0100 | <dsal> | Sobhan: It's not clear why you think that should stop. |
2021-12-18 08:30:21 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 08:31:00 +0100 | <Sobhan> | i think i'm not getting the state monad but in the state less version that would short circuit |
2021-12-18 08:31:09 +0100 | <Sobhan> | dsal |
2021-12-18 08:31:16 +0100 | gdd1 | (~gdd@129.199.146.230) (Ping timeout: 268 seconds) |
2021-12-18 08:31:48 +0100 | <Sobhan> | i'm clearly not "getting" the ST monad |
2021-12-18 08:32:19 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-12-18 08:32:20 +0100 | <Sobhan> | `dd _ _ b a = return b` doesn't short as i had hopped it would |
2021-12-18 08:32:23 +0100 | <dsal> | It's not the ST, it's the fold over an infinite list. |
2021-12-18 08:32:32 +0100 | <dsal> | `return` is a confusing term. |
2021-12-18 08:32:37 +0100 | <dsal> | I'd just never use it. |
2021-12-18 08:32:46 +0100 | <Sobhan> | but fold can short, right? |
2021-12-18 08:33:17 +0100 | <dsal> | foldr can in lists if it doesn't use the accumulator. |
2021-12-18 08:33:44 +0100 | puke | (~puke@user/puke) (Quit: puke) |
2021-12-18 08:34:06 +0100 | <EvanR> | foldl can't short circuit, foldlM even less likely |
2021-12-18 08:34:34 +0100 | <Sobhan> | huh, what would be a good way to short then? |
2021-12-18 08:34:44 +0100 | <EvanR> | in this case, it can't run the ST action until it knows what you want to do with every element |
2021-12-18 08:35:24 +0100 | <Sobhan> | that makes sense |
2021-12-18 08:36:02 +0100 | <Sobhan> | i think i got it. i have to move the ST inside my iteration |
2021-12-18 08:36:13 +0100 | <EvanR> | there's takeWhileM ... |
2021-12-18 08:36:45 +0100 | <Sobhan> | would that work with ST? |
2021-12-18 08:36:52 +0100 | <EvanR> | :t takeWhileM |
2021-12-18 08:36:53 +0100 | <lambdabot> | error: |
2021-12-18 08:36:53 +0100 | <lambdabot> | • Variable not in scope: takeWhileM |
2021-12-18 08:36:53 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2021-12-18 08:37:08 +0100 | <Sobhan> | the one from monad-loops Control.Monad.Loops |
2021-12-18 08:37:10 +0100 | <Sobhan> | right? |
2021-12-18 08:37:55 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 08:38:12 +0100 | <EvanR> | to short circuit to a solution before delving into anything else, I'd probably start with a explicit recursive ST action |
2021-12-18 08:38:31 +0100 | <EvanR> | so you decide to recurse or quit at any step |
2021-12-18 08:41:45 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-12-18 08:41:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-18 08:41:57 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-18 08:42:43 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2021-12-18 08:43:03 +0100 | <Square> | This may be stupid question. But are both Data.ByteString and Data.Text needed? Add a Lazy variant to both. Do both fill meaningful purposes? I find one often tries to adopt strings between packages. Oh, then we have String too. |
2021-12-18 08:43:15 +0100 | <dsal> | They don't do the same thing. |
2021-12-18 08:43:41 +0100 | sofviic[m] | (~sofviicma@2001:470:69fc:105::1:51fd) |
2021-12-18 08:43:43 +0100 | <EvanR> | bytestring is pretty straight forward, it's packed vectors of Word8 |
2021-12-18 08:44:10 +0100 | <EvanR> | unlike String and Text which deal with unicode |
2021-12-18 08:44:24 +0100 | <Square> | Gotcha. |
2021-12-18 08:44:45 +0100 | <EvanR> | many languages get things mixed up |
2021-12-18 08:45:12 +0100 | <EvanR> | like, presume a string encoding, ... or supposedly did then change their mind and add encodings |
2021-12-18 08:45:52 +0100 | <Square> | Ok, that makes sense. |
2021-12-18 08:45:58 +0100 | <EvanR> | in the end string and array of word8 should be separate |
2021-12-18 08:47:14 +0100 | <Square> | Thanks for the leason, i never took the time to really understand their differences. Hard to get hyped over strings. =D |
2021-12-18 08:48:58 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 08:49:35 +0100 | <EvanR> | picking the right types is bread and butter in haskell... and then turns out that's necessary in every language |
2021-12-18 08:50:01 +0100 | <EvanR> | you just don't always get any help with it lol |
2021-12-18 08:50:39 +0100 | Feuermagier_ | (~Feuermagi@138.199.36.133) |
2021-12-18 08:53:28 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds) |
2021-12-18 08:53:52 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 08:56:15 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 09:00:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 09:02:14 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Ping timeout: 260 seconds) |
2021-12-18 09:08:18 +0100 | selkirk | (~selkirk@182.69.202.102) (Quit: leaving) |
2021-12-18 09:13:06 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 09:15:14 +0100 | <Sobhan> | how can i have a function that returns both an STArray and a value that it depends on Array. i can't figure out how to use runST and run STUArray at the same time (either on a ST s (a, b) or (ST s a, STUArray ...)) |
2021-12-18 09:16:25 +0100 | <Sobhan> | type A s a = STUArray s (Int, Int) a |
2021-12-18 09:16:25 +0100 | <Sobhan> | it__ :: UArray (Int, Int) Int -> (Int, A s Int) |
2021-12-18 09:16:26 +0100 | <Sobhan> | it__ a1 = bimap runST runSTUArray $ do {arr <- (thaw a1 :: ST s (A s Int)); i <- readArray arr (1, 1); (i, arr)} |
2021-12-18 09:16:29 +0100 | <Sobhan> | so like something like this |
2021-12-18 09:21:03 +0100 | <EvanR> | I'm guessing you have to use runST and do what runSTUArray does yourself in the process of returning |
2021-12-18 09:21:31 +0100 | <EvanR> | i.e. unsafeFreeze |
2021-12-18 09:23:31 +0100 | jespada | (~jespada@87.74.33.157) (Ping timeout: 256 seconds) |
2021-12-18 09:23:32 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 09:24:17 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:21ba:a382:6b6:54c4) |
2021-12-18 09:24:18 +0100 | <Sobhan> | i did actually try that but i get `• Couldn't match type ‘a1’ with ‘(Int, A s Int)’ |
2021-12-18 09:24:19 +0100 | <Sobhan> | because type variable ‘s’ would escape its scope` |
2021-12-18 09:25:04 +0100 | <Sobhan> | it__ a1 = runST $ do {arr <- (thaw a1 :: ST s (A s Int)); i <- readArray arr (1, 1); return (i, arr)} |
2021-12-18 09:25:28 +0100 | <EvanR> | thaw? |
2021-12-18 09:25:43 +0100 | <Sobhan> | thaw :: forall i (a :: * -> * -> *) e (b :: * -> * -> *) (m :: * -> *). (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e) |
2021-12-18 09:25:50 +0100 | <Sobhan> | ugh |
2021-12-18 09:25:56 +0100 | <Sobhan> | it converts an UArray to a STUArray |
2021-12-18 09:25:58 +0100 | <EvanR> | I must be thinking backwards what you want |
2021-12-18 09:26:16 +0100 | jespada | (~jespada@87.74.33.157) |
2021-12-18 09:26:45 +0100 | <EvanR> | in ST the mutable arrays you use are supposed to contained within that ST action |
2021-12-18 09:27:33 +0100 | <EvanR> | I thought you wanted to return one frozen... instead it seems like you want to get a mutable array from elsewhere? |
2021-12-18 09:27:57 +0100 | <Sobhan> | i want the 1,1 index (or something like that & the array (frozen) |
2021-12-18 09:28:03 +0100 | jtomas | (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-12-18 09:28:14 +0100 | <Sobhan> | i'm returning the number of operations on the array |
2021-12-18 09:28:18 +0100 | <Sobhan> | plus the new array |
2021-12-18 09:28:24 +0100 | <EvanR> | I... don't see the point of ST here |
2021-12-18 09:28:55 +0100 | <EvanR> | you're messing with outside arrays within ST, and that's it |
2021-12-18 09:30:03 +0100 | <Sobhan> | this is sample code, i want to take a an IArray, modify it and report the number of edits and the results. i kinda need an implementation of a MArray. i was thinking of not using IO |
2021-12-18 09:30:10 +0100 | <Sobhan> | so i ended up with ST |
2021-12-18 09:30:17 +0100 | <EvanR> | make a new array, operating on it, maybe read some immutable outside data, return the new array, that would make sense |
2021-12-18 09:30:48 +0100 | <Sobhan> | well i'm doing operations on it, just not in the sample code |
2021-12-18 09:31:43 +0100 | <Sobhan> | i have to choose between Data.Array.IO, Data.Array.ST, and Data.Array.Storable. |
2021-12-18 09:31:45 +0100 | <Sobhan> | right? |
2021-12-18 09:32:02 +0100 | <EvanR> | I mainly use Data.Vector |
2021-12-18 09:32:08 +0100 | <Sobhan> | assuming i *NEED* mutable arrays |
2021-12-18 09:33:02 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:1e71:dc8c:d2fa:3d7e) (Ping timeout: 252 seconds) |
2021-12-18 09:33:07 +0100 | <Sobhan> | i need 2d arrays |
2021-12-18 09:33:14 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-18 09:34:47 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:995c:e86e:470c:8a37) |
2021-12-18 09:35:53 +0100 | <EvanR> | yeah I also use vector for that xD |
2021-12-18 09:37:26 +0100 | <dsal> | a 2D array is just a 1D array with Ix. |
2021-12-18 09:37:38 +0100 | <dsal> | You can have arbitrary dimensions where some aren't even numerical if you want. |
2021-12-18 09:37:52 +0100 | <dsal> | (that's all you're doing with Arrays) |
2021-12-18 09:38:58 +0100 | <EvanR> | my other array uses real number indexes |
2021-12-18 09:40:08 +0100 | <dsal> | Numbers aren't real. |
2021-12-18 09:40:20 +0100 | <Sobhan> | but i'll be back to using ST, right? |
2021-12-18 09:40:25 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 09:40:26 +0100 | <Sobhan> | modify :: (forall s. MVector s a -> ST s ()) -> Vector a -> Vector a |
2021-12-18 09:40:51 +0100 | Jing | (~hedgehog@2604:a840:3::103e) (Remote host closed the connection) |
2021-12-18 09:41:10 +0100 | <Sobhan> | i'll still be at point zero until i figure out how to return multiple things from ST |
2021-12-18 09:41:21 +0100 | <Sobhan> | oops, sorry for the ping |
2021-12-18 09:41:28 +0100 | Jing | (~hedgehog@125.105.142.62) |
2021-12-18 09:42:07 +0100 | <EvanR> | I'm just not sure what you're gaining from ST here |
2021-12-18 09:42:16 +0100 | <Sobhan> | over IO? |
2021-12-18 09:42:34 +0100 | <Sobhan> | i want to put my function in a pure context |
2021-12-18 09:42:46 +0100 | <dsal> | Do you have something working that's not mutalbe? |
2021-12-18 09:43:09 +0100 | <Sobhan> | ? |
2021-12-18 09:43:19 +0100 | <int-e> | Sobhan: you have to manually freeze arrays if you want to return more than one |
2021-12-18 09:43:45 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-18 09:44:00 +0100 | <int-e> | @src runSTArray |
2021-12-18 09:44:00 +0100 | <lambdabot> | Source not found. :( |
2021-12-18 09:44:05 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) (Remote host closed the connection) |
2021-12-18 09:44:09 +0100 | <int-e> | pity... runSTArray st = runST (st >>= unsafeFreezeSTArray) |
2021-12-18 09:44:27 +0100 | <EvanR> | yes... like I said xD |
2021-12-18 09:44:38 +0100 | <int-e> | I don't know how that works for vectors, do they have a freeze operation as well? |
2021-12-18 09:44:42 +0100 | <EvanR> | you'll need to freeze, you only have a thaw there |
2021-12-18 09:44:51 +0100 | <EvanR> | yeah they have freeze and thaw too |
2021-12-18 09:45:18 +0100 | <int-e> | (I have used `vector` a little, but apparently never with explicit ST.) |
2021-12-18 09:47:33 +0100 | acidjnk | (~acidjnk@p200300d0c7271e65d42c28944a29f404.dip0.t-ipconnect.de) |
2021-12-18 09:48:46 +0100 | <EvanR> | actually embedding an array mutating program within a pure function with ST is really cool, I just never ran into a case where it would be worth it |
2021-12-18 09:48:57 +0100 | <Sobhan> | int-e thanks, i finally figured it out `it__ :: UArray (Int, Int) Int -> (Int, UArray (Int, Int) Int) |
2021-12-18 09:48:58 +0100 | <Sobhan> | it__ a1 = runST $ do {arr <- (thaw a1 :: ST s (STUArray s (Int, Int) Int)); i <- readArray arr (1, 1); farr <- freeze arr; return (i, farr)}` |
2021-12-18 09:51:02 +0100 | <int-e> | Sobhan: yep. (you /can/ use unsafeFreeze there and avoid a copy; the promise you're making is that you don't touch the array afterwards) |
2021-12-18 09:51:12 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-18 09:51:35 +0100 | <Sobhan> | i don't think i can keep a promise XD |
2021-12-18 09:51:56 +0100 | <int-e> | Sobhan: Oh, sorry. "afterwards" is scoped by the ST action |
2021-12-18 09:52:06 +0100 | <EvanR> | since you're returning from the ST action... I don't see how you could touch it after |
2021-12-18 09:52:10 +0100 | <Sobhan> | i got that... |
2021-12-18 09:52:19 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 09:52:35 +0100 | <Sobhan> | by forgetting what unsafeFreeze tomorrow morning... |
2021-12-18 09:53:11 +0100 | <EvanR> | don't touch it between freeze and returning? |
2021-12-18 09:53:25 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-18 09:53:25 +0100 | <EvanR> | unsafeFreeze |
2021-12-18 09:54:35 +0100 | <Sobhan> | it was a joke... |
2021-12-18 09:54:43 +0100 | <int-e> | Sobhan: I mainly bring it up because unlike most `unsafe` functions, the promise here is completely local in scope, so it's a pretty sane optimization. |
2021-12-18 09:55:39 +0100 | <Sobhan> | i'm guessing that the unsafe thawt isn't going to work tho |
2021-12-18 09:55:42 +0100 | <int-e> | (In contrast, `unsafeThaw` requires you to keep the constraint in mind for the rest of the program.) |
2021-12-18 09:57:06 +0100 | <int-e> | (The constraint being that the immutable array you're thawing is not used elsewhere.) |
2021-12-18 10:00:21 +0100 | <nshepperd2> | Sobhan: fun fact, vector actually has a function for doing that sort of thing that I added! |
2021-12-18 10:01:14 +0100 | <nshepperd2> | V.createT (do mut <- V.thaw xs; a <- M.read mut 0; return (a, mut)) |
2021-12-18 10:02:17 +0100 | <nshepperd2> | (createT does 'traverse unsafeFreeze' over any traversable container of mutable vectors that you return) |
2021-12-18 10:03:39 +0100 | Sobhan | (~Sobhan@modemcable039.128-131-66.mc.videotron.ca) (Ping timeout: 256 seconds) |
2021-12-18 10:03:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 10:08:37 +0100 | xff0x | (~xff0x@2001:1a81:5394:f900:dd60:fd82:cbed:c232) (Ping timeout: 240 seconds) |
2021-12-18 10:08:37 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-18 10:09:44 +0100 | xff0x | (~xff0x@2001:1a81:5394:f900:9067:7a5d:460c:e4bd) |
2021-12-18 10:11:49 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 10:16:19 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-18 10:17:20 +0100 | <c_wraith> | oh, only traversables? And here I was thinking you were playing fancy tricks with Data |
2021-12-18 10:17:36 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-12-18 10:17:36 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-12-18 10:17:39 +0100 | allbery_b | geekosaur |
2021-12-18 10:24:02 +0100 | xff0x | (~xff0x@2001:1a81:5394:f900:9067:7a5d:460c:e4bd) (Ping timeout: 240 seconds) |
2021-12-18 10:24:54 +0100 | xff0x | (~xff0x@port-92-195-110-215.dynamic.as20676.net) |
2021-12-18 10:25:05 +0100 | PVPANTHONY | (~The_viole@203.77.49.232) |
2021-12-18 10:26:09 +0100 | Jing_ | (~hedgehog@2604:a840:3::103e) |
2021-12-18 10:26:20 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-18 10:27:17 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
2021-12-18 10:27:32 +0100 | Jing | (~hedgehog@125.105.142.62) (Read error: Connection reset by peer) |
2021-12-18 10:27:57 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 240 seconds) |
2021-12-18 10:28:05 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-12-18 10:28:34 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-18 10:28:34 +0100 | cyphase | (~cyphase@user/cyphase) |
2021-12-18 10:30:31 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-18 10:32:24 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-18 10:32:46 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-18 10:33:07 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 10:44:36 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-18 10:48:37 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-12-18 10:52:24 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-12-18 11:06:01 +0100 | deadmarshal_ | (~deadmarsh@95.38.113.39) |
2021-12-18 11:06:37 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 11:08:48 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-12-18 11:09:27 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2021-12-18 11:14:49 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 11:17:12 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-12-18 11:17:37 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2021-12-18 11:18:29 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-12-18 11:23:37 +0100 | pfurla_ | (~pfurla@2804:18:5822:b7a4:5d55:ee0c:b89:ab0a) (Ping timeout: 240 seconds) |
2021-12-18 11:24:01 +0100 | pfurla | (~pfurla@2804:18:5822:b7a4:6913:9198:2dcc:b6a5) |
2021-12-18 11:24:06 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-18 11:25:38 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) |
2021-12-18 11:29:28 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-18 11:31:30 +0100 | niemand | (~niemand@p2e52fab3.dip0.t-ipconnect.de) |
2021-12-18 11:32:22 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-18 11:32:36 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 11:33:33 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-18 11:41:48 +0100 | deadmarshal_ | (~deadmarsh@95.38.113.39) (Ping timeout: 256 seconds) |
2021-12-18 11:41:48 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-12-18 11:44:06 +0100 | Digit | (~user@user/digit) |
2021-12-18 11:47:21 +0100 | niemand | (~niemand@p2e52fab3.dip0.t-ipconnect.de) (Quit: Connection closed) |
2021-12-18 11:49:36 +0100 | <nshepperd> | hehe no |
2021-12-18 11:52:33 +0100 | PVPANTHONY | (~The_viole@203.77.49.232) (Ping timeout: 256 seconds) |
2021-12-18 11:53:16 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 245 seconds) |
2021-12-18 11:55:48 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 11:57:59 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-18 12:00:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 12:06:59 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-18 12:06:59 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 12:07:11 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-18 12:09:17 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 12:17:43 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Quit: WeeChat 3.3) |
2021-12-18 12:17:44 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) |
2021-12-18 12:21:07 +0100 | hugo | (znc@verdigris.lysator.liu.se) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 12:23:04 +0100 | hugo | (znc@verdigris.lysator.liu.se) |
2021-12-18 12:23:15 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 12:25:09 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 12:25:52 +0100 | mikoto-chan | (~mikoto-ch@2a00:1d50:3:0:d35c:a450:4ccc:94ac) |
2021-12-18 12:28:27 +0100 | off^ | (~off@64.253.22.77) (Remote host closed the connection) |
2021-12-18 12:28:49 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-18 12:31:09 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2021-12-18 12:34:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-12-18 12:37:27 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 12:39:01 +0100 | AlexNoo_ | AlexNoo |
2021-12-18 12:39:40 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 12:45:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-18 12:45:21 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-18 12:46:33 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) |
2021-12-18 12:48:25 +0100 | __monty__ | (~toonn@user/toonn) |
2021-12-18 12:50:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) (Ping timeout: 240 seconds) |
2021-12-18 12:53:17 +0100 | PVPANTHONY | (~The_viole@203.77.49.232) |
2021-12-18 12:55:39 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 12:58:10 +0100 | <Digit> | hi. nyxt has me inspired to ask along the lines of... what's "the" web browser written/configured in haskell? |
2021-12-18 12:59:43 +0100 | deadmarshal_ | (~deadmarsh@95.38.113.39) |
2021-12-18 13:00:57 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Read error: Connection reset by peer) |
2021-12-18 13:10:39 +0100 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2021-12-18 13:10:47 +0100 | tom__ | (~tom@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2021-12-18 13:10:47 +0100 | tom_ | (~tom@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2021-12-18 13:10:54 +0100 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2021-12-18 13:14:44 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 13:15:37 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-12-18 13:15:58 +0100 | rito_ | (~rito_gh@45.112.243.172) |
2021-12-18 13:16:56 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 13:17:30 +0100 | phma | (phma@2001:5b0:210b:d6b8:694b:ba82:ab88:1eae) (Read error: Connection reset by peer) |
2021-12-18 13:19:06 +0100 | phma | (phma@2001:5b0:210f:398:45c4:2d78:79ea:d21b) |
2021-12-18 13:23:08 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2021-12-18 13:29:56 +0100 | jeetelongname | (~jeet@88-111-159-26.dynamic.dsl.as9105.com) |
2021-12-18 13:30:37 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 240 seconds) |
2021-12-18 13:31:05 +0100 | _ht | (~quassel@37.120.218.165) |
2021-12-18 13:31:51 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 13:37:42 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-12-18 13:41:08 +0100 | MoC | (~moc@user/moc) |
2021-12-18 13:42:54 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 13:43:18 +0100 | <sm> | I can't think of one offhand. that's a colossal project |
2021-12-18 13:45:35 +0100 | mmhat | (~mmh@55d47734.access.ecotel.net) |
2021-12-18 13:45:57 +0100 | deadmarshal_ | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 13:46:00 +0100 | robbert-vdh | (~robbert@robbertvanderhelm.nl) (Remote host closed the connection) |
2021-12-18 13:46:25 +0100 | robbert-vdh | (~robbert@robbertvanderhelm.nl) |
2021-12-18 13:46:26 +0100 | <geekosaur> | manatee had a web browser component, but it's long dead |
2021-12-18 13:46:27 +0100 | <sm> | a few experiments on hackage, like hbro |
2021-12-18 13:46:55 +0100 | lagash | (lagash@lagash.shelltalk.net) (Ping timeout: 250 seconds) |
2021-12-18 13:52:04 +0100 | mikoto-chan | (~mikoto-ch@2a00:1d50:3:0:d35c:a450:4ccc:94ac) (Quit: mikoto-chan) |
2021-12-18 13:55:55 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 13:56:15 +0100 | Megant | (megant@user/megant) (Ping timeout: 250 seconds) |
2021-12-18 13:57:54 +0100 | Megant | (megant@user/megant) |
2021-12-18 13:59:59 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-18 14:00:01 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-18 14:00:03 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 14:00:28 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-18 14:00:33 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-18 14:00:40 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-18 14:01:37 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-18 14:01:44 +0100 | son0p | (~ff@2800:484:1d81:b700:d40b:900:b387:320) (Remote host closed the connection) |
2021-12-18 14:02:00 +0100 | gensyst | (gensyst@user/gensyst) |
2021-12-18 14:03:16 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
2021-12-18 14:04:55 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-18 14:05:58 +0100 | gensyst | (gensyst@user/gensyst) (Client Quit) |
2021-12-18 14:08:59 +0100 | pfurla_ | (~pfurla@2804:18:5813:43a7:2d02:6b96:1847:d254) |
2021-12-18 14:11:05 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-18 14:11:57 +0100 | pfurla | (~pfurla@2804:18:5822:b7a4:6913:9198:2dcc:b6a5) (Ping timeout: 240 seconds) |
2021-12-18 14:11:58 +0100 | cheater | (~Username@user/cheater) |
2021-12-18 14:14:50 +0100 | <opqdonut> | what's the cool way to write `f <$> x <*> pure y` ? |
2021-12-18 14:15:12 +0100 | <opqdonut> | there must be some <**$ operator somewhere I can use |
2021-12-18 14:15:48 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-12-18 14:18:13 +0100 | toastloop | (toastloop@user/toastloop) |
2021-12-18 14:18:13 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 14:29:02 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-12-18 14:29:59 +0100 | Guest7 | (~Guest7@145.107.126.224) |
2021-12-18 14:31:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 14:31:54 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-18 14:35:06 +0100 | acidjnk | (~acidjnk@p200300d0c7271e65d42c28944a29f404.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-18 14:36:41 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 14:40:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-18 14:41:30 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 14:41:33 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-12-18 14:43:09 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-18 14:43:32 +0100 | Guest7 | (~Guest7@145.107.126.224) (Quit: Connection closed) |
2021-12-18 14:45:39 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-18 14:46:37 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-12-18 14:48:07 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) |
2021-12-18 14:48:11 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
2021-12-18 14:48:23 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2021-12-18 14:50:05 +0100 | jeetelongname | (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Read error: Connection reset by peer) |
2021-12-18 14:52:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) (Ping timeout: 240 seconds) |
2021-12-18 14:55:00 +0100 | max22- | (~maxime@2a01cb088335980036297c973223bba4.ipv6.abo.wanadoo.fr) |
2021-12-18 14:59:12 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 14:59:52 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-12-18 15:03:11 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:510d:e80b:d7e8:54bf) |
2021-12-18 15:03:57 +0100 | _73 | (~user@pool-108-49-252-36.bstnma.fios.verizon.net) |
2021-12-18 15:03:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 15:04:31 +0100 | <_73> | does this combinator have a name? `foo f g = \x y -> f (g x) (g y)` |
2021-12-18 15:04:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 15:05:14 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 15:05:37 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 15:05:57 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 15:06:02 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2021-12-18 15:06:23 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 15:06:25 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-18 15:06:45 +0100 | xsperry | (~xs@user/xsperry) (Remote host closed the connection) |
2021-12-18 15:07:10 +0100 | pfurla_ | (~pfurla@2804:18:5813:43a7:2d02:6b96:1847:d254) (Ping timeout: 260 seconds) |
2021-12-18 15:07:16 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-18 15:08:12 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 15:08:33 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-12-18 15:08:45 +0100 | <yushyin> | on? |
2021-12-18 15:09:36 +0100 | pfurla_ | (~pfurla@2804:18:5813:43a7:5d3e:bc70:a654:ea1e) |
2021-12-18 15:09:36 +0100 | rembo10 | (~rembo10@remulis.com) (Client Quit) |
2021-12-18 15:09:54 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 15:10:11 +0100 | max22- | (~maxime@2a01cb088335980036297c973223bba4.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2021-12-18 15:11:30 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 268 seconds) |
2021-12-18 15:11:34 +0100 | pfurla__ | (~pfurla@2804:d41:4331:4800:b8e7:6926:586a:39fa) |
2021-12-18 15:11:35 +0100 | <_73> | yushyin: yes `on` appears the same thanks. It would be helpful to me if somebody knew a mathematical name for this function. |
2021-12-18 15:13:01 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:510d:e80b:d7e8:54bf) (Ping timeout: 240 seconds) |
2021-12-18 15:13:53 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-18 15:14:13 +0100 | pfurla_ | (~pfurla@2804:18:5813:43a7:5d3e:bc70:a654:ea1e) (Ping timeout: 240 seconds) |
2021-12-18 15:16:21 +0100 | <Rembane> | _73: It's called the psi combinator according to https://hackage.haskell.org/package/data-aviary-0.4.0/docs/Data-Aviary-Birds.html but I can't find any more sources than that. |
2021-12-18 15:16:57 +0100 | <_73> | awesome. Thanks |
2021-12-18 15:17:52 +0100 | <Rembane> | No worries. :) |
2021-12-18 15:20:22 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 15:20:47 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 15:21:04 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 15:23:25 +0100 | rembo10 | (~rembo10@remulis.com) (Client Quit) |
2021-12-18 15:23:41 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 15:24:42 +0100 | sleblanc | (~sleblanc@user/sleblanc) |
2021-12-18 15:25:12 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-18 15:26:27 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 15:26:31 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-18 15:28:56 +0100 | jeetelongname | (~jeet@88-111-159-26.dynamic.dsl.as9105.com) |
2021-12-18 15:28:56 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 15:29:17 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 15:29:40 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-18 15:29:58 +0100 | rembo10 | (~rembo10@remulis.com) |
2021-12-18 15:35:04 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 15:35:35 +0100 | <yushyin> | it's the first time i heard of psi or 'combinator birds'. Why birds? Seems like a reference to a book. 'In his delightful book To mock a mockingbird, Smullyan (1985) chooses birds for his combinators, in memory of Haskell Curry, an early pioneer in the theory of combinators (1958) and an avid bird-watcher.' |
2021-12-18 15:37:39 +0100 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Remote host closed the connection) |
2021-12-18 15:37:39 +0100 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Read error: Connection reset by peer) |
2021-12-18 15:41:55 +0100 | <juhp> | This has been bothering me quite a while - maybe a good one for r/haskell monthly AMA, but isn't there a nice function to say "filter a list by a list of prefixes" for example? Well I dare say it is probably in some package, but I wish a not too obscure one |
2021-12-18 15:42:20 +0100 | <juhp> | I mean a generic function of course |
2021-12-18 15:43:43 +0100 | cheater | (~Username@user/cheater) |
2021-12-18 15:43:53 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-18 15:47:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 15:47:28 +0100 | sourcemage | (~sourcemag@c-24-14-124-168.hsd1.il.comcast.net) |
2021-12-18 15:47:29 +0100 | juhp[m] | (~juhpmatri@2001:470:69fc:105::6e9) |
2021-12-18 15:50:32 +0100 | sourcemage | (~sourcemag@c-24-14-124-168.hsd1.il.comcast.net) () |
2021-12-18 15:50:42 +0100 | jkaye | (~jkaye@2601:281:8300:7530:c697:c75:764c:d1a0) |
2021-12-18 15:53:51 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-18 15:59:17 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 16:03:41 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 245 seconds) |
2021-12-18 16:07:11 +0100 | <juhp> | Maybe it is too easy to define case-by-case... |
2021-12-18 16:08:32 +0100 | PVPANTHONY | (~The_viole@203.77.49.232) (Ping timeout: 240 seconds) |
2021-12-18 16:11:07 +0100 | max22- | (~maxime@2a01cb08833598005bdb830adfc4642c.ipv6.abo.wanadoo.fr) |
2021-12-18 16:11:27 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 250 seconds) |
2021-12-18 16:11:58 +0100 | evocatus | (~evocatus@62.182.78.42) |
2021-12-18 16:13:49 +0100 | _ht | (~quassel@37.120.218.165) (Ping timeout: 240 seconds) |
2021-12-18 16:14:21 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-18 16:15:15 +0100 | evocatus | (~evocatus@62.182.78.42) (Client Quit) |
2021-12-18 16:16:21 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 16:16:48 +0100 | <_73> | I actually have a copy of "To Mock a Mockingbird" that was gifted to me and I never got around to reading. I didn't realize that it was about combinatory logic. |
2021-12-18 16:17:16 +0100 | selkirk | (~selkirk@182.69.202.102) |
2021-12-18 16:17:25 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-18 16:17:46 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Remote host closed the connection) |
2021-12-18 16:19:36 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 16:23:40 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 16:25:37 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 16:25:37 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 16:25:37 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 16:31:17 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 16:34:57 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer) |
2021-12-18 16:37:22 +0100 | cosimone | (~user@93-34-133-159.ip49.fastwebnet.it) |
2021-12-18 16:40:00 +0100 | noex | (~null@2600:8804:1280:aa0:5857:94a:25de:c513) (Quit: :q!) |
2021-12-18 16:40:42 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 16:44:21 +0100 | cosimone | (~user@93-34-133-159.ip49.fastwebnet.it) (Remote host closed the connection) |
2021-12-18 16:45:11 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-12-18 16:45:32 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 16:49:36 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) |
2021-12-18 16:50:59 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-18 16:51:00 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-18 16:52:45 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2021-12-18 16:53:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) (Ping timeout: 240 seconds) |
2021-12-18 17:02:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 17:03:15 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 17:04:05 +0100 | toastloop | (toastloop@user/toastloop) (Remote host closed the connection) |
2021-12-18 17:05:46 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-18 17:08:42 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-18 17:09:51 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-18 17:10:50 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 260 seconds) |
2021-12-18 17:12:00 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-12-18 17:13:04 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 17:13:54 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 17:14:09 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-18 17:15:38 +0100 | selkirk | (~selkirk@182.69.202.102) (Quit: leaving) |
2021-12-18 17:16:27 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-18 17:25:08 +0100 | earendel | (uid498179@user/earendel) |
2021-12-18 17:28:06 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-12-18 17:31:42 +0100 | CyberTailor | (~cyber@gateway/tor-sasl/cybertailor) |
2021-12-18 17:31:50 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 260 seconds) |
2021-12-18 17:31:53 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 17:32:06 +0100 | jeetelongname | (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Ping timeout: 268 seconds) |
2021-12-18 17:32:10 +0100 | <CyberTailor> | i have too little RAM to compile haskell packages, what to do? |
2021-12-18 17:35:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 17:35:37 +0100 | lagash | (lagash@lagash.shelltalk.net) |
2021-12-18 17:36:37 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-18 17:36:38 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 17:36:57 +0100 | pfurla__ | (~pfurla@2804:d41:4331:4800:b8e7:6926:586a:39fa) (Ping timeout: 240 seconds) |
2021-12-18 17:39:55 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:8490:5949:caf8:c808) |
2021-12-18 17:42:54 +0100 | <pragma-> | download more |
2021-12-18 17:44:28 +0100 | <geekosaur> | generally you add swap somehow. of course that'll be slow. |
2021-12-18 17:46:07 +0100 | <geekosaur> | if this is something like a vps or droplet, you build on another machine and copy the artifacts over. if it's something like an rpi and you can't easily add swap, you may have to look into an arm vps |
2021-12-18 17:46:48 +0100 | Vajb | (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) |
2021-12-18 17:52:46 +0100 | <sm> | how much too little ? |
2021-12-18 17:54:25 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 17:59:44 +0100 | <CyberTailor> | sm: 4GB and zram |
2021-12-18 18:00:08 +0100 | <geekosaur> | ow |
2021-12-18 18:00:39 +0100 | <geekosaur> | might suggest using qemu on an x86 box for builds |
2021-12-18 18:00:57 +0100 | <geekosaur> | it'll be slow, but not as slow as swapping on 4gb |
2021-12-18 18:00:57 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 18:01:06 +0100 | <sm> | I don't know ram, but many (most ?) packages can build in 4G, some tweaks to your command can help |
2021-12-18 18:01:26 +0100 | <sm> | @where lowmem |
2021-12-18 18:01:26 +0100 | <lambdabot> | stack build ONEPKG -j1 --ghc-options='+RTS -M1G -RTS' |
2021-12-18 18:02:04 +0100 | <sm> | @where lowmemcabal |
2021-12-18 18:02:04 +0100 | <lambdabot> | I know nothing about lowmemcabal. |
2021-12-18 18:02:55 +0100 | <sm> | but you're probably building pandoc or something |
2021-12-18 18:02:58 +0100 | <monochrom> | cabal's is still -j1 and --ghc-options |
2021-12-18 18:03:10 +0100 | <sm> | +1 |
2021-12-18 18:03:58 +0100 | <sm> | @where+ lowmem cabal/stack build ONEPKG -j1 --ghc-options='+RTS -M2G -RTS' |
2021-12-18 18:03:58 +0100 | <lambdabot> | Done. |
2021-12-18 18:04:38 +0100 | slack1256 | (~slack1256@191.126.99.206) |
2021-12-18 18:05:04 +0100 | <CyberTailor> | gentoo builds with +RTS -A256M -qb0 -RTS |
2021-12-18 18:05:06 +0100 | <monochrom> | GHC these days autotune its allocator based on physical RAM size. It may be unnecessary to dictate that ghc-options. |
2021-12-18 18:05:41 +0100 | <sm> | interesting.. well, worth testing CyberTailor |
2021-12-18 18:05:52 +0100 | shailangsa | (~shailangs@host86-186-127-224.range86-186.btcentralplus.com) (Remote host closed the connection) |
2021-12-18 18:06:24 +0100 | <c_wraith> | most build memory problems come from either the linker or packages like vector-algorithms that do recursive inlining up to some ridiculous depth such that they generate huge amounts of code. |
2021-12-18 18:08:36 +0100 | <c_wraith> | it can help to know what situation you're in |
2021-12-18 18:09:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 18:09:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 18:09:58 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 18:10:52 +0100 | <sm> | poor, grim, or dire ? |
2021-12-18 18:11:15 +0100 | <CyberTailor> | building e.g. shellcheck or gentoo's hackport |
2021-12-18 18:12:16 +0100 | <sm> | is the above command helping ? |
2021-12-18 18:15:17 +0100 | <CyberTailor> | i'm just going to put off haskell until i get more ram |
2021-12-18 18:18:53 +0100 | mrus | (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) (Quit: Surfing the great wave off Kanagawa) |
2021-12-18 18:19:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 18:19:11 +0100 | mrus | (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) |
2021-12-18 18:22:01 +0100 | <hololeap> | this is an example of a what gentoo outputs when configuring. I know that things were optimized at one point to favor speed over RAM economy: http://sprunge.us/oXtTK7 |
2021-12-18 18:24:09 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 18:24:23 +0100 | <sm> | aww... too sensible :) |
2021-12-18 18:26:52 +0100 | <hololeap> | does anyone spot any options that are obviously memory-hungry in that? |
2021-12-18 18:28:27 +0100 | <hololeap> | or know of changes that would allow us to have a low-memory profile for building? |
2021-12-18 18:28:41 +0100 | <monochrom> | -j4 |
2021-12-18 18:29:15 +0100 | <hololeap> | sure, they tried with -j1 I'm pretty sure |
2021-12-18 18:30:24 +0100 | <monochrom> | I guess I don't understand your question. |
2021-12-18 18:31:45 +0100 | <hololeap> | there are a bunch of other options that I'm not familiar with, such as --ghc-option=-optl-Wl,-O1, and I'm wondering if any (besides -j4) stand out as culprits for increasing RAM consumption during compilation |
2021-12-18 18:38:47 +0100 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-12-18 18:39:57 +0100 | <delYsid> | I think I need ExistentialQuantification, but the concept is totally new to me. |
2021-12-18 18:41:01 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-18 18:41:04 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 18:41:07 +0100 | <delYsid> | I get that it would be better to expand every possible operation to a record and keep that in a list, but I think I can not do that since I want the body of my datatype to be extensible, if that wording makes any sense. |
2021-12-18 18:42:59 +0100 | <delYsid> | I am trying to create programmable views in a brick app using dyre. The idea is to have a generic View type which the user can create which holds data and functions which specify how to draw and handle events. |
2021-12-18 18:44:06 +0100 | <delYsid> | Are there any other patterns then ExistentialQuantification to do this, or should I happily proceed with Typeable and cast? |
2021-12-18 18:44:17 +0100 | slack1256 | (~slack1256@191.126.99.206) (Ping timeout: 240 seconds) |
2021-12-18 18:45:50 +0100 | shailangsa | (~shailangs@host86-186-127-224.range86-186.btcentralplus.com) |
2021-12-18 18:45:51 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 18:46:46 +0100 | regr | (~regr@2a02:a466:cf4f:1:5446:667c:b4:12f6) |
2021-12-18 18:46:47 +0100 | <hololeap> | delYsid: you only need ExistentialQuantification if you are trying to "hide" some aspect of the type |
2021-12-18 18:48:01 +0100 | <hololeap> | for instance, if you had the type (Thing t) and constructors for (Thing String) and (Thing Bool), you would not be able to stick both of those in [Thing t], because lists are homogeneous |
2021-12-18 18:49:08 +0100 | <hololeap> | so you could use ExistentialQuantification to make a SomeThing type which hides `t', allowing you to stick it into containers, but you lose the type-level information of what `t' was |
2021-12-18 18:49:38 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 256 seconds) |
2021-12-18 18:51:34 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) |
2021-12-18 18:52:56 +0100 | _73 | (~user@pool-108-49-252-36.bstnma.fios.verizon.net) (Remote host closed the connection) |
2021-12-18 18:53:55 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 18:54:29 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) (Remote host closed the connection) |
2021-12-18 18:54:45 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-18 19:00:05 +0100 | benin | (~benin@183.82.27.121) (Ping timeout: 252 seconds) |
2021-12-18 19:00:34 +0100 | benin | (~benin@183.82.27.121) |
2021-12-18 19:02:14 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 19:02:33 +0100 | CyberTailor | (~cyber@gateway/tor-sasl/cybertailor) (Konversation terminated!) |
2021-12-18 19:03:01 +0100 | <delYsid> | hololeap: Thats pretty much it. I dont want to hide anything in particular, but I need a way to add an aribtrary number of custom types of a container. I am hoping to be able to recover t with a Typeable constraint and cast? |
2021-12-18 19:03:17 +0100 | <delYsid> | s/of/to/ |
2021-12-18 19:05:12 +0100 | <hololeap> | I don't think that's necessary. you can shove as much info as you want into the `s' variable for brick's App |
2021-12-18 19:05:20 +0100 | <monochrom> | "Hiding" is true, but is true of all parametric polymorphism. If I code up "f :: forall a. a -> a" and you are the user of f, you are hiding the actual type from me, too. Changing "forall" to "exist" just turns the table around. |
2021-12-18 19:06:14 +0100 | <monochrom> | Instead, "forall" is a product type that is an infinite product, "exists" is a sum type that is an infinite sum. |
2021-12-18 19:06:19 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-12-18 19:06:58 +0100 | <monochrom> | That infinitness is also the driving force of why some people say "open". |
2021-12-18 19:09:40 +0100 | <hololeap> | Q: where did you put my keys? A: There exists a location in the universe where your keys are present -- sounds a bit like "hiding" to me ;) |
2021-12-18 19:12:47 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 19:13:13 +0100 | <hololeap> | delYsid: you might want to model a widget off of brick's App, where the user just needs to give you (s -> [Widget n]) and (s -> Event n e -> EventM n (Next s)) functions in order to have a View |
2021-12-18 19:13:40 +0100 | <hololeap> | _how_ they implement the functions is their business and outside the scope of your library |
2021-12-18 19:15:49 +0100 | <monochrom> | Observe that: 1. It uses "forall". 2. It is saying that now the user can hide their s from you. Which is what I said. |
2021-12-18 19:16:25 +0100 | <monochrom> | Generally and formally, "(exists s. ...) -> t" is equivalent to "forall s. ... -> t". |
2021-12-18 19:16:31 +0100 | <delYsid> | hololeap: Yes. Maybe I am stuck in some sort of confusion, but what I want to achieve is the ability to add an aribtrary amount of these to the brick state. I want some sort of function addView :: View -> State -> State -- which adds the given view (with its own state) to the global brick state. |
2021-12-18 19:16:53 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 19:17:09 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-18 19:18:11 +0100 | econo | (uid147250@user/econo) |
2021-12-18 19:19:11 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-12-18 19:20:28 +0100 | dsrt^ | (~dsrt@64.253.22.77) |
2021-12-18 19:20:37 +0100 | Feuermagier_ | (~Feuermagi@138.199.36.133) (Quit: Leaving) |
2021-12-18 19:20:48 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-18 19:21:27 +0100 | <monochrom> | If you find that View is conceptually an open sum type, you can define it to be an existential type, as said. |
2021-12-18 19:22:41 +0100 | <delYsid> | ah, that sounds about right then |
2021-12-18 19:23:53 +0100 | <monochrom> | A finite and closed sum type is for example "data F = C1 Int | C2 Bool | C3 Char". If you receive x::F, you say "I know, it can only be Int, Bool, or Char". |
2021-12-18 19:25:16 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-18 19:25:29 +0100 | <monochrom> | An infinite and open sum type is for example "data O = forall s. O s (s -> String)". If you receive x::O, it may be any type, you don't know which, but you know it supports an "s -> String" operations. |
2021-12-18 19:25:29 +0100 | <EvanR> | you may be able to do it if you can find a uniform interface to your view |
2021-12-18 19:25:36 +0100 | <EvanR> | without fancy types |
2021-12-18 19:26:07 +0100 | <monochrom> | Note that "O -> Foo" is the same as "forall s. (s, s->String) -> Foo". |
2021-12-18 19:26:53 +0100 | <monochrom> | In a language without built-in existential typing, you use that encoding. |
2021-12-18 19:27:27 +0100 | <hololeap> | ok, but if we're getting into theory here, what about the yoneda lemma, where a ~ (a -> r) -> r is saying "if you can give me an `r' from your huge open sum type `a', I really don't care what `a' is. just give me the `r'" -- doesn't this also provide a mechanism for dealing with open sum types without getting into ExistentialQuantification? |
2021-12-18 19:28:42 +0100 | <monochrom> | But so is F. "F -> Foo" is the same as "(Int -> Foo, Bool -> Foo, Char -> Foo)" --- a finite "forall". |
2021-12-18 19:29:02 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 19:29:28 +0100 | <EvanR> | delYsid, does the ultimate use of your dynamic view end up being something like a map reduce |
2021-12-18 19:29:50 +0100 | <EvanR> | and foldmap... like map all your weird values to a uniform value and mush them together |
2021-12-18 19:29:52 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-12-18 19:30:01 +0100 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-12-18 19:30:24 +0100 | <monochrom> | You are missing a "forall" there. a ~ forall r. (a -> r) -> r |
2021-12-18 19:30:42 +0100 | <monochrom> | In category theory terms, "natural in r". |
2021-12-18 19:30:52 +0100 | <EvanR> | is that version of yoneda lemma at all related to scott encoding (or what's it called encoding) of data types |
2021-12-18 19:30:56 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 19:31:00 +0100 | <monochrom> | Naturality in category theory becomes parametricity in programming. |
2021-12-18 19:31:43 +0100 | <monochrom> | There is also an outer "forall a." over the whole thing. The Yoneda correspondence is natural in a, too. |
2021-12-18 19:32:09 +0100 | <monochrom> | THIS IS WHY HASKELL SHOULD HAVE MADE YOU WRITE "forall" EXPLICITLY. |
2021-12-18 19:32:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 19:32:36 +0100 | <EvanR> | that would get annoying |
2021-12-18 19:32:51 +0100 | <hololeap> | I don't know enough about the theory to actually use it to make a point :) but my point is that the user can just give you back a [Widget] and you don't need to know all the steps they took (or types they used) to do so |
2021-12-18 19:32:54 +0100 | <EvanR> | category theory is full of omitted important stuff like that |
2021-12-18 19:33:03 +0100 | <EvanR> | the student is just supposed to know it's there |
2021-12-18 19:33:16 +0100 | <EvanR> | it's even worse in physics |
2021-12-18 19:33:27 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 19:34:10 +0100 | <EvanR> | yes, what hololeap said |
2021-12-18 19:34:26 +0100 | thevishy | (~Nishant@2405:201:f005:c007:4c69:b93c:3bc3:9ff2) (Quit: Leaving) |
2021-12-18 19:34:29 +0100 | <delYsid> | Well, the draw part of the view is simple, since it is pure. I have that worked out. But event handling is different, since it can mutate state, and I need a way for the view to know where its data is located in the big state. |
2021-12-18 19:34:50 +0100 | <EvanR> | [BigData -> Widget] |
2021-12-18 19:35:26 +0100 | <monochrom> | We can talk non-theory. I started without theory, I didn't bring up Yoneda. I started with basic Haskell code. |
2021-12-18 19:35:31 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 19:35:55 +0100 | <monochrom> | You can work with my O->Foo example to see what I mean. No Yoda required. |
2021-12-18 19:36:25 +0100 | <EvanR> | Yoda Nelemma |
2021-12-18 19:37:01 +0100 | <monochrom> | And you can see that it is the same technique you described. I was connecting forall with exist. |
2021-12-18 19:37:36 +0100 | <monochrom> | My hidden agenda is, though, to de-FUD existential types. |
2021-12-18 19:38:27 +0100 | <monochrom> | Existential types are not an anti-pattern. |
2021-12-18 19:38:46 +0100 | <EvanR> | existential types hide stuff... simply applying a function hides stuff xD |
2021-12-18 19:38:51 +0100 | <EvanR> | what's the problem |
2021-12-18 19:39:13 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-18 19:39:22 +0100 | gustik | (~gustik@2a01:c844:242f:ba20:72e:7030:46bf:1353) (Quit: Leaving) |
2021-12-18 19:39:41 +0100 | <monochrom> | Well yeah that's another of my point, too. Existential types do not have a monopoly on hiding. |
2021-12-18 19:40:14 +0100 | <monochrom> | In fact to the point that the hiding should be attributed to something else unrelated. |
2021-12-18 19:41:14 +0100 | <monochrom> | In Java, you have instanceOf, you have a whole java.reflection machinery. They break parametricity in a very strong way. They also break all the fabled "hiding" promised by OOP. |
2021-12-18 19:41:43 +0100 | <monochrom> | The conclusion is that hiding should be attributed to parametricity. |
2021-12-18 19:42:34 +0100 | <hololeap> | delYsid: here's my thinking: you can write: (local -> BrickEvent n e -> EventM n (Next local)) -> ((s,local) -> BrickEvent n e -> EventM n (Next (s,local))) |
2021-12-18 19:42:43 +0100 | <monochrom> | Just that the OOP people boast "hiding" more often, and they use existential types more often, so you get a distorted impression. |
2021-12-18 19:42:49 +0100 | <earendel> | i think you misunderstand it as a kind of security feature. |
2021-12-18 19:43:22 +0100 | <monochrom> | Uh no. Look at academic explanations of "parametricity" and "type case". |
2021-12-18 19:43:25 +0100 | <earendel> | in case you mean private and internal types. |
2021-12-18 19:43:47 +0100 | <hololeap> | delYsid: this will allow you to take a state function that focuses on your local View state and apply it to your appHandleEvent from Brick.Main |
2021-12-18 19:43:53 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 19:43:57 +0100 | <delYsid> | I think my problem boils down to a this "pointer". If I were to write this in C++, I would have base class, some virtual methods, and hide all the private state in the various view subclasses. To add a view, I'd push it to a vector of base pointers. If I call my virtual handle event method, I get a this pointer and can mutate my state. I am looking for something that lets me do this with Brick, where the State is actually a global |
2021-12-18 19:43:58 +0100 | <delYsid> | big nested record, and I have to figure out where my private state lives. |
2021-12-18 19:44:06 +0100 | <monochrom> | In particular "type case implies losing parametricity" |
2021-12-18 19:44:50 +0100 | <EvanR> | delYsid, you can do exactly this by passing a this pointer as an argument |
2021-12-18 19:45:03 +0100 | <EvanR> | and using IO or STM to use it |
2021-12-18 19:45:11 +0100 | <monochrom> | Haskell is not very good at subclassing though, even after you use existential types. |
2021-12-18 19:45:38 +0100 | <monochrom> | But a virtual class (ignoring subclassing), that we can do. |
2021-12-18 19:47:09 +0100 | regr | (~regr@2a02:a466:cf4f:1:5446:667c:b4:12f6) (Ping timeout: 268 seconds) |
2021-12-18 19:47:26 +0100 | <EvanR> | virtual class = record of functions? xD |
2021-12-18 19:47:31 +0100 | <monochrom> | Yeah! |
2021-12-18 19:47:40 +0100 | <EvanR> | cute |
2021-12-18 19:48:16 +0100 | <monochrom> | Or even better, record of a few value fields and a few function fields that use those value fields. |
2021-12-18 19:48:32 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 240 seconds) |
2021-12-18 19:48:41 +0100 | <monochrom> | For example, "data O = forall s. O s (s -> String)" as said. |
2021-12-18 19:49:19 +0100 | <EvanR> | that screams "String" to me |
2021-12-18 19:49:33 +0100 | <monochrom> | Or you can recgonize that "s -> String looks like a Show method" so you compress it to "data O' = forall s. Show s => O' s" |
2021-12-18 19:51:33 +0100 | <monochrom> | It is a basic but dumb and useless example. |
2021-12-18 19:51:37 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 240 seconds) |
2021-12-18 19:51:48 +0100 | <monochrom> | As usual, all useful OOP examples take up at least 10 lines. |
2021-12-18 19:51:51 +0100 | regr | (~regr@2a02:a466:cf4f:1:cb36:2141:856f:f900) |
2021-12-18 19:52:11 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-18 19:53:11 +0100 | <delYsid> | EvanR: I have never worked with pointers in Haskell. I was hoping I could get what I want with Lens, but I am sort of stuck here. |
2021-12-18 19:53:23 +0100 | <monochrom> | delYsid: There is a chance "pointer" translates to "lens"... |
2021-12-18 19:53:25 +0100 | <EvanR> | not called a pointer, it's IORef or TVar |
2021-12-18 19:53:41 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 19:53:50 +0100 | <geekosaur> | well, one could claim you work with nothing but pointers |
2021-12-18 19:54:24 +0100 | <monochrom> | But yeah maybe IORef or TVar is more idiomatic. |
2021-12-18 19:54:40 +0100 | <monochrom> | Unless you don't want IO or STM. |
2021-12-18 19:55:41 +0100 | <EvanR> | accessing (potentially modifying?) that external "big" "state" ? |
2021-12-18 19:56:10 +0100 | <EvanR> | from your OOP subcomponents? |
2021-12-18 19:56:22 +0100 | <monochrom> | But if it is strictly a pure function View -> State -> State, different values of View address different slices of State, and there are too many possibilities to write a finite sum type for View... |
2021-12-18 19:56:28 +0100 | <EvanR> | seems awkward to do it entirely pure |
2021-12-18 19:56:33 +0100 | <monochrom> | then that's straight to the definition of "lens". |
2021-12-18 19:56:50 +0100 | <delYsid> | EvanR: Yes. Its a bit like having two states. The private state of the view which lives somewhere in a NonEmpty in the global state. The handler should be able to modify both. |
2021-12-18 19:57:30 +0100 | <EvanR> | if you figure out how to do that without IO, you still have the original problem of unmanagable spooky action at a distance |
2021-12-18 19:57:38 +0100 | <EvanR> | that happens immediately with lots of globals |
2021-12-18 19:58:31 +0100 | <EvanR> | in my current code, I don't have global state and restrict access to what's relevant |
2021-12-18 19:58:44 +0100 | <delYsid> | But without access to the global state, the handler is pretty limited in reusing any (global) functionality... |
2021-12-18 19:59:45 +0100 | <delYsid> | imagine a clipboard. How would a view copy stuff to it? |
2021-12-18 20:00:07 +0100 | <EvanR> | sounds like a single TVar, the clipboard |
2021-12-18 20:00:30 +0100 | <EvanR> | and whatever can use it, has it |
2021-12-18 20:00:46 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 20:01:01 +0100 | <EvanR> | (also, a "view" that modifies the clipboard? xD) |
2021-12-18 20:01:02 +0100 | <delYsid> | hmm, thats something to think about. |
2021-12-18 20:01:19 +0100 | <EvanR> | not your dads MVC pattern |
2021-12-18 20:01:20 +0100 | max22- | (~maxime@2a01cb08833598005bdb830adfc4642c.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2021-12-18 20:01:31 +0100 | <delYsid> | nah |
2021-12-18 20:01:56 +0100 | <delYsid> | Lets call it DisplayableObject then :-) |
2021-12-18 20:02:08 +0100 | <EvanR> | it can do anything as well as display |
2021-12-18 20:02:20 +0100 | <EvanR> | redundant? xD |
2021-12-18 20:02:48 +0100 | <monochrom> | "Object" is redundant :) |
2021-12-18 20:03:53 +0100 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) (Quit: WeeChat 3.0.1) |
2021-12-18 20:05:24 +0100 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) |
2021-12-18 20:05:34 +0100 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds) |
2021-12-18 20:06:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-18 20:06:52 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 20:07:05 +0100 | <delYsid> | OK, I get the message, I think. Dont open everything up because that makes code unpredictable. So a displayable should only have access to its own state. And if it needs to do stuff to the global state, make these operations explicit as fields and feed them at creation time. |
2021-12-18 20:08:05 +0100 | <EvanR> | something like that is a classic OOP strategy, though the background assumes everything in IO |
2021-12-18 20:09:10 +0100 | <delYsid> | Its not even that I am after OOP. I dont have any sort of inheritance or anything like that. All I want is a polymorhpic container of things with private state! |
2021-12-18 20:09:25 +0100 | <EvanR> | bah inheritance |
2021-12-18 20:09:56 +0100 | <EvanR> | haskell has other ways to reuse code |
2021-12-18 20:10:32 +0100 | <delYsid> | inheritance is not relevant anyway. polymorphism is. |
2021-12-18 20:11:05 +0100 | <EvanR> | the "polymorphic container of things" with private state has an issue in haskell because it doesn't describe what the things or the container are supposed to be able to do |
2021-12-18 20:11:29 +0100 | <EvanR> | even implementing it as [IO ()] is too specific, depending on what the point is |
2021-12-18 20:12:03 +0100 | <EvanR> | in other languages you have a default background of things all objects can do, but in haskell you don't |
2021-12-18 20:12:06 +0100 | regr | (~regr@2a02:a466:cf4f:1:cb36:2141:856f:f900) (WeeChat 2.8) |
2021-12-18 20:12:18 +0100 | <EvanR> | i.e. [forall a . a] can't do anything |
2021-12-18 20:13:16 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2021-12-18 20:13:32 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-18 20:14:07 +0100 | <delYsid> | Well, Things is a typeclass in my case I guess... The point is more about what signature its methods should exactly have. as said, the pure draw is simple and done, but the stateful handleEvent probably needs Lens somehow to writ the mutation back to the global state. |
2021-12-18 20:15:23 +0100 | <EvanR> | if the big global state has type S then it sounds like your just want a S -> S |
2021-12-18 20:15:41 +0100 | <EvanR> | lenses can help you build those, if you want |
2021-12-18 20:16:37 +0100 | <EvanR> | your interface could involve (S -> S) or it could take IORef S |
2021-12-18 20:17:10 +0100 | <EvanR> | but yeah that there needs to be some interface was my point |
2021-12-18 20:17:24 +0100 | <EvanR> | polymorphic or not |
2021-12-18 20:18:01 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-18 20:19:23 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 20:19:39 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-18 20:20:15 +0100 | <Raito_Bezarius> | is it possible to open a named shared memory location with stm library in Haskell? |
2021-12-18 20:20:34 +0100 | <monochrom> | I think no. |
2021-12-18 20:20:38 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-18 20:22:25 +0100 | <Raito_Bezarius> | Is there a way to open named shared memory locations in Haskell, monochrom ? |
2021-12-18 20:24:49 +0100 | <geekosaur> | I don't think there's an interface to the shmget() etc. functions currently. There is one to mmap() but I'm not sure how up to date it is |
2021-12-18 20:25:24 +0100 | <geekosaur> | STM only operates in-process; there is no way to synchronize across processes using a shared memory segment, either with STM or with MVars |
2021-12-18 20:25:55 +0100 | <Raito_Bezarius> | Thanks geekosaur! |
2021-12-18 20:25:57 +0100 | <hololeap> | delYsid: this is my idea: http://sprunge.us/uIMjhF?haskell |
2021-12-18 20:26:04 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-18 20:29:35 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 20:29:38 +0100 | <sm> | looks interesting |
2021-12-18 20:30:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 20:31:21 +0100 | <hololeap> | oops, there's a typo at the end. fixed: http://sprunge.us/7F3zYK?haskell |
2021-12-18 20:32:43 +0100 | <EvanR> | what is the n type in bricks Widget |
2021-12-18 20:32:49 +0100 | max22- | (~maxime@2a01cb088335980062ccec88c4c3abad.ipv6.abo.wanadoo.fr) |
2021-12-18 20:33:12 +0100 | <hololeap> | you might notice that viewHandleEvent returns `EventM n (Maybe (Next v))` instead of `EventM n (Next v)` -- this is so that you can choose to pass the event on to the parent handler |
2021-12-18 20:33:16 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-18 20:33:35 +0100 | <hololeap> | EvanR: it's essentially a sum type that lets you identify your widgets, or at least the important ones |
2021-12-18 20:33:54 +0100 | <EvanR> | oh, a naming system |
2021-12-18 20:33:59 +0100 | <hololeap> | yeah |
2021-12-18 20:34:22 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer) |
2021-12-18 20:34:52 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:36:03 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:36:04 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:36:48 +0100 | rito_ | (~rito_gh@45.112.243.172) (Quit: Leaving) |
2021-12-18 20:38:28 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-18 20:40:04 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:40:04 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:40:17 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-12-18 20:40:48 +0100 | <delYsid> | n is for name, actually. |
2021-12-18 20:41:33 +0100 | <delYsid> | hololeap: Hmm, I am too slow to digest this immediately, but it looks promising. Thanks for writing it up! |
2021-12-18 20:41:50 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:41:50 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:43:06 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-18 20:45:15 +0100 | <hololeap> | delYsid: np. you might also want to add this http://sprunge.us/txnro4 ... not sure how it will all shake out in real code, but this could probably accommodate nested Views as well |
2021-12-18 20:45:31 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:45:32 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:46:19 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-18 20:46:43 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:46:44 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 20:47:35 +0100 | <hololeap> | where you would end up with `ViewState (ViewState v2 v1) s` or something, where v1 is the state for the outer View and v2 is the state for the inner View |
2021-12-18 20:47:50 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 20:48:36 +0100 | <hololeap> | I've actually thought about this exact problem before so I had some ideas already :) |
2021-12-18 20:49:55 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2021-12-18 20:50:13 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-18 20:51:11 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-12-18 20:52:20 +0100 | <delYsid> | Oh, so the plan is to launch an App for a view? Thats interesting |
2021-12-18 20:52:58 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2021-12-18 20:56:54 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-18 20:57:00 +0100 | <hololeap> | the idea is that a View is an independent system, sort of like an App, and this means you need to hijack appHandleEvent so that the View can handle events independently and pass on any "leftovers" to the main App |
2021-12-18 20:58:15 +0100 | <hololeap> | again, I've only ever thought about this in theory. I haven't tried implementing it or using it so I don't know if it will end up being annoying to use in the end for some reason |
2021-12-18 20:59:27 +0100 | <Athas> | ...is there really no convenience function in aeson for decoding from String or Text? |
2021-12-18 20:59:28 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 20:59:54 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 20:59:55 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:00:05 +0100 | <hololeap> | there should probably be a mechanism so that a View can both handle event _and_ pass it on to its parent, instead of "consuming" it being the only choice |
2021-12-18 21:01:01 +0100 | jumper149 | (~jumper149@static.6.71.203.116.clients.your-server.de) |
2021-12-18 21:01:03 +0100 | <jumper149> | Can I use a literate Haskell file with cabal? |
2021-12-18 21:01:19 +0100 | <geekosaur> | cabal knows the .lhs extension is Haskell source, yes |
2021-12-18 21:03:12 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2021-12-18 21:03:46 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 21:03:55 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:03:55 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:04:21 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:04:21 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:04:37 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 240 seconds) |
2021-12-18 21:04:45 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:04:46 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:07:37 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-18 21:09:46 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 21:10:21 +0100 | <delYsid> | hololeap: I way planning to do the "passing on of event" by actually suing some sort of Keymap. Right now, I have a global appHandleEvent which picks the current view and call its handler, doing any global stuff hardcoded. Your idea looks neat, but I dont see how I'd add views to a container, same problem I guess. |
2021-12-18 21:11:21 +0100 | <delYsid> | hololeap: As said initially, I'd like to combine Brick and Dyre, which means I'll have a config file which launches the resulting app. the plan is to be able to add views in that config file, hence the open sum type thing... |
2021-12-18 21:11:45 +0100 | <delYsid> | damn, I cant type. |
2021-12-18 21:15:20 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-18 21:17:24 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-18 21:17:25 +0100 | jonathanx | (~jonathan@94.234.53.6) |
2021-12-18 21:20:37 +0100 | jkaye | (~jkaye@2601:281:8300:7530:c697:c75:764c:d1a0) (Ping timeout: 240 seconds) |
2021-12-18 21:20:40 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-18 21:22:06 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-18 21:22:09 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:22:10 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:22:38 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-18 21:24:43 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Remote host closed the connection) |
2021-12-18 21:29:44 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:29:44 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:32:09 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-18 21:33:07 +0100 | <EvanR> | so if I had, let's say, a big Data.Map which will not change. Then use Data.Compact to get the compact version of it. Then I want to union in additional smaller maps that don't overlap with the big map... can I just do it and it will utilize the compact region? |
2021-12-18 21:33:35 +0100 | <EvanR> | or would it be better to hold two maps, the small dynamic ones and the large compact one and manually check both |
2021-12-18 21:33:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-18 21:36:02 +0100 | <EvanR> | I'm thinking merging a compact map and a non compact map may begin to copy stuff out of the compact region and defeat the purpose |
2021-12-18 21:37:21 +0100 | <geekosaur> | I think that'd only copy the spine out, keys and values would stay put as long as there's no overlap? |
2021-12-18 21:37:36 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-18 21:38:58 +0100 | <EvanR> | if keys and values are small, wouldn't the spine constitute a big % of the space |
2021-12-18 21:39:38 +0100 | <geekosaur> | yes, but they'd both have to be pretty small |
2021-12-18 21:40:01 +0100 | <geekosaur> | bad idea for Map Int Int, less so for Map String String |
2021-12-18 21:40:04 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2021-12-18 21:40:35 +0100 | <EvanR> | or IntMap BasicADTWithAFewInts |
2021-12-18 21:40:41 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-12-18 21:41:24 +0100 | <EvanR> | that the keys and values stay in the compact region is good |
2021-12-18 21:41:46 +0100 | <geekosaur> | IntMap probably breaks that since it'd be possible to UNPACK the keys into the spine |
2021-12-18 21:41:49 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-18 21:41:52 +0100 | <EvanR> | oof |
2021-12-18 21:42:24 +0100 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection) |
2021-12-18 21:42:57 +0100 | EvanR | hmms |
2021-12-18 21:43:47 +0100 | <EvanR> | i will stop premature optimizing for now |
2021-12-18 21:43:51 +0100 | cosimone | (~user@93-34-133-159.ip49.fastwebnet.it) |
2021-12-18 21:44:31 +0100 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
2021-12-18 21:47:15 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-18 21:51:12 +0100 | pavonia | (~user@user/siracusa) |
2021-12-18 21:52:32 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 21:52:32 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 21:52:32 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 21:52:57 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-12-18 21:54:02 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:54:02 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:55:40 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:55:41 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:58:20 +0100 | xb0o2 | (~xb0o2@user/xb0o2) |
2021-12-18 21:58:48 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:58:49 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:59:26 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 21:59:26 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 21:59:41 +0100 | coot | (~coot@2a02:a310:e03f:8500:933a:39ca:ef4e:37cb) |
2021-12-18 22:00:09 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 22:00:10 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 22:00:25 +0100 | <__monty__> | Hmm, I use Criterion to benchmark my Advent of Code solutions and yesterday's assignement is throwing me for a loop. The benchmark errors out on me with "Too many open files." What's the usual fix for this? Am I accidentally using lazy IO and the file's not clos... Yep, that was it (file not closing not sure it's actually lazy IO), wasn't parsing until eof >.< |
2021-12-18 22:00:37 +0100 | <__monty__> | Thanks for rubber ducking! <3 |
2021-12-18 22:01:17 +0100 | jonathanx | (~jonathan@94.234.53.6) (Ping timeout: 240 seconds) |
2021-12-18 22:01:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 22:02:18 +0100 | Alex_test | (~al_test@178.34.163.82) (Ping timeout: 256 seconds) |
2021-12-18 22:02:47 +0100 | <xb0o2> | You're welcome... to where do we send the invoice? |
2021-12-18 22:02:51 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 22:02:52 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 22:03:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-18 22:03:08 +0100 | <c_wraith> | __monty__: benchmarking is better when it doesn't include the file IO anyway. You'd probably get more actionable results if you read the input first and then passed it to all the test cases |
2021-12-18 22:03:36 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-18 22:03:37 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 22:03:37 +0100 | AlexZenon | (~alzenon@178.34.163.82) (Ping timeout: 240 seconds) |
2021-12-18 22:04:31 +0100 | <__monty__> | c_wraith: I know these numbers aren't very meaningful. (I don't even bother making sure the load on my machine isn't already high before running them.) It's just the number I want to know : ) |
2021-12-18 22:04:47 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-18 22:06:17 +0100 | Alex_test | (~al_test@178.34.163.82) |
2021-12-18 22:06:54 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2021-12-18 22:07:05 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-18 22:07:08 +0100 | neurocyte0132889 | (~neurocyte@94.46.66.157) |
2021-12-18 22:07:08 +0100 | neurocyte0132889 | (~neurocyte@94.46.66.157) (Changing host) |
2021-12-18 22:07:08 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-18 22:09:03 +0100 | AlexZenon | (~alzenon@178.34.163.82) |
2021-12-18 22:10:56 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer) |
2021-12-18 22:11:30 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-12-18 22:11:36 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:21ba:a382:6b6:54c4) (Ping timeout: 245 seconds) |
2021-12-18 22:17:20 +0100 | acidjnk | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
2021-12-18 22:17:45 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer) |
2021-12-18 22:18:07 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-12-18 22:18:59 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 22:19:09 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-18 22:19:39 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-18 22:19:57 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-18 22:23:30 +0100 | cosimone | (~user@93-34-133-159.ip49.fastwebnet.it) (Remote host closed the connection) |
2021-12-18 22:24:24 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2021-12-18 22:27:26 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2021-12-18 22:34:36 +0100 | benin | (~benin@183.82.27.121) (Ping timeout: 256 seconds) |
2021-12-18 22:37:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-18 22:40:56 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2021-12-18 22:41:07 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-18 22:43:57 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-18 22:43:57 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-18 22:43:57 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-18 22:44:20 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-18 22:46:41 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-18 22:48:56 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) |
2021-12-18 22:49:03 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-18 22:53:18 +0100 | deadmarshal | (~deadmarsh@95.38.113.39) (Ping timeout: 256 seconds) |
2021-12-18 22:56:06 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-18 22:58:10 +0100 | benin | (~benin@183.82.27.121) |
2021-12-18 23:12:30 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 260 seconds) |
2021-12-18 23:14:50 +0100 | xsperry | (~xs@user/xsperry) (Ping timeout: 256 seconds) |
2021-12-18 23:15:38 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-12-18 23:17:09 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-18 23:18:10 +0100 | son0p | (~ff@181.136.122.143) |
2021-12-18 23:18:27 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2021-12-18 23:19:19 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:178:131c:7a0c:e758) |
2021-12-18 23:24:31 +0100 | <dmj`> | xb0o2: lol |
2021-12-18 23:29:57 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-12-18 23:32:09 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2021-12-18 23:32:52 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2021-12-18 23:34:12 +0100 | coot | (~coot@2a02:a310:e03f:8500:933a:39ca:ef4e:37cb) (Quit: coot) |
2021-12-18 23:35:48 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-18 23:38:23 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-12-18 23:46:57 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-18 23:47:44 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2021-12-18 23:48:16 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-18 23:48:25 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-12-18 23:48:26 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-18 23:48:38 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-18 23:51:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |