Logs on 2021-08-15 (liberachat/#haskell)
| 00:03:18 | × | jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 272 seconds) |
| 00:03:54 | × | _|_ quits (~ding@2001:19f0:5:14c2:5400:2ff:fee0:a42c) (Quit: oopsy) |
| 00:04:08 | → | _\_ joins (~flick@2001:19f0:5:14c2:5400:2ff:fee0:a42c) |
| 00:06:29 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:08:56 | × | Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_) |
| 00:09:27 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 00:10:09 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 248 seconds) |
| 00:14:32 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 00:22:58 | × | Heisen quits (~Heisen@2a02:aa1:1010:e9f8:c4d6:f30c:bbf0:3508) (Ping timeout: 246 seconds) |
| 00:25:37 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 00:25:59 | → | jao joins (jao@gateway/vpn/protonvpn/jao) |
| 00:26:41 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds) |
| 00:43:20 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 00:44:55 | <aarchi> | Thanks everyone. This has been very helpful |
| 00:51:32 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 00:55:29 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 00:58:50 | → | Guest35 joins (~Guest35@187.83.249.216.dyn.smithville.net) |
| 00:59:22 | × | Guest35 quits (~Guest35@187.83.249.216.dyn.smithville.net) (Client Quit) |
| 01:02:54 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 01:09:46 | × | skykanin quits (~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2) |
| 01:10:22 | <aegon> | haskell cant overload functions with the same name and parameter types, is there a way to specialize a function for specific parameters? |
| 01:10:31 | <aegon> | *afaik |
| 01:11:33 | <aegon> | I'm trying to understand how postgresql-simple manages to have 2 query functions that behave different but take the same arguments, one has a special constraint on one of the outputs but aside from that they seem the same, i thought the compiler complained about that though |
| 01:11:44 | <aegon> | also, i'm being derpy, i can try this is ghci quick, nevermind |
| 01:12:06 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 01:12:31 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 01:14:05 | <aegon> | hmm, yeah it complains |
| 01:14:49 | → | Guest47 joins (~Guest47@d24-141-46-200.home.cgocable.net) |
| 01:15:06 | × | Guest47 quits (~Guest47@d24-141-46-200.home.cgocable.net) (Client Quit) |
| 01:16:40 | <aegon> | aand its not overloaded in the lib, i'm done for the day |
| 01:16:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:20:42 | × | V quits (~v@anomalous.eu) (Remote host closed the connection) |
| 01:20:57 | → | V joins (~v@anomalous.eu) |
| 01:24:49 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 01:25:42 | × | V quits (~v@anomalous.eu) (Ping timeout: 272 seconds) |
| 01:26:57 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 01:26:57 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 01:27:00 | allbery_b | is now known as geekosaur |
| 01:28:01 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 01:31:59 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 01:33:51 | → | V joins (~v@anomalous.eu) |
| 01:34:13 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
| 01:40:31 | × | HarveyPwca quits (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving) |
| 01:49:49 | × | aegon quits (~mike@174.127.249.180) (Quit: leaving) |
| 01:50:50 | × | xff0x quits (~xff0x@2001:1a81:52b4:6700:e48a:7334:5a0f:61a4) (Ping timeout: 252 seconds) |
| 01:51:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 01:51:57 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 01:52:03 | → | Guest|59 joins (~Guest|59@075-129-097-116.res.spectrum.com) |
| 01:52:40 | × | Guest|59 quits (~Guest|59@075-129-097-116.res.spectrum.com) (Client Quit) |
| 01:52:46 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 01:52:49 | → | xff0x joins (~xff0x@2001:1a81:52ed:2b00:c854:bd3b:6fb8:2f1e) |
| 01:53:02 | <koz> | What's a good ASCII approximation of the Unicode DOT MINUS, that would be suitable as an infix operator name? |
| 01:55:08 | <monochrom> | Is that U+2238? |
| 01:55:18 | <koz> | monochrom: Yes. |
| 01:55:44 | <monochrom> | I might consider ^- and -^ |
| 01:56:03 | <monochrom> | and *- , -* |
| 01:56:12 | <koz> | ^- is my choice because it looks like a cat ear. |
| 01:56:14 | <koz> | Thanks! |
| 01:56:23 | <monochrom> | ^-^ |
| 01:57:13 | <koz> | Also, what's the fixity and association of - ? |
| 01:57:19 | <koz> | (if anyone knows offhand) |
| 01:59:45 | <monochrom> | infixl 6 |
| 02:00:00 | <monochrom> | You can find out from ghci (and so yahb) by: :info - |
| 02:00:13 | <koz> | Ah, interesting. TIL. |
| 02:00:46 | <monochrom> | If :info doesn't tell, then it's using the default, so you have to memorize the default from the Haskell Report. |
| 02:00:58 | → | fvr joins (uid503686@id-503686.highgate.irccloud.com) |
| 02:01:20 | <monochrom> | the default is infixl 9 |
| 02:15:40 | × | td_ quits (~td@94.134.91.195) (Ping timeout: 272 seconds) |
| 02:15:55 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 02:16:18 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 256 seconds) |
| 02:17:02 | → | td_ joins (~td@94.134.91.196) |
| 02:21:38 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 02:21:57 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 02:24:28 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:24:28 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 02:24:28 | finn_elija | is now known as FinnElija |
| 02:33:17 | → | SincereFox joins (uid337158@user/sincerefox) |
| 02:33:53 | ← | SincereFox parts (uid337158@user/sincerefox) () |
| 02:39:46 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:41:48 | × | mei quits (~mei@user/mei) (Ping timeout: 258 seconds) |
| 02:52:46 | × | alx741 quits (~alx741@186.178.108.32) (Quit: alx741) |
| 03:09:14 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 03:14:27 | → | Codaraxis_ joins (~Codaraxis@user/codaraxis) |
| 03:15:12 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 03:19:00 | × | Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 272 seconds) |
| 03:24:38 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 03:27:30 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 03:28:01 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 03:32:28 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 03:45:09 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 03:47:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:50:22 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 03:51:56 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 04:03:26 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 04:08:01 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 04:19:56 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 04:20:45 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 04:21:21 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 04:23:39 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 04:25:42 | AndrewYu | is now known as liberacom |
| 04:25:49 | liberacom | is now known as AndrewYu |
| 04:26:09 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 04:29:13 | → | dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
| 04:29:53 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:33:37 | × | jespada quits (~jespada@90.254.247.46) (Ping timeout: 248 seconds) |
| 04:35:29 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 04:36:36 | → | jespada joins (~jespada@90.254.247.46) |
| 04:51:09 | × | haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 04:51:23 | → | haykam joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 04:56:37 | → | indiana-bones joins (~indignant@94.140.8.98) |
| 05:05:44 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 05:10:25 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 05:23:28 | × | jao quits (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 268 seconds) |
| 05:24:29 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 05:28:01 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 05:43:33 | × | notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer) |
| 05:44:41 | × | Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 05:44:59 | × | haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 05:45:13 | → | haykam joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 05:45:47 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 05:46:32 | → | MidAutumnMoon joins (~MidAutumn@user/midautumnmoon) |
| 05:46:59 | → | mei joins (~mei@user/mei) |
| 05:47:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 05:47:43 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 258 seconds) |
| 05:55:18 | → | notzmv joins (~zmv@user/notzmv) |
| 05:57:01 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 06:02:37 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:03:09 | → | ikex1 joins (~ash@user/ikex) |
| 06:04:49 | × | ikex quits (~ash@user/ikex) (Ping timeout: 248 seconds) |
| 06:04:49 | ikex1 | is now known as ikex |
| 06:07:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 06:13:42 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 06:17:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:26:07 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:26:25 | → | img joins (~img@user/img) |
| 06:30:21 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 06:30:38 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 06:30:52 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 06:31:02 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
| 06:31:52 | Lord_of_Life_ | is now known as Lord_of_Life |
| 06:34:18 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 06:35:13 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 248 seconds) |
| 06:36:57 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 06:38:41 | → | zaquest joins (~notzaques@5.128.210.178) |
| 06:39:58 | × | Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
| 06:40:21 | → | Xnuk joins (~xnuk@vultr.xnu.kr) |
| 06:43:46 | × | haowenl quits (~Thunderbi@066-215-230-039.res.spectrum.com) (Quit: haowenl) |
| 06:45:38 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:47:03 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 06:47:12 | → | fendor joins (~fendor@178.115.35.166.wireless.dyn.drei.com) |
| 06:47:29 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds) |
| 06:50:36 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 06:52:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 06:58:28 | → | Cale joins (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
| 07:02:09 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:02:36 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 07:07:31 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: WeeChat 3.2) |
| 07:07:41 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 07:17:55 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 07:18:20 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Client Quit) |
| 07:18:31 | → | acidjnk joins (~acidjnk@p200300d0c72b9508a1e806c8914cbd0f.dip0.t-ipconnect.de) |
| 07:20:48 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 07:25:17 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 07:25:22 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Client Quit) |
| 07:26:44 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 07:27:37 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 07:28:33 | → | sedeki joins (~textual@user/sedeki) |
| 07:28:36 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 07:30:55 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 07:35:30 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 07:36:04 | × | fendor quits (~fendor@178.115.35.166.wireless.dyn.drei.com) (Remote host closed the connection) |
| 07:36:47 | × | mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds) |
| 07:36:50 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 07:37:13 | → | fendor joins (~fendor@178.115.35.166.wireless.dyn.drei.com) |
| 07:38:04 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Read error: Connection reset by peer) |
| 07:38:42 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 07:42:44 | × | sedeki quits (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
| 07:43:53 | → | wonko joins (~wjc@62.115.229.50) |
| 07:46:06 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 07:56:08 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:59:24 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 08:05:38 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:05:44 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:05:59 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:08:18 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 08:09:48 | <hololeap> | I have used First and Last (monoids), but I started thinking of a new monoid: data Once a = Once a | TooMany | None |
| 08:10:11 | <hololeap> | where None is the "zero" and TooMany is an error state. does this already exist in some lib? |
| 08:10:47 | <fendor> | can I force a cabal project using build-type custom to use a newer lib:Cabal version than what my ghc version is linked against? |
| 08:12:50 | × | Skyfire quits (~pyon@user/pyon) (Quit: WeeChat 3.2) |
| 08:13:32 | <hololeap> | wait, is the Once type the quintessential monotonic type, like what edwardk has talked about? |
| 08:14:27 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 08:17:41 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 08:17:41 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:44 | allbery_b | is now known as geekosaur |
| 08:21:58 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 08:22:37 | × | hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 08:22:58 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:23:12 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:24:27 | → | Skyfire joins (~pyon@user/pyon) |
| 08:27:55 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 08:29:53 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:33:05 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:38:49 | × | jmorris quits (~jmorris@2001:19f0:5801:170:5400:3ff:fe81:62fe) (Quit: BYE BITCH) |
| 08:38:58 | → | gauss joins (~gauss@139.180.175.160) |
| 08:46:26 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 08:48:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:49:26 | × | Arsen quits (~arsen@managarm/dev/Arsen) (Quit: Quit.) |
| 08:49:47 | → | Arsen joins (~arsen@managarm/dev/Arsen) |
| 08:51:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds) |
| 08:52:53 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 09:00:46 | × | Arsen quits (~arsen@managarm/dev/Arsen) (Quit: Quit.) |
| 09:01:05 | → | Arsen joins (~arsen@managarm/dev/Arsen) |
| 09:01:05 | × | Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer) |
| 09:01:13 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 09:02:41 | <fvr> | fendor: doesn’t adding the new Cabal library in setup-depends work? |
| 09:04:44 | × | Arsen quits (~arsen@managarm/dev/Arsen) (Client Quit) |
| 09:06:12 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 09:07:12 | × | amk quits (~amk@176.61.106.150) (Remote host closed the connection) |
| 09:09:43 | → | amk joins (~amk@176.61.106.150) |
| 09:11:02 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 09:11:06 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 09:15:29 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Ping timeout: 258 seconds) |
| 09:17:15 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:19:51 | → | Arsen joins (~arsen@managarm/dev/Arsen) |
| 09:22:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 09:22:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 09:23:42 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 09:24:46 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 09:25:06 | <fendor> | fvr, don't think so |
| 09:25:42 | <fendor> | https://paste.tomsmeding.com/o4349srP |
| 09:26:00 | <fendor> | well, actually that error is to be expected |
| 09:26:48 | → | Pickchea joins (~private@user/pickchea) |
| 09:28:55 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 09:31:53 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:32:04 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
| 09:32:55 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:33:41 | <fendor> | maybe this is just a cabal-testsuite shenanigan |
| 09:36:33 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 09:38:49 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 09:44:32 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
| 09:49:28 | <tromp> | i posted my Haskell based chess counting project to Hacker News at https://news.ycombinator.com/item?id=28187478 |
| 09:56:02 | <dibblego> | tromp: nice, I think these can be improved at least a little: https://github.com/tromp/ChessPositionRanking/blob/main/src/Legality.hs#L94 |
| 09:57:30 | <tromp> | you mean by case checkingpcs of (_:_:_:_) ... to make it lazier ? |
| 09:57:39 | <dibblego> | yeah, essentially |
| 09:58:03 | <dibblego> | > length [1..100000000] > 2 |
| 09:58:08 | <lambdabot> | True |
| 09:58:24 | <tromp> | i tried to optimize for simplicity over gaining some tiny performance improvement. these lists are never long |
| 09:58:50 | <tromp> | the most number of checking pieces i've seen is 6 |
| 09:59:07 | <tromp> | although in theory up to 16 is possible |
| 10:04:44 | → | keutoi joins (~keutoi@157.47.6.195) |
| 10:07:42 | <fvr> | fendor, I just changed the dependency of Cabal to >= 3.6 in cabal-testsuite and it's compiling |
| 10:07:50 | <fvr> | the intree version of Cabal lib is 3.6 |
| 10:08:38 | <pavonia> | tromp: Can you derive any chess position with that library by providing an integer, and vice versa? |
| 10:08:53 | <fendor> | fvr, the test-case depends on the intree Cabal lib, but when I execute: https://paste.tomsmeding.com/LEtXtyPF |
| 10:09:12 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 10:09:32 | <fendor> | slight correction: https://paste.tomsmeding.com/3h8W2K7o this contains the actual invocation |
| 10:10:08 | <tromp> | actually 16 is not possible due to limits on number of promotions, but 14 is |
| 10:10:47 | <tromp> | @pavonia, any legal chess position can be ranked as an integer |
| 10:10:47 | <lambdabot> | Unknown command, try @list |
| 10:11:01 | <tromp> | pavonia, any legal chess position can be ranked as an integer |
| 10:11:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 10:12:03 | <tromp> | as well as many illegal ones that satisfy certain constraints on promotions and pawn placement |
| 10:12:44 | <pavonia> | Does ranking here imply some meaningful chess moves or just legal ones? |
| 10:14:09 | <fvr> | I get a similar error with the message "constraint from maximum version of Cabal used by Setup.hs requires <3.6", but when I use in tree cabal-install to build, it goes away. but looks like you are already using it |
| 10:14:20 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) |
| 10:15:25 | <tromp> | it has nothing to do with meaningfull chess |
| 10:15:41 | <tromp> | just constraints imposed by legal chess |
| 10:16:03 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 10:17:38 | × | acidjnk quits (~acidjnk@p200300d0c72b9508a1e806c8914cbd0f.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 10:18:43 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:18:48 | → | oldsk00l_ joins (~znc@ec2-18-170-87-228.eu-west-2.compute.amazonaws.com) |
| 10:19:46 | <tromp> | feel free to upvote the HN submission:) |
| 10:21:04 | <pavonia> | tromp: Can you only get completely random results of could you, e.g., say "give me some random position after 10 moves" |
| 10:21:51 | <tromp> | pavonia: it has nothing to do with number of moves. use perft related tools for that |
| 10:22:39 | <pavonia> | Sorry, just trying to understand the purpose of that library |
| 10:22:44 | <tromp> | it's uniformly random in the space of my 8726713169886222032347729969256422370854716254 urpositions |
| 10:23:20 | <tromp> | the main purpose is getting accurate estimates on the number of legal positions |
| 10:23:42 | <tromp> | which we never had before |
| 10:24:31 | <tromp> | perhaps it can also serve as a stress test for chess engines:-) |
| 10:24:46 | <pavonia> | I see |
| 10:25:26 | <tromp> | for haskell users, the Data.Ranking is of independent interest |
| 10:25:36 | → | jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
| 10:25:56 | <tromp> | and this project is like a showcase of its power |
| 10:26:29 | <tromp> | it's very similar to Enumeration.Invertible |
| 10:26:29 | → | mt404 joins (~mt404@cpe1056118081ac-cm1056118081aa.cpe.net.cable.rogers.com) |
| 10:30:39 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 10:33:56 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:35:56 | <fvr> | fendor, I can reproduce your error when I change version of Cabal lib in one of the cabal-testsuite tests , likely an error in cabal-testsuite itself |
| 10:36:58 | → | oxide joins (~lambda@user/oxide) |
| 10:37:09 | <fendor> | fvr, nice, if the error is in the test-case, we can fix it! |
| 10:38:35 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 10:38:41 | × | indiana-bones quits (~indignant@94.140.8.98) (Quit: Leaving) |
| 10:39:59 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 10:41:25 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 10:52:46 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds) |
| 10:57:42 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 11:02:01 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:02:38 | × | hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 11:03:03 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 11:04:37 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 11:06:02 | → | sedeki joins (~textual@user/sedeki) |
| 11:06:40 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 11:07:08 | × | sedeki quits (~textual@user/sedeki) (Client Quit) |
| 11:07:25 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:07:48 | <fvr> | fendor, the test I am testing has it's own cabal.project file, if I add the the intree Cabal to its project file's packages list, the cabal in the test can see it then |
| 11:08:41 | → | AlexNoo_ joins (~AlexNoo@94.233.240.231) |
| 11:09:53 | × | fabfianda quits (~fabfianda@37.183.255.57) (Ping timeout: 248 seconds) |
| 11:10:25 | × | Alex_test quits (~al_test@94.233.240.105) (Ping timeout: 248 seconds) |
| 11:10:37 | → | fabfianda joins (~fabfianda@mob-5-91-124-63.net.vodafone.it) |
| 11:11:17 | × | AlexZenon quits (~alzenon@94.233.240.105) (Ping timeout: 268 seconds) |
| 11:12:22 | × | AlexNoo quits (~AlexNoo@94.233.240.105) (Ping timeout: 256 seconds) |
| 11:16:11 | → | Alex_test joins (~al_test@94.233.240.231) |
| 11:16:11 | → | AlexZenon joins (~alzenon@94.233.240.231) |
| 11:19:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:20:02 | → | ircbrowse_tom joins (~ircbrowse@static.162.49.55.162.clients.your-server.de) |
| 11:20:04 | Server | sets mode +Cnt |
| 11:22:24 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:24:55 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 11:28:00 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 11:28:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:28:41 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 11:28:48 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 11:33:28 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 11:34:55 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 11:36:05 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:39:42 | <arahael> | Been looking at a bug in my haskell server, and started using Debug.trace for the first time. I've discovered that 'https://hackage.haskell.org/package/tar-0.5.1.1/docs/Codec-Archive-Tar.html#v:entryPath' appears to be truncating the filenames1? |
| 11:41:45 | <arahael> | Can someone suggest a better tarfile implementation? |
| 11:42:03 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 11:42:55 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 11:43:12 | <fvr> | arahael, would this work https://github.com/hasufell/tar-bytestring/ |
| 11:43:27 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 11:44:00 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 11:44:13 | <arahael> | fvr: Perhaps! |
| 11:45:42 | → | Morimaruza[m] joins (~morimaruz@2001:470:69fc:105::da03) |
| 11:45:42 | ← | Morimaruza[m] parts (~morimaruz@2001:470:69fc:105::da03) () |
| 11:46:37 | <arahael> | fvr: I think that's a fork originating from https://github.com/haskell/tar/pull/50 maybe. It's such a weird issue, by logging, I notice that there's a pretty short maximum length for the filenames. It's weird. |
| 11:46:55 | <tomsmeding> | arahael: fvr: there's also libarchive, which is recommended over tar-bytestring by tar-bytestring's author... https://github.com/hasufell/hpath/pull/41#issuecomment-896910037 |
| 11:47:04 | <tomsmeding> | though tar-bytestring is far more similar to 'tar' |
| 11:47:12 | <tomsmeding> | if you want an easy switch |
| 11:47:38 | × | oldsk00l quits (~znc@ec2-3-127-148-248.eu-central-1.compute.amazonaws.com) (Remote host closed the connection) |
| 11:47:59 | <arahael> | tomsmeding: I'm trying the easy switch, but I think I should swap to libarchive regardless but not today (It's nearly 10pm afterall) |
| 11:48:24 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 11:48:43 | <arahael> | Hmm, tar-bytestring doesn't seem to build in cabal. |
| 11:48:50 | <maerwald[m]> | tar-bytestring is still maintained, but the idea is to ditch it completely and rewrite it in streamly |
| 11:48:52 | × | machinedgod quits (~machinedg@24.105.81.50) (Read error: Connection reset by peer) |
| 11:48:53 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 11:49:06 | <fvr> | tomsmeding: cool didn't know that |
| 11:49:18 | <maerwald[m]> | libarchive also has better memory consumption |
| 11:49:20 | <arahael> | (Due to something an error with building streamly-posix-0.1.0.1 ) |
| 11:49:41 | <maerwald[m]> | tar currently forces every file into memory before unpacking |
| 11:49:41 | <tomsmeding> | arahael: what's the error? |
| 11:49:58 | <arahael> | Could not find module `Streamly.Internal.Data.Unfold.Types' |
| 11:50:00 | <maerwald[m]> | So your max memory consumption depends on the biggest file in the archive |
| 11:50:42 | <tomsmeding> | use streampy-posix-0.1.0.2 https://github.com/hasufell/streamly-posix/pull/1 |
| 11:51:10 | <arahael> | tomsmeding: I'm not the one using streampy, though. It's an indirect dependency. |
| 11:51:32 | <maerwald[m]> | That sounds like a version bound is off |
| 11:51:32 | <fvr> | arahael: you can just add it in your extra-deps if stack.yaml or cabal.project |
| 11:51:45 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:51:48 | <arahael> | This is just a regular old cabal. |
| 11:51:48 | <maerwald[m]> | That shouldn't be needed |
| 11:52:23 | <arahael> | I think what I'll do is just move to libarchive next chance I have to work on this. |
| 11:52:37 | <maerwald[m]> | Or share full build log |
| 11:52:54 | <maerwald[m]> | Otherwise this is a guessing game |
| 11:52:59 | <arahael> | maerwald[m]: Yeah, but then I have to commit to staying here for a bit longer whilst other people invest in helping me. :) |
| 11:53:09 | <tomsmeding> | arahael: try a cabal update; the indirect dependency is in hpath-directory. The latest version of that (0.14.2.1) works, but 0.14.2.0 doesn't; tar-bytestring has a ==0.14.* constraint on hpath-directory |
| 11:53:53 | <arahael> | tomsmeding: Oh, that's intriguing. |
| 11:53:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 11:54:12 | <tomsmeding> | so you just need cabal to give you the latest hpath-directory (which is very recent, like as of last week) |
| 11:54:19 | <arahael> | Oh, wow, that is recent. |
| 11:54:49 | <tomsmeding> | (it's due to an incompatibility with streamly 0.8 that I found, fixed, and sent a PR for last week :p ) |
| 11:55:26 | <arahael> | Oh, awesome! :D |
| 11:55:49 | <arahael> | It's currently rebuilding the world. |
| 11:56:04 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 11:56:30 | <tomsmeding> | always fun |
| 11:56:32 | <arahael> | But I think I should move to libarchive, very not impressed with tar truncating my filenames. |
| 11:56:45 | <arahael> | (But won't be today. And probably won't be tomorrow either!) |
| 11:59:55 | <arahael> | Ok, it now dies when trying to compile hpath-directory-0.14.2.1 - but I should get to bed. |
| 12:00:08 | <arahael> | tomsmeding, fvr: Thanks for your help and recommendations! |
| 12:00:11 | <maerwald[m]> | Oh dear |
| 12:00:33 | <maerwald[m]> | Build logs |
| 12:00:42 | tomsmeding | chants "build logs" |
| 12:00:51 | <maerwald[m]> | "dies" and "fails" etc aren't useful |
| 12:01:14 | <arahael> | Ok, one moment... |
| 12:01:24 | <tomsmeding> | thou shalt not sleep |
| 12:03:29 | <fvr> | using nix for haskell dependencies for a few months now and I forgot cabal update exists lol |
| 12:04:05 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds) |
| 12:04:12 | <maerwald[m]> | You mean a freeze file? |
| 12:05:35 | <arahael> | https://gist.github.com/arafangion/a5d8606f798c3319cf3fab8495f73d80 |
| 12:05:51 | <arahael> | Incidentially, I am using nix, but not debugging further tonight I'm afraid. |
| 12:05:59 | <arahael> | (And it's just cabal in a nix-shell) |
| 12:06:33 | <arahael> | maerwald[m], tomsmeding: Is that log what you need, though? |
| 12:06:46 | <maerwald[m]> | MonadFail |
| 12:06:58 | <maerwald[m]> | Update your ghc lol |
| 12:07:04 | <tomsmeding> | lol |
| 12:07:15 | <tomsmeding> | did 8.6.5 have no MonadFail yet? |
| 12:07:23 | <tomsmeding> | but yeah, in general, update your ghc |
| 12:07:41 | <tomsmeding> | arahael: and yes that's the log :) |
| 12:07:45 | <arahael> | tomsmeding: Awesome. :) |
| 12:08:42 | <arahael> | maerwald[m]: What can I read to learn about the MonadFail thing? Will put it in a browser tab for now... Is this the main page for it? https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-fail |
| 12:09:01 | <arahael> | tomsmeding: I'll update ghc later in the week! |
| 12:10:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 258 seconds) |
| 12:10:20 | <tomsmeding> | arahael: MonadFail exists and works as it is supposed to since ghc 8.8 |
| 12:10:31 | <tomsmeding> | (as seen in the Transitional Strategy list on the page you linked) |
| 12:10:33 | <maerwald[m]> | MonadFail was about breaking everyones code and introduce a lot of ifdefs around imports. It achieved thst goal |
| 12:10:52 | <tomsmeding> | :D |
| 12:11:20 | <tomsmeding> | it was also about fixing a design imperfection |
| 12:11:26 | <tomsmeding> | but that's secondary |
| 12:11:27 | <arahael> | Heh, cool. So next chance i get into this, I should first update ghc to at _least_ 8.8 (in practice: The latest I have on nixos), and then read up on this MonadFail thing just for background info. |
| 12:11:34 | <arahael> | Thanks. :) |
| 12:11:36 | <tomsmeding> | sounds good |
| 12:11:41 | <tomsmeding> | now you can sleep :) |
| 12:11:42 | <maerwald[m]> | 8.10.6 should be fine |
| 12:12:27 | <arahael> | Awesome :) |
| 12:12:31 | <arahael> | THanks for that! |
| 12:13:36 | <fvr> | I think it should also be a fix in the hpath-directory unless supporting 8.6.5 is not a goal |
| 12:13:54 | <arahael> | fvr: I have no reason to stick with 8.6.5. |
| 12:14:22 | <fvr> | I meant non-goal for the library |
| 12:14:49 | <maerwald[m]> | fvr: ya, PR? |
| 12:15:02 | <tomsmeding> | fvr: the real fix, if possible, would be that hpath-directory has (streamly < 0.8 && streamly-posix == 0.14.*) || (streamly >= 0.8 && streamly-posix >= 0.14.2.1) |
| 12:15:03 | <maerwald[m]> | I'm lazy on my bed |
| 12:15:05 | <tomsmeding> | not sure if cabal can do that |
| 12:15:11 | <maerwald[m]> | Can't fix all of it |
| 12:15:30 | <fvr> | maerwald: sure, though I hate to download a old ghc just to test it lol |
| 12:16:04 | <maerwald[m]> | tomsmeding: we can also msrk 0.14.2.0 as broken |
| 12:16:23 | <maerwald[m]> | But that won't fix it for freeze files etc |
| 12:16:24 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 12:16:46 | <maerwald[m]> | fvr: ghcup install gch 8.6.5 |
| 12:16:52 | <tomsmeding> | maerwald[m]: that wouldn't fix anything, right? hpath-directory has 0.14.* on streamly-posix so cabal could just pixk 0.14.1 |
| 12:17:03 | <tomsmeding> | s/pixk/pick/ |
| 12:17:26 | <maerwald[m]> | Can revbump tar-bytestring too |
| 12:18:09 | <tomsmeding> | so that people can depend on the latest tar-bytestring and be cool? |
| 12:19:03 | <maerwald[m]> | I'm still not sure how that solver error happened |
| 12:20:09 | <maerwald[m]> | streamly-posix-0.1.0.1 depends on streamly (==0.7.*) |
| 12:20:44 | <maerwald[m]> | streamly-posix-0.1.0.2 depends on streamly (>=0.7 && <0.9) |
| 12:20:50 | <tomsmeding> | ooh you revised 0.1.0.1 |
| 12:20:55 | <tomsmeding> | probably someone didn't cabal update? |
| 12:20:57 | <maerwald[m]> | Yes |
| 12:21:00 | <tomsmeding> | and didn't get the revision |
| 12:21:15 | <maerwald[m]> | Revisions should be pulled in without cabal update, no? |
| 12:21:24 | AlexNoo_ | is now known as AlexNoo |
| 12:21:39 | <tomsmeding> | I wouldn't know, but aren't those just modifications of the cabal file? |
| 12:21:46 | <maerwald[m]> | Yes |
| 12:21:56 | <tomsmeding> | which get downloaded in bulk when doing 'cabal update' |
| 12:22:22 | <maerwald[m]> | Maybe there's nothing to fix after all |
| 12:22:36 | maerwald[m] | goes back to being lazy |
| 12:23:03 | <tomsmeding> | with that revision you may be right that indeed, a cabal update will always fix this particular issue for tar-bytestring users |
| 12:23:44 | <arahael> | i did do a cabal update (have gone to bed though so no laptop now) |
| 12:24:02 | <tomsmeding> | which triggered a rebuild of the world, right? |
| 12:24:39 | <arahael> | yeah it downloaded and built everything thr project depended on until it got that error. |
| 12:25:06 | <arahael> | then i re-ran the build to get you those logs as i didnt keep the previous run |
| 12:25:12 | <tomsmeding> | maerwald[m] was talking about the Streamly.Internal.Data.Unfold.Types error you got before |
| 12:25:25 | <tomsmeding> | the MonadFail error is something different and was related to your ghc version |
| 12:25:29 | <arahael> | ah! yeah, cabal update fixed that one |
| 12:25:34 | <tomsmeding> | cool :) |
| 12:26:46 | <arahael> | i guess that confirms the "nothing to fix" for that one :) |
| 12:31:02 | × | mt404 quits (~mt404@cpe1056118081ac-cm1056118081aa.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 12:32:20 | → | mt404 joins (~mt404@cpe1056118081ac-cm1056118081aa.cpe.net.cable.rogers.com) |
| 12:35:28 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:39:39 | × | _\_ quits (~flick@2001:19f0:5:14c2:5400:2ff:fee0:a42c) (Quit: ___) |
| 12:39:48 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 12:40:13 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 12:40:43 | → | dudek joins (~dudek@185.150.236.112) |
| 12:41:20 | × | sander quits (~sander@user/sander) (Ping timeout: 256 seconds) |
| 12:42:33 | → | _\_ joins (~o@2001:19f0:5:14c2:5400:2ff:fee0:a42c) |
| 12:44:36 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 12:45:39 | → | sander joins (~sander@user/sander) |
| 12:46:56 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:47:27 | × | haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 12:47:40 | → | haykam joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 12:48:19 | × | CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in) |
| 12:49:34 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 12:49:58 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 12:50:47 | × | _\_ quits (~o@2001:19f0:5:14c2:5400:2ff:fee0:a42c) (Changing host) |
| 12:50:47 | → | _\_ joins (~o@user/ding) |
| 12:51:26 | <albet70> | ContT r IO a, what it's used for? |
| 12:51:45 | <albet70> | what is a CPS |
| 12:53:29 | → | thyriaen joins (~thyriaen@dynamic-089-012-237-250.89.12.pool.telefonica.de) |
| 12:54:39 | <hpc> | at a very high level, it's laying out your code so the notion of "everything my program does after this point" is a function that you can manipulate |
| 12:55:14 | <thyriaen> | howdy, friends - i have a list of numbers, and i am trying to find a subset of them for which the sum is an exact number - so i generate the powerset of it and then sum them all up and filter accordingly - i found it but now i would like to know which subset was the solution - how do i do that ? |
| 12:55:14 | <hpc> | that "everything my program does after this point" doesn't have to be a single function either |
| 12:55:17 | <hpc> | maybe it's two functions |
| 12:55:49 | → | schuelermine joins (~anselmsch@user/schuelermine) |
| 12:55:55 | <hpc> | imagine you're writing a parser - in CPS style maybe you have two continuations, one for "i consumed input and found what i expected" and one for "there was some sort of a problem" |
| 12:56:13 | <thyriaen> | this is my current code: https://paste.tomsmeding.com/umLlKbAf |
| 12:56:44 | → | mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
| 12:56:56 | <tomsmeding> | thyriaen: what about Data.List.find |
| 12:57:04 | <tomsmeding> | note also that sumer = sum ;) |
| 12:57:05 | <hpc> | then a parser like (char x) is written as "do the low-level operation that consumes input - if the character == x, call the success continuation, otherwise call the fail continuation" |
| 12:57:24 | <thyriaen> | let me look up data.list.find |
| 12:57:31 | <hpc> | some implementation details later and (>>=) to compose it, and you have parsec |
| 12:57:45 | <hpc> | https://hackage.haskell.org/package/parsec-3.1.14.0/docs/src/Text.Parsec.Prim.html#ParsecT |
| 12:58:01 | <hpc> | ContT is the most general form of this sort of thing |
| 12:58:40 | <thyriaen> | tomsmeding, what is a foldable t ? |
| 12:58:55 | <hpc> | albet70: hopefully that made sense? |
| 12:59:06 | <albet70> | yes |
| 12:59:12 | <thyriaen> | tomsmeding, i don't think i understand find :: Foldable t => (a -> Bool) -> t a -> Maybe a |
| 12:59:15 | <tomsmeding> | thyriaen: think of that type signature as saying "(a -> Bool) -> [a] -> Maybe a" |
| 12:59:27 | <tomsmeding> | [] is one example of a Foldable |
| 12:59:33 | <thyriaen> | okay |
| 13:00:04 | × | schuelermine quits (~anselmsch@user/schuelermine) (Client Quit) |
| 13:00:06 | <fvr> | Is there an opposite command to `cabal install --lib` |
| 13:00:10 | <tomsmeding> | hm you don't even need find |
| 13:00:32 | <tomsmeding> | thyriaen: the more important thing to do is to put the summing in the filter |
| 13:00:51 | <tomsmeding> | what you now have is: filter (== 271.36) (map sum (powerset list)) |
| 13:01:01 | <thyriaen> | yes |
| 13:01:02 | → | alx741 joins (~alx741@186.178.108.32) |
| 13:01:06 | <tomsmeding> | what about: filter (\l -> sum l == 271.36) (powerset list) |
| 13:01:08 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 13:01:19 | <thyriaen> | what is \l ? |
| 13:01:24 | <thyriaen> | lambda ? |
| 13:01:26 | <tomsmeding> | yeah |
| 13:01:41 | <tomsmeding> | % f = \x -> x + 1 |
| 13:01:42 | <yahb> | tomsmeding: |
| 13:01:44 | <albet70> | hpc, in the computation chain of >>=, how the ContT can jump back and why? |
| 13:01:45 | <tomsmeding> | % f 10 |
| 13:01:45 | <yahb> | tomsmeding: 11 |
| 13:02:33 | <tomsmeding> | thyriaen: (== 271.36) is the same as (\x -> x == 271.36) |
| 13:02:35 | <thyriaen> | tomsmeding, i understand now it makes sense |
| 13:02:46 | <thyriaen> | but one question remains |
| 13:03:05 | <thyriaen> | find does not really change anything compared to filter, does it ? |
| 13:03:27 | <tomsmeding> | nah find just returns the first match, if one exists, while filter returns all matches |
| 13:03:31 | <tomsmeding> | I was confused for a moment |
| 13:04:30 | <thyriaen> | tomsmeding, yes - thanks so much ! it worked |
| 13:04:47 | <thyriaen> | dang it i love haskell |
| 13:05:04 | <tomsmeding> | :) |
| 13:06:05 | <albet70> | like Maybe Either can break computation chain of >>=, Read can pass input in it, Writer can append log in it, State can do both, and Cont can jump back to somewhere in it, why Cont can do this? |
| 13:06:48 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 272 seconds) |
| 13:07:07 | <albet70> | and Traverse can do early exit |
| 13:25:16 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 13:27:11 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 13:28:29 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 258 seconds) |
| 13:28:54 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 13:29:52 | × | mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan) |
| 13:30:39 | → | Pickchea joins (~private@user/pickchea) |
| 13:30:54 | → | frosky joins (~froskyarr@50.7.59.207) |
| 13:34:49 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 13:35:25 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Remote host closed the connection) |
| 13:36:09 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 13:38:03 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds) |
| 13:40:09 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 13:40:36 | → | hendursaga joins (~weechat@user/hendursaga) |
| 13:40:45 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 258 seconds) |
| 13:41:08 | × | fendor quits (~fendor@178.115.35.166.wireless.dyn.drei.com) (Remote host closed the connection) |
| 13:45:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:46:43 | → | mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
| 13:47:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 13:50:30 | → | jgeerds joins (~jgeerds@55d45555.access.ecotel.net) |
| 13:51:29 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 248 seconds) |
| 13:54:50 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 13:57:30 | → | fendor joins (~fendor@178.115.35.166.wireless.dyn.drei.com) |
| 14:01:14 | × | xff0x quits (~xff0x@2001:1a81:52ed:2b00:c854:bd3b:6fb8:2f1e) (Ping timeout: 252 seconds) |
| 14:04:20 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 14:13:34 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 14:16:01 | × | Neuromancer quits (~Neuromanc@user/neuromancer) (Ping timeout: 248 seconds) |
| 14:22:08 | × | jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 252 seconds) |
| 14:23:29 | → | xff0x joins (~xff0x@2001:1a81:52ed:2b00:c854:bd3b:6fb8:2f1e) |
| 14:33:51 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:a0f9:2ba0:ff0:86b4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:36:56 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:40:02 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 14:41:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 14:43:02 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 14:43:54 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 14:46:25 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:46:43 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 14:48:33 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 14:52:44 | × | keutoi quits (~keutoi@157.47.6.195) (Quit: leaving) |
| 14:54:52 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 14:57:20 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 14:58:16 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 14:59:10 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 15:00:47 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 15:04:20 | <tomsmeding> | maerwald[m]: HLS seems to just work for 8.10.6 if you manually compile it? like, literally 'cabal build'? |
| 15:04:36 | tomsmeding | surprised pikachu face |
| 15:07:43 | → | CnnibisIndica joins (~herb@user/mesaboogie) |
| 15:08:53 | CnnibisIndica | is now known as CannabisIndica |
| 15:09:14 | → | sam93 joins (~sam@117.210.134.230) |
| 15:10:01 | → | markpythonicbitc joins (~markpytho@50.228.44.6) |
| 15:11:55 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:12:11 | × | mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan) |
| 15:13:10 | × | sam93 quits (~sam@117.210.134.230) (Client Quit) |
| 15:13:58 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 15:15:20 | × | alx741 quits (~alx741@186.178.108.32) (Quit: alx741) |
| 15:15:45 | × | fabfianda quits (~fabfianda@mob-5-91-124-63.net.vodafone.it) (Ping timeout: 248 seconds) |
| 15:16:06 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 15:16:58 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 258 seconds) |
| 15:17:21 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 15:21:42 | → | mikoto-chan joins (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
| 15:23:09 | <maerwald> | ya |
| 15:24:40 | <tomsmeding> | had already rebuilt the world before realising that there was no HLS release for 8.10.6 |
| 15:24:47 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 15:24:57 | <tomsmeding> | then just tried yolo'ing the build and it worked :p |
| 15:28:27 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 15:29:58 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 15:30:29 | → | benin036932 joins (~benin@183.82.205.178) |
| 15:31:08 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 15:31:12 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 15:32:23 | × | mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan) |
| 15:34:11 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
| 15:34:24 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 15:34:25 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 15:34:41 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 15:34:55 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 15:35:02 | → | alx741 joins (~alx741@186.178.108.32) |
| 15:35:13 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 15:39:12 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 258 seconds) |
| 15:39:42 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Ping timeout: 245 seconds) |
| 15:40:26 | → | fabfianda joins (~fabfianda@37.183.255.57) |
| 15:44:38 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 15:44:44 | × | fabfianda quits (~fabfianda@37.183.255.57) (Read error: Connection reset by peer) |
| 15:45:21 | → | fabfianda joins (~fabfianda@37.183.255.57) |
| 15:46:30 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) |
| 15:48:27 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:51:42 | → | hoknamahn joins (~hoknamahn@cpc158487-croy28-2-0-cust310.19-2.cable.virginm.net) |
| 15:53:18 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 15:59:20 | × | hoknamahn quits (~hoknamahn@cpc158487-croy28-2-0-cust310.19-2.cable.virginm.net) (Quit: Konversation terminated!) |
| 15:59:41 | → | hoknamahn joins (~hoknamahn@cpc158487-croy28-2-0-cust310.19-2.cable.virginm.net) |
| 16:01:10 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 16:01:15 | <maerwald> | every time I use doctest I regret it |
| 16:01:41 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 16:03:26 | → | econo joins (uid147250@user/econo) |
| 16:06:01 | <fvr> | There is cabal-docspec |
| 16:06:02 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 16:06:07 | <fvr> | I have never used it though |
| 16:07:13 | <hoknamahn> | hi guys, I have a FFI related question. There is a C function like void c_test(int **iptr); I want to call this function from Haskell passing to it an address of Ptr CInt (in C it would be a call c_test(&iptr)). The question is how do I get an address? |
| 16:07:13 | <maerwald> | yeah, looking at the documentation I don't even know what it does |
| 16:07:48 | × | kritzefitz quits (~kritzefit@picard.host.weltraumschlangen.de) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 16:08:03 | → | kritzefitz joins (~kritzefit@picard.host.weltraumschlangen.de) |
| 16:09:37 | <fvr> | Streamly moved from doctest to cabal-docspec I forgot why |
| 16:09:51 | <maerwald> | cabal-doctest you mean |
| 16:09:57 | <maerwald> | that's marked deprecated on hackage |
| 16:10:05 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 16:10:06 | <xsperry> | hoknamahn, allocate Ptr (Ptr Int), pass it to c_test, then use one of the peek* functions to dereference it |
| 16:10:30 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 16:11:20 | <fvr> | No cabal-docspec |
| 16:11:55 | <hoknamahn> | xsperry, should I use alloca for that? |
| 16:12:36 | <fvr> | maerwald: https://github.com/phadej/cabal-extras/blob/master/cabal-docspec/MANUAL.md |
| 16:12:47 | <maerwald> | it's a mess |
| 16:12:54 | <maerwald> | doctest has really bad ux |
| 16:13:47 | <xsperry> | hoknamahn, one of the alloca* functions yes. what does the function do? |
| 16:13:53 | <xsperry> | c_test |
| 16:14:15 | → | wonko joins (~wjc@62.115.229.50) |
| 16:14:18 | <hoknamahn> | basically it will allocate an array of strings and pass it back to haskell |
| 16:14:37 | <hoknamahn> | at the moment i'm playing with FFI to figure out how to do it |
| 16:14:44 | <xsperry> | an array of strings, but it accepts int **? |
| 16:15:15 | <tomsmeding> | hoknamahn: in haskell, you'll have to do the equivalent of the C code: int **ptr = malloc(sizeof(int*)); c_test(ptr); do_something_with(ptr); free(ptr); |
| 16:15:22 | <hoknamahn> | i'm testing. at the moment it will allocate just 1 int in memory and return a pointer to it |
| 16:15:27 | <tomsmeding> | where the malloc and free are both done using alloca |
| 16:15:33 | <xsperry> | anyway, if the function modifies int * refered ot by int **, then just alloca will do |
| 16:17:22 | <hoknamahn> | what i need is C function allocating memory and returning a pointer to it. haskell should consume that memory |
| 16:18:21 | × | kritzefitz quits (~kritzefit@picard.host.weltraumschlangen.de) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
| 16:18:29 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:18:59 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 16:19:00 | → | kritzefitz joins (~kritzefit@picard.host.weltraumschlangen.de) |
| 16:21:47 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 16:21:48 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 16:21:51 | allbery_b | is now known as geekosaur |
| 16:22:31 | <fvr> | hoknamahn: create a Haskell function to call your function, look at mallocBytes in base |
| 16:22:33 | <tomsmeding> | hoknamahn: think about what your code would look like in C, but without using & -- instead, you allocate some memory using malloc/free. Then convert all the malloc/free pairs in your hypothetical implementation to haskell's alloca |
| 16:26:59 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 16:28:11 | → | Pickchea joins (~private@user/pickchea) |
| 16:30:47 | <hoknamahn> | tomsmeding: thanks, i think i see what you mean. |
| 16:32:34 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 16:32:40 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 16:33:05 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 16:33:30 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:33:31 | × | haowenl quits (~Thunderbi@066-215-230-039.res.spectrum.com) (Client Quit) |
| 16:34:15 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:38:16 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:39:20 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 16:42:41 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 16:45:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:48:14 | → | kuribas joins (~user@ptr-25vy0iaezbxroyr1ffb.18120a2.ip6.access.telenet.be) |
| 16:52:36 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:54:09 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds) |
| 16:56:16 | × | Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
| 16:56:24 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 16:56:32 | → | Xnuk joins (~xnuk@vultr.xnu.kr) |
| 16:57:54 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:8577:297f:c78a:d1b2) |
| 17:01:10 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 17:03:23 | × | jespada quits (~jespada@90.254.247.46) (Ping timeout: 268 seconds) |
| 17:03:51 | → | shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
| 17:04:38 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds) |
| 17:05:48 | → | jespada joins (~jespada@90.254.247.46) |
| 17:06:15 | → | tripoli joins (~tripoli@69.233.98.238) |
| 17:06:59 | × | pgib quits (~textual@173.38.117.66) (Ping timeout: 258 seconds) |
| 17:07:05 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 17:07:34 | → | __monty__ joins (~toonn@user/toonn) |
| 17:07:44 | × | robertm quits (robertm@rojoma.com) (Quit: WeeChat 2.3) |
| 17:09:44 | → | robertm joins (robertm@rojoma.com) |
| 17:11:35 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 17:12:20 | × | haowenl quits (~Thunderbi@066-215-230-039.res.spectrum.com) (Client Quit) |
| 17:16:16 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
| 17:17:11 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 17:19:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 17:22:30 | → | vysn joins (~vysn@user/vysn) |
| 17:23:35 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 17:25:00 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 17:27:09 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 17:28:33 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 17:30:20 | <energizer> | anybody know what "structural function types" refers to? |
| 17:30:59 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 17:31:14 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 17:32:47 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:789f:7a:b395:5977) |
| 17:33:17 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 17:33:46 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 17:33:48 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 17:36:46 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 17:37:16 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 17:37:38 | → | vysn joins (~vysn@user/vysn) |
| 17:38:02 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 245 seconds) |
| 17:40:56 | <hololeap> | energizer: context? |
| 17:41:11 | <energizer> | hololeap: https://github.com/thautwarm/HigherKindedPolymorphisms.jl |
| 17:41:21 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Ping timeout: 248 seconds) |
| 17:42:48 | <hololeap> | *shrugs* some julia thing? |
| 17:45:14 | → | Pickchea joins (~private@user/pickchea) |
| 17:45:28 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:789f:7a:b395:5977) () |
| 17:45:56 | <cdsmith> | Hmm, in C++ I can write a template that can be instantiated with any type, but works differently if the argument type is showable. Any hack to do the same for a polymorphic method in Haskell? Is that something a rewrite rule could do? |
| 17:47:35 | <opqdonut> | rewrite rules are meant to be used for semantics-preserving optimizations, so no |
| 17:47:39 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 17:47:55 | <cdsmith> | I'm not so concerned with what they are meant for. I'm being evil here... |
| 17:48:02 | → | vysn joins (~vysn@user/vysn) |
| 17:48:43 | <opqdonut> | I wonder if you could do something like use OverlappingInstances and have a something like `instance MyThing a where stringify x = "<unshowable>"; instance Show a => MyThing a where stringify x = show x` |
| 17:49:02 | <opqdonut> | probably not since those instances are equal in terms of instance resolution, the class contexts don't get used at that point... |
| 17:49:06 | <cdsmith> | This is an "optimization" in spirit... it's just an optimization for the programmer by seeing better test failure messages. |
| 17:49:25 | <cdsmith> | Yeah, I don't think the class approach works. |
| 17:50:17 | <hololeap> | wouldn't it work if you swapped the order of those two instances? |
| 17:50:19 | <opqdonut> | a google search leads me here via stackoverflow: https://github.com/mikeizbicki/ifcxt |
| 17:50:42 | <opqdonut> | so a ConstraintKinds trick |
| 17:54:37 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: Weechat 3.2) |
| 17:55:31 | → | jao joins (jao@gateway/vpn/protonvpn/jao) |
| 18:01:43 | <tomsmeding> | right, so make an instance (IfCtx (Show a)) for all 'a' that have a Show instance |
| 18:01:51 | <tomsmeding> | that's... verbose |
| 18:02:22 | <tomsmeding> | you don't even need ConstraintKinds to apply this trick |
| 18:02:38 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 18:03:17 | <tomsmeding> | opqdonut's MyThing could work just fine; indeed, if you enumerate all showable types and make an OVERLAPS instance for all of them, and then add an OVERLAPPABLE default one that does the non-Show thing, then it would work fine |
| 18:03:30 | → | Neuromancer joins (~Neuromanc@user/neuromancer) |
| 18:04:03 | <tomsmeding> | cdsmith: can the method you're talking about be a template haskell splice itself? |
| 18:04:33 | <opqdonut> | yeah that's a good idea |
| 18:04:36 | <tomsmeding> | if so, then I believe you can do this with TH by querying in-scope instances at usage site |
| 18:04:40 | <opqdonut> | yeah |
| 18:05:28 | <opqdonut> | that might work differently in polymorphic contexts though |
| 18:05:40 | <tomsmeding> | true |
| 18:06:00 | <tomsmeding> | but, like, in polymorphic contexts where will you magick up a type class dictionary from at runtime |
| 18:06:31 | <tomsmeding> | someone has asked about this before, and then and now I immediatealy think of Typeable |
| 18:06:54 | <tomsmeding> | but I believe the executable doesn't have any embedded information of the classes that a particular Typeable type implements |
| 18:10:05 | <tomsmeding> | oooooh, make a list of known (Show a, Typeable a) types using templatehaskell, and embed a list in the application containing a list of Thingy, where data Thingy = forall a. (Show a, Typeable a) => Thingy (TypeRep a) |
| 18:10:08 | × | markpythonicbitc quits (~markpytho@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:10:17 | <tomsmeding> | where that TypeRep comes from Type.Reflection, not Data.Typeable |
| 18:10:19 | <hololeap> | there's also the solution of making a Showable newtype and then: instance {-# OVERLAPPING #-} Show a => MyThing (Showable a) |
| 18:10:59 | <tomsmeding> | and then inside of the method in question, loop over that list comparing all the TypeReps, and if there's a match you get the Show dictionary from there |
| 18:11:02 | <hololeap> | then you don't get the duplicate instance declarations error |
| 18:11:25 | <opqdonut> | hololeap: that's kinda what quickcheck does, except it has a newtype for unshowable things |
| 18:12:07 | <hololeap> | there's also all this: https://wiki.haskell.org/GHC/AdvancedOverlap |
| 18:12:09 | <opqdonut> | https://hackage.haskell.org/package/QuickCheck-2.14.2/docs/Test-QuickCheck-Modifiers.html#t:Blind |
| 18:12:15 | <tomsmeding> | hololeap: how would that allow you do determine whether a particular type 'a' implements Show at runtime? |
| 18:13:08 | <opqdonut> | wow that's a nice wiki page |
| 18:13:19 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:14:38 | <hololeap> | tomsmeding: why would it need to be known at runtime? wouldn't the compiler catch it first? |
| 18:14:42 | <tomsmeding> | oh that's smart; you still need the instance enumeration but then you're done and it's all nice haskell |
| 18:15:30 | <tomsmeding> | hololeap: the point (I think) is that we have a method 'foo :: a -> Something' that wants to call foo1 when 'a' is Show, and foo2 otherwise |
| 18:15:37 | <tomsmeding> | how would you implement foo using your thing? |
| 18:16:27 | → | hseg joins (~gesh@IGLD-84-228-238-79.inter.net.il) |
| 18:16:48 | <tomsmeding> | I used the word "runtime" because you might still want this to work if foo is used in a polymorphic context, but then later indirectly gets applied to a concrete, Showable type |
| 18:17:22 | <tomsmeding> | the wiki version actually wouldn't compile in that situation, I think, because in that polymorphic context, no ShowPred instance could be chosen |
| 18:17:22 | <hololeap> | idk, this is what I was playing around with, and it seems to work fine when I load it in GHCi: https://dpaste.com/DMPY66STS |
| 18:18:14 | <tomsmeding> | hololeap: would you need to manually wrap the argument in Showable as the caller of foo, with your thing? |
| 18:18:24 | <hololeap> | yeah |
| 18:18:32 | <tomsmeding> | right, and that's precisely the thing that I was trying to avoid |
| 18:18:45 | <hseg> | just ran into the "would be able to make an instance for this class if I could add constraints to some methods" annoyance again. are there any proposals being considered that would make it easier to refactor classes so they could support such instances? |
| 18:18:58 | <tomsmeding> | because if you can manually type Showable, then you can also manually type fooShow instead of foo |
| 18:19:09 | <hseg> | (classic example: FAM for map-like types) |
| 18:19:27 | <hololeap> | tomsmeding: fair point |
| 18:19:31 | <hseg> | (in this case, it's a Witherable instance for map-like types) |
| 18:20:14 | <tomsmeding> | hseg: there is mono-traversable but that's probably not what you're looking for |
| 18:20:24 | <tomsmeding> | since you come asking |
| 18:21:04 | <tomsmeding> | that exposes non-type-changing methods like fmap :: (a -> a) -> f a -> f a |
| 18:21:10 | <hseg> | no, am asking for the general "will writing classes to support such restrictions become easy enough that I can reasonably push library authors for it" |
| 18:21:11 | <tomsmeding> | (s/fmap/omap/) |
| 18:21:38 | <tomsmeding> | ah, then no idea |
| 18:23:34 | × | Neuromancer quits (~Neuromanc@user/neuromancer) (Ping timeout: 268 seconds) |
| 18:24:02 | <hseg> | like, you could unify (Mono)Functor by defining a Functor (-->) (~~>) f where { map :: (a --> b) -> (f a ~~> f b) }, and then instantiate (-->), (~~>) as constrained arrow types |
| 18:24:58 | <tomsmeding> | where (-->) and (~~>) implement some class so that they can be called as functions by the implementation of 'map'? |
| 18:25:07 | <hseg> | so for MonoFunctor, pass for (-->) something like data MonoidC a b where arrMonoid :: a -> a -> MonoidC a a |
| 18:25:12 | <hseg> | y |
| 18:25:14 | <tomsmeding> | (well, only -->) |
| 18:25:29 | <hseg> | well, depending on your usecase |
| 18:25:30 | × | sagax quits (~sagax@213.138.71.146) (Ping timeout: 240 seconds) |
| 18:25:44 | <hseg> | like, you could subsume Witherable into Functor with this |
| 18:25:54 | <hseg> | by setting ~~> ~ Kleisli Maybe |
| 18:26:56 | <hseg> | ofc, at a certain point too much overloading is unclear -- a key point in good design is separating what must be separated, not just unifying what should be unified |
| 18:27:11 | <tomsmeding> | without additional language support, this would make calling 'map' quite a bit more cumbersome for the non-(->) cases |
| 18:28:36 | <hseg> | yeah. might want some specializations/coercions to help use this |
| 18:29:04 | <hseg> | though ig kmett's hask is aiming to go for this |
| 18:29:05 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 18:29:14 | <hseg> | *this design |
| 18:29:21 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 248 seconds) |
| 18:29:40 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:29:42 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 18:30:05 | <hseg> | still leaves the question open of whether some parts design can/should be pushed into base, and what kind of timescale we're looking at if so |
| 18:33:12 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:8577:297f:c78a:d1b2) (Quit: WeeChat 3.2) |
| 18:36:35 | → | HeisenLearnsHask joins (~HeisenLea@2a02:aa1:1010:e9f8:2cf9:9af4:b41e:73e9) |
| 18:48:46 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 18:52:41 | × | HeisenLearnsHask quits (~HeisenLea@2a02:aa1:1010:e9f8:2cf9:9af4:b41e:73e9) (Quit: Ping timeout (120 seconds)) |
| 18:54:57 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 18:55:21 | → | MQ-17J joins (~MQ-17J@8.6.144.209) |
| 18:56:14 | → | mrckndt joins (~mrckndt@user/mrckndt) |
| 18:57:09 | ← | mt404 parts (~mt404@cpe1056118081ac-cm1056118081aa.cpe.net.cable.rogers.com) () |
| 18:57:28 | × | adium_ quits (adium@user/adium) (Remote host closed the connection) |
| 18:59:37 | <kuribas> | Is haskell the only language where you mess around two hours, and end up with 20 lines of code? |
| 19:00:15 | <kuribas> | It's crazy how you end up with deceivingly simple code (especially using generics). |
| 19:00:26 | <kuribas> | That looks like it took 5 minutes. |
| 19:00:26 | <hseg> | >:) |
| 19:00:52 | <tomsmeding> | kuribas: https://github.com/Co-dfns/Co-dfns/tree/master/cmp |
| 19:01:21 | <kuribas> | tomsmeding: I don't even know what that is? |
| 19:01:25 | <tomsmeding> | a compiler |
| 19:01:39 | <tomsmeding> | see the readme in the root |
| 19:01:51 | <kuribas> | ahhhh APL :) |
| 19:01:55 | <tomsmeding> | :D |
| 19:02:42 | <tomsmeding> | oh it seems there's more stuff here apparently https://github.com/Co-dfns/Co-dfns/blob/master/codfns.dyalog |
| 19:03:02 | <tomsmeding> | but yeah, point was lots of stuff in few lines :p |
| 19:03:19 | → | Arthur joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 19:03:23 | <kuribas> | tomsmeding: but I am not even try to code golf it... |
| 19:03:36 | <tomsmeding> | I know, it was not a very serious response :) |
| 19:03:38 | × | Arthur quits (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) (Client Quit) |
| 19:04:40 | <tomsmeding> | I guess it mostly depends on what you're doing though. I can spend 2 hours on 50 lines of C code if it's a complicated algorithm and I want to get every detail right |
| 19:04:56 | <tomsmeding> | (I replaced 20 with 50 because haskell is more concise than C, but same thing) |
| 19:05:16 | <tomsmeding> | I once spent a day on a 100-line recursive mutex implementation in C++ |
| 19:05:38 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:05:50 | <kuribas> | but does the C++ code look simple? |
| 19:06:11 | → | arthur_melo joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 19:06:13 | <kuribas> | It took me two hours to end up with: genCollectFields tables sqid $ splitTranspActMaybe curry prev $ lookupFeature tables sqid |
| 19:06:16 | <tomsmeding> | depends on what you call simple :p |
| 19:06:34 | <tomsmeding> | that looks very complicated to me, given that I don't know what those functions do :p |
| 19:06:46 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:06:54 | <tomsmeding> | if you know what the functions do, it probably looks very simple |
| 19:07:26 | <kuribas> | it does if you have an IDE that shows the types. |
| 19:07:45 | × | arthur_melo quits (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) (Client Quit) |
| 19:07:58 | <tomsmeding> | the individual operations in that C++ code were quite simple -- no long lines anywhere -- but the code was _very_ complex simply because it tried to do locking right in a multithreading context, and there some delicate things in there |
| 19:08:25 | → | adium joins (adium@user/adium) |
| 19:08:28 | <tomsmeding> | the only complex thing was the comments, so to speak :) |
| 19:08:36 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 19:09:06 | → | drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
| 19:09:53 | × | mei quits (~mei@user/mei) (Ping timeout: 248 seconds) |
| 19:09:57 | <kuribas> | sounds very tricky indeed |
| 19:10:50 | → | vysn joins (~vysn@user/vysn) |
| 19:11:40 | <tomsmeding> | haskell does tend to invite fiddling with abstractions more than other languages do, simply because they're closer at hand, I guess :) |
| 19:11:51 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:5f5:523b:3c0:9fe) |
| 19:12:06 | → | arthur_melo joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 19:12:16 | <tomsmeding> | and fiddling with abstractions means writing and re-writing the same code until it has the structure you want, and repeated code-rewriting has the effect of producing little code in the end |
| 19:12:25 | <tomsmeding> | perhaps that? |
| 19:13:11 | × | arthur_melo quits (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) (Client Quit) |
| 19:13:24 | <kuribas> | yes |
| 19:13:40 | <kuribas> | But also, generics are very hard to write, but usually end up with little code. |
| 19:14:11 | <kuribas> | It's all induction anyway, but getting the type variables and recursion right is tricky. |
| 19:14:22 | <tomsmeding> | perhaps C++ templates move into this direction? |
| 19:14:25 | <[exa]> | re fiddling, layered generic abstractions have pretty much lower chance to break without a compile error than in other languages. That's rewarding. |
| 19:14:32 | <tomsmeding> | also hard to write, but not necessarily producing much code in the end |
| 19:14:39 | <monochrom> | Haskell is not the only language in which I mess around two hours and get only 20 lines. |
| 19:15:05 | <monochrom> | I'm making exam questions. It takes 2 hours of messing around before I get 20 lines, too. |
| 19:15:15 | <kuribas> | monochrom: which language? |
| 19:15:22 | <monochrom> | English? |
| 19:15:49 | <monochrom> | It holds for Haskell exams, C & Unix exams, and data structure theoretical exams. |
| 19:15:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:16:04 | <[exa]> | if english counts, I should start making stats from the papers we write |
| 19:16:21 | → | arthur_melo joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 19:16:34 | × | hseg quits (~gesh@IGLD-84-228-238-79.inter.net.il) (Quit: WeeChat 3.2) |
| 19:18:25 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 244 seconds) |
| 19:21:18 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 19:21:36 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 19:23:30 | → | HeisenLearnsHask joins (~HeisenLea@2a02:aa1:1010:e9f8:bc74:fed2:1f26:4c60) |
| 19:23:34 | × | arthur_melo quits (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) (Quit: arthur_melo) |
| 19:23:51 | <HeisenLearnsHask> | intercalate' :: [a] -> [[a]] -> [[a]] |
| 19:23:52 | <HeisenLearnsHask> | intercalate' _ [] = [] |
| 19:23:52 | <HeisenLearnsHask> | intercalate' x (y:ys) = y:x:intercalate' x ys |
| 19:23:53 | <HeisenLearnsHask> | intercalate'' = concat . intercalate' |
| 19:24:12 | <kuribas> | HeisenLearnsHask: use pastebin? |
| 19:24:15 | <HeisenLearnsHask> | Can someone help me why I can't concat this? |
| 19:24:20 | <HeisenLearnsHask> | Oh sorry will do. |
| 19:24:26 | <tomsmeding> | (concat .) . intercalate' |
| 19:24:54 | <tomsmeding> | if you have (f :: a -> b) and (g :: b -> c), then you can do (g . f :: a -> c) |
| 19:25:02 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 19:25:14 | → | vysn joins (~vysn@user/vysn) |
| 19:25:16 | <tomsmeding> | here, however, your f (which is intercalate') has type (a -> b -> c) and your g (concat) has type (c -> d) |
| 19:26:02 | <tomsmeding> | written out, the first is \x -> g (f x), and the second is \x y -> g (f x y) |
| 19:26:05 | <tomsmeding> | see the difference? |
| 19:26:28 | → | thelounge9230681 joins (~thelounge@cpe-75-85-161-60.san.res.rr.com) |
| 19:26:41 | × | vysn quits (~vysn@user/vysn) (Client Quit) |
| 19:27:28 | <monochrom> | And "a -> b -> c" means "a -> foo, oh foo expands to b -> c", not "(a,b) -> c". |
| 19:28:26 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 258 seconds) |
| 19:28:34 | <tomsmeding> | yeah: '\x y -> g (f x y)' is really shorthand for '\x -> (\y -> g (f x y))' |
| 19:29:50 | <tomsmeding> | is there a webpage or something that clearly explains this issue of why using (.) with a two-argument function doesn't work like one might want? |
| 19:30:07 | <tomsmeding> | it's a common question, it seems |
| 19:30:08 | × | xff0x quits (~xff0x@2001:1a81:52ed:2b00:c854:bd3b:6fb8:2f1e) (Ping timeout: 252 seconds) |
| 19:30:27 | <dsal> | I've run into it a few times and just moved on without thinking about it too much. I'd read that web page someday. |
| 19:30:32 | <tomsmeding> | (which makes sense -- if you aren't yet familiar with how function types work in haskell, it's kind of opaque) |
| 19:30:40 | → | xff0x joins (~xff0x@2001:1a81:52ed:2b00:dae0:b3ed:9593:292a) |
| 19:35:12 | × | thelounge9230681 quits (~thelounge@cpe-75-85-161-60.san.res.rr.com) (Quit: The Lounge - https://thelounge.chat) |
| 19:36:10 | <monochrom> | It can't be helped. Human nature always first consult "intuitive conceptual moral sounds-right first instinct", trying to procrastinate actually looking up and following actual rules. |
| 19:36:24 | <tomsmeding> | makes sense! |
| 19:36:34 | <tomsmeding> | I'm just looking for a link to dump whenever someone asks this here :p |
| 19:36:57 | <monochrom> | Conceptually . is a piping. Conceptually $ saves parentheses. Very attractive stories to tell and hear. |
| 19:37:27 | → | ubert joins (~Thunderbi@178.115.55.14.wireless.dyn.drei.com) |
| 19:39:40 | <dsal> | Yeah. Stop making me think about what I'm doing. |
| 19:40:32 | <monochrom> | But there is not much more to explain than "you have (g::X->Y) . (f::A->(B->X)), B->X doesn't match with X". |
| 19:40:54 | <tomsmeding> | except then in a more accessible form with more examples :p |
| 19:42:52 | → | thelounge9230681 joins (~thelounge@cpe-75-85-161-60.san.res.rr.com) |
| 19:42:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:44:55 | × | MQ-17J quits (~MQ-17J@8.6.144.209) (Ping timeout: 258 seconds) |
| 19:45:33 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:48:08 | × | thyriaen quits (~thyriaen@dynamic-089-012-237-250.89.12.pool.telefonica.de) (Remote host closed the connection) |
| 19:49:12 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:49:34 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 19:50:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 19:56:24 | → | Neuromancer joins (~Neuromanc@user/neuromancer) |
| 20:00:28 | <dsal> | Yeah. It's pretty easy to work out the understanding. |
| 20:00:29 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 20:01:40 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 20:01:44 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 20:01:50 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 20:04:20 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 20:05:18 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 268 seconds) |
| 20:06:32 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Ping timeout: 268 seconds) |
| 20:07:29 | → | juhp joins (~juhp@128.106.188.220) |
| 20:08:07 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:09:00 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 20:15:23 | → | zephyz joins (~zephyz@156.146.63.16) |
| 20:16:40 | <zephyz> | Hi there, I'm having issue with the singletons-th and singletons-base libraries, here is the error I get and the code I've written under it https://paste.tomsmeding.com/vj2xh7XX |
| 20:17:01 | × | ubert quits (~Thunderbi@178.115.55.14.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 20:17:31 | <zephyz> | It look slike singletons-th is generating the wrong names, or at least names that are not compatible with singletons-base, how can I fix that? |
| 20:22:02 | × | haowenl quits (~Thunderbi@066-215-230-039.res.spectrum.com) (Ping timeout: 256 seconds) |
| 20:22:23 | × | drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 252 seconds) |
| 20:24:14 | <HeisenLearnsHask> | Hello could someone help me? I want to solve it with where binding not lambda. https://pastebin.com/TyVAsm9i |
| 20:25:30 | <tomsmeding> | HeisenLearnsHask: did you see our discussion of your question above? |
| 20:25:33 | <monochrom> | dropWhile (\x -> f x < 1000) |
| 20:26:21 | → | notzmv joins (~zmv@user/notzmv) |
| 20:30:13 | × | HeisenLearnsHask quits (~HeisenLea@2a02:aa1:1010:e9f8:bc74:fed2:1f26:4c60) (Quit: Client closed) |
| 20:30:48 | → | jgeerds joins (~jgeerds@55d45555.access.ecotel.net) |
| 20:31:21 | → | arthur_melo joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 20:32:00 | → | epolanski joins (uid312403@id-312403.brockwell.irccloud.com) |
| 20:37:42 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 20:37:54 | <monochrom> | Or define your own .< operator as g .< n = \x -> g x < n, then you can use f .< 1000 |
| 20:38:23 | <monochrom> | At which point it's abstraction overdose to rationalize a misguided intuition. |
| 20:42:14 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) |
| 20:46:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds) |
| 20:46:25 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 20:46:37 | → | vysn joins (~vysn@user/vysn) |
| 20:46:59 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 20:49:42 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 20:54:31 | → | oxide joins (~lambda@user/oxide) |
| 20:54:50 | × | Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 20:55:47 | → | drd joins (~drd@93-39-151-19.ip76.fastwebnet.it) |
| 20:56:45 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 20:58:37 | → | vysn joins (~vysn@user/vysn) |
| 20:59:18 | → | wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) |
| 20:59:59 | × | vysn quits (~vysn@user/vysn) (Client Quit) |
| 21:00:23 | → | vysn joins (~vysn@user/vysn) |
| 21:03:44 | <dsal> | `f .< 1000` looks like `f` is yelling `one thousand` at someone. |
| 21:04:14 | <tomsmeding> | but it is! Don't you hear it? |
| 21:04:18 | <dsal> | Sometimes it's useful to introduce language like that if it's a very common thing that will need to be understood by anyone reading a thing. Sometimes it's a fun novelty that you'll regret later. |
| 21:04:35 | × | vysn quits (~vysn@user/vysn) (Client Quit) |
| 21:05:12 | → | vysn joins (~vysn@user/vysn) |
| 21:05:17 | → | aegon joins (~mike@174.127.249.180) |
| 21:06:45 | → | Cale joins (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
| 21:07:46 | → | vicfred joins (~vicfred@user/vicfred) |
| 21:08:45 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 21:09:38 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 258 seconds) |
| 21:12:29 | × | zephyz quits (~zephyz@156.146.63.16) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:13:01 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 21:13:05 | × | shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 248 seconds) |
| 21:13:38 | → | chris joins (~chris@81.96.113.213) |
| 21:13:41 | chris | is now known as Guest1842 |
| 21:15:02 | → | sander joins (~sander@user/sander) |
| 21:18:43 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 21:19:42 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 21:19:56 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:20:32 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 21:24:33 | × | hoknamahn quits (~hoknamahn@cpc158487-croy28-2-0-cust310.19-2.cable.virginm.net) (Quit: Konversation terminated!) |
| 21:25:21 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 21:28:02 | × | drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 258 seconds) |
| 21:28:34 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 21:30:36 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 21:32:30 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:37:57 | → | frosky_ joins (~froskyarr@50.7.59.207) |
| 21:38:35 | → | arthur_melo_ joins (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) |
| 21:39:32 | × | arthur_melo quits (IRC@gateway/vpn/airvpn/arthurmelo/x-07739757) (Ping timeout: 258 seconds) |
| 21:39:58 | → | vysn joins (~vysn@user/vysn) |
| 21:41:21 | × | frosky quits (~froskyarr@50.7.59.207) (Ping timeout: 248 seconds) |
| 21:42:08 | → | jeslie0 joins (~user@108.162.150.9) |
| 21:44:42 | × | hololeap quits (~hololeap@user/hololeap) (Quit: Bye) |
| 21:46:34 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:46:42 | → | jneira joins (~jneira@28.red-80-28-169.staticip.rima-tde.net) |
| 21:50:36 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:51:02 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 258 seconds) |
| 21:55:00 | → | nsilv joins (~nsilv@host-79-17-175-58.retail.telecomitalia.it) |
| 21:55:19 | <nsilv> | heya guys, just quickly wanted to ask, you know what the haskell job situation is like in the UK? |
| 21:56:14 | <dsal> | Locations don't really exist anymore. But there are a few jobs I've seen in that area. |
| 21:56:56 | <nsilv> | mostly cause stuff came up, and it's at least somewhat likely I move there next year around this time. But I think i'd need a job beforehand to get a visa |
| 21:57:28 | <nsilv> | since I'm moving there to start from scratch might as well get a haskell job :D |
| 22:00:41 | × | fendor quits (~fendor@178.115.35.166.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 22:01:52 | → | ubert joins (~Thunderbi@178.115.55.14.wireless.dyn.drei.com) |
| 22:03:14 | × | mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds) |
| 22:03:25 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:05:44 | <dsal> | You can get location-independent work which is kind of the way to go. That's what I'm doing. |
| 22:05:50 | → | nsilv-phone joins (~nsilv-pho@host-79-17-175-58.retail.telecomitalia.it) |
| 22:06:15 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 22:07:46 | → | hexfive joins (~eric@50.35.83.177) |
| 22:07:47 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 22:07:49 | × | hexfive quits (~eric@50.35.83.177) (Client Quit) |
| 22:08:39 | × | nsilv quits (~nsilv@host-79-17-175-58.retail.telecomitalia.it) (Ping timeout: 268 seconds) |
| 22:15:41 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
| 22:16:03 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds) |
| 22:17:42 | × | mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds) |
| 22:19:44 | × | ubert quits (~Thunderbi@178.115.55.14.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 22:19:53 | <sclv> | location independent doesn't help with a work visa! |
| 22:20:08 | <sclv> | but as far as ive seen the job sitch there is pretty ok if you start putting out feelers now |
| 22:20:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 22:25:09 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 22:25:18 | × | jneira quits (~jneira@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 268 seconds) |
| 22:26:14 | × | tripoli quits (~tripoli@69.233.98.238) (Quit: nyaa~) |
| 22:26:15 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:27:46 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Remote host closed the connection) |
| 22:29:27 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.129.100) |
| 22:33:05 | → | oxide joins (~lambda@user/oxide) |
| 22:33:37 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.129.100) (Ping timeout: 248 seconds) |
| 22:35:29 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:36:18 | <arahael> | tomsmeding: Updated ghc, though only to 8.10.4 - now it's rebuilding the world again! :D |
| 22:39:58 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9503f052fac21b551e32.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:40:01 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 248 seconds) |
| 22:42:09 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds) |
| 22:42:38 | × | dudek quits (~dudek@185.150.236.112) (Quit: Leaving) |
| 22:43:36 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 22:47:29 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 22:47:52 | → | cjb joins (~cjb@user/cjb) |
| 22:53:08 | × | Guest1842 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 22:53:39 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 23:00:26 | × | fvr quits (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:10:45 | <arahael> | tomsmeding: Ok, tar-bytestring compiles and works, but it still truncates file names for some reason, I might have to switch to libarchive before it will work. |
| 23:12:28 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 23:16:04 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:18:29 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 23:18:44 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 23:19:03 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 23:20:05 | <arahael> | Aha, ok, did more digging. The truncated names always follow an entry called "././@PaxHeader". I guess I could potentially look into getting that, and parsing it myself, but nah, why bother: I'll just switch to libarchive. |
| 23:22:19 | <arahael> | Coincidentally, the file names are truncated to 100 bytes! Now it makes sense. |
| 23:22:40 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 23:23:31 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:25:18 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 23:25:33 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 23:26:22 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:27:20 | <geekosaur> | that sounds like old tar format |
| 23:27:34 | <geekosaur> | which had a 100-byte limit on filenames |
| 23:28:12 | <arahael> | geekosaur: Modern, actually, from the looks of things, except the Tar package in haskell does not support PaxHeaders. |
| 23:28:24 | <geekosaur> | but that PaxHeader entry sounds like written by the pax program |
| 23:28:48 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 23:29:00 | <arahael> | I think it's posix, just not gnu. |
| 23:29:06 | <geekosaur> | https://en.wikipedia.org/wiki/Pax_(command)#:~:text=IEEE%2C%20in%202001%2C%20defined%20a,of%20both%20tar%20and%20cpio%20. |
| 23:31:05 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 258 seconds) |
| 23:31:35 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
| 23:31:45 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:33:40 | <arahael> | geekosaur: Sure, but tar arhives themselves use pax headers, as it turns out. |
| 23:33:58 | <arahael> | OOoh, that's what the IEEE defined in 2001 on that page. |
| 23:37:10 | <arahael> | Ah! Found it. The tar file is indeed in the older pax format: |
| 23:37:51 | <arahael> | https://docs.python.org/3/library/tarfile.html -> Says that the default format is pax until until python 3.8, when it started being in gnu format. |
| 23:38:03 | × | jeslie0 quits (~user@108.162.150.9) (Ping timeout: 268 seconds) |
| 23:39:24 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 23:39:55 | × | wroathe quits (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds) |
| 23:40:55 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 23:41:02 | → | jeslie0 joins (~user@108.162.150.9) |
| 23:48:53 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:789f:7a:b395:5977) |
| 23:50:57 | <arahael> | geekosaur: Anyway, thanks for the quite direct pointer. :) |
| 23:51:05 | <arahael> | Quite *correct* pointer. |
| 23:53:01 | × | vysn quits (~vysn@user/vysn) (Remote host closed the connection) |
| 23:53:36 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:53:56 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:54:06 | → | keutoi joins (~keutoi@157.47.84.95) |
| 23:54:39 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 23:54:42 | × | jtomas quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 245 seconds) |
| 23:56:32 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 23:56:53 | × | jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 252 seconds) |
| 23:57:27 | <justsomeguy> | An indirection that pointed directly to the correct point? |
| 23:58:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 23:59:01 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
All times are in UTC on 2021-08-15.