Logs: liberachat/#haskell
| 2025-08-19 11:28:24 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-08-19 11:35:11 | × | tired quits (~tired@user/tired) (Server closed connection) |
| 2025-08-19 11:35:33 | → | tired joins (~tired@user/tired) |
| 2025-08-19 11:37:33 | × | trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-08-19 11:37:46 | → | trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au) |
| 2025-08-19 11:46:26 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-08-19 11:46:41 | → | Raito_Bezarius joins (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) |
| 2025-08-19 11:48:21 | → | davidlbowman joins (~dlb@user/davidlbowman) |
| 2025-08-19 11:49:05 | → | weary-traveler joins (~user@user/user363627) |
| 2025-08-19 11:50:25 | × | kaskal quits (~kaskal@84-115-230-9.cable.dynamic.surfer.at) (Server closed connection) |
| 2025-08-19 11:50:50 | → | kaskal joins (~kaskal@2a02:8388:15bf:c200:56a6:d3c4:244b:bb14) |
| 2025-08-19 11:52:31 | × | trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-08-19 11:52:51 | → | trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au) |
| 2025-08-19 11:55:10 | × | elbear quits (~lucian@37.251.221.32) (Ping timeout: 272 seconds) |
| 2025-08-19 11:58:57 | → | xff0x joins (~xff0x@ai101228.d.east.v6connect.net) |
| 2025-08-19 12:03:51 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 256 seconds) |
| 2025-08-19 12:05:20 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2025-08-19 12:10:33 | × | trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-08-19 12:10:47 | → | trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au) |
| 2025-08-19 12:20:03 | → | itaipu joins (~itaipu@168.121.97.28) |
| 2025-08-19 12:28:22 | → | myxos joins (~myxos@syn-065-025-110-175.res.spectrum.com) |
| 2025-08-19 12:32:32 | × | saolsen quits (sid26430@id-26430.lymington.irccloud.com) (Server closed connection) |
| 2025-08-19 12:32:43 | → | saolsen joins (sid26430@id-26430.lymington.irccloud.com) |
| 2025-08-19 12:34:05 | × | integral quits (sid296274@user/integral) (Server closed connection) |
| 2025-08-19 12:34:19 | → | integral joins (sid296274@user/integral) |
| 2025-08-19 12:38:28 | × | yin quits (~zero@user/zero) (Server closed connection) |
| 2025-08-19 12:38:43 | → | yin joins (~zero@user/zero) |
| 2025-08-19 12:40:17 | × | astra quits (sid289983@user/amish) (Server closed connection) |
| 2025-08-19 12:40:29 | → | astra joins (sid289983@id-289983.hampstead.irccloud.com) |
| 2025-08-19 12:47:25 | × | CalimeroTeknik quits (~calimero@ctkarch.org) (Changing host) |
| 2025-08-19 12:47:25 | → | CalimeroTeknik joins (~calimero@user/calimeroteknik) |
| 2025-08-19 12:48:02 | × | alinab quits (sid468903@id-468903.helmsley.irccloud.com) (Server closed connection) |
| 2025-08-19 12:48:09 | → | alinab joins (sid468903@id-468903.helmsley.irccloud.com) |
| 2025-08-19 12:55:53 | trickard_ | is now known as trickard |
| 2025-08-19 12:57:04 | × | cjay quits (cjay@nerdbox.nerd2nerd.org) (Server closed connection) |
| 2025-08-19 12:57:15 | → | cjay joins (cjay@nerdbox.nerd2nerd.org) |
| 2025-08-19 13:01:43 | × | sajith quits (~sajith@user/sajith) (Server closed connection) |
| 2025-08-19 13:02:01 | → | sajith joins (~sajith@user/sajith) |
| 2025-08-19 13:11:08 | <Athas> | Does 'base', or anything else, have a type for lists of length 2 (or 3, whatever) that is an instance of Applicative? |
| 2025-08-19 13:12:06 | <__monty__> | I assume (,) does not qualify as a list? |
| 2025-08-19 13:12:30 | <Athas> | No, because it is not monomorphic in the elements. |
| 2025-08-19 13:12:38 | <Athas> | In particular, it means the Applicative instance isn't what I want. |
| 2025-08-19 13:12:59 | <Athas> | I want: data Pair a = MkPair a a |
| 2025-08-19 13:13:00 | <Athas> | instance Functor Pair where fmap f (Pair x y) = Pair (f x) (f y) |
| 2025-08-19 13:15:02 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-08-19 13:15:43 | <Leary> | Athas: We have `Product Identity Identity`. |
| 2025-08-19 13:16:15 | <Leary> | (in base) |
| 2025-08-19 13:16:32 | <Leary> | 'linear' has `V2` & `V3`. |
| 2025-08-19 13:17:47 | <Athas> | Ah yes, I did find Product, but I think the functor-polymorphic type put me off. |
| 2025-08-19 13:17:54 | <Athas> | Maybe I should check whether it is really so annoying to use. |
| 2025-08-19 13:17:56 | <Leary> | Oh, and `Bool ->`/`Ordering ->`. :) |
| 2025-08-19 13:19:48 | <Athas> | This is surprisingly not so bad. |
| 2025-08-19 13:20:27 | <__monty__> | What's the motivation for (,)'s Functor implementation? Both options seem equally valid (though maybe the less general option is actually more useful) which seems very similar to the situation with Monoid for Bool. |
| 2025-08-19 13:20:47 | <Athas> | I think it is because (,) is also the Reader monad. |
| 2025-08-19 13:21:46 | <sshine> | what motivated the Haskell language designers to make a Total Recall (.).(.) operator? |
| 2025-08-19 13:22:40 | <__monty__> | That's a bird, clearly not an operator defined by the Haskell committee. |
| 2025-08-19 13:23:10 | <sshine> | I agree, it is too artistic to be designed by committee. |
| 2025-08-19 13:23:12 | <Athas> | I once read an explanation that the design of type classes (canonicity, problems with orphans) strongly encourage that a type implement a type class in the most general way (although sometimes this is ambiguous), and that *if* a type can possibly have a law-abiding instance, then it *must* have it. |
| 2025-08-19 13:23:32 | <Athas> | This is what leads to the somewhat unfortunate Foldable instance for (,) and the Monad instance for (->). |
| 2025-08-19 13:24:52 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2025-08-19 13:24:52 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2025-08-19 13:24:52 | → | haritz joins (~hrtz@user/haritz) |
| 2025-08-19 13:25:05 | <__monty__> | Does it though? Because I don't see how flipping the instances for (,) doesn't fulfil the requirements. |
| 2025-08-19 13:25:25 | <Athas> | What do you mean by "flipping"? |
| 2025-08-19 13:25:25 | <Leary> | __monty__: The `Functor` instance `(,) a` has is the only one it can have. What do you think the other one should be? |
| 2025-08-19 13:25:26 | <__monty__> | It's a fine argument for not restricting the type to (a,a). |
| 2025-08-19 13:26:59 | <sshine> | I like Rust's approach better by not allowing orphan instances, and by working around them in all sorts of practical ways, like defining `From` instead of `Into`, and `impl Distribution<T> for Standard` (where Distribution and Standard live in the same crate, and T is foreign) |
| 2025-08-19 13:28:04 | × | sm quits (~znc@plaintextaccounting/sm) (Server closed connection) |
| 2025-08-19 13:28:19 | → | sm joins (znc@plaintextaccounting/sm) |
| 2025-08-19 13:30:08 | <__monty__> | Leary: Maybe my problem is not understanding why the kind passed to Functor is restricted to * -> *. |
| 2025-08-19 13:30:48 | → | Guest42 joins (~Guest42@152.10.118.219) |
| 2025-08-19 13:32:07 | × | Guest42 quits (~Guest42@152.10.118.219) (Client Quit) |
| 2025-08-19 13:32:43 | × | shr\ke quits (~shrike@user/shrke:31298) (Server closed connection) |
| 2025-08-19 13:32:54 | → | shr\ke joins (~shrike@user/paxhumana) |
| 2025-08-19 13:32:54 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 2025-08-19 13:32:54 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 2025-08-19 13:32:59 | × | dminuoso quits (~weechat@user/dminuoso) (Server closed connection) |
| 2025-08-19 13:33:01 | <Leary> | Well, `Functor` was indeed a mistake. It should have been `class (Category c, Category d) => Functor c d f where { map :: c i j -> d (f i) (f j) }`. |
| 2025-08-19 13:33:25 | → | dminuoso joins (~weechat@user/dminuoso) |
| 2025-08-19 13:37:09 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 2025-08-19 13:42:26 | <sshine> | Leary, is that class defined somewhere? |
| 2025-08-19 13:42:34 | <sshine> | as in some library |
| 2025-08-19 13:42:52 | <Leary> | Probably, but not that I'm aware of. |
| 2025-08-19 13:49:36 | <Athas> | I think I'm OK with the Prelude Functor. |
| 2025-08-19 13:52:43 | → | polux joins (~polux@51-15-169-172.rev.poneytelecom.eu) |
| 2025-08-19 13:55:52 | → | hyletic joins (~textual@user/hyletic) |
| 2025-08-19 13:59:23 | → | srk_ joins (~sorki@user/srk) |
| 2025-08-19 13:59:43 | × | lukec quits (9dfd4d094e@2a03:6000:1812:100::10e) (Server closed connection) |
| 2025-08-19 13:59:49 | → | lukec joins (9dfd4d094e@2a03:6000:1812:100::10e) |
| 2025-08-19 14:13:27 | × | hyletic quits (~textual@user/hyletic) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 2025-08-19 14:15:48 | × | ggb quits (a62ffbaf4f@2a03:6000:1812:100::3ac) (Server closed connection) |
| 2025-08-19 14:15:55 | → | ggb joins (a62ffbaf4f@2a03:6000:1812:100::3ac) |
| 2025-08-19 14:16:46 | → | hyletic joins (~textual@user/hyletic) |
| 2025-08-19 14:27:05 | → | elbear joins (~lucian@37.251.221.32) |
| 2025-08-19 14:28:47 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Server closed connection) |
| 2025-08-19 14:31:14 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 2025-08-19 14:31:53 | × | lambdap23717 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Server closed connection) |
| 2025-08-19 14:32:09 | → | lambdap23717 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 2025-08-19 14:34:10 | × | hyletic quits (~textual@user/hyletic) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 2025-08-19 14:35:12 | → | hyletic joins (~textual@user/hyletic) |
All times are in UTC.