2021-08-20 00:03:37 +0200 | tt1 | (~User@pd9e4fba0.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-08-20 00:07:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 00:07:53 +0200 | tt1 | (~User@pd9e4fba0.dip0.t-ipconnect.de) |
2021-08-20 00:14:35 +0200 | tt1 | (~User@pd9e4fba0.dip0.t-ipconnect.de) (Quit: tt1) |
2021-08-20 00:16:45 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Quit: WeeChat 3.2) |
2021-08-20 00:20:36 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 00:20:51 +0200 | stefan-_ | (~cri@42dots.de) |
2021-08-20 00:21:43 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-20 00:32:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 00:38:35 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-08-20 00:41:54 +0200 | dzdcnfzd | (~anthonygr@104.132.34.65) (Quit: leaving) |
2021-08-20 00:51:00 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-08-20 00:52:13 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 00:53:18 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b950070172e7c3c578523.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-20 00:54:10 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2021-08-20 00:56:20 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 250 seconds) |
2021-08-20 00:57:16 +0200 | Gurkenglas_ | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-20 00:59:51 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 01:00:00 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 01:00:16 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-08-20 01:00:17 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-20 01:04:34 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-20 01:04:40 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-08-20 01:06:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-20 01:07:13 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 248 seconds) |
2021-08-20 01:08:30 +0200 | dajoer | (~david@user/gvx) |
2021-08-20 01:09:18 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-20 01:10:10 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 01:13:55 +0200 | jgeerds | (~jgeerds@55d473da.access.ecotel.net) |
2021-08-20 01:15:45 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 01:15:46 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-08-20 01:16:53 +0200 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 252 seconds) |
2021-08-20 01:18:25 +0200 | jgeerds | (~jgeerds@55d473da.access.ecotel.net) (Ping timeout: 248 seconds) |
2021-08-20 01:19:53 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-08-20 01:20:36 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-08-20 01:21:34 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-20 01:23:36 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-08-20 01:31:29 +0200 | bgamari | (~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-08-20 01:36:11 +0200 | bgamari | (~bgamari@2001:470:e438::1) |
2021-08-20 01:42:08 +0200 | Reyu[M] | (~reyureyuz@matrix.reyuzenfold.com) (Remote host closed the connection) |
2021-08-20 01:44:16 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) (Ping timeout: 252 seconds) |
2021-08-20 01:50:04 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-08-20 01:52:13 +0200 | Reyu[M] | (~reyureyuz@matrix.reyuzenfold.com) |
2021-08-20 02:01:47 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds) |
2021-08-20 02:02:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-20 02:03:30 +0200 | Gurkenglas_ | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
2021-08-20 02:16:42 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-08-20 02:20:41 +0200 | Reyu[M] | (~reyureyuz@matrix.reyuzenfold.com) (Read error: Connection reset by peer) |
2021-08-20 02:21:09 +0200 | alx741 | (~alx741@181.196.69.234) |
2021-08-20 02:23:18 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-20 02:25:47 +0200 | <lechner> | Hi, I struggle with conditionals. Is it possible, in principle, to assign different values to the same variable, depending on a condition? I know only how to branch execution with Either. Thanks! |
2021-08-20 02:27:25 +0200 | <geekosaur> | > let bar = 5; foo | bar < 5 = 2 | otherwise = 1 in foo |
2021-08-20 02:27:27 +0200 | <lambdabot> | 1 |
2021-08-20 02:27:39 +0200 | <geekosaur> | > let bar = 4; foo | bar < 5 = 2 | otherwise = 1 in foo |
2021-08-20 02:27:40 +0200 | <lambdabot> | 2 |
2021-08-20 02:27:43 +0200 | <Axman6> | foo = = case something of Left x -> ...; Right y -> ... |
2021-08-20 02:27:59 +0200 | <Axman6> | foo = if cond then a else b |
2021-08-20 02:28:22 +0200 | <alexfmpe[m]> | > bool 1 2 True |
2021-08-20 02:28:24 +0200 | <lambdabot> | 2 |
2021-08-20 02:30:12 +0200 | <dsal> | lechner: Also, your variables don't. :) Do you have an example of what you'd like to see? |
2021-08-20 02:30:43 +0200 | <lechner> | dsal: that was exactly my issue! |
2021-08-20 02:30:55 +0200 | <lechner> | geekosaur: okay, that looks very Haskell-y. thanks! |
2021-08-20 02:32:15 +0200 | <lechner> | Axman6: i think ignored the "if then else" construct so far, for fear of falling into old harits |
2021-08-20 02:32:22 +0200 | <lechner> | habits |
2021-08-20 02:32:47 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 02:33:00 +0200 | <Axman6> | if is basically jjust syntax sugar for case cond of True -> a; False -> b (and will compile to exactly that) |
2021-08-20 02:33:24 +0200 | <Axman6> | we don't have the less safe if-then, only if-then-else |
2021-08-20 02:33:45 +0200 | <lechner> | Axman6: thanks for that explanation! |
2021-08-20 02:33:46 +0200 | <Axman6> | but yes, if you can use something more meaningful like a case statement on constructors with more meaningful names, do that |
2021-08-20 02:34:09 +0200 | <Axman6> | prefer case x of Nothing -> ... over if x == Nothing then ... |
2021-08-20 02:34:59 +0200 | <lechner> | it looks like haskell actually has everything other languages have, and more |
2021-08-20 02:35:15 +0200 | <dsal> | Haskell's missing a lot of things that makes it harder to replicate certain bugs. |
2021-08-20 02:35:18 +0200 | <lechner> | as usual, my brain is the problem |
2021-08-20 02:35:44 +0200 | <Axman6> | you can write PHP in any language though, C too, yes even in Haskell |
2021-08-20 02:36:30 +0200 | <dsal> | You can spin up a bunch of IORefs and make sure everything in your program runs in IO and has them in scope. It's just harder than doing something sensible. :) |
2021-08-20 02:37:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-20 02:38:09 +0200 | jacks2 | (~bc8167eb@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-08-20 02:38:21 +0200 | <lechner> | dsal: i am slowly translating my Perl. according to emily p's recent podcast Perl is a common gateway drug at minute 4:00 https://www.buzzsprout.com/1817535/8984158-01-emily-pillmore |
2021-08-20 02:39:23 +0200 | <lechner> | dsal: $commitish here was giving me hives https://salsa.debian.org/lintian/kickoff/-/blob/master/add-lintian-tags#L112-134 |
2021-08-20 02:39:26 +0200 | <dsal> | Interesting. I've not intentionally touched perl in a probably 20 years. |
2021-08-20 02:39:36 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 02:39:44 +0200 | <lechner> | i inherited it |
2021-08-20 02:40:35 +0200 | <lechner> | but the lack of typing drove me over here |
2021-08-20 02:42:13 +0200 | <lechner> | dsal: you programmed Haskell for twenty years? |
2021-08-20 02:42:17 +0200 | <dsal> | `committish <- computeCommttish (intercalate "." [major, minor, "0"]) patch` |
2021-08-20 02:42:49 +0200 | <dsal> | Woah. My oldest haskell code is almost that old. But no, most of the last 20 years, I've been doing other random junk. |
2021-08-20 02:43:32 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 02:43:53 +0200 | <dsal> | I haven't done very serious haskell until a few years ago. |
2021-08-20 02:51:40 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-08-20 02:54:47 +0200 | <lechner> | dsal: unbelievable, one line! which OS do you use? |
2021-08-20 02:55:13 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-20 02:55:39 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-20 02:58:35 +0200 | <janus> | is there a commonly used name for 'flip foldMap' ? |
2021-08-20 03:01:35 +0200 | <janus> | i really only need it for Maybe, and then the name "whenJust" makes sense. but that is already used in Neil Mitchell's extra package, where it returns 'm ()' (so it's not really the same at all) |
2021-08-20 03:02:07 +0200 | <janus> | whenJustOrMempty? argh it sounds horrible |
2021-08-20 03:03:03 +0200 | <Axman6> | :t fold foldMap |
2021-08-20 03:03:04 +0200 | <lambdabot> | (Monoid m, Foldable t, Foldable ((->) (a -> m))) => t a -> m |
2021-08-20 03:03:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 03:03:20 +0200 | <Axman6> | :t flip foldMap -- oops |
2021-08-20 03:03:21 +0200 | <lambdabot> | (Foldable t, Monoid c) => t a -> (a -> c) -> c |
2021-08-20 03:04:35 +0200 | <janus> | % :m +Data.Foldable +Data.Monoid |
2021-08-20 03:04:35 +0200 | <yahb> | janus: syntax: :module [+/-] [*]M1 ... [*]Mn |
2021-08-20 03:04:52 +0200 | <janus> | hmm, dunno why that is not working |
2021-08-20 03:05:01 +0200 | <janus> | % foldMap Sum Nothing :: Sum Int |
2021-08-20 03:05:01 +0200 | <yahb> | janus: Sum {getSum = 0} |
2021-08-20 03:05:10 +0200 | <janus> | % foldMap Sum (Just 5) :: Sum Int |
2021-08-20 03:05:10 +0200 | <yahb> | janus: Sum {getSum = 5} |
2021-08-20 03:05:56 +0200 | <janus> | but i really wanted to use it in an HTML AST of an Elm AST, to render optionally available elements |
2021-08-20 03:06:10 +0200 | <janus> | s/Elm AST/Elm clone/ |
2021-08-20 03:06:33 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 03:06:47 +0200 | <janus> | so the rendering function is way larger than the maybe (which comes from the model). that's why the flip makes sense |
2021-08-20 03:07:14 +0200 | <janus> | similar to how the State functions have flipped versions available |
2021-08-20 03:08:59 +0200 | shailangsa | (~shailangs@host86-145-14-24.range86-145.btcentralplus.com) (Ping timeout: 268 seconds) |
2021-08-20 03:09:45 +0200 | <janus> | maybe i should just write a letter to Neil and ask him to rename his function and break everybody's code, pretty please :P |
2021-08-20 03:10:22 +0200 | <dsal> | @hoogle whenJust |
2021-08-20 03:10:23 +0200 | <lambdabot> | Control.Monad.Extra whenJust :: Applicative m => Maybe a -> (a -> m ()) -> m () |
2021-08-20 03:10:23 +0200 | <lambdabot> | Extra whenJust :: Applicative m => Maybe a -> (a -> m ()) -> m () |
2021-08-20 03:10:23 +0200 | <lambdabot> | Data.GI.Base.Utils whenJust :: Monad m => Maybe a -> (a -> m ()) -> m () |
2021-08-20 03:10:40 +0200 | <dsal> | :t traverse |
2021-08-20 03:10:41 +0200 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2021-08-20 03:10:55 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-08-20 03:11:06 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-20 03:11:14 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-08-20 03:12:02 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-08-20 03:12:20 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-08-20 03:13:21 +0200 | <dsal> | Giving stuff a local name isn't a bad idea. |
2021-08-20 03:13:42 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
2021-08-20 03:15:16 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 03:15:41 +0200 | <janus> | even if the name is clashing with another well known function ;) ? |
2021-08-20 03:15:42 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-20 03:16:02 +0200 | <janus> | i could call it whenJustF because of the foldable. but the F usually means functor, right? so even more confusing |
2021-08-20 03:16:35 +0200 | Danishman | (~Allan@2-104-144-110-cable.dk.customer.tdc.net) |
2021-08-20 03:17:06 +0200 | <janus> | oh well, if i put Just in the name, the F is wrong anyway, it is already constraint to a specific Foldable... |
2021-08-20 03:19:17 +0200 | <janus> | onJust? hmmm... it has nothing to do with `on` from Data.Function o_O |
2021-08-20 03:19:25 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 252 seconds) |
2021-08-20 03:19:47 +0200 | <janus> | can't use "ifJust", functions with "if" are expected to run on Bools |
2021-08-20 03:22:32 +0200 | keutoi | (~keutoi@157.48.195.127) |
2021-08-20 03:22:41 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 248 seconds) |
2021-08-20 03:27:32 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-08-20 03:30:48 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-20 03:33:55 +0200 | <monochrom> | Life hack: If you use snake case, you will not clash with the standard library, or any library for that matter. |
2021-08-20 03:37:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-20 03:38:24 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-20 03:41:46 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds) |
2021-08-20 03:42:50 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-20 03:44:37 +0200 | xff0x | (~xff0x@2001:1a81:53ce:4000:6528:22c2:50dd:57c1) (Ping timeout: 245 seconds) |
2021-08-20 03:46:28 +0200 | xff0x | (~xff0x@2001:1a81:5207:3100:ba2d:6a43:7e07:c407) |
2021-08-20 03:47:40 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds) |
2021-08-20 03:48:10 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-20 03:48:45 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 03:53:28 +0200 | sleblanc | (~sleblanc@user/sleblanc) |
2021-08-20 03:55:56 +0200 | <Axman6> | you might clash with style guides and other developers however |
2021-08-20 03:57:54 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
2021-08-20 04:00:54 +0200 | <dsal> | I have `justM :: Monad m => (a -> m ()) -> Maybe a -> m ()` |
2021-08-20 04:01:13 +0200 | wrengr | wrengr_away |
2021-08-20 04:01:35 +0200 | <Cajun> | snake case also gets hlint mad :P |
2021-08-20 04:01:49 +0200 | <dsal> | It makes sense in my codebase. I don't know that I would worry about a thing a person somewhere did. |
2021-08-20 04:02:19 +0200 | wrengr_away | (~wrengr@56.4.82.34.bc.googleusercontent.com) (Quit: leaving) |
2021-08-20 04:02:48 +0200 | <dsal> | (that function, btw, is `traverse_` but it's clearly more readable in my codebase as `justM`) |
2021-08-20 04:02:59 +0200 | wrengr | (~wrengr@56.4.82.34.bc.googleusercontent.com) |
2021-08-20 04:03:55 +0200 | wrengr | wrengr_away |
2021-08-20 04:05:40 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Ping timeout: 240 seconds) |
2021-08-20 04:21:48 +0200 | alx741 | (~alx741@181.196.69.234) (Quit: alx741) |
2021-08-20 04:23:13 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
2021-08-20 04:25:08 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-08-20 04:25:50 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-08-20 04:39:36 +0200 | mmalter | (~mmalter@88.171.43.194) (Quit: Lost terminal) |
2021-08-20 04:41:57 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 04:42:10 +0200 | td_ | (~td@94.134.91.118) (Ping timeout: 240 seconds) |
2021-08-20 04:46:52 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-08-20 04:49:03 +0200 | td_ | (~td@94.134.91.77) |
2021-08-20 04:56:08 +0200 | <dsal> | lechner: macos and nixos |
2021-08-20 05:00:26 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) (Remote host closed the connection) |
2021-08-20 05:00:47 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) |
2021-08-20 05:06:35 +0200 | vysn | (~vysn@user/vysn) |
2021-08-20 05:06:57 +0200 | bakinonion[m] | (~bakinonio@2001:470:69fc:105::ddb3) |
2021-08-20 05:21:38 +0200 | slack1256 | (~slack1256@191.125.37.143) |
2021-08-20 05:25:33 +0200 | Guest9886 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-20 05:26:28 +0200 | otto_s | (~user@p5de2f223.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-08-20 05:28:18 +0200 | aegon | (~mike@174.127.249.180) (Quit: leaving) |
2021-08-20 05:28:21 +0200 | otto_s | (~user@p5de2f5f0.dip0.t-ipconnect.de) |
2021-08-20 05:28:55 +0200 | dsrt^ | (~dsrt@209.65.131.194) |
2021-08-20 05:33:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 05:37:25 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-08-20 05:45:00 +0200 | drstripedsocks | (~aaashutos@113.199.180.28) |
2021-08-20 05:45:29 +0200 | drstripedsocks | (~aaashutos@113.199.180.28) (Client Quit) |
2021-08-20 05:53:31 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 05:55:27 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-08-20 05:56:03 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 05:57:31 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 05:58:00 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-08-20 06:01:00 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) |
2021-08-20 06:03:38 +0200 | <lechner> | dsal: bummer, i had hoped to win you as a debian contributor. so much talent! |
2021-08-20 06:07:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-20 06:09:22 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-08-20 06:17:04 +0200 | sleblanc | (~sleblanc@user/sleblanc) (Ping timeout: 252 seconds) |
2021-08-20 06:41:10 +0200 | t0zy | (~t0zy@49.207.220.61) (Ping timeout: 240 seconds) |
2021-08-20 06:41:55 +0200 | t0zy | (~t0zy@2402:3a80:d00:f3c6::3fd7:9319) |
2021-08-20 06:51:51 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 06:56:10 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
2021-08-20 06:56:15 +0200 | shailangsa | (~shailangs@host86-186-136-25.range86-186.btcentralplus.com) |
2021-08-20 06:57:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-08-20 07:02:03 +0200 | slack1256 | (~slack1256@191.125.37.143) (Remote host closed the connection) |
2021-08-20 07:08:14 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-20 07:09:42 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-08-20 07:14:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 07:19:13 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-08-20 07:24:10 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-08-20 07:27:40 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2021-08-20 07:30:35 +0200 | kstuart | (~user@185.92.25.246) |
2021-08-20 07:30:40 +0200 | xff0x | (~xff0x@2001:1a81:5207:3100:ba2d:6a43:7e07:c407) (Ping timeout: 240 seconds) |
2021-08-20 07:31:11 +0200 | cheater | (~Username@user/cheater) |
2021-08-20 07:31:39 +0200 | xff0x | (~xff0x@2001:1a81:5207:3100:686a:e8fd:47a9:633d) |
2021-08-20 07:32:49 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 248 seconds) |
2021-08-20 07:35:52 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Ping timeout: 245 seconds) |
2021-08-20 07:41:07 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-20 07:41:40 +0200 | Danishman | (~Allan@2-104-144-110-cable.dk.customer.tdc.net) (Quit: Leaving) |
2021-08-20 07:42:13 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Client Quit) |
2021-08-20 07:51:04 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-08-20 07:52:12 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-08-20 07:57:35 +0200 | img | (~img@user/img) |
2021-08-20 07:58:40 +0200 | t0zy | (~t0zy@2402:3a80:d00:f3c6::3fd7:9319) (Ping timeout: 240 seconds) |
2021-08-20 08:04:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 08:06:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 08:08:26 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-20 08:11:32 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-20 08:11:45 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds) |
2021-08-20 08:11:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-20 08:12:08 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2021-08-20 08:15:04 +0200 | Megant | (megant@user/megant) (Ping timeout: 268 seconds) |
2021-08-20 08:16:23 +0200 | Megant | (megant@user/megant) |
2021-08-20 08:28:28 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 08:30:21 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-08-20 08:34:24 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-08-20 08:34:48 +0200 | keutoi | (~keutoi@157.48.195.127) (Ping timeout: 250 seconds) |
2021-08-20 08:36:51 +0200 | keutoi | (~keutoi@157.48.195.127) |
2021-08-20 08:38:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-20 08:40:04 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
2021-08-20 08:40:12 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 08:40:16 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-08-20 08:44:20 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 250 seconds) |
2021-08-20 08:56:54 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 250 seconds) |
2021-08-20 08:58:38 +0200 | azeem | (~azeem@176.200.243.66) |
2021-08-20 09:00:43 +0200 | azeem | (~azeem@176.200.243.66) (Read error: Connection reset by peer) |
2021-08-20 09:01:22 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) |
2021-08-20 09:02:10 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-20 09:03:52 +0200 | lortabac | (~lortabac@62.98.47.131) |
2021-08-20 09:04:04 +0200 | amk | (~amk@109.255.169.126) |
2021-08-20 09:07:36 +0200 | fendor | (~fendor@213162073025.public.t-mobile.at) |
2021-08-20 09:09:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 09:14:14 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-08-20 09:22:59 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-08-20 09:24:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-08-20 09:29:00 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 09:31:23 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b950070172e7c3c578523.dip0.t-ipconnect.de) |
2021-08-20 09:33:18 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds) |
2021-08-20 09:35:31 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-08-20 09:37:56 +0200 | kuribas | (~user@ptr-25vy0i7hpbjw2llku95.18120a2.ip6.access.telenet.be) |
2021-08-20 09:37:57 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-08-20 09:39:01 +0200 | MQ-17J | (~MQ-17J@8.6.144.209) |
2021-08-20 09:40:28 +0200 | ubert | (~Thunderbi@178.115.64.138.wireless.dyn.drei.com) |
2021-08-20 09:40:49 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2021-08-20 09:42:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 09:48:32 +0200 | <kuribas> | Why does this work: (set #specific_fields () . set #annotations ()) dm |
2021-08-20 09:48:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 09:48:56 +0200 | <kuribas> | But not this? set (#specific_fields `adjoin` #annotations) () |
2021-08-20 09:49:14 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-20 09:49:19 +0200 | <kuribas> | both #specific_fields and #annotations are (polymorphic) fields. |
2021-08-20 09:49:37 +0200 | <kuribas> | So the label should be lenses, which can be joined as traversals, right? |
2021-08-20 09:52:48 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) (Remote host closed the connection) |
2021-08-20 09:52:59 +0200 | mousey | (~skymouse@gateway/tor-sasl/mousey) |
2021-08-20 09:54:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-20 09:56:18 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 10:00:39 +0200 | ubert1 | (~Thunderbi@178.115.64.138.wireless.dyn.drei.com) |
2021-08-20 10:01:19 +0200 | <c_wraith> | kuribas: the type of adjoin prevents polymorphic optics |
2021-08-20 10:01:29 +0200 | <c_wraith> | @let import Control.Lens.Unsound |
2021-08-20 10:01:30 +0200 | <lambdabot> | Defined. |
2021-08-20 10:01:33 +0200 | <c_wraith> | :t adjoin |
2021-08-20 10:01:34 +0200 | <lambdabot> | Applicative f => Traversal' s a -> Traversal' s a -> (a -> f a) -> s -> f s |
2021-08-20 10:01:46 +0200 | <c_wraith> | those are monomorphic |
2021-08-20 10:03:07 +0200 | bebenon | (~bebenon@5.44.169.233) |
2021-08-20 10:03:40 +0200 | ubert | (~Thunderbi@178.115.64.138.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2021-08-20 10:03:40 +0200 | ubert1 | ubert |
2021-08-20 10:04:02 +0200 | bebenon | (~bebenon@5.44.169.233) (Client Quit) |
2021-08-20 10:04:15 +0200 | <kuribas> | c_wraith: ah right, thanks! |
2021-08-20 10:04:16 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-08-20 10:04:28 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-08-20 10:04:37 +0200 | <kuribas> | c_wraith: btw, this is Optics... |
2021-08-20 10:05:03 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-08-20 10:05:07 +0200 | <c_wraith> | can't tell by the code you provided, which is the same with either |
2021-08-20 10:05:25 +0200 | <kuribas> | yeah, it's the same problem |
2021-08-20 10:05:36 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-08-20 10:05:49 +0200 | <kuribas> | Using two set is probably better anyway, but I wanted to know why it failed. |
2021-08-20 10:06:53 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) |
2021-08-20 10:08:03 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-20 10:08:04 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-08-20 10:08:04 +0200 | <kuribas> | It seems rather easy to go from lenses to optics. |
2021-08-20 10:08:28 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-20 10:08:31 +0200 | <kuribas> | Optics seem cleaner, especially when using labels. |
2021-08-20 10:08:32 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-08-20 10:08:42 +0200 | gentauro_ | (~gentauro@185.107.12.141) |
2021-08-20 10:09:04 +0200 | gentauro_ | (~gentauro@185.107.12.141) (Client Quit) |
2021-08-20 10:09:24 +0200 | gentauro_ | (~gentauro@185.107.12.141) |
2021-08-20 10:09:24 +0200 | gentauro_ | (~gentauro@185.107.12.141) (Client Quit) |
2021-08-20 10:12:09 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-20 10:14:07 +0200 | vpan | (~vilius@212.117.1.172) |
2021-08-20 10:17:39 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-20 10:17:39 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-20 10:17:42 +0200 | allbery_b | geekosaur |
2021-08-20 10:22:45 +0200 | dunj3 | (~dunj3@2001:16b8:30a8:2000:7c3b:4a4d:e83e:847a) |
2021-08-20 10:26:57 +0200 | aman | (~aman@user/aman) (Ping timeout: 258 seconds) |
2021-08-20 10:26:57 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer) |
2021-08-20 10:27:24 +0200 | aman | (aman@user/aman) |
2021-08-20 10:27:50 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-08-20 10:27:58 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:1cfd:5590:1382:edd9) |
2021-08-20 10:33:45 +0200 | burnside_ | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-08-20 10:34:22 +0200 | burnside_ | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 10:34:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-08-20 10:35:00 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 10:36:46 +0200 | tput | (~tim@S0106a84e3fe54613.ed.shawcable.net) (Remote host closed the connection) |
2021-08-20 10:37:11 +0200 | tput | (~tim@S0106a84e3fe54613.ed.shawcable.net) |
2021-08-20 10:38:42 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-08-20 10:40:57 +0200 | Obo | (~roberto@h-46-59-103-134.a498.priv.bahnhof.se) |
2021-08-20 10:50:10 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 240 seconds) |
2021-08-20 10:57:27 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-08-20 10:59:12 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) (Ping timeout: 245 seconds) |
2021-08-20 11:02:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-20 11:05:37 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
2021-08-20 11:06:07 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-08-20 11:06:57 +0200 | Guest610 | (~Guest6@115.98.232.12) |
2021-08-20 11:07:20 +0200 | <Guest610> | hi .. I am a newbie to haskell.. just started with LYAH |
2021-08-20 11:07:33 +0200 | <[exa]> | hi, welcome! |
2021-08-20 11:08:25 +0200 | <Guest610> | Is this the right forum for a beginner to ask questions on haskell ? |
2021-08-20 11:08:35 +0200 | <[exa]> | yes |
2021-08-20 11:09:30 +0200 | <[exa]> | if there's a lot of traffic here with categories thrown all around the place (currently not the case as you see), there is a dedicated beginner channel, but I guess it's always better to ask here |
2021-08-20 11:09:44 +0200 | <Guest610> | thanks |
2021-08-20 11:09:59 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-08-20 11:10:22 +0200 | <Guest610> | I have a list of tuples to which i want to merge a list of integers and create a new list |
2021-08-20 11:10:50 +0200 | <Guest610> | alist = [("a",1,2), ("b",5,6)] blist = [4,8] newList = zip alist blist.. which gives [(("a",1,2),4),(("b",5,6),8)] which does not get the element inside the tuple. |
2021-08-20 11:10:51 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-08-20 11:11:26 +0200 | <[exa]> | yeah, `zip` always constructs 2-tuples |
2021-08-20 11:11:52 +0200 | <Guest610> | how do i get the output newlist = [("a",1,2,4), ("b",5,6,8)] |
2021-08-20 11:11:57 +0200 | <[exa]> | there might be a function for "flattening" the tuples, but I think you might be better off just making it manually |
2021-08-20 11:12:24 +0200 | <Guest610> | well i have reached only chap 5.. |
2021-08-20 11:12:35 +0200 | <Guest610> | are there some concepts i need to look at |
2021-08-20 11:12:39 +0200 | <[exa]> | > zipWith (\(a,b,c) d -> (a,b,c,d)) [(1,2,'a'), (2,3,'b')] [5,6] |
2021-08-20 11:12:40 +0200 | <lambdabot> | [(1,2,'a',5),(2,3,'b',6)] |
2021-08-20 11:12:43 +0200 | <Guest610> | or is there an in build function |
2021-08-20 11:13:35 +0200 | <[exa]> | does that ^ look fine or should we improve? :] |
2021-08-20 11:14:08 +0200 | <Guest610> | I am sorry to labour on this.. is zipWith and in built function or part of anylibrary or you have custom developed it.. |
2021-08-20 11:14:17 +0200 | <Guest610> | i did not get this on hoogle.. |
2021-08-20 11:14:39 +0200 | <[exa]> | zipWith is a built-in generalization of zip, yes |
2021-08-20 11:15:33 +0200 | <Guest610> | great.. thanks.. |
2021-08-20 11:15:52 +0200 | <[exa]> | if you didn't find it on hoogle...taht would be weird, mine is full of zipWiths |
2021-08-20 11:17:16 +0200 | <Guest610> | sorry my mistake.. the drop down was set to package: |
2021-08-20 11:17:27 +0200 | <[exa]> | np :] |
2021-08-20 11:17:49 +0200 | mastarija | (~mastarija@78-3-210-70.adsl.net.t-com.hr) |
2021-08-20 11:20:02 +0200 | <[exa]> | Guest610: there might be a way to construct that "merging" function from stuff like uncurry3 and curry4 in Data.Tuple.Extra but that might be a bit mindbending exercise at this stage. :] |
2021-08-20 11:21:17 +0200 | <Guest610> | will jot it down..should come in handy by the time i finish the book.. thanks for your help.. |
2021-08-20 11:22:33 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-08-20 11:23:37 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-08-20 11:26:04 +0200 | zer0bitz | (~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi) |
2021-08-20 11:26:38 +0200 | <[exa]> | Guest610: seems like it can be really constructed as such: |
2021-08-20 11:26:44 +0200 | <[exa]> | uncurry3 (curry4 id) :: (a, b, c) -> d -> (a, b, c, d) |
2021-08-20 11:27:08 +0200 | <[exa]> | which corresponds to |
2021-08-20 11:27:36 +0200 | <[exa]> | :t \(a,b,c) d -> (a,b,c,d) |
2021-08-20 11:27:38 +0200 | <lambdabot> | (a, b, c) -> d -> (a, b, c, d) |
2021-08-20 11:27:56 +0200 | <[exa]> | </unneeded_exercise> |
2021-08-20 11:28:05 +0200 | <Guest610> | no .. its useful.. |
2021-08-20 11:28:15 +0200 | <Guest610> | i just have not reached uncurry .. |
2021-08-20 11:30:48 +0200 | <[exa]> | ah okay, worry not then. curry/uncurry is a way to transform functions that work on tuples to functions that work on curry-style multiple parameters, which kindof helped here: I took a function that does nothing (id), assumed it works with tuples and curried it to work with normal parameters (curry4), and then converted the first 3 params of that to work on tuples again (uncurry3) |
2021-08-20 11:31:12 +0200 | <[exa]> | simpler example: |
2021-08-20 11:31:33 +0200 | <[exa]> | > map (uncurry (+)) [(1,2), (5,6)] |
2021-08-20 11:31:35 +0200 | <lambdabot> | [3,11] |
2021-08-20 11:32:13 +0200 | <Guest610> | ok.. |
2021-08-20 11:32:24 +0200 | <Guest610> | so uncurry has the impact of unpacking elements in tuples ?? |
2021-08-20 11:32:56 +0200 | <[exa]> | not erally impact, but you can use it to convert functions from tuple-ish to parameter-ish (and back) |
2021-08-20 11:33:08 +0200 | <[exa]> | :t (+) |
2021-08-20 11:33:08 +0200 | <Guest610> | ok |
2021-08-20 11:33:09 +0200 | <lambdabot> | Num a => a -> a -> a |
2021-08-20 11:33:16 +0200 | <[exa]> | :t uncurry (+) |
2021-08-20 11:33:17 +0200 | <lambdabot> | Num c => (c, c) -> c |
2021-08-20 11:33:44 +0200 | <Guest610> | great |
2021-08-20 11:33:45 +0200 | <[exa]> | (+) takes 2 numeric arguments, `uncurry (+)` takes a 2-tuple argument of numeric stuff |
2021-08-20 11:33:46 +0200 | <Guest610> | thanks |
2021-08-20 11:34:38 +0200 | <Guest610> | map (uncurry (+)) [(1,2,3), (5,6,8)] |
2021-08-20 11:34:58 +0200 | <Guest610> | >map (uncurry (+)) [(1,2,3), (5,6,8)] |
2021-08-20 11:36:11 +0200 | <Guest610> | ok.. |
2021-08-20 11:36:19 +0200 | <[exa]> | probably needs the space behind > |
2021-08-20 11:36:44 +0200 | <[exa]> | anyways this will fail because (+) only takes 2 arguments, not 3 |
2021-08-20 11:37:54 +0200 | <[exa]> | anyway, fun extra exercise: 1] construct `zip` from `zipWith` (that should be easy), and 2] construct `zipWith` from `map`,`zip`,and `uncurry` (that's a bit harder) |
2021-08-20 11:39:35 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) |
2021-08-20 11:41:28 +0200 | <[exa]> | Guest610: btw your sample needs uncurrying to 3-tuples, which lambdabot doesn't have loaded apparently, so: |
2021-08-20 11:41:59 +0200 | <[exa]> | > let sum3 a b c = a+b+c; uncurry3 f (a,b,c) = f a b c in map (uncurry3 sum3) [(1,2,3), (2,3,4)] |
2021-08-20 11:42:01 +0200 | <lambdabot> | [6,9] |
2021-08-20 11:45:14 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-08-20 11:45:46 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-08-20 11:45:56 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-08-20 11:46:50 +0200 | <Guest610> | ..thanks |
2021-08-20 11:48:45 +0200 | Guest610 | (~Guest6@115.98.232.12) (Quit: Client closed) |
2021-08-20 11:49:21 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Ping timeout: 248 seconds) |
2021-08-20 11:49:50 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 11:51:58 +0200 | kstuart | (~user@185.92.25.246) (Ping timeout: 250 seconds) |
2021-08-20 11:53:16 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-08-20 11:54:40 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 240 seconds) |
2021-08-20 11:56:15 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-08-20 11:56:17 +0200 | jespada | (~jespada@90.254.247.46) |
2021-08-20 11:56:50 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-20 11:58:20 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 11:58:36 +0200 | tengu1 | (~tengu1@cpe-70-121-244-14.neb.res.rr.com) |
2021-08-20 12:01:02 +0200 | oxide | (~lambda@user/oxide) (Client Quit) |
2021-08-20 12:01:35 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 12:05:03 +0200 | oxide | (~lambda@user/oxide) (Client Quit) |
2021-08-20 12:06:00 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 12:10:25 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-20 12:10:28 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 246 seconds) |
2021-08-20 12:10:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 12:21:38 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-20 12:22:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 12:26:10 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-20 12:28:55 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-08-20 12:29:32 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection) |
2021-08-20 12:29:44 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-08-20 12:32:00 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-20 12:32:31 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-20 12:35:42 +0200 | ablutor | (~quassel@wasscher.com) (Quit: going for vitamine d) |
2021-08-20 12:36:30 +0200 | ablutor | (~quassel@wasscher.com) |
2021-08-20 12:36:42 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-08-20 12:36:44 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-08-20 12:37:10 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-08-20 12:38:31 +0200 | fendor | (~fendor@213162073025.public.t-mobile.at) (Remote host closed the connection) |
2021-08-20 12:41:00 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 12:54:50 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 12:56:44 +0200 | <mastarija> | Can someone remind me what's it called when we can have a valid e.g. "Monad" instance if only we could put a constraint on the "inner" type? |
2021-08-20 12:56:56 +0200 | <mastarija> | Constrained instances, bound instances...? |
2021-08-20 12:57:34 +0200 | <Rembane_> | Is it a scoped instance? |
2021-08-20 12:57:38 +0200 | <dminuoso> | mastarija: I dont understand the question entirely. |
2021-08-20 12:57:41 +0200 | <dminuoso> | Can you give a concrete example? |
2021-08-20 12:58:03 +0200 | <mastarija> | Hm... let's say I could make an Applicative instance |
2021-08-20 12:58:34 +0200 | <mastarija> | But only if the target e.g. instance Monoid n => Applicative (MyType n) where |
2021-08-20 12:59:02 +0200 | <mastarija> | And MyType : * -> * |
2021-08-20 12:59:13 +0200 | <mastarija> | not * -> * -> * |
2021-08-20 12:59:57 +0200 | <mastarija> | Basically, I could make an Applicative instance if only I can constrain the argument of MyType |
2021-08-20 13:00:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 13:00:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-20 13:00:29 +0200 | <dminuoso> | mastarija: From a type checker point of view you have an `Applicative` instance for all n of `MyType n` |
2021-08-20 13:00:45 +0200 | <dminuoso> | It just defers the `Monoid n` constraint to somewhere else |
2021-08-20 13:01:02 +0200 | alx741 | (~alx741@181.196.69.234) |
2021-08-20 13:01:11 +0200 | <mastarija> | I mean, it's not possible to do what I want with standard type classes |
2021-08-20 13:01:44 +0200 | <mastarija> | There's a library with constrained type classes for that purpose, but my brain can't recall what it is called |
2021-08-20 13:03:14 +0200 | <dminuoso> | mastarija: You can observe this fact since it would match that instance for `Applicative (MyType Int)`, even if there's no `Monoid Int` |
2021-08-20 13:03:40 +0200 | <dminuoso> | So the constraint does not constrain the instance itself |
2021-08-20 13:04:08 +0200 | <mastarija> | I want to use e.g. "mempty" within my implementation of "Applicative" instance |
2021-08-20 13:04:41 +0200 | <dminuoso> | Maybe my wording slightly off. |
2021-08-20 13:04:42 +0200 | <mastarija> | And I want to have "Applicative" instance for all "MyType n" |
2021-08-20 13:05:01 +0200 | drsocks | (~aaashutos@113.199.180.28) |
2021-08-20 13:05:17 +0200 | <mastarija> | dminuoso, Maybe it's me, didn't get enough sleep today :D |
2021-08-20 13:05:38 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-08-20 13:05:46 +0200 | drsocks | (~aaashutos@113.199.180.28) (Client Quit) |
2021-08-20 13:06:11 +0200 | <alp> | mastarija, constrained is the right term I think. see e.g https://hackage.haskell.org/package/constrained-monads |
2021-08-20 13:06:57 +0200 | <mastarija> | alp, ah yes.. |
2021-08-20 13:07:01 +0200 | <mastarija> | that's it |
2021-08-20 13:07:22 +0200 | <alp> | i.e your MyType is a monad or applicative or something only if the type parameters it will get satisfy some constraint |
2021-08-20 13:07:32 +0200 | <mastarija> | Yes |
2021-08-20 13:07:47 +0200 | <dminuoso> | alp: Mmm, so this would allow us to have Monad for Set? |
2021-08-20 13:07:50 +0200 | <alp> | eg what one would want for Set to be a functor/applicative/monad, because of the Ord |
2021-08-20 13:07:56 +0200 | <dminuoso> | Neat! |
2021-08-20 13:08:13 +0200 | <dminuoso> | I thought we needed quantified constraints for that |
2021-08-20 13:08:18 +0200 | <dminuoso> | Maybe I misremembered |
2021-08-20 13:08:21 +0200 | <alp> | dminuoso, indeed: https://hackage.haskell.org/package/constrained-monads-0.5.0.0/docs/src/Control-Monad-Constrained.… |
2021-08-20 13:10:30 +0200 | vpan | (~vilius@212.117.1.172) (Quit: Leaving.) |
2021-08-20 13:10:37 +0200 | <alp> | dminuoso, I don't think that'd be enough. because the fmap you'd have to implement (with the standard Functor class) would still be required to have type forall a b. (a -> b) -> Set a -> Set b, no Ord in sight |
2021-08-20 13:11:46 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9557dc14868c6ad3e278.dip0.t-ipconnect.de) |
2021-08-20 13:11:56 +0200 | <alp> | whereas this whole constrained line of thinking lets you specify a suitable constraint that's "made available to you" when you implement the method |
2021-08-20 13:12:32 +0200 | <mastarija> | Hm... is it possible to implement the Unconstrained version of e.g. Functor using the constrained version? |
2021-08-20 13:12:37 +0200 | <dminuoso> | Presumably it just reifies the dict with `constraints` and gives it to you |
2021-08-20 13:14:51 +0200 | <mastarija> | It seems like it would be possible to do it as long as we do e.g. "instance Constrained.Functor f => UnConstrainde.Functor f where {use constrained methods to implement uncinstrained methods}" |
2021-08-20 13:14:51 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c72b950070172e7c3c578523.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-08-20 13:14:51 +0200 | <arahael> | Hmph, it seems I can't use hip in haskell 8.10. |
2021-08-20 13:16:32 +0200 | <alp> | mastarija, calling the constrained methods will bring up e.g the Ord constraints for Set, that you'll never have available when implementing the unconstrained variant. fmap :: forall a b. (a -> b) -> Set a -> Set b is the type your unconstrained implementation needs to have, which (kinda purposefully) prevents you from assuming anything about 'a' and 'b'. |
2021-08-20 13:16:32 +0200 | xsarnik | (xsarnik@lounge.fi.muni.cz) (Remote host closed the connection) |
2021-08-20 13:17:39 +0200 | <mastarija> | Ah.. yes. Now that I think about it |
2021-08-20 13:18:31 +0200 | <alp> | you can play some tricks by "decorating" the Set type instead of changing the classes to allow for constraints though, e.g https://hackage.haskell.org/package/set-monad |
2021-08-20 13:19:09 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Reconnecting) |
2021-08-20 13:19:13 +0200 | <alp> | you essentially make constructors to represent the operations of the classes you want to implement: https://hackage.haskell.org/package/set-monad-0.3.0.0/docs/src/Data.Set.Monad.html#Set |
2021-08-20 13:19:23 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-08-20 13:20:05 +0200 | <alp> | and when you actually need to grab the results, you "collapse" those operations, which is the role of that 'run' function there |
2021-08-20 13:20:16 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Client Quit) |
2021-08-20 13:20:31 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-08-20 13:20:39 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-20 13:21:54 +0200 | <alp> | this particular Set monad example is well covered in http://okmij.org/ftp/Haskell/set-monad.html - gives you a decent overview of the various techniques one can use in such situations |
2021-08-20 13:28:53 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) |
2021-08-20 13:30:38 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-20 13:33:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-20 13:33:54 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 13:34:33 +0200 | hexfive | (~eric@50.35.83.177) |
2021-08-20 13:37:57 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-20 13:39:26 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-08-20 13:49:09 +0200 | <arahael> | https://gist.github.com/arafangion/ce4dca31b13675902d8535903fcb695b Is there anything I can do to resolve this dependency issue? |
2021-08-20 13:49:37 +0200 | <arahael> | I'm not sure why diagrams-core requires base less than 4.14 |
2021-08-20 13:50:15 +0200 | t0zy | (~t0zy@49.207.220.61) |
2021-08-20 13:50:16 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Ping timeout: 250 seconds) |
2021-08-20 13:50:42 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-08-20 13:50:49 +0200 | <arahael> | (Nor why Chart-diagrams requires the slightly older version of diagrams-core) |
2021-08-20 13:53:40 +0200 | dunj3 | (~dunj3@2001:16b8:30a8:2000:7c3b:4a4d:e83e:847a) (Remote host closed the connection) |
2021-08-20 13:55:52 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds) |
2021-08-20 13:56:51 +0200 | xsarnik | (xsarnik@lounge.fi.muni.cz) |
2021-08-20 13:59:55 +0200 | <arahael> | Looks like the simplest route for me to resize images in haskell is to just shell out to a utililty. |
2021-08-20 14:01:16 +0200 | t0zy | (~t0zy@49.207.220.61) (Ping timeout: 252 seconds) |
2021-08-20 14:01:56 +0200 | t0zy | (~t0zy@2402:3a80:d01:2c2f::3fff:9e88) |
2021-08-20 14:08:39 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Remote host closed the connection) |
2021-08-20 14:08:48 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-20 14:09:38 +0200 | lortabac | (~lortabac@62.98.47.131) (Read error: Connection reset by peer) |
2021-08-20 14:10:16 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat) |
2021-08-20 14:11:18 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
2021-08-20 14:13:45 +0200 | sleblanc | (~sleblanc@user/sleblanc) |
2021-08-20 14:14:05 +0200 | lortabac | (~lortabac@151.53.218.126) |
2021-08-20 14:14:26 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-08-20 14:16:45 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-08-20 14:21:33 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 258 seconds) |
2021-08-20 14:23:12 +0200 | <dminuoso> | arahael: Your ghc/base is too new. |
2021-08-20 14:23:36 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-08-20 14:24:35 +0200 | <dminuoso> | arahael: And Chart-diagrams requires the slightly oder version of diagrams-core either because they havent bumped the dependency to 1.5.0 yet, or there's some incompatibility. Note that this is a major version bump. |
2021-08-20 14:24:45 +0200 | <dminuoso> | https://hackage.haskell.org/package/diagrams-core-1.5.0/changelog |
2021-08-20 14:24:47 +0200 | <dminuoso> | `Remove deprecated Option type in favor of Maybe. This is a breaking API change. ` |
2021-08-20 14:27:20 +0200 | hannessteffenhag | (~hannesste@ip4d14fff3.dynamic.kabel-deutschland.de) |
2021-08-20 14:28:34 +0200 | aman | (aman@user/aman) (Ping timeout: 268 seconds) |
2021-08-20 14:30:13 +0200 | aman | (~aman@user/aman) |
2021-08-20 14:34:47 +0200 | <hannessteffenhag> | hello! I'm playing around with yesod right now and I'm slightly stumped by the forms chapter, or rather specifically how you're supposed to handle hidden fields |
2021-08-20 14:35:22 +0200 | <hannessteffenhag> | there's the hiddenField function in the Forms library, but it seems all the functions that take fields (like areq, aopt etc) also want to create a label for the field |
2021-08-20 14:35:38 +0200 | <hannessteffenhag> | and of course I don't want to print a label for a hidden field |
2021-08-20 14:39:47 +0200 | favonia | (~favonia@user/favonia) |
2021-08-20 14:40:02 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-20 14:41:55 +0200 | <Orbstheorem> | Is there any difference (i.e. performance, semantics, inlining) between stock and newtype deriving for Functor, Applicative or Monad? |
2021-08-20 14:46:17 +0200 | <dminuoso> | Yes. |
2021-08-20 14:46:32 +0200 | <dminuoso> | newtype deriving just uses coerce to pierce the newtype wrapper to use an existing inner instance |
2021-08-20 14:47:40 +0200 | <Orbstheorem> | So, no vtable? or rather the vtable of the underlying type? |
2021-08-20 14:47:52 +0200 | <dminuoso> | For Functor I guess you end up with the same thing, but Applicative/Monad you cant stock derive anymore, since there's no method to generate a correct, law abiding, canonical and clear instance for Applicative or Monad |
2021-08-20 14:47:56 +0200 | <dminuoso> | vtable? |
2021-08-20 14:48:20 +0200 | <Orbstheorem> | (The dictionnary containing the instance methods at runtime) |
2021-08-20 14:49:27 +0200 | <Orbstheorem> | Also, I just upgraded $work codebase from lts-13.30 to lts-18.1 and feel my compile times faster x) |
2021-08-20 14:49:32 +0200 | <dminuoso> | Either will generate a dictionary, Im not sure whether GND could have an indirection - but GHC probably (?) would optimzie that away? |
2021-08-20 14:49:55 +0200 | <Orbstheorem> | I'm not sure whether it's placebo or the compiler is faster xD |
2021-08-20 14:50:16 +0200 | <dminuoso> | With performance/inlining, as usual... is this in a hotspot? |
2021-08-20 14:50:36 +0200 | <dminuoso> | If not, asking in general about inlining/performance is not as useful. |
2021-08-20 14:51:10 +0200 | t0zy | (~t0zy@2402:3a80:d01:2c2f::3fff:9e88) (Ping timeout: 240 seconds) |
2021-08-20 14:51:20 +0200 | Maya9 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) |
2021-08-20 14:51:28 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 246 seconds) |
2021-08-20 14:51:35 +0200 | <Orbstheorem> | I'm asking because when I upgraded to lts-18.1 the compiler told me both were enabled and that it was defaulting to stock. |
2021-08-20 14:51:58 +0200 | t0zy | (~t0zy@49.207.220.61) |
2021-08-20 14:54:19 +0200 | venue | (~venue@user/venue) (Quit: adios) |
2021-08-20 14:55:12 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:eb83:919c:c248:eabe) |
2021-08-20 15:04:38 +0200 | <arahael> | dminuoso: heh, too new :) i guess thats the trouble with figuring out the version bounds, i needed a newer ghc for some other dependency! i think i'll just shell out for this for the moment. |
2021-08-20 15:07:46 +0200 | Maya9 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) (Quit: Client closed) |
2021-08-20 15:08:05 +0200 | Maya29 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) |
2021-08-20 15:09:15 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2021-08-20 15:12:15 +0200 | <arahael> | i supoose if i really badly needed hip in, what do i do? fork the neccessary dependencies and install them manually? (and submit pull requests, but this is all hypothetical) |
2021-08-20 15:17:01 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-08-20 15:17:42 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-08-20 15:17:43 +0200 | sleblanc | (~sleblanc@user/sleblanc) (Ping timeout: 252 seconds) |
2021-08-20 15:20:56 +0200 | __monty__ | (~toonn@user/toonn) |
2021-08-20 15:21:21 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9557dc14868c6ad3e278.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-08-20 15:27:22 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 15:29:10 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2021-08-20 15:29:30 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:eb83:919c:c248:eabe) (Ping timeout: 250 seconds) |
2021-08-20 15:29:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 15:38:32 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-08-20 15:40:11 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) |
2021-08-20 15:47:29 +0200 | trcc_ | (~trcc@eduroam09.au.dk) |
2021-08-20 15:47:47 +0200 | trcc_ | (~trcc@eduroam09.au.dk) (Client Quit) |
2021-08-20 15:50:14 +0200 | <lechner> | Hi, I tried to 'import SemVer' in ghci. Why would I get "import-im6.q16: attempt to perform an operation not allowed by the security policy `PS' @ error/constitute.c/IsCoderAuthorized/421." please? |
2021-08-20 15:50:52 +0200 | trcc | (~trcc@users-5343.st.net.au.dk) (Ping timeout: 245 seconds) |
2021-08-20 15:51:38 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 15:55:04 +0200 | mastarija | (~mastarija@78-3-210-70.adsl.net.t-com.hr) (Ping timeout: 250 seconds) |
2021-08-20 15:56:13 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-08-20 15:57:24 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 15:58:09 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) |
2021-08-20 16:02:16 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-08-20 16:04:00 +0200 | Matthias1 | (~Matthias1@casewireless11.CWRU.Edu) |
2021-08-20 16:04:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-20 16:04:42 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 16:09:10 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-20 16:09:35 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-08-20 16:10:40 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-08-20 16:17:36 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Ping timeout: 250 seconds) |
2021-08-20 16:19:00 +0200 | vpan | (~vilius@212.117.1.172) |
2021-08-20 16:19:08 +0200 | lortabac | (~lortabac@151.53.218.126) (Quit: WeeChat 2.8) |
2021-08-20 16:20:21 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-20 16:23:15 +0200 | vpan | (~vilius@212.117.1.172) (Client Quit) |
2021-08-20 16:25:56 +0200 | xaltsc | (~xaltsc@user/xaltsc) (Read error: Connection reset by peer) |
2021-08-20 16:31:53 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 258 seconds) |
2021-08-20 16:32:13 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 16:32:46 +0200 | hannessteffenhag | (~hannesste@ip4d14fff3.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds) |
2021-08-20 16:32:53 +0200 | <polyphem> | Plans for the weekend yet ? => https://github.com/langjam/langjam |
2021-08-20 16:37:17 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) (Quit: leaving) |
2021-08-20 16:38:31 +0200 | martin02 | (silas@hund.fs.lmu.de) (Quit: WeeChat 2.3) |
2021-08-20 16:41:12 +0200 | Matthias1 | (~Matthias1@casewireless11.CWRU.Edu) (Remote host closed the connection) |
2021-08-20 16:41:41 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-08-20 16:42:24 +0200 | d0ku | (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2021-08-20 16:43:16 +0200 | hannessteffenhag | (~hannesste@ip4d14fff3.dynamic.kabel-deutschland.de) |
2021-08-20 16:45:03 +0200 | favonia | (~favonia@user/favonia) |
2021-08-20 16:46:04 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-20 16:46:23 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 16:47:30 +0200 | hannessteffenhag | (~hannesste@ip4d14fff3.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds) |
2021-08-20 16:48:12 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 16:51:25 +0200 | Matthias1 | (~Matthias1@casewireless11.CWRU.Edu) |
2021-08-20 16:53:12 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 16:55:30 +0200 | polyphem | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Read error: Connection reset by peer) |
2021-08-20 16:55:48 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 16:56:06 +0200 | polyphem | (~polyphem@2a00:20:c049:6b62:beab:3bdc:3d18:f786) |
2021-08-20 16:56:17 +0200 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 245 seconds) |
2021-08-20 16:56:47 +0200 | polyphem | (~polyphem@2a00:20:c049:6b62:beab:3bdc:3d18:f786) (Read error: Connection reset by peer) |
2021-08-20 16:57:18 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) |
2021-08-20 16:58:06 +0200 | p0lyph3m | (~polyphem@2a00:20:c049:6b62:beab:3bdc:3d18:f786) |
2021-08-20 16:59:25 +0200 | p0lyph3m | Core2947 |
2021-08-20 17:01:42 +0200 | martin02 | (~silas@141.84.69.76) |
2021-08-20 17:01:48 +0200 | polyphem | (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds) |
2021-08-20 17:02:15 +0200 | Ranhir | (~Ranhir@157.97.53.139) |
2021-08-20 17:03:10 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:05:21 +0200 | Core2947 | polyphem |
2021-08-20 17:06:37 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:07:08 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:08:19 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-20 17:09:07 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:09:21 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) (Ping timeout: 248 seconds) |
2021-08-20 17:10:05 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:11:47 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:12:10 +0200 | Maya29 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2021-08-20 17:12:15 +0200 | sweater | (~sweater@206.81.18.26) (Quit: WeeChat 2.8) |
2021-08-20 17:13:47 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:19:16 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:21:06 +0200 | aman | (~aman@user/aman) (Quit: aman) |
2021-08-20 17:24:28 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:25:24 +0200 | bin_ | (~bin@user/bin/x-1583188) (Quit: ZNC - https://znc.in) |
2021-08-20 17:25:54 +0200 | _bin | (~bin@user/bin/x-1583188) |
2021-08-20 17:26:22 +0200 | stevenxl | (uid133530@highgate.irccloud.com) (Ping timeout: 245 seconds) |
2021-08-20 17:26:24 +0200 | etrepum | (sid763@id-763.highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:26:28 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:26:29 +0200 | totbwf__ | (sid402332@id-402332.highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:26:43 +0200 | davetapley | (sid666@highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:26:47 +0200 | vito | (sid1962@user/vito) (Ping timeout: 245 seconds) |
2021-08-20 17:26:52 +0200 | alanz | (sid110616@id-110616.highgate.irccloud.com) (Ping timeout: 256 seconds) |
2021-08-20 17:26:52 +0200 | obviyus | (sid415299@user/obviyus) (Ping timeout: 256 seconds) |
2021-08-20 17:26:57 +0200 | bradparker | (sid262931@id-262931.highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:27:03 +0200 | b20n | (sid115913@id-115913.highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:27:03 +0200 | T_S_ | (sid501726@id-501726.highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:27:10 +0200 | aarchi | (sid486183@highgate.irccloud.com) (Read error: Connection reset by peer) |
2021-08-20 17:27:29 +0200 | SrPx | (sid108780@highgate.irccloud.com) (Ping timeout: 248 seconds) |
2021-08-20 17:28:47 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) |
2021-08-20 17:29:10 +0200 | burnsidesLlama | (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-20 17:29:14 +0200 | systemfault | (sid267009@highgate.irccloud.com) (Ping timeout: 268 seconds) |
2021-08-20 17:31:06 +0200 | bradparker | (sid262931@id-262931.highgate.irccloud.com) |
2021-08-20 17:31:14 +0200 | etrepum | (sid763@highgate.irccloud.com) |
2021-08-20 17:31:45 +0200 | totbwf__ | (sid402332@id-402332.highgate.irccloud.com) |
2021-08-20 17:31:57 +0200 | T_S_ | (sid501726@highgate.irccloud.com) |
2021-08-20 17:32:05 +0200 | davetapley | (sid666@id-666.highgate.irccloud.com) |
2021-08-20 17:32:09 +0200 | stevenxl | (uid133530@highgate.irccloud.com) |
2021-08-20 17:32:10 +0200 | SrPx | (sid108780@highgate.irccloud.com) |
2021-08-20 17:32:15 +0200 | b20n | (sid115913@id-115913.highgate.irccloud.com) |
2021-08-20 17:32:28 +0200 | aarchi | (sid486183@id-486183.highgate.irccloud.com) |
2021-08-20 17:32:34 +0200 | systemfault | (sid267009@id-267009.highgate.irccloud.com) |
2021-08-20 17:32:34 +0200 | vito | (sid1962@user/vito) |
2021-08-20 17:33:03 +0200 | obviyus | (sid415299@user/obviyus) |
2021-08-20 17:33:07 +0200 | alanz | (sid110616@highgate.irccloud.com) |
2021-08-20 17:34:29 +0200 | chris | (~chris@81.96.113.213) |
2021-08-20 17:34:32 +0200 | chris | Guest8144 |
2021-08-20 17:34:35 +0200 | mei | (~mei@user/mei) |
2021-08-20 17:37:17 +0200 | ananthakumaran | (~ananthaku@49.207.194.59) |
2021-08-20 17:38:11 +0200 | _bin | (~bin@user/bin/x-1583188) (Quit: ZNC - https://znc.in) |
2021-08-20 17:38:40 +0200 | _bin | (~bin@user/bin/x-1583188) |
2021-08-20 17:39:13 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-20 17:39:20 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-20 17:39:25 +0200 | p0lyph3m | (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) |
2021-08-20 17:41:43 +0200 | polyphem | (~polyphem@2a00:20:c049:6b62:beab:3bdc:3d18:f786) (Remote host closed the connection) |
2021-08-20 17:43:02 +0200 | <_bin> | Opinions on Megaparsec vs Earley vs uu-parsinglib |
2021-08-20 17:44:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 17:44:47 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-08-20 17:45:06 +0200 | sweater | (~sweater@206.81.18.26) |
2021-08-20 17:45:09 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-20 17:46:26 +0200 | <c_wraith> | megaparsec will be the fastest of those three, if you're handling huge documents. Earley is the easiest (for me) to use, but it is also the most limited - it only supports context-free grammars, where the other two support context-sensitive. uu-parsinglib does really neat stuff with error correction, but performance can get really bad if your grammar allows ambiguity |
2021-08-20 17:47:09 +0200 | <dsal> | Does anyone have any references to opinions on `let` vs. `where` when they're otherwise equivalent? `where` seems to produce cleaner looking code that's easier for me to understand, but I've seen an argument from someone who likes seeing definitions ahead. Searches point me to technical differences, which don't seem to be helpful. |
2021-08-20 17:47:36 +0200 | <c_wraith> | in cases where they're equivalent I almost always go with where. |
2021-08-20 17:48:17 +0200 | jess | (~jess@libera/staff/jess) |
2021-08-20 17:48:21 +0200 | <c_wraith> | I don't really think definitions ahead of use is important in a language where you can use things ahead of their definition anyway. |
2021-08-20 17:48:23 +0200 | <dsal> | Yeah, that's where I am. I'm having a hard time describing why that's the case, other than, you know, we're using a declarative language. |
2021-08-20 17:49:07 +0200 | <c_wraith> | there are exceptions. I'm more likely to use let inside of a case than attaching a where to a branch |
2021-08-20 17:49:56 +0200 | <c_wraith> | and I'm more likely to use let if I can write the whole definition as a one-liner |
2021-08-20 17:49:56 +0200 | <dsal> | Yeah. use `where` unless it makes the code worse. |
2021-08-20 17:50:14 +0200 | <c_wraith> | like fix f = let x = f x in x |
2021-08-20 17:50:14 +0200 | <dsal> | I especially don't like `let` for functions. |
2021-08-20 17:50:33 +0200 | <Rembane_> | I mix them, I have had very particular tastes in both directions and now I just go with what my intuition wants me to. |
2021-08-20 17:54:34 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-08-20 17:55:00 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-08-20 17:59:45 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 18:00:31 +0200 | MQ-17J | (~MQ-17J@8.6.144.209) (Ping timeout: 252 seconds) |
2021-08-20 18:00:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 18:02:58 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-08-20 18:03:15 +0200 | econo | (uid147250@user/econo) |
2021-08-20 18:04:16 +0200 | <_bin> | c_wraith: Thanks. If I'm looking at, say, scraping some web page, which of these might suit best? Would Earley suit for this? |
2021-08-20 18:05:22 +0200 | <c_wraith> | if you're scraping web pages, I'd recommend not trying to write a parser that deals with the tire fire that is real-world HTML |
2021-08-20 18:05:33 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 18:05:53 +0200 | <c_wraith> | I'd go with something like https://hackage.haskell.org/package/tagsoup |
2021-08-20 18:09:50 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-20 18:09:58 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-08-20 18:10:56 +0200 | <c_wraith> | I do understand the appeal of writing your own parser, but that's better suited to environments where you can reject malformed inputs. HTML isn't such an environment |
2021-08-20 18:11:45 +0200 | haskl | (~haskl@98.37.78.63) (Changing host) |
2021-08-20 18:11:45 +0200 | haskl | (~haskl@user/haskl) |
2021-08-20 18:12:20 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection) |
2021-08-20 18:13:01 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-08-20 18:13:03 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection) |
2021-08-20 18:13:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 18:13:38 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-08-20 18:14:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-08-20 18:14:53 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection) |
2021-08-20 18:15:07 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-08-20 18:15:52 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection) |
2021-08-20 18:17:38 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-08-20 18:18:30 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
2021-08-20 18:19:15 +0200 | quantum | (~quantum@user/quantum/x-8556232) |
2021-08-20 18:20:07 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 18:21:42 +0200 | <adamCS> | arahael: Not sure if it will work but sometimes you can just do a bunch of "allow-newer" in cabal.project and then things work. |
2021-08-20 18:23:45 +0200 | kuribas | (~user@ptr-25vy0i7hpbjw2llku95.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-08-20 18:24:32 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-20 18:34:26 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-08-20 18:35:10 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-08-20 18:35:36 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-20 18:36:23 +0200 | <lechner> | Hi, what does this error from ghci mean, please? "<command line>: cannot satisfy -package-id" https://paste.debian.net/1208358/ |
2021-08-20 18:40:22 +0200 | <lechner> | I cleaned up my builds with 'rm -rf' but have since built (although with debug symbols disabled in cabal) |
2021-08-20 18:42:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 18:43:43 +0200 | qbt | (~edun@user/edun) (Quit: Leaving) |
2021-08-20 18:44:29 +0200 | <sm> | lechner: IIRC it might mean you should force reinstall tagtree |
2021-08-20 18:44:31 +0200 | <dsal> | lechner: it just means you are requiring a package that can't be found. |
2021-08-20 18:44:53 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.2) |
2021-08-20 18:46:10 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds) |
2021-08-20 18:47:20 +0200 | oxide_ | (~lambda@user/oxide) |
2021-08-20 18:47:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-20 18:48:04 +0200 | <monochrom> | When "let" and "where" are both legal, I am inclined to "where" because more people do this and it is easier to lay out. But there is an exception: when for educational purpose, in a few cases, the presentation goes better if the ingredients are presented before the composition punch line. |
2021-08-20 18:50:04 +0200 | <dsal> | I argued from the other direction. I want to know the most important parts and then decide whether I need to look up something later. |
2021-08-20 18:50:52 +0200 | pavonia | (~user@user/siracusa) |
2021-08-20 18:50:55 +0200 | <dsal> | The example introduced two magic numbers and a function with a really obvious name with `let` as if knowing the details of these things helped me understand what was happening. |
2021-08-20 18:51:30 +0200 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-08-20 18:52:45 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-08-20 18:52:53 +0200 | ubert1 | (~Thunderbi@178.115.47.86.wireless.dyn.drei.com) |
2021-08-20 18:53:06 +0200 | <sm> | wheres are easier to extract to a function since they can't depend on things above |
2021-08-20 18:53:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 18:53:37 +0200 | oxide_ | (~lambda@user/oxide) (Quit: oxide_) |
2021-08-20 18:53:55 +0200 | <sm> | or even if not extracted, they make the chunks and dependencies within a large function clearer |
2021-08-20 18:54:23 +0200 | <lechner> | sm dsal: thanks! tagtree was a local package. why would ghci require it? should i zap store/ghc-8.8.4/package.db/package.cache ? |
2021-08-20 18:54:25 +0200 | ubert | (~Thunderbi@178.115.64.138.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2021-08-20 18:54:25 +0200 | ubert1 | ubert |
2021-08-20 18:56:26 +0200 | <sm> | and yes, sometimes it's useful to introduce things bottom, with let. I think this is more often so with complicated/not-well-understood operations, where you need to learn some new terms to even understand what the higher level thing is about |
2021-08-20 18:56:38 +0200 | <sm> | bottom up |
2021-08-20 18:57:34 +0200 | <sm> | lechner: I'd just try force reinstalling tagtree with your chosen haskell package manager |
2021-08-20 18:58:05 +0200 | <lechner> | sm: i don't want it anymore. (it came from emanote) |
2021-08-20 18:58:30 +0200 | <dsal> | I wrote so many qc properties as `counterexample s $ a == b` |
2021-08-20 18:58:41 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-08-20 18:59:08 +0200 | <dsal> | lechner: I'm not very familiar with those problems. I use nix and stack and have a different set of problems. I just read the error. :) |
2021-08-20 18:59:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-20 19:01:27 +0200 | <sm> | lechner: i see it's being included in the list of "core" libs in debug output when you just run ghci. I'm not sure why, maybe it really is needed ? In any case, I would try what I said, it's quick and would tell you something |
2021-08-20 19:02:49 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 19:02:57 +0200 | <dsal> | Maybe I should use my counterexample example. `s` needs `a` and `b` which are derived from arguments and are also needed for the comparison. It'd be silly to make the user read some of my gross printing code before seeing how values are constructed for comparison, but otherwise the values need to be passed down. In any case, the bulk of text might end up being only interesting if you need details on how an error condition is |
2021-08-20 19:02:57 +0200 | <dsal> | explained. |
2021-08-20 19:03:17 +0200 | <sm> | maybe you busted ghc's version of it with your hamfisted emanote install efforts ? :) |
2021-08-20 19:06:32 +0200 | <lechner> | sm: maybe i should have used nix, after all. i just zapped, before reading your previous message, most of my (user) cabal directory. only ./bin and ./config are left. unfortunately, now i get https://paste.debian.net/1208362/ |
2021-08-20 19:07:01 +0200 | <lechner> | where does it learn that the user db should exist? |
2021-08-20 19:07:26 +0200 | <sm> | original problem solved! :) |
2021-08-20 19:07:39 +0200 | <sm> | maybe nuke .ghc also ? |
2021-08-20 19:07:55 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 268 seconds) |
2021-08-20 19:11:46 +0200 | <lechner> | sm: yay! that worked. to keep my little red λ, i removed only some (other) build artifacts with rm -rf ~/.ghc/x86_64-linux-8.8.4/ thanks! |
2021-08-20 19:12:21 +0200 | <sm> | great |
2021-08-20 19:17:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 19:17:23 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 19:17:32 +0200 | oxide_ | (~lambda@user/oxide) |
2021-08-20 19:18:15 +0200 | derelict | (~derelict@user/derelict) |
2021-08-20 19:18:37 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 252 seconds) |
2021-08-20 19:19:48 +0200 | smitop | (~smitop@user/smitop) (Quit: Ping timeout (120 seconds)) |
2021-08-20 19:20:35 +0200 | smitop | (~smitop@user/smitop) |
2021-08-20 19:20:44 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-20 19:21:51 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-20 19:25:53 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 248 seconds) |
2021-08-20 19:28:16 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 250 seconds) |
2021-08-20 19:28:22 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-08-20 19:28:49 +0200 | azeem | (~azeem@176.200.243.66) |
2021-08-20 19:29:39 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 19:30:39 +0200 | Maya50 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) |
2021-08-20 19:34:05 +0200 | ananthakumaran | (~ananthaku@49.207.194.59) (Quit: leaving) |
2021-08-20 19:35:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 19:36:19 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 19:37:24 +0200 | azeem | (~azeem@176.200.243.66) (Read error: Connection reset by peer) |
2021-08-20 19:37:39 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-20 19:41:22 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 19:43:46 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 19:45:21 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) |
2021-08-20 19:48:28 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 19:51:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-20 19:55:06 +0200 | Matthias1 | (~Matthias1@casewireless11.CWRU.Edu) (Read error: Connection reset by peer) |
2021-08-20 19:56:21 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-08-20 20:02:28 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-20 20:02:55 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 20:06:01 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 20:07:34 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 252 seconds) |
2021-08-20 20:09:13 +0200 | keutoi | (~keutoi@157.48.195.127) (Ping timeout: 252 seconds) |
2021-08-20 20:09:46 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-20 20:10:19 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-08-20 20:11:14 +0200 | keutoi | (~keutoi@106.208.52.196) |
2021-08-20 20:13:45 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-20 20:18:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 20:23:19 +0200 | Xnuk | (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in) |
2021-08-20 20:24:02 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-08-20 20:29:26 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-08-20 20:31:44 +0200 | <_bin> | What is the idiomatic way to run a loop until SIGTERM, forking a new thread with the same function every n minutes? |
2021-08-20 20:34:46 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 20:35:07 +0200 | <dsal> | forever + threadDelay + async, I suppose. |
2021-08-20 20:36:10 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 20:36:39 +0200 | Guest38 | (~Guest38@75-54-107-59.lightspeed.hstntx.sbcglobal.net) |
2021-08-20 20:36:49 +0200 | <Rembane_> | _bin: What's a thread in this case? |
2021-08-20 20:38:33 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 20:38:49 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 20:40:46 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) |
2021-08-20 20:42:13 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
2021-08-20 20:42:25 +0200 | keutoi | (~keutoi@106.208.52.196) (Quit: leaving) |
2021-08-20 20:42:27 +0200 | Guest38 | (~Guest38@75-54-107-59.lightspeed.hstntx.sbcglobal.net) (Quit: Client closed) |
2021-08-20 20:43:21 +0200 | <_bin> | Rembane_: forkIO, I guess |
2021-08-20 20:45:13 +0200 | <Rembane_> | _bin: Cool, dsal's idea should work for that too. :) |
2021-08-20 20:48:20 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-08-20 20:48:59 +0200 | Guest60 | (~Guest60@modemcable169.17-58-74.mc.videotron.ca) |
2021-08-20 20:51:19 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 20:52:31 +0200 | <Guest60> | I'm writting wrappers for a bunch of different things (a database and a bunch of HTTP APIs), I'm not sure how to handle errors |
2021-08-20 20:52:36 +0200 | <Guest60> | should I just define custom Error sum types in each module, make them instances of Exception and throw in IO ? I mostly want everything to compose nicely |
2021-08-20 20:53:13 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Ping timeout: 252 seconds) |
2021-08-20 20:54:25 +0200 | <_bin> | dsal, Remobane_: Thanks. |
2021-08-20 21:00:22 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-08-20 21:00:22 +0200 | benin036932 | (~benin@183.82.178.142) (Ping timeout: 252 seconds) |
2021-08-20 21:01:08 +0200 | Maya50 | (~Maya@p4ffdb725.dip0.t-ipconnect.de) (Quit: Client closed) |
2021-08-20 21:07:44 +0200 | benin036932 | (~benin@183.82.178.142) |
2021-08-20 21:11:06 +0200 | <_bin> | Any recommendation on logging frameworks? co-log and katip appear to be two common ones, but I'm not sure as to why one or the other is better. |
2021-08-20 21:17:28 +0200 | xff0x | (~xff0x@2001:1a81:5207:3100:686a:e8fd:47a9:633d) (Ping timeout: 250 seconds) |
2021-08-20 21:22:42 +0200 | venue | (~venue@user/venue) |
2021-08-20 21:23:35 +0200 | Obo | (~roberto@h-46-59-103-134.a498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
2021-08-20 21:26:15 +0200 | <lechner> | Hi, many friendly souls here told me to prefer 'putStrLn' over 'print', and especially 'printf', but 'hlint' recommends the former! https://paste.debian.net/1208376/ |
2021-08-20 21:27:35 +0200 | <monochrom> | Are you ignoring the context that ". show" is also present? |
2021-08-20 21:28:24 +0200 | <monochrom> | But I would delete hlint altogether. |
2021-08-20 21:28:47 +0200 | <monochrom> | If you prefer "putStrLn . show", if this is your coding style, then this is your coding style. |
2021-08-20 21:28:59 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 21:29:25 +0200 | <Rembane_> | I just do what hlint tells me, it makes my life more interesting and increases the chance that monochrom becomes my arch enemy. |
2021-08-20 21:29:26 +0200 | <monochrom> | Along the way, I would also delete any memory of hearing an unconditional, one-size-fits-all "prefer putStrLn over print". |
2021-08-20 21:29:44 +0200 | <monochrom> | Do people really say things like "prefer apple to orange" in their style guides? |
2021-08-20 21:29:57 +0200 | <monochrom> | haha |
2021-08-20 21:30:24 +0200 | <lechner> | does 'print' need a <> "\n" ? |
2021-08-20 21:30:29 +0200 | <nitrix> | print is literally putStrLn . show, so I don't see how it could be a problem semantically, nor syntactically (way simpler than the composition). |
2021-08-20 21:30:30 +0200 | <monochrom> | No. |
2021-08-20 21:31:41 +0200 | <lechner> | How about "newtype instead of data"? https://paste.debian.net/1208378/ |
2021-08-20 21:32:17 +0200 | <monochrom> | Did you see the line "Note: decreases laziness"? |
2021-08-20 21:32:55 +0200 | <monochrom> | BTW I think you should also wear pink instead of blue tomorrow. |
2021-08-20 21:33:10 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
2021-08-20 21:33:17 +0200 | <monochrom> | And for tonight's dinner you should prefer fish over veggies. |
2021-08-20 21:33:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 21:33:38 +0200 | <nitrix> | I smell more a symptom of someone that developed the bad habit of memorizing strict rules and applying them systematically, without really understanding what they're doing or why they're doing it in the first place. Props for being suspicious and asking though. |
2021-08-20 21:33:40 +0200 | <lechner> | yeah, i use that type to parse JSON, and do not understand it. does it imply "!" on the constituents ? |
2021-08-20 21:34:09 +0200 | <monochrom> | OK, I have two points. |
2021-08-20 21:34:09 +0200 | <lechner> | nitrix: i am a noobie |
2021-08-20 21:34:32 +0200 | <monochrom> | 1. Learn newtype. Then you can decide whether it fits your purpose. |
2021-08-20 21:34:46 +0200 | <monochrom> | 2. It probably doesn't matter for now and for the next few months either. |
2021-08-20 21:35:12 +0200 | oxide_ | (~lambda@user/oxide) (Quit: oxide_) |
2021-08-20 21:35:40 +0200 | <nitrix> | That's generous. Make that a year. |
2021-08-20 21:36:36 +0200 | <monochrom> | In fact I stick to "data" in my course, even where Haskellers would use newtype. Yes I totally have "data State s a = MkState (s -> (s, a))". |
2021-08-20 21:36:54 +0200 | <monochrom> | Screw hlint. It is an anti-educational tool. |
2021-08-20 21:37:11 +0200 | <monochrom> | When pros use it, I can understand. |
2021-08-20 21:37:12 +0200 | <lechner> | or it competes with you? |
2021-08-20 21:37:28 +0200 | <lechner> | in a way you dislike |
2021-08-20 21:37:30 +0200 | <nitrix> | hlint and hoogle don't seem to deliver too well on their promises. |
2021-08-20 21:37:45 +0200 | kenran | (~kenran@200116b82b157f00af733520c5a4c898.dip.versatel-1u1.de) |
2021-08-20 21:38:15 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-08-20 21:38:16 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-20 21:38:19 +0200 | <Rembane_> | nitrix: I think that depends on what you think they promise. |
2021-08-20 21:38:30 +0200 | <monochrom> | Well I can't call something or someone a competitor if they derail the job rather than do a better job. |
2021-08-20 21:38:41 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds) |
2021-08-20 21:39:37 +0200 | <lechner> | there are good and bad restaurants |
2021-08-20 21:39:52 +0200 | <monochrom> | Tangential digressions are the enemy of teaching and learning. When I and my students are still at the stage of learning lambdas, for example (\x -> x + 3), suggesting "why not (+ 3)" is derailing. Only smartasses and #haskell regulars do this. |
2021-08-20 21:40:15 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-08-20 21:40:52 +0200 | <lechner> | but do you agree with the recommendation? |
2021-08-20 21:41:05 +0200 | <lechner> | outside your class |
2021-08-20 21:41:08 +0200 | <monochrom> | Depends on the context? Isn't that my point? |
2021-08-20 21:41:34 +0200 | mastarija | (~mastarija@78-3-210-70.adsl.net.t-com.hr) |
2021-08-20 21:41:48 +0200 | <monochrom> | Outside my class there are still a lot of beginners in #haskell whom I would not bring up sections too early either. |
2021-08-20 21:42:00 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-08-20 21:42:01 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-08-20 21:42:10 +0200 | <lechner> | hlint is a poor teacher |
2021-08-20 21:42:47 +0200 | <monochrom> | If the reader is ready for (+ 3) I write (+ 3). If the reader is not ready for that, I write (\x -> x + 3). If the reader is not even ready for that, I write "let f x = x + 3 in ..." |
2021-08-20 21:44:00 +0200 | <lechner> | isn't the lambda harder than a partially applied function? |
2021-08-20 21:44:17 +0200 | <lechner> | maybe i use RPN too mkch |
2021-08-20 21:44:22 +0200 | <lechner> | much |
2021-08-20 21:47:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-20 21:47:40 +0200 | alx741 | (~alx741@181.196.69.234) (Ping timeout: 252 seconds) |
2021-08-20 21:50:50 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:1cfd:5590:1382:edd9) (Ping timeout: 250 seconds) |
2021-08-20 21:50:50 +0200 | Megant | (megant@user/megant) (Ping timeout: 250 seconds) |
2021-08-20 21:51:41 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-20 21:53:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 21:53:49 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-08-20 21:54:11 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) |
2021-08-20 21:54:49 +0200 | mei | (~mei@user/mei) (Ping timeout: 252 seconds) |
2021-08-20 21:55:53 +0200 | dschrempf | (~dominik@92-249-159-252.pool.digikabel.hu) (Client Quit) |
2021-08-20 21:56:45 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-20 21:57:53 +0200 | <sm> | someone should do the remember quote thingy with Rembane's "I just do what hlint tells me, it makes my life more interesting and increases the chance that monochrom becomes my arch enemy." |
2021-08-20 21:58:17 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-08-20 21:58:56 +0200 | <monochrom> | @remember Rembane I just do what hlint tells me, it makes my life more interesting and increases the chance that monochrom becomes my arch enemy. |
2021-08-20 21:58:56 +0200 | <lambdabot> | Okay. |
2021-08-20 21:59:04 +0200 | Megant | (megant@user/megant) |
2021-08-20 21:59:30 +0200 | <lechner> | that actually works? |
2021-08-20 21:59:39 +0200 | <Rembane_> | :D |
2021-08-20 21:59:40 +0200 | xff0x | (~xff0x@2001:1a81:5207:3100:686a:e8fd:47a9:633d) |
2021-08-20 21:59:43 +0200 | <sm> | nice :) |
2021-08-20 22:00:03 +0200 | alx741 | (~alx741@181.196.68.120) |
2021-08-20 22:01:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-20 22:05:16 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
2021-08-20 22:07:19 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-20 22:09:21 +0200 | gustik | (~gustik@2a01:c844:2410:9020:63ab:4bb6:83d2:e11b) |
2021-08-20 22:12:33 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 22:13:17 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 22:13:36 +0200 | s-h-i-n-o-b-i | (~quassel@104.244.75.124) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-08-20 22:14:33 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 22:16:00 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-20 22:18:30 +0200 | <tomsmeding> | https://ircbrowse.tomsmeding.com/quotes.rss |
2021-08-20 22:18:43 +0200 | <tomsmeding> | I honestly don't know offhand how far back that goes |
2021-08-20 22:19:15 +0200 | <tomsmeding> | at least only libera, not freenode |
2021-08-20 22:20:27 +0200 | <tomsmeding> | that was the first (and yet only) @remember quote on liberachat! 🎉 |
2021-08-20 22:22:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-08-20 22:22:49 +0200 | Guest8144 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-20 22:25:58 +0200 | glguy | (x@libera/staff/glguy) (Quit: Quit) |
2021-08-20 22:26:08 +0200 | glguy | (x@libera/staff/glguy) |
2021-08-20 22:26:45 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9557dc14868c6ad3e278.dip0.t-ipconnect.de) |
2021-08-20 22:27:51 +0200 | chris | (~chris@81.96.113.213) |
2021-08-20 22:27:54 +0200 | chris | Guest1143 |
2021-08-20 22:29:11 +0200 | mastarija | (~mastarija@78-3-210-70.adsl.net.t-com.hr) (Quit: Leaving) |
2021-08-20 22:31:07 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Quit: Off to see the wizard.) |
2021-08-20 22:32:39 +0200 | Guest1143 | (~chris@81.96.113.213) (Ping timeout: 268 seconds) |
2021-08-20 22:33:54 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-20 22:34:04 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-08-20 22:36:49 +0200 | <siers> | tomsmeding, did you write the ListFamily yourself? |
2021-08-20 22:37:01 +0200 | <siers> | tomsmeding, and the rest of that paste |
2021-08-20 22:37:43 +0200 | Megant | (megant@user/megant) (Ping timeout: 252 seconds) |
2021-08-20 22:38:16 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-20 22:38:38 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-08-20 22:41:50 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-08-20 22:43:36 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-08-20 22:44:43 +0200 | ub | (~Thunderbi@178.115.47.86.wireless.dyn.drei.com) |
2021-08-20 22:45:36 +0200 | <tomsmeding> | siers: yeah |
2021-08-20 22:45:49 +0200 | <tomsmeding> | followed the example in the documentation of Family |
2021-08-20 22:46:12 +0200 | <siers> | tomsmeding, had you seen tricks with Refl before? |
2021-08-20 22:46:53 +0200 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-08-20 22:47:17 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-08-20 22:47:36 +0200 | <tomsmeding> | siers: this is code I've been writing recently :p https://github.com/tomsmeding/accelerate/blob/no-explode/src/Data/Array/Accelerate/Trafo/AD/Transl… |
2021-08-20 22:47:57 +0200 | <tomsmeding> | so yeah |
2021-08-20 22:48:10 +0200 | ubert | (~Thunderbi@178.115.47.86.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2021-08-20 22:48:10 +0200 | ub | ubert |
2021-08-20 22:49:57 +0200 | <tomsmeding> | siers: the ExprTermFamily in the gdiff documentation is analogous to 'ListFamily a' in my code |
2021-08-20 22:50:35 +0200 | <tomsmeding> | so 'ExprTermFamily ty fields' corresponds to 'ListFamily a ty fields': I added an additional type parameter |
2021-08-20 22:50:47 +0200 | <tomsmeding> | hence instance Family (ListFamily a) |
2021-08-20 22:51:03 +0200 | <tomsmeding> | and not just instance Family ExprTermFamily |
2021-08-20 22:54:46 +0200 | ubert | (~Thunderbi@178.115.47.86.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2021-08-20 22:56:56 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-08-20 22:57:48 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-20 22:58:08 +0200 | gustik | (~gustik@2a01:c844:2410:9020:63ab:4bb6:83d2:e11b) (Quit: Leaving) |
2021-08-20 23:00:11 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-20 23:00:40 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 23:03:56 +0200 | MQ-17J | (~MQ-17J@2607:fb90:8824:bf5d:8f75:f298:534b:ce5e) |
2021-08-20 23:05:13 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Ping timeout: 252 seconds) |
2021-08-20 23:06:14 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 250 seconds) |
2021-08-20 23:06:20 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-08-20 23:08:14 +0200 | oxide | (~lambda@user/oxide) |
2021-08-20 23:10:10 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 23:10:30 +0200 | Guest60 | (~Guest60@modemcable169.17-58-74.mc.videotron.ca) (Quit: Client closed) |
2021-08-20 23:13:19 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-20 23:13:28 +0200 | mjrosenb | (~mrosenbe@nyc.schrodinger.com) (Ping timeout: 252 seconds) |
2021-08-20 23:20:45 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2021-08-20 23:20:51 +0200 | cheater1__ | (~Username@user/cheater) |
2021-08-20 23:20:54 +0200 | cheater1__ | cheater |
2021-08-20 23:26:19 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
2021-08-20 23:26:43 +0200 | <ixlun> | Is it possible to define a typeclass that has a requires only a value to be implemented? |
2021-08-20 23:27:03 +0200 | <ixlun> | as opposed to a function |
2021-08-20 23:28:00 +0200 | <monochrom> | Bounded defines two values. Perhaps you can draw inspirations from it. |
2021-08-20 23:28:45 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 268 seconds) |
2021-08-20 23:29:29 +0200 | <[exa]> | (also, "function are values") |
2021-08-20 23:30:38 +0200 | Megant | (~kaitsu@user/megant) |
2021-08-20 23:30:42 +0200 | <[exa]> | technically, Monoid is also "value"-only now (the "function" is in Semigroup) |
2021-08-20 23:31:48 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-08-20 23:31:48 +0200 | <ixlun> | They are very close to what I'm after. I'm trying to do something like https://pastebin.com/mQ4JEScb |
2021-08-20 23:32:01 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 23:32:35 +0200 | <ixlun> | so each type that implements ParsableSection has to define it's own ID. Then in the 'parse' function, I can deduce the id from the type that's passed in. |
2021-08-20 23:33:42 +0200 | <hpc> | sectionId needs to have k somewhere in its type |
2021-08-20 23:33:45 +0200 | <[exa]> | you'd need to run the sectionId with a type application though, because otherwise there's no way how it can see which instance it belongs to |
2021-08-20 23:33:55 +0200 | <[exa]> | consider Proxy |
2021-08-20 23:34:13 +0200 | <[exa]> | (or something related) |
2021-08-20 23:35:10 +0200 | Megant | (~kaitsu@user/megant) (Ping timeout: 240 seconds) |
2021-08-20 23:35:28 +0200 | <[exa]> | and yeah, as hpc says -- I'd really vote for `sectionId :: k -> Word16` |
2021-08-20 23:35:46 +0200 | <[exa]> | it will allow you to parametrize the stuff by additional data |
2021-08-20 23:38:10 +0200 | <ixlun> | But then wouldn't I run into a chicken and egg scenario? In that the parse funciton yields a 'k' but I need to construct one to call sectionId? |
2021-08-20 23:38:48 +0200 | <ixlun> | and parse needs to call sectionId before it can do the parse |
2021-08-20 23:39:28 +0200 | oxide_ | (~lambda@user/oxide) |
2021-08-20 23:39:52 +0200 | <hpc> | in that case go with Proxy |
2021-08-20 23:40:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-08-20 23:41:32 +0200 | <ixlun> | Cool, then I guess the type signature would be: sectionId :: Proxy k? |
2021-08-20 23:41:38 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-08-20 23:41:51 +0200 | o1lo01ol1o | (~o1lo01ol1@5.181.115.89.rev.vodafone.pt) |
2021-08-20 23:42:08 +0200 | <ixlun> | sorry: sectionId :: Proxy k -> Word16 |
2021-08-20 23:42:19 +0200 | <hpc> | yep |
2021-08-20 23:42:31 +0200 | <c_wraith> | that works, though you might do better with sectionId :: proxy k -> Word16 |
2021-08-20 23:42:43 +0200 | <c_wraith> | making that p lowercase does some nice things |
2021-08-20 23:43:06 +0200 | <hpc> | sectionId Proxy @Foo |
2021-08-20 23:43:24 +0200 | <c_wraith> | In particular, it lets you pass values of other types that you might already have lying around in |
2021-08-20 23:43:49 +0200 | <c_wraith> | And parametricity guarantees you can't try to *use* the value |
2021-08-20 23:44:29 +0200 | <hpc> | not that you can do much with a Proxy value in the first place ;) |
2021-08-20 23:44:53 +0200 | <c_wraith> | can't do much, but you can at least pattern match on it |
2021-08-20 23:45:02 +0200 | <c_wraith> | Which can cause things to happen |
2021-08-20 23:45:14 +0200 | <[exa]> | o wow lowercase proxy |
2021-08-20 23:45:17 +0200 | <[exa]> | gooooooooood |
2021-08-20 23:45:26 +0200 | <[exa]> | (thanks!) |
2021-08-20 23:45:51 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-08-20 23:46:14 +0200 | <monochrom> | This is why I would write "p k -> Word16" instead. |
2021-08-20 23:47:50 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 250 seconds) |
2021-08-20 23:48:07 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 252 seconds) |
2021-08-20 23:49:15 +0200 | <hpc> | just be careful, this is the gateway drug to f s t a b :D |
2021-08-20 23:52:38 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-20 23:53:09 +0200 | <ixlun> | Hmm okay. I gave it ago, and I'm getting an error. Here is the full code: https://termbin.com/r6qo |
2021-08-20 23:54:45 +0200 | <hpc> | might need scoped type variables? |
2021-08-20 23:54:52 +0200 | <monochrom> | Yeah, that. |
2021-08-20 23:55:06 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-08-20 23:56:35 +0200 | <ixlun> | Here is the error https://termbin.com/7klc |
2021-08-20 23:56:44 +0200 | <monochrom> | local "foo :: Bar a" means "foo :: forall a. Bar a" i.e. "foo :: Bar nothing_to_do_with_other_types" |
2021-08-20 23:57:46 +0200 | <ixlun> | Issue still persists with scoped type variables |
2021-08-20 23:58:17 +0200 | <monochrom> | You do have to write more than turning on the extension. |
2021-08-20 23:58:48 +0200 | <monochrom> | you have to now say "parseSection :: forall a m. (ParsableSection a, MonadError String m) => CodePlug -> ..." |
2021-08-20 23:59:18 +0200 | <ixlun> | Ahh, so when I say 'p = Proxy :: Proxy a'. the 'a' is a different type variable and doesn 't refer to the ParsableSection 'a'? |