Logs: liberachat/#haskell
| 2021-08-24 23:37:10 | <hpc> | depend on mtl, and it depends on transformers |
| 2021-08-24 23:38:10 | <aegon> | kk, thanks. Wierd, saw some stack overflow about one being a replacement for the other with monads-fd / monads-tf |
| 2021-08-24 23:38:38 | <geekosaur> | mtl is more or less monads-fd |
| 2021-08-24 23:39:08 | <geekosaur> | monads-tf was an old experimental alternative implementation |
| 2021-08-24 23:39:32 | <geekosaur> | both were based on transformers iirc |
| 2021-08-24 23:39:42 | <hpc> | yeah, monads-tf depends on transformers too |
| 2021-08-24 23:40:21 | <hpc> | fd = functional dependencies, tf = type families |
| 2021-08-24 23:41:04 | → | chris joins (~chris@81.96.113.213) |
| 2021-08-24 23:41:07 | chris | is now known as Guest4855 |
| 2021-08-24 23:44:19 | <aegon> | hpc: geekosaur: thanks for demystifying things |
| 2021-08-24 23:47:27 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 240 seconds) |
| 2021-08-24 23:48:16 | <monochrom> | There was a historical point of reorganization, before which mtl and transformers were repeating the same labour, after which they divided the labour. |
| 2021-08-24 23:48:27 | → | dextaa joins (~DV@user/dextaa) |
| 2021-08-24 23:49:58 | × | sjb0 quits (~stephen@1.145.81.71) (Read error: Connection reset by peer) |
| 2021-08-24 23:54:58 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
| 2021-08-24 23:55:19 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
| 2021-08-24 23:55:44 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 00:00:07 | × | Guest4855 quits (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
| 2021-08-25 00:00:47 | <hseg> | 5 stages of ghc errors: denial, frustration, realization, perseverance, giving up |
| 2021-08-25 00:02:46 | <hseg> | case in question: thought my type family was injective, not considering eg that (/\x. f x -> f x) a ~ (/\x. f a -> x) (f a) |
| 2021-08-25 00:03:31 | <aegon> | is there any difference performance wise between let and where blocks? |
| 2021-08-25 00:05:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a8c1:f34:41fc:ef3d) |
| 2021-08-25 00:06:17 | ← | delYsid parts (~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50)) |
| 2021-08-25 00:07:15 | → | chris joins (~chris@81.96.113.213) |
| 2021-08-25 00:07:19 | chris | is now known as Guest1826 |
| 2021-08-25 00:07:29 | → | sjb0 joins (~stephen@2001:8004:5160:3989:12e9:dcb3:94a7:de9e) |
| 2021-08-25 00:13:47 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
| 2021-08-25 00:15:03 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
| 2021-08-25 00:18:36 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 00:20:08 | <aegon> | is there a way to write this 'cleaner' (remove the dangling return line) https://paste.tomsmeding.com/zlHD7XMQ |
| 2021-08-25 00:20:44 | <aegon> | these two line do blocks come up now an again and I can't help feeling like i'm missing an opportunity for applicative but i also cant find the right syntax to make it work |
| 2021-08-25 00:21:07 | <aegon> | i could see how if there were a lens for it |
| 2021-08-25 00:21:39 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 2021-08-25 00:24:40 | <glguy> | aegon: looks good |
| 2021-08-25 00:29:27 | × | alx741 quits (~alx741@186.178.108.43) (Ping timeout: 250 seconds) |
| 2021-08-25 00:30:40 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 2021-08-25 00:31:20 | → | davincee joins (~da1dude@112.201.99.74) |
| 2021-08-25 00:34:41 | × | d0ku quits (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds) |
| 2021-08-25 00:34:47 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 2021-08-25 00:36:26 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 2021-08-25 00:36:27 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2021-08-25 00:37:40 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2021-08-25 00:37:50 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-08-25 00:41:27 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 2021-08-25 00:42:43 | → | alx741 joins (~alx741@186.178.109.43) |
| 2021-08-25 00:42:55 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-08-25 00:48:10 | <hseg> | dminuoso: so otoh, managed to build my vararg type coercer. http://ix.io/3wSp otoh: a) it is unwieldy to use b) since you can't apply type synonyms, the main use case is inexpressible c) just realized it targets the wrong field anyway |
| 2021-08-25 00:48:29 | <hseg> | d) it's ugly as sin |
| 2021-08-25 00:54:06 | → | fawful joins (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
| 2021-08-25 00:55:08 | → | d0ku joins (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) |
| 2021-08-25 00:57:04 | <hseg> | guess if I was interested in shaving this yak, might want to look into TH'ing this code, but am burnt out on this refactor |
| 2021-08-25 00:57:17 | <hseg> | especially considering I have other stuff to do |
| 2021-08-25 00:57:25 | <hseg> | thanks for the help, anyway! |
| 2021-08-25 00:57:28 | × | hseg quits (~gesh@IGLD-84-228-238-79.inter.net.il) (Quit: WeeChat 3.2) |
| 2021-08-25 01:08:12 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 2021-08-25 01:11:13 | × | charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 252 seconds) |
| 2021-08-25 01:12:40 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 2021-08-25 01:14:37 | → | charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com) |
| 2021-08-25 01:16:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 2021-08-25 01:18:47 | × | pbrisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds) |
| 2021-08-25 01:21:08 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 01:31:44 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 2021-08-25 01:39:11 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 01:39:51 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-08-25 01:41:23 | × | xff0x quits (~xff0x@2001:1a81:5333:b100:677b:385:c244:5fff) (Ping timeout: 250 seconds) |
| 2021-08-25 01:43:29 | → | xff0x joins (~xff0x@2001:1a81:536c:3300:eddd:cb7:2ef2:f526) |
| 2021-08-25 01:44:25 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 2021-08-25 01:46:27 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 2021-08-25 01:49:11 | × | d0ku quits (~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 250 seconds) |
| 2021-08-25 01:50:41 | × | sjb0 quits (~stephen@2001:8004:5160:3989:12e9:dcb3:94a7:de9e) (Quit: Leaving.) |
| 2021-08-25 01:57:07 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
| 2021-08-25 02:03:40 | → | keutoi joins (~keutoi@157.47.90.161) |
| 2021-08-25 02:03:48 | × | venue quits (~venue@user/venue) (Ping timeout: 250 seconds) |
| 2021-08-25 02:05:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-08-25 02:05:50 | × | obs\ quits (~obscur1ty@user/obs/x-5924898) (Read error: Connection reset by peer) |
| 2021-08-25 02:06:07 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 02:09:31 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 2021-08-25 02:14:45 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 2021-08-25 02:19:07 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 2021-08-25 02:21:19 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 2021-08-25 02:23:17 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 02:24:11 | <thornAvery> | im writing my command line arguments at the moment, and i have a bunch of functions of type `foo :: IO (Either (IO ()) Bar)`, in that i have actions that will end the program (either successfully or unsuccessfully), and if it gets to the end of all the steps without ending execution, i get a validetd `Bar` at the end. im finding ive got a lot of ugly nested cases for this, and i feel like theres a much |
| 2021-08-25 02:24:11 | <thornAvery> | better way of writing it, is this somethnig i can nest the Either monad inside of to get it looking nicer? |
| 2021-08-25 02:25:26 | <thornAvery> | use case is im taking in my options (which may fail if the options dont parse or if theres an unknown one), then if it didnt fail i want to check if the help flag is set, and if so print help and stop execution, then only if the help flag wasnt set do i want to do a second round of validation, failing with an error or returning the validated options for the rest of my program to use |
| 2021-08-25 02:29:55 | × | azeem quits (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
| 2021-08-25 02:30:09 | → | famubu joins (~famubu@user/famubu) |
| 2021-08-25 02:30:21 | → | azeem joins (~azeem@176.201.15.223) |
| 2021-08-25 02:31:14 | <thornAvery> | I think I wanna use a monad transformer here? |
| 2021-08-25 02:32:01 | → | dajoer joins (~david@user/gvx) |
| 2021-08-25 02:32:05 | <famubu> | Hi. When we do `a = 1:a`, how does haskell figure out the initial value of `a`? I guess it's got something to do with lazy evaluation but when it does get evaluated, how is value for `1:a` found out when `a` has no initial value? (I'm new to Haskell). |
| 2021-08-25 02:32:26 | <famubu> | Resultant `a` would be an infinte list of `1`s. |
| 2021-08-25 02:33:40 | <Axman6> | that's just a cyclic definition, the tail of the list points to the cons that is the definiton of a |
| 2021-08-25 02:34:50 | <Axman6> | a = (:) 1 a is the same but uusing prefix syntax, which shows that a is a cons constructor which points to 1 and a. so this will be infinite but take up very little memory |
| 2021-08-25 02:36:27 | × | td_ quits (~td@94.134.91.225) (Ping timeout: 240 seconds) |
| 2021-08-25 02:38:35 | → | td_ joins (~td@muedsl-82-207-238-244.citykom.de) |
| 2021-08-25 02:41:46 | <famubu> | Axman6: Okay, so the 'initial value' of `a` is not really needed because it's the `cons` that's being appended to. Is it something like that? |
| 2021-08-25 02:42:28 | <famubu> | Is there some place where we can read more about this? I guess this is a beginner doubt and possibly a well-asked one. |
| 2021-08-25 02:42:45 | <dsal> | famubu: It's easier if you don't have a programming background. :) |
| 2021-08-25 02:42:53 | <dsal> | The list a is 1 followed by the list a. |
| 2021-08-25 02:43:04 | → | venue joins (~venue@user/venue) |
All times are in UTC.