Newest at the top
2025-10-14 22:11:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-10-14 22:07:56 +0200 | haltsolver | (~cmo@2604:3d09:207f:8000::d1dc) |
2025-10-14 22:06:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-10-14 22:05:49 +0200 | craunts79533538 | (~craunts@136.158.7.194) (Quit: The Lounge - https://thelounge.chat) |
2025-10-14 22:04:52 +0200 | gustrb | (~gustrb@191.243.134.87) |
2025-10-14 22:03:38 +0200 | <monochrom> | But my class has associated type synonym. :( |
2025-10-14 22:03:21 +0200 | <EvanR> | our implicits are different! |
2025-10-14 22:03:06 +0200 | <EvanR> | we can still ignore it and do type classes vs the world |
2025-10-14 22:03:04 +0200 | Everything | (~Everythin@46.96.48.125) (Quit: leaving) |
2025-10-14 21:59:18 +0200 | trickard_ | trickard |
2025-10-14 21:59:01 +0200 | <monochrom> | Yeah I saw reflection. Sadly or funnily, now it enters GHC canon! |
2025-10-14 21:57:34 +0200 | nschoe | (~nschoe@2a01:e0a:8e:a190:9978:942:5e21:4051) nschoe |
2025-10-14 21:57:17 +0200 | nschoe | (~nschoe@2a01:e0a:8e:a190:5a5d:b819:b564:200f) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-10-14 21:56:24 +0200 | myme | (~myme@2a01:799:d5e:5f00:3f1f:ed6a:2329:6f95) myme |
2025-10-14 21:56:04 +0200 | <geekosaur> | yeh, that's been around for a while. as has IfCxt and friends. |
2025-10-14 21:56:04 +0200 | <jackdk> | monochrom: package reflection has been able to do this for a while. lens uses it to implement things like `foldMapBy` where you provide a fake monoid |
2025-10-14 21:55:58 +0200 | haltsolver | (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 256 seconds) |
2025-10-14 21:55:35 +0200 | myme | (~myme@2a01:799:d5e:5f00:400a:36cb:71d2:d99e) (Ping timeout: 250 seconds) |
2025-10-14 21:55:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-10-14 21:54:57 +0200 | <monochrom> | Not sure I should be happy or sad. GHC.Exts (in fact GHC.Magic.Dict) has WithDict. This allows dynamic instances of classes. I was actually looking for it. |
2025-10-14 21:50:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-10-14 21:41:16 +0200 | Guest77 | (~Guest77@static-186-121-246-148.acelerate.net) (Quit: Client closed) |
2025-10-14 21:40:17 +0200 | haltsolver | (~cmo@2604:3d09:207f:8000::d1dc) |
2025-10-14 21:39:31 +0200 | Enrico63 | (~Enrico63@host-82-59-110-109.retail.telecomitalia.it) Enrico63 |
2025-10-14 21:38:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-10-14 21:35:14 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-10-14 21:33:18 +0200 | raym | (~ray@user/raym) (Ping timeout: 256 seconds) |
2025-10-14 21:32:38 +0200 | ski | looks at Guest77 |
2025-10-14 21:32:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-10-14 21:29:45 +0200 | Everything | (~Everythin@46.96.48.125) Everything |
2025-10-14 21:27:17 +0200 | <EvanR> | ((a,b) -> c) -> (a -> (b -> c)) |
2025-10-14 21:27:02 +0200 | <EvanR> | actually, just parentheses |
2025-10-14 21:26:40 +0200 | <EvanR> | to understand curry you must first understanding currying |
2025-10-14 21:26:37 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 260 seconds) |
2025-10-14 21:26:26 +0200 | <lambdabot> | ((a, b) -> c) -> a -> b -> c |
2025-10-14 21:26:25 +0200 | <EvanR> | :t curry |
2025-10-14 21:25:44 +0200 | nogloff | (uid464985@id-464985.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2025-10-14 21:25:27 +0200 | haltsolver | (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 260 seconds) |
2025-10-14 21:24:08 +0200 | <haskellbridge> | <Kyle Butt> Guest77: A function of 2 arguments can be re-written as a function of 1 argument (the first) that returns a function of one argument (the second). |
2025-10-14 21:22:32 +0200 | <monochrom> | It would be more productive with a more specific question or comment. |
2025-10-14 21:21:56 +0200 | <Guest77> | i don't understand currying principle, can someone explain me? |
2025-10-14 21:21:24 +0200 | Guest77 | (~Guest77@static-186-121-246-148.acelerate.net) |
2025-10-14 21:21:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-10-14 21:16:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-10-14 21:15:42 +0200 | haltsolver | (~cmo@2604:3d09:207f:8000::d1dc) |
2025-10-14 21:11:40 +0200 | <ski> | (with `+i', you can easily temporarily side-step, with sending `invite' to ChanServ (.. or adding an invite exempt `+I'). with `+b', you'd have to add a ban exempt `+e') |
2025-10-14 21:09:53 +0200 | <ski> | `+f' (forward) applies to all of `+i' (invite-only), `+j' (join throttle), `+l' (limit), `+r' (registered only), as well as `+b' (ban) |
2025-10-14 21:08:17 +0200 | <ski> | yep |
2025-10-14 21:07:25 +0200 | <geekosaur> | "forward-ban". which means instead of preventing joining it joins them to a different channel, in this case #haskell |
2025-10-14 21:06:51 +0200 | <ski> | (invite-only, rather than blanket ban, would probably be more comfortable, i think) |