Logs on 2021-10-10 (liberachat/#haskell)
| 00:06:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 00:08:24 | × | chomwitt quits (~chomwitt@94.66.61.137) (Ping timeout: 265 seconds) |
| 00:08:51 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 250 seconds) |
| 00:10:34 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 00:12:11 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 00:17:14 | × | acidjnk_new quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 00:17:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:17:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:17:28 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:20:09 | × | Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 00:21:56 | × | ph88 quits (~ph88@dslb-178-001-158-182.178.001.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
| 00:23:54 | → | systemhalted joins (~systemhal@130.51.137.77) |
| 00:25:51 | → | dajoer joins (~david@user/gvx) |
| 00:28:43 | × | systemhalted quits (~systemhal@130.51.137.77) (Ping timeout: 252 seconds) |
| 00:29:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 00:31:32 | × | TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
| 00:34:30 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Ping timeout: 260 seconds) |
| 00:38:27 | × | syntactic_sugar quits (~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1) |
| 00:39:20 | × | alx741 quits (~alx741@181.196.68.60) (Ping timeout: 265 seconds) |
| 00:42:21 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 00:42:28 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:c707:55db:3139:271f) (Ping timeout: 252 seconds) |
| 00:42:44 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 00:44:37 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:bea9:a565:1d5e:1b2d) |
| 00:47:04 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 00:52:26 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 00:52:35 | → | alx741 joins (~alx741@181.196.69.249) |
| 00:53:40 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 00:55:09 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 00:55:35 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:59:10 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 01:00:07 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 01:05:46 | <sm> | what is https://hackage.haskell.org/package/numeric-prelude-0.4.3.3/docs/Algebra-RealRing.html ? |
| 01:06:59 | <c_wraith> | A Henning Thielemann package. |
| 01:08:25 | <c_wraith> | Looks like the class is that package's equivalent to base's RealFrac |
| 01:08:27 | <awpr> | is there a convention that all classes are named `C`? |
| 01:08:36 | <c_wraith> | that's Henning Thielemann |
| 01:08:42 | <c_wraith> | all his types are named T |
| 01:08:52 | × | xff0x quits (~xff0x@2001:1a81:528b:f000:e4dd:6ceb:f4d5:b9b2) (Ping timeout: 252 seconds) |
| 01:09:02 | <awpr> | optimizing for the most inscrutable Hackage docs possible, apparently |
| 01:09:19 | <awpr> | `class (C a, Ord a) => C a where ...` |
| 01:10:29 | → | xff0x joins (~xff0x@2001:1a81:52ca:8900:3fb5:73ff:4151:6c25) |
| 01:12:06 | <awpr> | lol, the Haddock FR is almost certainly referring to this library https://github.com/haskell/haddock/issues/272 |
| 01:12:24 | <awpr> | "sometimes we get libraries which use single letter data type and type class names" |
| 01:12:42 | <c_wraith> | well. All of his libraries. Not just that one. |
| 01:13:24 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 01:15:08 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 01:20:12 | sm | didn't care about the T type, but the lack of introductory sentence is bothersome |
| 01:20:38 | <sm> | hackage should simply disallow such uploads |
| 01:22:26 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c::3d56) |
| 01:23:06 | <sm> | come the revolution, every module shall have a non empty module haddock. |
| 01:24:02 | → | hendursaga joins (~weechat@user/hendursaga) |
| 01:35:39 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 01:36:47 | → | zaquest joins (~notzaques@5.128.210.178) |
| 01:38:12 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 01:38:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 01:44:01 | × | jinsun quits (~quassel@user/jinsun) (Ping timeout: 252 seconds) |
| 01:47:31 | → | hippoid joins (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) |
| 01:51:09 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 01:54:19 | × | peter71 quits (~a@p200300ef971a68c8e4ca7f30fbe64496.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1) |
| 01:57:27 | × | MQ-17J quits (~MQ-17J@8.6.144.117) (Read error: Connection reset by peer) |
| 01:57:37 | × | hippoid quits (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
| 01:58:01 | → | MQ-17J joins (~MQ-17J@8.6.144.117) |
| 02:02:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:02:29 | → | falafel joins (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) |
| 02:03:27 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 02:04:44 | → | jinsun joins (~quassel@user/jinsun) |
| 02:05:13 | → | hendursaga joins (~weechat@user/hendursaga) |
| 02:12:30 | × | falafel quits (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 02:13:59 | <Axman6> | c_wraith, awpr: I would guess those packages are intended to be imported qualified and then used as RealRing.T. For some reason we do a similar thing in our stuff at work, and I have a love/hate relationship with it (Mostly because we'll have Foo.Bar.Baz define a type called Baz, then type T = Baz, so when I hover a usage of Bar.T all I get is the type T = Bar definition, and not Baz's definition) |
| 02:14:08 | × | neightchan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Read error: No route to host) |
| 02:14:46 | <dsal> | "This is the type class of a ring with a notion of an absolute value, satisfying the laws" -- Yeah, sounds like something that should be named `C` |
| 02:14:47 | <awpr> | yeah, I assumed that was the reasoning. just makes for really bad Haddockumentation |
| 02:16:00 | dsal | imagines a class ring with absolute value |
| 02:16:28 | zero | is now known as zzz |
| 02:18:13 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 02:19:00 | → | falafel joins (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) |
| 02:20:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 02:20:51 | tremon | is now known as tremon_ |
| 02:35:26 | × | _\_ quits (~o@user/ding) (Quit: ___) |
| 02:36:06 | → | _\_ joins (~o@user/ding) |
| 02:36:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 02:39:00 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 02:39:33 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
| 02:40:33 | → | Cajun joins (~Cajun@user/cajun) |
| 02:46:48 | × | alx741 quits (~alx741@181.196.69.249) (Quit: alx741) |
| 02:48:25 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 02:53:34 | × | td_ quits (~td@muedsl-82-207-238-244.citykom.de) (Ping timeout: 260 seconds) |
| 02:54:28 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
| 02:55:01 | → | td_ joins (~td@muedsl-82-207-238-022.citykom.de) |
| 02:56:32 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:57:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 03:01:25 | × | _\_ quits (~o@user/ding) (Quit: ___) |
| 03:02:04 | → | _\_ joins (~o@user/ding) |
| 03:02:11 | × | CiaoSen quits (~Jura@p5dcc1e8d.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 03:02:53 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:06:30 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 03:07:12 | → | Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) |
| 03:11:46 | × | Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Ping timeout: 260 seconds) |
| 03:12:22 | → | hendursaga joins (~weechat@user/hendursaga) |
| 03:16:54 | <TDANG_> | Hi. What does this symbol do: <> |
| 03:17:55 | <c_wraith> | TDANG_: It's helpful to know about haddock indexes - https://hackage.haskell.org/package/base-4.15.0.0/docs/doc-index-60.html |
| 03:20:14 | <TDANG_> | So, is it an concatenation of 2 list? |
| 03:20:39 | <c_wraith> | > "hello " <> "world" |
| 03:20:40 | <lambdabot> | "hello world" |
| 03:20:43 | <c_wraith> | with lists, it is |
| 03:21:14 | <int-e> | :t (<>) |
| 03:21:16 | <lambdabot> | Semigroup a => a -> a -> a |
| 03:21:44 | <int-e> | > (Plus 2 <> Plus 5, Times 2 <> Times 5) -- hmm |
| 03:21:46 | <lambdabot> | error: |
| 03:21:46 | <lambdabot> | Data constructor not in scope: Plus :: t0 -> aerror: |
| 03:21:46 | <lambdabot> | Data constructor not in scope: Plus :: t1 -> aerror: |
| 03:21:50 | <int-e> | aww |
| 03:21:53 | <c_wraith> | > getSum $ Sum 1 <> Sum 4 |
| 03:21:55 | <lambdabot> | 5 |
| 03:22:04 | <TDANG_> | so, are they same: <> and ++ |
| 03:22:08 | <c_wraith> | for lists |
| 03:22:09 | <TDANG_> | ? |
| 03:22:16 | <int-e> | :t (++) |
| 03:22:17 | <lambdabot> | [a] -> [a] -> [a] |
| 03:22:19 | <c_wraith> | <> works on many other types |
| 03:22:19 | <int-e> | ++ is only for lists |
| 03:22:58 | <TDANG_> | ++ also works for string, "hello " ++ "world" |
| 03:23:00 | <int-e> | <> generalizes ++ |
| 03:23:07 | <int-e> | String = [Char] is a list |
| 03:23:18 | <TDANG_> | Oh, I see |
| 03:23:46 | <TDANG_> | so, what is the difference of <> vs ++ |
| 03:23:47 | × | mniip quits (mniip@libera/staff/mniip) (Remote host closed the connection) |
| 03:23:56 | <awpr> | > Sum 5 <> Sum 6 |
| 03:23:58 | <lambdabot> | Sum {getSum = 11} |
| 03:24:36 | <awpr> | it's generally "some associative combining function that's appropriate for the type" |
| 03:24:49 | <int-e> | > (text "abc" <> text "def", Product 2 <> Product 5) |
| 03:24:50 | <lambdabot> | (abcdef,Product {getProduct = 10}) |
| 03:25:06 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds) |
| 03:25:44 | <awpr> | > Data.Set.fromList [2, 4, 6] <> Data.Set.fromList [1, 3, 5] |
| 03:25:46 | <lambdabot> | fromList [1,2,3,4,5,6] |
| 03:26:21 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
| 03:28:04 | → | mniip joins (~mniip@libera/staff/mniip) |
| 03:29:37 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 03:30:02 | → | notzmv joins (~zmv@user/notzmv) |
| 03:49:46 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
| 03:56:46 | × | falafel quits (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) (Ping timeout: 245 seconds) |
| 04:01:45 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 04:02:59 | → | falafel joins (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) |
| 04:04:00 | → | hendursaga joins (~weechat@user/hendursaga) |
| 04:05:43 | → | natechan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 04:10:55 | × | lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap) |
| 04:13:05 | → | lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 04:16:23 | → | scootahlong joins (~scootahlo@122-199-26-165.ip4.superloop.com) |
| 04:16:42 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 04:18:01 | × | falafel quits (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) (Ping timeout: 245 seconds) |
| 04:18:57 | → | hendursaga joins (~weechat@user/hendursaga) |
| 04:23:51 | × | pfurla_ quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 04:23:55 | → | tonyday joins (~user@122-199-26-165.ip4.superloop.com) |
| 04:25:39 | × | scootahlong quits (~scootahlo@122-199-26-165.ip4.superloop.com) (Quit: Connection closed) |
| 04:27:28 | × | tonyday quits (~user@122-199-26-165.ip4.superloop.com) (Remote host closed the connection) |
| 04:30:03 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:33:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:33:42 | → | syntactic_sugar joins (~amoljha@2601:644:8601:2e30::822c) |
| 04:35:03 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:35:05 | × | syntactic_sugar quits (~amoljha@2601:644:8601:2e30::822c) (Client Quit) |
| 04:47:16 | × | aegon quits (~mike@174.127.249.180) (Remote host closed the connection) |
| 04:49:45 | → | falafel joins (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) |
| 05:04:16 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 05:06:13 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 05:07:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 05:12:54 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 05:16:46 | → | coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) |
| 05:18:24 | → | fef joins (~thedawn@user/thedawn) |
| 05:19:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:19:18 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 05:19:18 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:19:40 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 05:20:06 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 05:23:31 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 05:24:30 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 05:25:46 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 05:32:43 | <dsal> | TDANG_: ++ does list concatenation only. <> lets you combine anything that's a semigroup. |
| 05:33:05 | <dsal> | A semigroup is a type that has an operator that takes two things of that type and returns a new thing of that type. That operator in Haskell is <> |
| 05:33:51 | × | falafel quits (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) (Ping timeout: 245 seconds) |
| 05:34:09 | <dsal> | If you have two things of type [T], <> is the same thing as ++. But There are many different things with that property. Simple examples are stuff like Text, which look syntactically similar (with OverloadedStrings), but you can't use ++ |
| 05:34:54 | <dsal> | Semigroups (and monoids in general) seem kind of dumb at first, but they're everywhere, and having a common language and common tooling makes a lot of things easier. |
| 05:35:21 | <dsal> | Though I did run into the situation today I learned that there's no Either monoid. :( |
| 05:36:49 | <dsal> | > fold . traverse Right $ [1, 2, 3] -- I had to replace a `foldMap` with a `fold . traverse`. It was pretty tragic. |
| 05:36:51 | <lambdabot> | [1,2,3] |
| 05:37:10 | <dsal> | No, that's not what I did. |
| 05:39:13 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 05:39:36 | <dsal> | Oh, that's right, it was more like this: |
| 05:39:38 | <dsal> | > fmap fold . traverse (Right . (:[])) $ [1, 2, 3] |
| 05:39:40 | <lambdabot> | Right [1,2,3] |
| 05:40:07 | <dsal> | I had to `fmap fold . traverse` to get the same effect I wanted from `foldMap` |
| 05:40:28 | <dsal> | I don't know. It was time for me to go to bed in the past. Brain not feel right. |
| 05:48:19 | <hololeap> | dsal: what were you trying to do with Either? |
| 05:49:12 | <dsal> | I just had a Left that was an error and a right that was a list. I wanted my foldMap to stay Left or fold Right. |
| 05:49:17 | <dsal> | Something like that. |
| 05:49:31 | <dsal> | The problem is that there's more than one correct way to do it, I guess. |
| 05:49:40 | <hololeap> | isn't that just the applicative instance of Either? |
| 05:50:19 | <hololeap> | > sequenceA [Right 3, Left "error", Right 4] |
| 05:50:20 | <lambdabot> | Left "error" |
| 05:50:29 | <dsal> | Yeah. That's why I ended up using traverse. |
| 05:50:32 | <hololeap> | > sequenceA [Right 3, Right 0, Right 4] |
| 05:50:34 | <lambdabot> | Right [3,0,4] |
| 05:50:51 | <dsal> | But my Rights might were lists I wanted to fold. |
| 05:50:58 | <dsal> | So I was hoping it'd either spit out a Left or fold Right. |
| 05:51:38 | <dsal> | I don't remember exactly what I was doing… but I learned that it's another case where Maybe and Either differ in a slightly surprising way. |
| 05:52:07 | <dsal> | Actually, it's even differenter. |
| 05:52:09 | <dsal> | > Just [1] <> Just [2] |
| 05:52:11 | <lambdabot> | Just [1,2] |
| 05:52:14 | <dsal> | > Right [1] <> Right [2] |
| 05:52:16 | <lambdabot> | Right [1] |
| 05:52:34 | <dsal> | My example didn't compile, which is nice, because I don't like whatever this is. heh |
| 05:53:16 | <hololeap> | > fold $ Right [Sum 1, Sum 2, Sum 3] |
| 05:53:18 | <lambdabot> | [Sum {getSum = 1},Sum {getSum = 2},Sum {getSum = 3}] |
| 05:53:34 | <hololeap> | wait, what |
| 05:53:55 | <hololeap> | oh I see the need for fmap fold now |
| 05:54:27 | <hololeap> | > fold $ Ap $ Right [Sum 1, Sum 2, Sum 3] |
| 05:54:29 | <lambdabot> | [Sum {getSum = 1},Sum {getSum = 2},Sum {getSum = 3}] |
| 06:03:35 | × | jlamothe quits (~jlamothe@104.158.48.100) (Ping timeout: 246 seconds) |
| 06:03:41 | → | falafel joins (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) |
| 06:04:51 | <hololeap> | > foldMap Ap [Right (Sum 1), Right (Sum 2), Right (Sum 3)] |
| 06:04:53 | <lambdabot> | Ap {getAp = Right (Sum {getSum = 6})} |
| 06:05:02 | <hololeap> | > foldMap Ap [Right (Sum 1), Left "error", Right (Sum 3)] |
| 06:05:04 | <lambdabot> | Ap {getAp = Left "error"} |
| 06:05:42 | → | jlamothe joins (~jlamothe@198.251.61.229) |
| 06:07:10 | <hololeap> | dsal: that's what I was thinking of. using Ap to get a monoid from Monoid a => Either e a |
| 06:08:15 | <hololeap> | > Ap (Right [1]) <> Ap (Right [2]) |
| 06:08:17 | <lambdabot> | Ap {getAp = Right [1,2]} |
| 06:11:12 | × | falafel quits (~falafel@2603-8000-d800-688c-1149-ad01-bbe3-4af1.res6.spectrum.com) (Remote host closed the connection) |
| 06:13:43 | <hololeap> | > Ap (Left "error") <> Ap (Right [2]) |
| 06:13:45 | <lambdabot> | Ap {getAp = Left "error"} |
| 06:15:11 | <hololeap> | anyway, I find Ap to be useful, and often times I'll just derive Semigroup and Monoid from it using DerivingVia, if the applicative doesn't have some other obvious monoid instance |
| 06:18:21 | <hololeap> | now if Endo took any Category instead of forcing you to use (a -> a), we'd be getting somewhere :) |
| 06:21:51 | → | vglfr joins (~vglfr@88.155.3.123) |
| 06:23:40 | × | vglfr quits (~vglfr@88.155.3.123) (Remote host closed the connection) |
| 06:29:43 | <hololeap> | % newtype Endo' c a = Endo' { runEndo' :: c a a } |
| 06:29:43 | <yahb> | hololeap: |
| 06:30:06 | <hololeap> | % instance Category c => Semigroup (Endo' c a) where Endo' f <> Endo' g = Endo' (f C.. g) |
| 06:30:06 | <yahb> | hololeap: |
| 06:30:15 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 06:30:22 | <hololeap> | % newtype Thing r a = Thing (a -> r -> a) |
| 06:30:22 | <yahb> | hololeap: |
| 06:30:29 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:30:38 | <hololeap> | % deriving via Endo' (Kleisli (Reader r)) a instance Semigroup (Thing r a) |
| 06:30:38 | <yahb> | hololeap: |
| 06:32:13 | <hololeap> | lol, I think that's just foldl with extra steps. still cool |
| 06:32:42 | <hololeap> | well, not quite, but it would fit into a foldl |
| 06:34:21 | → | wonko joins (~wjc@62.115.229.50) |
| 06:34:50 | <hololeap> | hm, no, it's just isomorphic to Ap (Reader r) (Endo a) |
| 06:35:48 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 06:37:24 | <hololeap> | something something hom functor |
| 06:47:51 | → | fef joins (~thedawn@user/thedawn) |
| 07:03:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:13:21 | → | chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) |
| 07:23:00 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 07:25:13 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 07:25:55 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 07:28:33 | <gentauro> | is it possible to set the `-WAll` flag just on a single file? |
| 07:28:39 | <gentauro> | just like with pragmas? |
| 07:29:28 | gentauro | `{-# LANGUAGE MultiParamTypeClasses #-}` -> `{-# LANGUAGE WAll #-}` or something like that |
| 07:31:15 | → | notzmv joins (~zmv@user/notzmv) |
| 07:31:47 | <awpr> | `{-# OPTIONS_GHC -Wall #-}` |
| 07:37:51 | × | brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Quit: Leaving) |
| 07:38:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 07:42:43 | <gentauro> | awpr: thx |
| 07:45:02 | → | jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
| 07:45:30 | × | coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 07:47:44 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:56:06 | → | Lycurgus joins (~juan@98.4.112.204) |
| 07:57:27 | → | alzgh joins (~alzgh@user/alzgh) |
| 08:01:47 | × | Skyfire quits (~pyon@user/pyon) (Quit: brb) |
| 08:01:58 | → | ubert joins (~Thunderbi@91.141.71.73.wireless.dyn.drei.com) |
| 08:02:11 | → | Skyfire joins (~pyon@user/pyon) |
| 08:02:17 | × | ubert quits (~Thunderbi@91.141.71.73.wireless.dyn.drei.com) (Client Quit) |
| 08:04:20 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:05:03 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:05:12 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:08:45 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 08:09:52 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 08:11:47 | × | rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:13:08 | → | DNH joins (~DNH@2a02:8108:1100:16d8:b5db:e528:b8d:89bb) |
| 08:13:49 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 08:16:12 | → | rembo10 joins (~rembo10@remulis.com) |
| 08:17:36 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds) |
| 08:17:37 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 08:17:37 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:40 | allbery_b | is now known as geekosaur |
| 08:20:10 | → | wonko joins (~wjc@62.115.229.50) |
| 08:21:07 | razor[m] | uploaded an image: (1707KiB) < https://libera.ems.host/_matrix/media/r0/download/monero.social/MFQekLlyOhDaKbUVhZZFLVIV/image.png > |
| 08:21:22 | <razor[m]> | how i look |
| 08:22:35 | <Lycurgus> | like ur in the wrong place to be real? |
| 08:23:10 | × | DNH quits (~DNH@2a02:8108:1100:16d8:b5db:e528:b8d:89bb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:23:26 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 08:24:30 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 08:28:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Ping timeout: 260 seconds) |
| 08:28:15 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 08:29:25 | × | chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
| 08:29:41 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:30:36 | → | chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) |
| 08:33:51 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 08:34:27 | → | acidjnk_new joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 08:46:50 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 260 seconds) |
| 08:49:33 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:52:38 | × | choucavalier quits (~choucaval@user/choucavalier) (Ping timeout: 246 seconds) |
| 08:58:12 | → | fendor_ joins (~fendor@178.165.170.133.wireless.dyn.drei.com) |
| 09:00:31 | × | fendor quits (~fendor@91.141.39.19.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
| 09:03:37 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
| 09:04:04 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 09:12:21 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:19:10 | → | Elis21F joins (~KELEBEK@188.119.54.133) |
| 09:19:16 | × | kaizen quits (sid501599@id-501599.helmsley.irccloud.com) (Ping timeout: 245 seconds) |
| 09:19:16 | × | grfn quits (sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 245 seconds) |
| 09:20:01 | × | hubvu quits (sid495858@user/hubvu) (Ping timeout: 252 seconds) |
| 09:20:34 | × | kristjansson_ quits (sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 252 seconds) |
| 09:20:55 | × | T_S_ quits (sid501726@id-501726.uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
| 09:20:56 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 245 seconds) |
| 09:21:13 | → | T_S_ joins (sid501726@uxbridge.irccloud.com) |
| 09:22:04 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
| 09:22:12 | → | kaizen joins (sid501599@helmsley.irccloud.com) |
| 09:22:15 | → | hubvu joins (sid495858@user/hubvu) |
| 09:22:19 | → | kristjansson_ joins (sid126207@tinside.irccloud.com) |
| 09:22:51 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 09:23:38 | → | coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) |
| 09:24:03 | → | hook54321 joins (sid149355@user/hook54321) |
| 09:24:29 | × | hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 09:25:30 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 09:26:28 | <maerwald> | lol |
| 09:29:29 | × | _0x47 quits (sid508683@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:40 | × | jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 260 seconds) |
| 09:29:40 | × | sa quits (sid1055@5.254.36.57) (Ping timeout: 260 seconds) |
| 09:29:41 | × | hongminhee quits (sid295@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:41 | × | hubvu quits (sid495858@user/hubvu) (Ping timeout: 245 seconds) |
| 09:29:47 | × | typetetris quits (sid275937@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:49 | × | taktoa[c] quits (sid282096@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:50 | × | jmct_ quits (sid160793@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:52 | × | kristjansson_ quits (sid126207@tinside.irccloud.com) (Read error: Connection reset by peer) |
| 09:29:52 | × | agander_m quits (sid407952@5.254.36.57) (Read error: Connection reset by peer) |
| 09:29:56 | × | Elis21F quits (~KELEBEK@188.119.54.133) (Quit: � Www.Kelebek.Org Mutlaka Download Edin! Kelebek Final irc.kelebek.org �y wToprak �) |
| 09:30:00 | × | glowcoil quits (sid3405@5.254.36.57) (Read error: Connection reset by peer) |
| 09:30:06 | × | Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 245 seconds) |
| 09:30:10 | × | bbhoss quits (sid18216@5.254.36.57) (Read error: Connection reset by peer) |
| 09:32:50 | → | hongminhee joins (sid295@tinside.irccloud.com) |
| 09:33:03 | → | typetetris joins (sid275937@tinside.irccloud.com) |
| 09:33:17 | → | _0x47 joins (sid508683@id-508683.tinside.irccloud.com) |
| 09:33:27 | → | bbhoss joins (sid18216@tinside.irccloud.com) |
| 09:33:33 | → | taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com) |
| 09:33:37 | → | jmct_ joins (sid160793@id-160793.tinside.irccloud.com) |
| 09:33:41 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 09:33:44 | → | kristjansson_ joins (sid126207@id-126207.tinside.irccloud.com) |
| 09:33:45 | → | grfn joins (sid449115@id-449115.helmsley.irccloud.com) |
| 09:33:45 | → | jackdk joins (sid373013@cssa/jackdk) |
| 09:33:49 | → | hubvu joins (sid495858@user/hubvu) |
| 09:34:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:34:17 | → | sa joins (sid1055@id-1055.tinside.irccloud.com) |
| 09:34:21 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 09:34:48 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 09:56:31 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb54947e0de64b437952.dip0.t-ipconnect.de) |
| 10:00:58 | × | acidjnk_new quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 10:03:43 | → | cls joins (~cls@chalk.lubutu.com) |
| 10:05:54 | → | neurocyte0132889 joins (~neurocyte@45.10.62.134) |
| 10:05:54 | × | neurocyte0132889 quits (~neurocyte@45.10.62.134) (Changing host) |
| 10:05:54 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 10:08:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 10:19:28 | → | __monty__ joins (~toonn@user/toonn) |
| 10:26:11 | × | coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 10:31:03 | → | mbuf joins (~Shakthi@122.178.231.226) |
| 10:34:16 | × | agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 252 seconds) |
| 10:34:38 | × | jmct_ quits (sid160793@id-160793.tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 10:34:49 | × | jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 252 seconds) |
| 10:35:06 | × | hubvu quits (sid495858@user/hubvu) (Ping timeout: 260 seconds) |
| 10:35:06 | × | glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 10:35:22 | × | sa quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 252 seconds) |
| 10:35:22 | × | _0x47 quits (sid508683@id-508683.tinside.irccloud.com) (Ping timeout: 252 seconds) |
| 10:35:34 | × | kristjansson_ quits (sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 10:35:55 | × | grfn quits (sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 252 seconds) |
| 10:35:58 | → | taktoa[c]_ joins (sid282096@tinside.irccloud.com) |
| 10:36:02 | × | taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 260 seconds) |
| 10:36:02 | taktoa[c]_ | is now known as taktoa[c] |
| 10:36:04 | → | grfn joins (sid449115@helmsley.irccloud.com) |
| 10:36:12 | <cls> | i'm trying to understand a datatype i'm working with. i have a full set of functions for constructing it inductively, and a complementary set of functions for deconstructing it coinductively, sort of like an ADT or a product of prisms, is that 'just' an Iso? i'm trying to work out the best way to visualise it. |
| 10:36:38 | → | hubvu joins (sid495858@user/hubvu) |
| 10:36:47 | → | sa joins (sid1055@tinside.irccloud.com) |
| 10:37:11 | → | glowcoil joins (sid3405@tinside.irccloud.com) |
| 10:37:16 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 10:37:31 | → | kristjansson_ joins (sid126207@tinside.irccloud.com) |
| 10:38:21 | → | jackdk joins (sid373013@cssa/jackdk) |
| 10:38:22 | → | _0x47 joins (sid508683@tinside.irccloud.com) |
| 10:38:35 | → | coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) |
| 10:39:31 | → | agander_m joins (sid407952@tinside.irccloud.com) |
| 10:39:50 | → | jmct_ joins (sid160793@tinside.irccloud.com) |
| 10:46:36 | → | DNH joins (~DNH@2a02:8108:1100:16d8:2c83:2f3:e68a:5c4) |
| 10:57:32 | × | ghoulguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer) |
| 11:00:50 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 11:00:54 | → | alx741 joins (~alx741@181.196.69.249) |
| 11:01:39 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds) |
| 11:01:42 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
| 11:02:59 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 11:04:45 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 11:10:21 | → | aliosablack joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) |
| 11:10:34 | × | chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
| 11:12:02 | × | jaitoon quits (~Jaitoon@188.241.156.2) (Quit: Leaving) |
| 11:12:26 | × | FragByte quits (~christian@user/fragbyte) (Quit: Quit) |
| 11:14:13 | → | FragByte joins (~christian@user/fragbyte) |
| 11:18:13 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 11:18:36 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:18:54 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c::3d56) (Quit: Leaving) |
| 11:20:53 | → | Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
| 11:22:13 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan) |
| 11:28:24 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 11:30:36 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:33:30 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
| 11:33:48 | → | acidjnk_new joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 11:33:50 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 11:35:07 | → | glguy joins (x@libera/staff/glguy) |
| 11:36:41 | → | unknown__ joins (~thedawn@user/thedawn) |
| 11:37:13 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb54947e0de64b437952.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 11:37:13 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 11:41:02 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
| 11:41:18 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 11:42:54 | × | DNH quits (~DNH@2a02:8108:1100:16d8:2c83:2f3:e68a:5c4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:43:45 | → | DNH joins (~DNH@2a02:8108:1100:16d8:2c83:2f3:e68a:5c4) |
| 11:46:45 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:46:47 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 11:47:42 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 268 seconds) |
| 11:49:29 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 11:53:56 | <troydm> | how do I specify -L library to be linked with my exe when via stakc.yaml ? |
| 11:54:17 | <troydm> | or should it be specified in .cabal file? |
| 11:59:05 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 250 seconds) |
| 11:59:56 | <tomsmeding> | troydm: in the .cabal file you can use https://cabal.readthedocs.io/en/3.6/cabal-package.html#pkg-field-ld-options probably |
| 12:00:27 | <troydm> | tomsmeding: found it, it's called extra-libraries:, but strangely it can't find my libinput library |
| 12:01:04 | <tomsmeding> | maybe extra-libraries adds -l options, whereas you need some -L as well? |
| 12:01:09 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 12:01:25 | <troydm> | tomsmeding: seems so |
| 12:03:44 | <troydm> | nvm figured it out, had to specify libinput with lib prefix as it seems like it automatically adds it when linking |
| 12:04:05 | <troydm> | extra-libraries: input |
| 12:04:07 | <troydm> | worked |
| 12:04:53 | → | xiongxin joins (~quassel@113.116.34.120) |
| 12:04:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:07:31 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 12:09:35 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 12:11:53 | × | xiongxin quits (~quassel@113.116.34.120) (Read error: Connection reset by peer) |
| 12:12:49 | → | xiongxin joins (~quassel@119.123.101.136) |
| 12:14:43 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 12:16:40 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 12:16:41 | → | Farzad joins (~FarzadBek@178.131.30.105) |
| 12:24:35 | → | max22- joins (~maxime@2a01cb0883359800b15a48cb0cc875f6.ipv6.abo.wanadoo.fr) |
| 12:26:35 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 12:28:36 | → | sm2n_ joins (~sm2n@user/sm2n) |
| 12:29:29 | × | sm2n quits (~sm2n@user/sm2n) (Ping timeout: 245 seconds) |
| 12:30:40 | → | mrckndt joins (~mrckndt@user/mrckndt) |
| 12:31:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 12:34:53 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:35:05 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:36:19 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 12:39:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 12:43:28 | × | sm2n_ quits (~sm2n@user/sm2n) (Ping timeout: 252 seconds) |
| 12:48:28 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:49:53 | → | img joins (~img@user/img) |
| 12:52:27 | × | max22- quits (~maxime@2a01cb0883359800b15a48cb0cc875f6.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 13:01:22 | → | Guest23568 joins (~user@123.180.79.70) |
| 13:01:56 | → | twitu joins (~twitu@122.163.88.222) |
| 13:07:10 | → | max22- joins (~maxime@2a01cb088335980078ad8eabec9c6d90.ipv6.abo.wanadoo.fr) |
| 13:07:43 | × | twitu quits (~twitu@122.163.88.222) (Quit: Client closed) |
| 13:10:13 | → | hippoid joins (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) |
| 13:11:28 | → | twitu joins (~twitu@122.163.88.222) |
| 13:20:01 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:20:02 | <geekosaur> | troydm, yes, the linker automatically prepends "lib" to any library specified with -l |
| 13:20:18 | <geekosaur> | so you'll see this in C too |
| 13:21:36 | → | zebrag joins (~chris@user/zebrag) |
| 13:22:38 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:24:01 | → | img joins (~img@user/img) |
| 13:27:01 | → | choucavalier joins (~choucaval@2001:41d0:a:2158::1) |
| 13:33:06 | × | unknown__ quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 13:37:25 | → | CiaoSen joins (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:43:07 | × | hippoid quits (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
| 13:44:47 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:47:39 | × | twitu quits (~twitu@122.163.88.222) (Ping timeout: 256 seconds) |
| 13:48:16 | → | connrs joins (~connrs@conners.plus.com) |
| 14:03:50 | × | coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 14:09:45 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 14:10:00 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:10:51 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 14:11:09 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:11:27 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 14:12:31 | → | img joins (~img@user/img) |
| 14:14:59 | → | mei6 joins (~mei@user/mei) |
| 14:15:53 | × | mei6 quits (~mei@user/mei) (Client Quit) |
| 14:16:17 | → | Guest12 joins (~Guest12@2405:9800:ba00:8058:827e:a0f5:e23:ac59) |
| 14:16:31 | → | twitu joins (~twitu@122.163.88.222) |
| 14:17:27 | → | Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) |
| 14:17:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 14:19:09 | <Guest12> | @type map |
| 14:19:10 | <lambdabot> | (a -> b) -> [a] -> [b] |
| 14:20:56 | × | acidjnk_new quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 14:21:18 | <Guest12> | > map (+1) [1..10] |
| 14:21:20 | <lambdabot> | [2,3,4,5,6,7,8,9,10,11] |
| 14:21:32 | <Guest12> | @list |
| 14:21:32 | <lambdabot> | What module? Try @listmodules for some ideas. |
| 14:21:38 | <Guest12> | @listmodules |
| 14:21:39 | <lambdabot> | activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search |
| 14:21:39 | <lambdabot> | seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where |
| 14:22:12 | <Guest12> | @help |
| 14:22:12 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
| 14:22:21 | <Guest12> | @help list |
| 14:22:22 | <lambdabot> | list [module|command]. Show commands for [module] or the module providing [command]. |
| 14:22:22 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Ping timeout: 260 seconds) |
| 14:22:34 | <Guest12> | @help pointfree |
| 14:22:34 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
| 14:24:02 | <Guest12> | @help pointful |
| 14:24:02 | <lambdabot> | pointful <expr>. Make code pointier. |
| 14:24:16 | <geekosaur> | @help pl |
| 14:24:16 | <lambdabot> | pointless <expr>. Play with pointfree code. |
| 14:24:27 | <Guest12> | @pointful |
| 14:24:27 | <lambdabot> | Error: expected a Haskell expression or declaration |
| 14:24:31 | <Guest12> | @pointful \f1 f2 f3 t -> (,,) (f1 t) (f2 t) (f3 t) |
| 14:24:31 | <lambdabot> | \ f1 f2 f3 t -> (,,) (f1 t) (f2 t) (f3 t) |
| 14:25:05 | <geekosaur> | that one's already got points. (,,) is a constructor, not pointfree |
| 14:30:05 | <Guest12> | @pointful return |
| 14:30:05 | <lambdabot> | return |
| 14:30:43 | × | arahael quits (~arahael@203-206-94-225.tpgi.com.au) (Ping timeout: 252 seconds) |
| 14:30:57 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 276 seconds) |
| 14:35:03 | → | arahael joins (~arahael@203-206-94-225.tpgi.com.au) |
| 14:35:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:37:37 | × | Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection) |
| 14:39:41 | × | xff0x quits (~xff0x@2001:1a81:52ca:8900:3fb5:73ff:4151:6c25) (Ping timeout: 245 seconds) |
| 14:40:27 | × | Guest23568 quits (~user@123.180.79.70) (Quit: ERC (IRC client for Emacs 26.3)) |
| 14:43:25 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 14:44:21 | → | Lycurgus joins (~juan@98.4.112.204) |
| 14:49:37 | × | connrs quits (~connrs@conners.plus.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:50:07 | → | connrs joins (~connrs@conners.plus.com) |
| 14:50:58 | × | Farzad quits (~FarzadBek@178.131.30.105) (Ping timeout: 265 seconds) |
| 14:51:02 | → | sedeki joins (~textual@user/sedeki) |
| 14:52:25 | × | connrs quits (~connrs@conners.plus.com) (Client Quit) |
| 14:53:06 | → | connrs joins (~connrs@conners.plus.com) |
| 14:54:54 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 14:54:56 | → | rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
| 14:55:20 | → | [Kalisto] joins (~nico@user/kalisto/x-8968079) |
| 15:01:14 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:02:37 | → | img joins (~img@user/img) |
| 15:04:15 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 15:05:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:05:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:05:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:09:21 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 15:09:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 15:10:22 | → | xff0x joins (~xff0x@2001:1a81:52ca:8900:3fb5:73ff:4151:6c25) |
| 15:20:13 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 15:22:06 | → | unknown__ joins (~thedawn@user/thedawn) |
| 15:26:05 | → | fusion86 joins (~fusion@2a02-a44c-e6e5-1-9052-d9fb-9373-1d35.fixed6.kpn.net) |
| 15:29:10 | <fusion86> | Is there a standard format for how to implement the Show function? E.g. I have an object (if you can call it that in Haskell) with a few fields which I want to print in the Show function. I could just make `show` return a JSON-like string which would work, but maybe there's a better format? |
| 15:30:59 | <fusion86> | E.g python has __repr__ where the convention is to return 'MyObject(name="sup", other_prop="whatever")` |
| 15:32:36 | × | xff0x quits (~xff0x@2001:1a81:52ca:8900:3fb5:73ff:4151:6c25) (Ping timeout: 245 seconds) |
| 15:32:45 | × | xiongxin quits (~quassel@119.123.101.136) (Quit: No Ping reply in 180 seconds.) |
| 15:33:14 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 15:33:35 | → | xff0x joins (~xff0x@port-92-195-30-252.dynamic.as20676.net) |
| 15:33:57 | <hpc> | my mental model of Show is "human-readable information in whatever format is most difficult for a machine to handle" |
| 15:34:01 | → | xiongxin joins (~quassel@113.116.34.120) |
| 15:34:16 | <pavonia> | fusion86: The standard format is "deriving Show" |
| 15:34:21 | <hpc> | usually it's some reasonable approximation of valid haskell, but there's nothing stopping it from being something like |
| 15:34:24 | <hpc> | > getLine |
| 15:34:26 | <lambdabot> | <IO [Char]> |
| 15:34:38 | <hpc> | and yeah, you almost always just want deriving |
| 15:34:59 | <hpc> | same for Read, Enum, Bounded, and a few more of the basics |
| 15:35:37 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds) |
| 15:35:52 | × | connrs quits (~connrs@conners.plus.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:35:56 | <hpc> | if you know you want json, there's json serialization packages you can look for |
| 15:36:33 | × | unmanbearpig quits (~unmanbear@user/unmanbearpig) (Ping timeout: 265 seconds) |
| 15:37:31 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 15:38:37 | → | connrs joins (~connrs@conners.plus.com) |
| 15:43:02 | → | sam__ joins (~sam@modemcable242.171-178-173.mc.videotron.ca) |
| 15:43:26 | × | TranquilEcho quits (~grom@user/tranquilecho) (Ping timeout: 245 seconds) |
| 15:43:26 | sam__ | is now known as Guest6168 |
| 15:43:55 | × | Guest12 quits (~Guest12@2405:9800:ba00:8058:827e:a0f5:e23:ac59) (Quit: Client closed) |
| 15:44:44 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 15:50:06 | × | acertain quits (sid470584@hampstead.irccloud.com) (Ping timeout: 245 seconds) |
| 15:50:06 | × | gonz___ quits (sid304396@lymington.irccloud.com) (Ping timeout: 245 seconds) |
| 15:50:25 | × | hendi quits (sid489601@lymington.irccloud.com) (Ping timeout: 265 seconds) |
| 15:50:31 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 245 seconds) |
| 15:50:31 | × | dmj` quits (sid72307@hampstead.irccloud.com) (Ping timeout: 245 seconds) |
| 15:50:31 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 245 seconds) |
| 15:50:31 | × | pepeiborra quits (sid443799@ilkley.irccloud.com) (Ping timeout: 245 seconds) |
| 15:50:31 | × | aarchi quits (sid486183@uxbridge.irccloud.com) (Ping timeout: 252 seconds) |
| 15:50:54 | × | agander_m quits (sid407952@tinside.irccloud.com) (Ping timeout: 265 seconds) |
| 15:51:03 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 15:51:34 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 15:51:39 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 15:51:41 | <fusion86> | Alright thanks, I just went with `deriving Show`. I just forgot to also do that for al nested types, which is why I initially skipped that approach. |
| 15:52:04 | → | aarchi joins (sid486183@id-486183.uxbridge.irccloud.com) |
| 15:52:04 | → | hendi joins (sid489601@id-489601.lymington.irccloud.com) |
| 15:52:09 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:52:54 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:53:17 | → | acertain joins (sid470584@id-470584.hampstead.irccloud.com) |
| 15:53:27 | → | gonz___ joins (sid304396@id-304396.lymington.irccloud.com) |
| 15:53:30 | → | img joins (~img@user/img) |
| 15:53:42 | → | pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com) |
| 15:53:43 | → | dmj` joins (sid72307@id-72307.hampstead.irccloud.com) |
| 15:54:10 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 15:55:18 | × | img quits (~img@user/img) (Client Quit) |
| 15:57:29 | → | img joins (~img@user/img) |
| 15:58:59 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:58:59 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:58:59 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:00:47 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 16:02:11 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
| 16:02:38 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:03:50 | × | xiongxin quits (~quassel@113.116.34.120) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 16:04:33 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
| 16:05:03 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:06:25 | → | img joins (~img@user/img) |
| 16:06:52 | glguy | is now known as ghoulguy |
| 16:07:00 | × | img quits (~img@user/img) (Client Quit) |
| 16:08:20 | <hololeap> | fusion86: you might like the pretty-simple package which gives you pretty printing for free as long as your type has a Show instance |
| 16:08:22 | → | img joins (~img@user/img) |
| 16:08:43 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 16:09:05 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:12:37 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 16:16:55 | × | rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
| 16:17:13 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@192.252.212.60) |
| 16:19:20 | × | sus quits (zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net) |
| 16:19:50 | → | sus joins (zero@user/zeromomentum) |
| 16:20:12 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 16:21:51 | × | sedeki quits (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
| 16:26:14 | × | dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (Quit: My Ex-Girlfriend once told me: I'm not a slut, I'm just popular) |
| 16:27:08 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 16:28:12 | <fusion86> | hololeap: Oh that's pretty nice. The only problem I have that it insists on printing each element in a list on a new line unless I set outputOptionsPageWidth to something very large like 9999999999 |
| 16:29:14 | <fusion86> | Which is a bit awkward when your list has 600 items |
| 16:29:46 | <fusion86> | Though just having the color highlighting is nice on its own |
| 16:32:52 | × | connrs quits (~connrs@conners.plus.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:33:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 16:34:06 | → | connrs joins (~connrs@conners.plus.com) |
| 16:35:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 16:38:16 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 16:51:14 | → | wonko joins (~wjc@62.115.229.50) |
| 16:55:03 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 16:56:04 | × | twitu quits (~twitu@122.163.88.222) (Quit: Client closed) |
| 17:02:33 | <monochrom> | The phrase "pretty printing" in the Haskell community means the priority is layout. |
| 17:03:16 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 17:04:39 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 17:05:35 | × | fusion86 quits (~fusion@2a02-a44c-e6e5-1-9052-d9fb-9373-1d35.fixed6.kpn.net) (Quit: Leaving) |
| 17:05:36 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Client Quit) |
| 17:05:50 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 17:06:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:08:02 | → | LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao) |
| 17:08:45 | → | favonia joins (~favonia@user/favonia) |
| 17:10:13 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 17:12:01 | × | catern quits (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Remote host closed the connection) |
| 17:13:11 | × | xff0x quits (~xff0x@port-92-195-30-252.dynamic.as20676.net) (Quit: xff0x) |
| 17:18:08 | → | VoidNoir0 joins (~VoidNoir0@72.80.203.52) |
| 17:20:49 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:20:56 | → | econo joins (uid147250@user/econo) |
| 17:21:32 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 17:26:05 | → | xff0x joins (~xff0x@2001:1a81:52ca:8900:7389:7610:d1fa:c93e) |
| 17:26:28 | → | kuribas joins (~user@ptr-25vy0i8pd2zsmqr2sga.18120a2.ip6.access.telenet.be) |
| 17:26:39 | → | dka joins (~code-is-a@ns3059207.ip-193-70-33.eu) |
| 17:27:06 | × | unknown__ quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 17:27:22 | <kuribas> | ugh, I am giving up on smallcheck. The combinatory explosion is just to big, for example when generating 4 values. |
| 17:28:45 | → | dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) |
| 17:35:01 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 17:35:31 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds) |
| 17:35:32 | <dsal> | kuribas: There are libraries of better generators. |
| 17:35:48 | <kuribas> | dsal: which one? |
| 17:35:56 | → | waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 17:37:29 | <dsal> | Hmmm... I can't remember the one I saw recently right now. But for numbers, it supports doing something more sensible than "random 64 bit number" which is rarely interesting. |
| 17:39:26 | → | unknown__ joins (~thedawn@user/thedawn) |
| 17:40:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 17:41:46 | <dsal> | kuribas: here's one example: https://hackage.haskell.org/package/quickcheck-special |
| 17:42:18 | <kuribas> | right. Property testing is not trivial. |
| 17:42:26 | <kuribas> | it's easy to miss special cases. |
| 17:44:44 | <dsal> | It's easy to think "this works for things that are average 64-bit numbers, so it's good!" when it doesn't work for like, 2. This special thing has a bunch of hard-coded rules that make stuff special, which still isn't good enough. |
| 17:44:53 | <dsal> | Coverage-directed fuzzing gets stuff done. |
| 17:45:11 | <dsal> | I've not seen that available in haskell, though. |
| 17:46:32 | → | sm2n joins (~sm2n@user/sm2n) |
| 17:47:13 | <kuribas> | where did you see that then? |
| 17:47:48 | <kuribas> | I am pondering something syntax directed, where it could eliminate cases which trigger the same code... |
| 17:48:06 | <kuribas> | I know, that could be untractable in general, but still work for many cases. |
| 17:48:10 | × | dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 252 seconds) |
| 17:50:21 | <dsal> | I worked at a place that had a thing that allowed for coverage directed fuzzing and a few things were built on it, but the tools weren't great at the time. C++ support was probably the best. go support kind of worked. |
| 17:50:44 | <dsal> | The idea is great, though. You write a property and there's a feedback loop between inputs and coverage reports to try to figure out how to break your thing. |
| 17:51:02 | × | Guest6168 quits (~sam@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 17:52:50 | <dsal> | The simple example was something like a function that checked the length of its input to be > = 3 or something like that, and then verified the values against a specific four-element value. If your arbitrary didn't get you into that function with the right three bytes and a fourth byte, you'd never notice it. |
| 17:54:39 | × | DNH quits (~DNH@2a02:8108:1100:16d8:2c83:2f3:e68a:5c4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:02:45 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:03:26 | × | Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
| 18:05:31 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 18:09:35 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@192.252.212.60) (Ping timeout: 250 seconds) |
| 18:10:05 | → | aegon joins (~mike@174.127.249.180) |
| 18:10:34 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:10:56 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 245 seconds) |
| 18:11:23 | → | notzmv joins (~zmv@user/notzmv) |
| 18:12:26 | × | MQ-17J quits (~MQ-17J@8.6.144.117) (Ping timeout: 260 seconds) |
| 18:18:10 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 18:20:07 | → | coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) |
| 18:22:09 | × | max22- quits (~maxime@2a01cb088335980078ad8eabec9c6d90.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
| 18:24:41 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 18:25:04 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 18:26:32 | × | benin03693230163 quits (~benin@183.82.30.186) (Ping timeout: 265 seconds) |
| 18:29:17 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 18:29:36 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 18:31:42 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 18:32:06 | → | hendursaga joins (~weechat@user/hendursaga) |
| 18:34:00 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:34:00 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 18:34:00 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:39:22 | → | slack1256 joins (~slack1256@45.4.2.52) |
| 18:39:41 | → | seiryn joins (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) |
| 18:45:30 | → | NieDzejkob joins (~quassel@212.87.13.106) |
| 18:46:24 | × | unknown__ quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 18:46:49 | × | seiryn quits (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) (Quit: WeeChat 3.3) |
| 18:47:02 | → | seiryn joins (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) |
| 18:47:31 | × | seiryn quits (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) (Client Quit) |
| 18:47:41 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 18:47:44 | → | seiryn joins (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) |
| 18:47:54 | × | CiaoSen quits (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 18:47:55 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:48:03 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 18:48:10 | × | mbuf quits (~Shakthi@122.178.231.226) (Quit: Leaving) |
| 18:49:01 | → | desantra joins (~skykanin@user/skykanin) |
| 18:52:49 | × | coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 18:55:16 | × | sm2n quits (~sm2n@user/sm2n) (Read error: Connection reset by peer) |
| 18:55:19 | <slack1256> | If I got the term `True`, how do I construct an `Q Exp` for template haskell? quoting gives me a `Name`, but I don't see how to transform one onto another. |
| 18:55:29 | × | desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.3) |
| 18:55:31 | <slack1256> | Or should I construct the mapping via a function myself? |
| 18:55:48 | <c_wraith> | [| True |] |
| 18:56:12 | <geekosaur> | isn' there a typeclass Lift? |
| 18:56:13 | <awpr> | also https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH-Syntax.html#v:lift |
| 18:56:20 | awpr | lost the race |
| 18:56:48 | <c_wraith> | The quote syntax calls the Lift class when given a literal or local |
| 18:56:56 | <slack1256> | Oh `Lift` is for that. Thanks geekosaur, awpr! |
| 18:56:58 | <c_wraith> | don't fear quote syntax |
| 18:57:08 | <slack1256> | I am new to writing TH haha. |
| 18:57:12 | → | sm2n joins (~sm2n@user/sm2n) |
| 18:58:29 | <c_wraith> | for most use cases, you should treat Lift as an implementation detail for quotes. |
| 18:59:11 | → | max22- joins (~maxime@2a01cb0883359800f1f665e3dd9c27b2.ipv6.abo.wanadoo.fr) |
| 18:59:42 | → | tom joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
| 19:01:06 | tom | is now known as Guest7083 |
| 19:01:57 | <slack1256> | But knowing that is implemented via a class let me knew that I should derive Lift for an ADT I want to quote :-) . |
| 19:02:05 | <Guest7083> | Do you agree that Haskell gets exceptions wrong? |
| 19:02:07 | <Guest7083> | http://web.archive.org/web/20170919133237/https://existentialtype.wordpress.com/2012/12/ |
| 19:03:59 | → | DNH joins (~DNH@2a02:8108:1100:16d8:1c7b:8442:d05:4640) |
| 19:04:07 | <c_wraith> | that's sure Robert Harper. |
| 19:04:14 | <c_wraith> | He's mostly wrong about Haskell |
| 19:04:44 | → | hatds joins (~hatds@c-107-4-136-72.hsd1.mn.comcast.net) |
| 19:05:26 | <Guest7083> | Yeah I am finding his writing weird |
| 19:05:41 | <Guest7083> | "Exceptions are commonly criticized as being the “goto’s” of modern programming languages. ... I disagree. " |
| 19:05:59 | <geekosaur> | slack1256, I think you can derive Lift with an extension |
| 19:06:29 | <geekosaur> | oh, I see you spotted that |
| 19:06:36 | <geekosaur> | sorry |
| 19:06:59 | <kuribas> | I haven't "commonly" heard that argument. |
| 19:07:12 | <c_wraith> | Like, he's almost never wrong on technical details. He's very well-educated and intelligent. But he just seems to default to "criticize Haskell whenever possible" on every topic. |
| 19:07:21 | <geekosaur> | I have heard it but it's syurely not the most common complaint I've heard about thenm |
| 19:08:02 | <awpr> | um, the article that links to to justify Haskell being broken is actually pointing out that being able to define `Typeable` manually is unsound, and actually has nothing to do with exceptions. but that's fine, because it's illegal to define `Typeable` manually. |
| 19:08:19 | <c_wraith> | Typeable was not automatically derived when he wrote it. |
| 19:08:20 | <awpr> | (evidently it was legal in 2012?) |
| 19:08:22 | → | Nahra joins (~user@static.161.95.99.88.clients.your-server.de) |
| 19:08:25 | <geekosaur> | it was possible early on, before they realized it was unsound |
| 19:08:37 | <c_wraith> | Eh, it was always obviously unsound |
| 19:09:00 | <c_wraith> | It's just that before -XPolyKinds, it was totally unclear how to have a uniform interface |
| 19:09:03 | <awpr> | in any case, the "arguably broken" article is outdated |
| 19:09:31 | <awpr> | and is actually about Typeable anyway |
| 19:09:57 | <c_wraith> | The article linked above is making a different point, though. And that one is a bit more interesting, but I have to disagree. |
| 19:10:09 | <c_wraith> | catch-all handlers are the only ones I care about. |
| 19:11:02 | <kuribas> | I like the way java exceptions have to be annotated in the function. |
| 19:11:10 | <c_wraith> | Exceptions are usually non-recoverable |
| 19:11:30 | <c_wraith> | I want them to either crash the program or be logged in a top-level loop. |
| 19:11:54 | <c_wraith> | I don't *want* to have to write a hundred nested identical handlers to cover every exception type |
| 19:12:45 | <kuribas> | I like to distinguish between recoverable and unrecoverable errors. For the former I use Either/ExceptT. |
| 19:12:58 | <c_wraith> | Exactly. |
| 19:14:19 | <Guest7083> | And then there is Snoyman who says that ExceptT IO is an antipattern |
| 19:14:58 | <kuribas> | Guest7083: I agree partly, in that it may not be a good idea to have this in your AppM. |
| 19:15:18 | <Guest7083> | Interesting how so Kuribas? |
| 19:15:53 | <kuribas> | Guest7083: well, because they are recoverable, so you should recover them :) |
| 19:16:07 | <kuribas> | Which means they don't end up in the final app loop. |
| 19:16:41 | <Guest7083> | Which exceptions are recoverable? |
| 19:17:21 | <kuribas> | that depends on the business logic. |
| 19:17:37 | <kuribas> | For example, you'll want to recover parser errors. |
| 19:19:34 | <Guest7083> | Oh so your exceptT is your main computation and so you probably want more local uses of Except than your main stack |
| 19:20:18 | <Guest7083> | Probably the better default for AppM is ReaderT IO |
| 19:21:05 | <kuribas> | If you want to process the errors, maybe reformat them and show them to the user, then Either/ExceptT is better. |
| 19:21:24 | <kuribas> | If you want to just abort the whole computation/request, then simply throw and log it somewhere. |
| 19:21:36 | → | favonia joins (~favonia@user/favonia) |
| 19:21:57 | <kuribas> | Guest7083: that's the RIO pattern :) |
| 19:22:04 | <Guest7083> | Yeah :) |
| 19:22:41 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 19:24:04 | <kuribas> | mixing StateT with IO doesn't make a hole lot of sense... |
| 19:24:12 | <kuribas> | Unless the IO is optional. |
| 19:26:04 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 19:26:09 | <c_wraith> | It usually happens in the form of "I want to wrap StateT around something unknown" |
| 19:32:58 | → | Pickchea joins (~private@user/pickchea) |
| 19:33:16 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
| 19:34:27 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 19:36:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:39:36 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 19:42:40 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb54947e0de64b437952.dip0.t-ipconnect.de) |
| 19:43:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:43:21 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 19:43:21 | → | wroathe joins (~wroathe@user/wroathe) |
| 19:47:22 | → | pavonia joins (~user@user/siracusa) |
| 19:47:23 | → | brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d) |
| 19:48:13 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 19:49:44 | → | tfeb joins (~tfb@88.98.95.237) |
| 19:51:22 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 252 seconds) |
| 19:53:20 | × | tfeb quits (~tfb@88.98.95.237) (Client Quit) |
| 19:54:25 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:05:07 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
| 20:07:48 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.3) |
| 20:08:28 | → | juhp joins (~juhp@128.106.188.220) |
| 20:09:19 | × | kuribas quits (~user@ptr-25vy0i8pd2zsmqr2sga.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 20:10:32 | slack1256 | now loves TH |
| 20:11:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 20:12:02 | <seiryn> | * love TH too |
| 20:12:22 | <seiryn> | hmmm, one day i will know how irc work, i swear |
| 20:14:14 | <monochrom> | I think the command you're looking for is /me |
| 20:14:39 | seiryn | has just learned a new command |
| 20:15:01 | <monochrom> | :) |
| 20:16:20 | <seiryn> | I'm surprised you didn't tried to make me use alt+f4 tho |
| 20:16:57 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 20:19:07 | → | CiaoSen joins (~Jura@p5dcc1303.dip0.t-ipconnect.de) |
| 20:20:20 | → | zaquest joins (~notzaques@5.128.210.178) |
| 20:21:06 | <hpc> | yeah, pretty much everything special in irc is a /command |
| 20:21:23 | <hpc> | but if it's not a valid command it'll just send it as text, like this: |
| 20:21:24 | <hpc> | /quit |
| 20:22:17 | <geekosaur> | that depends on the client |
| 20:22:37 | <geekosaur> | mine throws an error but will handle //quit or /say /quit |
| 20:23:00 | <seiryn> | \/quit |
| 20:23:27 | <seiryn> | I know if i do /quit weechat will exit, but i don't want to try /say /quit |
| 20:25:35 | <hpc> | /say /anything, or //anything, or / /anything will escape it |
| 20:32:40 | × | jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯) |
| 20:33:01 | <monochrom> | /say the word |
| 20:36:02 | → | hololeap_ joins (~hololeap@user/hololeap) |
| 20:36:51 | → | jushur joins (~human@user/jushur) |
| 20:38:02 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 260 seconds) |
| 20:39:30 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 20:45:11 | → | emf joins (~emf@2620:10d:c090:400::5:c927) |
| 20:51:50 | → | Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net) |
| 21:01:54 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:01:54 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 21:01:54 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:03:55 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 21:03:59 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:05:40 | × | hatds quits (~hatds@c-107-4-136-72.hsd1.mn.comcast.net) (Quit: Leaving) |
| 21:06:21 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 21:08:08 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 21:08:20 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:15:06 | × | Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 245 seconds) |
| 21:15:26 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:20:03 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 21:20:31 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 21:22:10 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 21:22:58 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
| 21:23:53 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb54b4411e2fd211e6ee.dip0.t-ipconnect.de) |
| 21:24:08 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 21:25:02 | × | fendor_ quits (~fendor@178.165.170.133.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:26:41 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 21:27:40 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb54947e0de64b437952.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 21:29:16 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 21:30:07 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 21:30:22 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 21:33:10 | × | jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
| 21:33:42 | × | max22- quits (~maxime@2a01cb0883359800f1f665e3dd9c27b2.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 21:33:51 | × | aliosablack quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds) |
| 21:37:34 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c::3d56) |
| 21:38:49 | <ph88> | I know A is correct and i was considering B, could anyone tell me how these things compare? A) class Rule f a where get :: Decorator f => f a B) class Rule Decorator a where get :: Decorator a |
| 21:39:45 | <c_wraith> | B does not appear to be syntactically correct |
| 21:40:21 | <ph88> | thanks c_wraith |
| 21:40:22 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:40:37 | <c_wraith> | Did you want something more like this? class Decorator f => Rule f a where get :: f a |
| 21:41:00 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:41:06 | <c_wraith> | ie, distinguishing between putting the constraint on Rule and get? |
| 21:41:24 | <ph88> | yes, that's interesting thank you |
| 21:41:46 | <c_wraith> | there are interesting differences between that and A |
| 21:42:03 | <c_wraith> | when the constraint is on get, it means you would need to put both constraints in the type of something that uses get |
| 21:42:26 | <c_wraith> | when the constraint is on Rule, it's enough to specify the Rule constraint. It automatically provides the Decorator constraint as well |
| 21:43:15 | <c_wraith> | In that case, putting the constraint on Rule is probably better, as the constraint is always needed anyway. |
| 21:43:37 | <c_wraith> | But if there were other members in the class, ones that didn't need the Decorator instance, then it might be worth separating them |
| 21:44:25 | <awpr> | the original form might permit some polymorphic instances that the latter doesn't |
| 21:44:42 | <c_wraith> | yes, that too. |
| 21:44:58 | <awpr> | (for monomorphic ones, either the instance is unusable or the second form would be implementable) |
| 21:45:50 | <c_wraith> | and of course there are cases where not putting the constraint on the class means you don't even need to mention that type variable in the class head. |
| 21:45:54 | <c_wraith> | Like Traversable |
| 21:46:00 | <c_wraith> | :t traverse |
| 21:46:02 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
| 21:46:16 | <c_wraith> | The class head only mentions t. f is polymorphic |
| 21:47:36 | × | emf quits (~emf@2620:10d:c090:400::5:c927) (Ping timeout: 245 seconds) |
| 21:51:28 | × | fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving) |
| 21:52:26 | × | Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Ping timeout: 265 seconds) |
| 21:55:54 | <ph88> | c_wraith, thanks i'll put your comments in my notes |
| 21:56:19 | → | cjb joins (~cjb@user/cjb) |
| 22:03:09 | → | fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
| 22:07:18 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:11:36 | × | machinedgod quits (~machinedg@24.105.81.50) (Quit: Lost terminal) |
| 22:11:45 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection) |
| 22:12:44 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:14:21 | <ph88> | how can i do this regex in trifecta ? (.+?)\s+([\d,]) match everything lazily as needed, until some whitespace and some digits. Capturing the "everything" and the "digits" but not the whitespace in between |
| 22:17:35 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:21:16 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
| 22:23:17 | <c_wraith> | you want the full regex behavior of maximal matching? |
| 22:23:32 | <c_wraith> | oh, no. that's +?. minimal matching |
| 22:23:53 | <c_wraith> | you can do that with trifecta, but it will be awkward |
| 22:25:25 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 22:28:46 | × | DNH quits (~DNH@2a02:8108:1100:16d8:1c7b:8442:d05:4640) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:29:31 | <ph88> | ye i don't know when the middle part stops really .. there is no marker for it. I can see it visually because it's the end of the line, and before that a number, and before that the piece i want |
| 22:29:31 | → | vicfred joins (~vicfred@user/vicfred) |
| 22:29:47 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 22:31:37 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 22:41:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 22:43:41 | <ph88> | i guess i could use this ? https://hackage.haskell.org/package/parsers-0.12.10/docs/Text-Parser-Combinators.html#v:manyTill |
| 22:44:19 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) |
| 22:44:31 | <c_wraith> | that's not going to work especially well, as it doesn't return the terminator |
| 22:45:30 | → | acidjnk_new joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
| 22:47:01 | <ph88> | hmm |
| 22:47:10 | <ph88> | im still browsing around the docs |
| 22:47:37 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:47:53 | <ph88> | two other things about manyTill is that in my case i need 1 match before, not zero or more. And it would be matching character by character into a list .. which is not ideal because i want Text |
| 22:48:17 | <c_wraith> | you're going to have to match character-by-character anyway |
| 22:48:39 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb54b4411e2fd211e6ee.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 22:49:05 | <ph88> | ye just dont see how it makes sense to put them in a linked list when the text is already loaded in memory and i could just copy it once i found the end |
| 22:49:34 | <c_wraith> | that's a thing you can do, but it's not a thing trifecta's model is designed for |
| 22:51:42 | <ph88> | edwardk, what could i do best in this case ? is there a function for the lazy match ? can i match without building a linked list ? |
| 22:55:40 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 252 seconds) |
| 23:03:00 | × | TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
| 23:05:06 | × | gentauro quits (~gentauro@user/gentauro) (Ping timeout: 245 seconds) |
| 23:11:59 | → | gentauro joins (~gentauro@user/gentauro) |
| 23:12:03 | × | alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
| 23:20:02 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 23:26:58 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 23:29:46 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 23:33:12 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:37:25 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 23:41:40 | × | seiryn quits (~seiryn@2a01cb040147e000e4dbf764ff30bd96.ipv6.abo.wanadoo.fr) (Quit: WeeChat 3.3) |
| 23:46:30 | → | hammock joins (~Hammock@2600:1700:19a1:3330::588) |
| 23:50:02 | × | VoidNoir0 quits (~VoidNoir0@72.80.203.52) (Ping timeout: 265 seconds) |
| 23:50:07 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 23:51:30 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
All times are in UTC on 2021-10-10.