Logs: liberachat/#haskell
| 2021-08-12 01:59:26 | → | Guest14 joins (~Guest14@186.136.54.215) |
| 2021-08-12 02:00:43 | → | Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
| 2021-08-12 02:05:21 | × | cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds) |
| 2021-08-12 02:05:47 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Ping timeout: 268 seconds) |
| 2021-08-12 02:06:08 | <DigitalKiwi> | "i went to harvard" "really?" "school of computing" "amazing!" "ok what i really mean to say is that i turned on a computer once" "..." |
| 2021-08-12 02:09:02 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 2021-08-12 02:09:14 | <Axman6> | "Really?" "Ok, no, I just keep my todo list and documents separate" |
| 2021-08-12 02:10:44 | <DigitalKiwi> | what's a todo list |
| 2021-08-12 02:11:14 | <DigitalKiwi> | i'd like to trade my todo list for a toDONE list |
| 2021-08-12 02:11:22 | <Axman6> | ... a list of things to do... |
| 2021-08-12 02:11:37 | <Axman6> | that's a done list |
| 2021-08-12 02:11:57 | <DigitalKiwi> | https://twitter.com/ArchKiwi/status/1422703998549860352?s=20 |
| 2021-08-12 02:12:33 | <DigitalKiwi> | because i am SO DONE with computers ;D |
| 2021-08-12 02:12:43 | <DigitalKiwi> | gotta let me finish my jokes ;( |
| 2021-08-12 02:17:07 | → | Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
| 2021-08-12 02:17:12 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection) |
| 2021-08-12 02:17:53 | → | cheater joins (~Username@user/cheater) |
| 2021-08-12 02:18:07 | × | td_ quits (~td@muedsl-82-207-238-098.citykom.de) (Ping timeout: 268 seconds) |
| 2021-08-12 02:19:52 | → | td_ joins (~td@94.134.91.94) |
| 2021-08-12 02:19:53 | → | Matthias1 joins (~Matthias1@2603-8001-b545-4900-682c-3ed2-deff-6231.res6.spectrum.com) |
| 2021-08-12 02:21:42 | × | Guest14 quits (~Guest14@186.136.54.215) (Quit: Client closed) |
| 2021-08-12 02:22:07 | <nshepperd> | mine is a todon't list |
| 2021-08-12 02:23:29 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 248 seconds) |
| 2021-08-12 02:24:02 | → | endlesseditions joins (~endlessed@server.zane.wiki) |
| 2021-08-12 02:24:36 | endlesseditions | is now known as endless |
| 2021-08-12 02:25:52 | × | fjvallarino quits (~fjvallari@186.136.54.215) (Quit: Leaving...) |
| 2021-08-12 02:26:37 | <Axman6> | Just call it what it is, a guilt list |
| 2021-08-12 02:26:38 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 2021-08-12 02:26:38 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (copper.libera.chat (Nickname regained by services))) |
| 2021-08-12 02:26:38 | finn_elija | is now known as FinnElija |
| 2021-08-12 02:29:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-08-12 02:29:36 | → | jess joins (~jess@libera/staff/jess) |
| 2021-08-12 02:34:41 | → | slack1256 joins (~slack1256@181.203.38.2) |
| 2021-08-12 02:36:53 | <slack1256> | Is the current advice for typeclasses without laws "don't"? |
| 2021-08-12 02:37:02 | × | Guest8327 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2021-08-12 02:37:18 | cwraith | is now known as c_wraith |
| 2021-08-12 02:38:08 | <slack1256> | What is the alternative to codifiying "business effects"? for example a UserQuerCapability with a single method `getUser :: Id -> m User` that gets an user from the DB. It doesn't have any laws, but it useful for mocking (via quickcheck and ReaderT). |
| 2021-08-12 02:40:00 | <c_wraith> | the usual alternative is to just use higher-order functions |
| 2021-08-12 02:40:27 | <c_wraith> | Whether with the ReaderT IO pattern, or something more complicated |
| 2021-08-12 02:40:49 | × | hgolden quits (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!) |
| 2021-08-12 02:41:13 | <c_wraith> | then instead of dispatching based on type, you use the same type everywhere and initialize the functions in scope differently |
| 2021-08-12 02:41:30 | <slack1256> | Is that exposed on some blogpost? I would like to see a example. |
| 2021-08-12 02:41:54 | → | chris joins (~chris@81.96.113.213) |
| 2021-08-12 02:41:58 | chris | is now known as Guest4783 |
| 2021-08-12 02:42:26 | → | hgolden joins (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) |
| 2021-08-12 02:42:38 | × | epolanski quits (uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
| 2021-08-12 02:43:13 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 248 seconds) |
| 2021-08-12 02:44:43 | × | Matthias1 quits (~Matthias1@2603-8001-b545-4900-682c-3ed2-deff-6231.res6.spectrum.com) (Remote host closed the connection) |
| 2021-08-12 02:45:00 | × | endless quits (~endlessed@server.zane.wiki) (Quit: The Lounge - https://thelounge.chat) |
| 2021-08-12 02:45:11 | → | endless joins (~endlessed@server.zane.wiki) |
| 2021-08-12 02:46:38 | × | Guest4783 quits (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
| 2021-08-12 02:47:46 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 2021-08-12 02:51:11 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 2021-08-12 02:54:00 | → | khumba joins (~khumba@user/khumba) |
| 2021-08-12 02:58:41 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds) |
| 2021-08-12 03:00:25 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 2021-08-12 03:01:57 | → | chris joins (~chris@81.96.113.213) |
| 2021-08-12 03:02:02 | chris | is now known as Guest8182 |
| 2021-08-12 03:03:13 | → | euouae joins (~euouae@user/euouae) |
| 2021-08-12 03:03:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 2021-08-12 03:03:30 | <euouae> | Hello I'm trying to understand traverse |
| 2021-08-12 03:03:48 | <euouae> | For example in `traverse _ empty = pure empty` in https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Traversable.html#g:9 |
| 2021-08-12 03:04:00 | <euouae> | How is `pure empty` of type `t (f b)`? |
| 2021-08-12 03:04:20 | <euouae> | I don't understand how `pure` specializes for a Traversable since a Traversable is not Applicative |
| 2021-08-12 03:08:16 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 2021-08-12 03:09:03 | <euouae> | never mind I misread the type... :( |
| 2021-08-12 03:09:06 | <euouae> | I get it now |
| 2021-08-12 03:10:16 | <euouae> | (It is of type `f (t b)` not `t (f b)`...) |
| 2021-08-12 03:14:59 | <Cale> | euouae: If you know mapM, traverse is just that, but generalised slightly. |
| 2021-08-12 03:16:13 | → | Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) |
| 2021-08-12 03:16:16 | <Cale> | It turns a container of actions into an action that, when executed, executes each of the actions in some order, and builds a similarly-shaped container of results. |
| 2021-08-12 03:16:30 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 2021-08-12 03:16:43 | <euouae> | Yeah I'm just learning both Cale |
| 2021-08-12 03:16:51 | <Cale> | Or rather, sequenceA does exactly that :) |
| 2021-08-12 03:16:57 | <euouae> | I have some misunderstanding with regards to how it works, I understand the high-level idea |
| 2021-08-12 03:17:25 | <Cale> | traverse uses the given function to turn the elements of the given container into actions |
| 2021-08-12 03:17:29 | <euouae> | Luckily the Base docs have a good section called 'Construction' that addresses exactly what I am puzzled with |
| 2021-08-12 03:17:36 | × | Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Read error: Connection reset by peer) |
| 2021-08-12 03:17:44 | → | Matthias_ joins (~Matthias1@2603-8001-b545-4900-3152-055a-7434-14e0.res6.spectrum.com) |
| 2021-08-12 03:17:54 | <Cale> | ah, yeah |
| 2021-08-12 03:18:04 | <euouae> | Cale: Should the boldface in https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Traversable.html#g:9 be changed with inline code instead? |
| 2021-08-12 03:18:20 | <euouae> | This is a minor question but I'm curious if I should bother with a PR |
| 2021-08-12 03:18:27 | <Cale> | You mean the 'a'? |
| 2021-08-12 03:18:53 | <euouae> | "We can view a partially built structure *t0 :: T a* as a function *append :: a -> T a* that takes one more element *a* " |
| 2021-08-12 03:19:06 | <Cale> | I think that might already be inline code, it's just formatted as bold fixed-width text |
| 2021-08-12 03:19:27 | <euouae> | I don't think it's consistent with other parts of the docs |
| 2021-08-12 03:19:51 | <euouae> | Maybe it is. Idk |
| 2021-08-12 03:20:59 | <Cale> | If you're already familiar with IO and do-notation to some extent, it might help to see a specialisation like: |
| 2021-08-12 03:21:07 | <Cale> | traverse :: [IO a] -> IO [a] |
| 2021-08-12 03:21:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-08-12 03:21:12 | <Cale> | traverse [] = return [] |
| 2021-08-12 03:21:23 | <Cale> | oops |
| 2021-08-12 03:21:27 | <Cale> | traverse f [] = return [] |
| 2021-08-12 03:21:49 | <Cale> | traverse f (x:xs) = do v <- f x; vs <- traverse f xs; return (v:vs) |
| 2021-08-12 03:22:04 | <euouae> | I get that one |
| 2021-08-12 03:22:10 | <euouae> | the issue I had is some argument with >> I brought up |
| 2021-08-12 03:22:26 | <euouae> | It had to do with `sequence` and State |
| 2021-08-12 03:22:41 | <euouae> | I'm not going to get into it right now before I read that section, but I have another question |
| 2021-08-12 03:22:59 | <euouae> | Do you think the type for `append` is wrong? Should it be `append :: T a -> a -> T a` instead of `append :: a -> T a` |
| 2021-08-12 03:23:10 | × | Matthias_ quits (~Matthias1@2603-8001-b545-4900-3152-055a-7434-14e0.res6.spectrum.com) (Remote host closed the connection) |
All times are in UTC.