Logs on 2021-02-26 (freenode/#haskell)
| 00:00:08 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
| 00:00:30 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 00:00:31 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 00:01:58 | → | seneca joins (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
| 00:05:21 | × | epicte7us quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds) |
| 00:05:30 | → | Tario joins (~Tario@200.119.184.113) |
| 00:06:15 | × | aenesidemus quits (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) (Quit: Leaving) |
| 00:06:58 | × | Guest70386 quits (~micro@a9.lence.net) (Quit: leaving) |
| 00:08:19 | × | __minoru__shirae quits (~shiraeesh@109.166.59.137) (Ping timeout: 272 seconds) |
| 00:08:23 | → | micro joins (~micro@unaffiliated/micro) |
| 00:12:05 | mmarusea1ph2 | is now known as mmaruseacph2 |
| 00:19:45 | × | Tario quits (~Tario@200.119.184.113) (Read error: Connection reset by peer) |
| 00:20:00 | → | Tario joins (~Tario@201.192.165.173) |
| 00:22:10 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 00:23:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 00:23:33 | → | conal joins (~conal@64.71.133.70) |
| 00:23:53 | × | skewerr quits (~spoonm@2602:ffd5:1:119::1) (Quit: Don't look behind you!) |
| 00:24:13 | → | spoonm joins (~spoonm@2602:ffd5:1:119::1) |
| 00:25:55 | × | sablib quits (~sablib@59.173.152.160) (Read error: Connection reset by peer) |
| 00:25:57 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 00:26:23 | → | magnuscake joins (~magnuscak@87.121.92.61) |
| 00:26:29 | → | sablib joins (~sablib@59.173.155.233) |
| 00:27:23 | × | spoonm quits (~spoonm@2602:ffd5:1:119::1) (Client Quit) |
| 00:27:26 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 00:27:47 | → | conal joins (~conal@64.71.133.70) |
| 00:27:48 | → | spoonm joins (~spoonm@2602:ffd5:1:119::1) |
| 00:29:45 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:30:15 | kadobanana | is now known as kadoban_ |
| 00:30:29 | × | cocytus_ quits (~cocytus@cpe-76-95-48-109.socal.res.rr.com) (Quit: Leaving) |
| 00:30:35 | kadoban | is now known as kadobanana |
| 00:30:56 | mud | is now known as kadoban |
| 00:31:11 | kadobanana | is now known as mud |
| 00:32:13 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
| 00:33:43 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) |
| 00:36:41 | × | usr25 quits (~J@45.red-88-1-79.dynamicip.rima-tde.net) (Quit: Bye) |
| 00:37:57 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) |
| 00:38:29 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) (Remote host closed the connection) |
| 00:38:50 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 00:38:56 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) |
| 00:39:13 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 00:40:37 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 00:41:08 | → | polyrain joins (~polyrain@2001:8003:e4d8:4101:11d5:eb2a:5a3d:13dc) |
| 00:42:04 | × | crobbins quits (~crobbins@2600:1700:48eb:8490:f085:4e3f:f643:338d) (Remote host closed the connection) |
| 00:44:21 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 00:44:48 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 00:47:37 | × | Benzi-Junior quits (~BenziJuni@88-149-67-143.du.xdsl.is) (Quit: gone) |
| 00:50:35 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:51:00 | → | Benzi-Junior joins (~BenziJuni@88-149-67-143.du.xdsl.is) |
| 00:53:40 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 276 seconds) |
| 00:55:08 | × | magnuscake quits (~magnuscak@87.121.92.61) (Quit: Leaving) |
| 00:55:34 | → | conal joins (~conal@64.71.133.70) |
| 00:57:42 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 00:57:56 | × | m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
| 00:58:24 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
| 01:00:28 | <c_wraith> | I'm not sure anything supports rank-n kinds |
| 01:00:31 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
| 01:00:31 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection) |
| 01:00:48 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 01:00:51 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 01:02:04 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 01:02:25 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 01:03:11 | × | carlomagno quits (~cararell@148.87.23.9) (Quit: Leaving.) |
| 01:04:41 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) (Ping timeout: 272 seconds) |
| 01:04:46 | → | ezrakilt_ joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 01:05:40 | <Feuermagier> | how does one do a pairwise list comprehension (first element of xs with first element of ys and so on)? |
| 01:07:06 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 01:07:11 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:2c0d:ad79:de13:e3a6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:07:19 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 276 seconds) |
| 01:07:30 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 01:07:34 | <edwardk> | > [ (x, y) | x <- [1..10] | y <- [21..30] ] |
| 01:07:35 | <lambdabot> | [(1,21),(2,22),(3,23),(4,24),(5,25),(6,26),(7,27),(8,28),(9,29),(10,30)] |
| 01:07:54 | <edwardk> | use a | not a , to separate and turn on the extension it hollers at you about |
| 01:08:43 | <swarmcollective> | :t zip |
| 01:08:45 | <lambdabot> | [a] -> [b] -> [(a, b)] |
| 01:09:30 | <Feuermagier> | ah, thx! |
| 01:09:33 | <edwardk> | zip/zipWith is generally more idiomatic, but if you really want comprehension syntax the above works |
| 01:11:33 | <swarmcollective> | The comprehension syntax is very powerful. If I remember correctly, it allows you to do a cross join of the source lists, if needed. |
| 01:12:38 | <Feuermagier> | edwardk, my predicate variables appear to go out of scope if i do that |
| 01:13:31 | × | polyrain quits (~polyrain@2001:8003:e4d8:4101:11d5:eb2a:5a3d:13dc) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:13:31 | <swarmcollective> | (aka: cartesian join, cartesian product) |
| 01:15:09 | <Feuermagier> | essentially I want "halfEven3 xs ys = map (`div` 2) $ filter even $ zipWith (+) xs ys" - but as a list comprehension |
| 01:15:15 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 01:17:55 | <edwardk> | Feuermagier: pretty sure you need to use two nested comprehensions for that |
| 01:18:57 | <edwardk> | something like [ z `div` 2 | z <- [ x + y | x <- xs | y <- ys ], even z ] |
| 01:19:51 | hackage | yahoo-prices 0.1.0.2 - A wrapper around Yahoo API for downloading market data. https://hackage.haskell.org/package/yahoo-prices-0.1.0.2 (alojzyleszcz) |
| 01:20:26 | × | shatriff quits (~vitaliish@protective.remission.volia.net) (Remote host closed the connection) |
| 01:20:59 | → | shatriff joins (~vitaliish@protective.remission.volia.net) |
| 01:21:56 | <swarmcollective> | I ended up rebuilding the lambdabot stock lookup plugin to pull from a different provider. Didn't the yahoo API go away? Maybe it is just not free anymore? |
| 01:22:57 | × | lemmih_ quits (~lemmih@2406:3003:2072:44:5428:f0dd:ed19:b4df) (Remote host closed the connection) |
| 01:24:18 | × | totoro2022 quits (~t@unaffiliated/totoro2021) (Quit: WeeChat 2.7.1) |
| 01:24:40 | → | totoro2021 joins (~t@unaffiliated/totoro2021) |
| 01:28:13 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 01:29:10 | × | theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer) |
| 01:30:47 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@184.22.157.95) |
| 01:31:02 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 01:35:07 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 01:39:58 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds) |
| 01:41:07 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
| 01:42:57 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 01:43:18 | × | petersen quits (~petersen@redhat/juhp) (Remote host closed the connection) |
| 01:43:37 | → | ransom joins (~c4264035@2a09:bac0:21::81a:b438) |
| 01:43:45 | × | ransom quits (~c4264035@2a09:bac0:21::81a:b438) (Client Quit) |
| 01:44:34 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 01:46:31 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:46:47 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 01:49:38 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 01:50:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 01:53:26 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 264 seconds) |
| 01:57:09 | <ski> | `[z `div` 2 | (x <- xs | y <- ys),let z = x + y,even z]' ought to work .. :( |
| 01:59:15 | <ski> | > [z | [x,y] <- transpose [[0 .. 9],[10 .. 19]],z <- [x,y]] |
| 01:59:16 | <lambdabot> | [0,10,1,11,2,12,3,13,4,14,5,15,6,16,7,17,8,18,9,19] |
| 01:59:29 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 02:00:09 | <ski> | > [z | (x,y) <- [(x,y) | x <- [0 .. 9] | y <- [10 .. 19]],z <- [x,y]] |
| 02:00:11 | <lambdabot> | [0,10,1,11,2,12,3,13,4,14,5,15,6,16,7,17,8,18,9,19] |
| 02:01:47 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 02:02:09 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 02:04:05 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 02:04:26 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 02:04:26 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 02:06:45 | × | xff0x_ quits (~xff0x@2001:1a81:5295:6100:2300:7794:1c77:29ff) (Ping timeout: 272 seconds) |
| 02:07:56 | → | xff0x_ joins (~xff0x@2001:1a81:52d0:d300:24a8:fbee:5e92:3e0) |
| 02:08:52 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-lipeedvqihpcwewl) |
| 02:08:54 | <Feuermagier> | whats the difference between || and "or" ? |
| 02:09:08 | <edwardk> | :t or |
| 02:09:09 | <lambdabot> | Foldable t => t Bool -> Bool |
| 02:09:11 | <edwardk> | :t (||) |
| 02:09:12 | <lambdabot> | Bool -> Bool -> Bool |
| 02:09:27 | <edwardk> | a || b = or [a,b] |
| 02:09:36 | <Feuermagier> | ah, so "or" is like "list stuff"? |
| 02:09:41 | <edwardk> | yeah |
| 02:09:50 | <Feuermagier> | thx |
| 02:09:59 | <edwardk> | nowadays generalized to arbitrary Foldable containers |
| 02:10:15 | <edwardk> | :t any |
| 02:10:17 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Bool |
| 02:10:26 | <edwardk> | any is 'or' with a built in 'map' applied |
| 02:10:30 | <edwardk> | > any even [1,2,3] |
| 02:10:32 | <lambdabot> | True |
| 02:10:44 | <edwardk> | or = any id |
| 02:11:57 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 264 seconds) |
| 02:13:50 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection) |
| 02:14:35 | koz_ | . o O (any = orMap) |
| 02:14:43 | × | soft-warm quits (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds) |
| 02:14:48 | <koz_> | And all = andMap. |
| 02:15:05 | × | conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 02:15:21 | <koz_> | Speaking of which, edwardk - is there any reason why Predicate's Divisible instance combines with &&, as opposed to ||? |
| 02:15:44 | <koz_> | As far as I can tell, Predicate is just a special case of (Monoid b) => Op b, right? |
| 02:15:47 | × | esoteric1lgo quits (~matt@uncertain.win) (Remote host closed the connection) |
| 02:16:52 | → | soft-warm joins (44695313@ip68-105-83-19.sd.sd.cox.net) |
| 02:16:52 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:f4d9:46b5:acd5:46aa) |
| 02:17:00 | <ski> | @type (`withCoyoneda` any) |
| 02:17:01 | <edwardk> | koz_: because it is almost always the version you seem to want? |
| 02:17:01 | <lambdabot> | Foldable f => Coyoneda f Bool -> Bool |
| 02:17:10 | <koz_> | edwardk: Fair. |
| 02:17:18 | <edwardk> | koz_: but yes, its just a special case of Op |
| 02:17:39 | <edwardk> | it also makes the relationship between it and Equivalence clear |
| 02:18:34 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 02:18:57 | <ski> | @type (`withCoyoneda` foldMap) |
| 02:18:58 | <lambdabot> | (Foldable f, Monoid o) => Coyoneda f o -> o |
| 02:19:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:21:09 | <koz_> | Also, edwardk - Strong allows you to 'pass through' (c,), Choice allows the same for Either c. Is it possible to have something analogous for These c, and how would that relate to those other two? |
| 02:22:04 | × | ezrakilt_ quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 02:23:47 | <edwardk> | IIRC These works as a valid tensor for a monoidal category, so it should exist |
| 02:24:02 | <edwardk> | i don't actually think it relates to the other two. you can force a relationship but its artificial |
| 02:24:05 | → | conal joins (~conal@64.71.133.70) |
| 02:24:51 | <koz_> | So basically we have Profunctor, and then each of Strong, Choice and [whatever the These-based one is called] are their own thing on top of it? |
| 02:25:00 | <koz_> | What _would_ you call the These-based one? |
| 02:25:02 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 02:25:17 | <MarcelineVQ> | ChoiceChoiceStrong |
| 02:25:23 | <edwardk> | its all 'Strong' really |
| 02:25:32 | <koz_> | Just differently Strong. |
| 02:25:35 | <edwardk> | but Choice was named to match ArrowChoice |
| 02:26:11 | <nshepperd2> | Stronk |
| 02:26:19 | <edwardk> | i went with separate classes because inference works better and it doesn't need flexible instances, mptcs, etc. for user code |
| 02:26:21 | <koz_> | nshepperd2: LegDay. |
| 02:26:52 | <edwardk> | Stroice or Chong |
| 02:27:09 | <koz_> | edwardk: I guess in an ideal world, you'd have Strong parameterized over the tensor? |
| 02:27:21 | <edwardk> | koz_: tried it, but the thing is it sucks to use |
| 02:27:38 | <koz_> | Yeah, I can imagine that. |
| 02:27:40 | <edwardk> | you get the same combinator names too many manual type applications are required |
| 02:28:13 | <koz_> | Also, can we Co- out of Stroice like with Costrong and Cochoice? |
| 02:28:19 | <edwardk> | i don;t like the fact that linear-base decided to pun the two, makes the lenses they offer even more awkward |
| 02:28:26 | <koz_> | (I still don't fully get how Cochoice's method doesn't infinitely loop) |
| 02:28:29 | <edwardk> | yes |
| 02:28:29 | <koz_> | (for ->) |
| 02:29:02 | travisb | is now known as tabemann |
| 02:29:21 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 02:30:13 | <ski> | @type (`withCoyoneda` traverse) |
| 02:30:14 | <lambdabot> | (Traversable f1, Applicative f2) => Coyoneda f1 (f2 b) -> f2 (f1 b) |
| 02:30:14 | <MarcelineVQ> | what does pun the two mean here? |
| 02:30:17 | <ski> | @type \xs -> MkYoneda (`traverse` xs) |
| 02:30:18 | <lambdabot> | error: |
| 02:30:18 | <lambdabot> | • Couldn't match type ‘b’ with ‘f b0’ |
| 02:30:19 | <lambdabot> | ‘b’ is a rigid type variable bound by |
| 02:30:26 | <ski> | @type \xs -> MkYoneda (`map` xs) |
| 02:30:27 | <lambdabot> | [a] -> Yoneda [] a |
| 02:30:33 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds) |
| 02:30:59 | Maxdaman1us | is now known as Maxdamantus |
| 02:31:24 | <edwardk> | consider the Maybe instance for MonadFix and then it looks better |
| 02:31:33 | <koz_> | Fair. |
| 02:33:45 | <koz_> | I wonder what you could get if you thought 'I want Arrow = Strong + Category, but replace Strong with Stroice'. |
| 02:34:01 | <koz_> | DecoherentArrow |
| 02:34:29 | × | seneca quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 02:36:20 | <ski> | `Stroice' being ? |
| 02:36:21 | → | conal_ joins (~conal@64.71.133.70) |
| 02:37:09 | <koz_> | ski: Strong, but with These instead of (,) as the tensor. |
| 02:37:50 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 02:38:28 | <ski> | `forall a b. These a (f b) -> f (These a b? |
| 02:38:30 | <ski> | )' |
| 02:39:07 | <koz_> | ski: Strong has a method 'first' :: p a b -> p (c, a) (c, b)' |
| 02:39:22 | <koz_> | Stroice would have 'this' :: p a b -> p (These c a) (These c b)'. |
| 02:39:37 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds) |
| 02:39:37 | Lord_of_Life_ | is now known as Lord_of_Life |
| 02:39:43 | × | conal_ quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 02:39:46 | <ski> | oh, strong difunctor i guess |
| 02:39:58 | <ski> | ok |
| 02:40:17 | <koz_> | ski: Profunctor. |
| 02:40:21 | <koz_> | Sorry if I wasn't clear there. |
| 02:40:36 | <koz_> | Should have mentioned 'Strong from profunctors' or something. |
| 02:41:08 | <ski> | yah |
| 02:41:54 | <ski> | (i think you may have mixed up the ordering to the tensor, there ?) |
| 02:42:01 | → | conal joins (~conal@64.71.133.70) |
| 02:42:14 | × | cr3_ quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 02:42:41 | × | conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 02:42:43 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 02:42:56 | <koz_> | Yes: https://hackage.haskell.org/package/profunctors-5.6.2/docs/Data-Profunctor.html#t:Strong |
| 02:43:02 | <koz_> | I can never remember which way around it goes. |
| 02:43:23 | <ski> | edwardk : hm, just wondering if you maybe had an idea for my earlier question |
| 02:43:43 | <ski> | <ski> is there a particular name for when a monoid action acts on a monoid, or a group action acts on a group, (in a compatible way), or the like ? |
| 02:43:57 | <ski> | <ski> for vector spaces, this would be a case of bilinear transformation/map (where one of the two domains is the same as the codomain). can one say "bimonoidal transformation" or something like that ? |
| 02:44:17 | <ski> | <ski> well, it would correspond to an ordinary homomorphism (monoid or group) from a tensor product .. in case the relevant tensor product exists (i'm not sure when it does. in the group case, i think the domain groups have to be abelian. maybe it can sometimes exist even when not ?) |
| 02:45:05 | <ski> | koz_ : well, `first' applies to / modifies the first parameter, and `second' the second |
| 02:45:11 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 1.9.1) |
| 02:45:18 | <koz_> | ski: Yeah, I guess that makes mnemonic sense. |
| 02:45:26 | <ski> | and, airi, `this' is the first one for `These', while `that' is the second |
| 02:45:43 | <ski> | @type first ord |
| 02:45:43 | <koz_> | Yeah, it is. |
| 02:45:44 | <lambdabot> | (Char, d) -> (Int, d) |
| 02:45:55 | → | conal_ joins (~conal@64.71.133.70) |
| 02:47:38 | <koz_> | I guess I'm wondering if the statement 'Arrow = Strong + Category' means 'any Arrow method can be implemented with Strong and/or Category method(s)'. |
| 02:48:07 | <edwardk> | ski: sorry, distracted irl |
| 02:48:12 | <ski> | no worry |
| 02:49:02 | × | alx741 quits (~alx741@181.196.69.27) (Quit: alx741) |
| 02:49:05 | <edwardk> | monoids acting on monoids come up when dealing with semidirect products, because you need a monoid that acts on a monoid "in a compatible way" |
| 02:49:57 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 02:51:40 | <ski> | someone mentioned a paper <https://repository.upenn.edu/cgi/viewcontent.cgi?article=1773&context=cis_papers> about monoids, specifically mentioned "monoid-on-monoid action" (page ten), and i was wondering whether it was mapping monoid elements to monoid homomorphisms |
| 02:52:21 | → | ddellacosta joins (~ddellacos@86.106.143.100) |
| 02:52:48 | <ski> | hm, yea i think i vaguely remember you mentioning something like that in a recorded presentation you made, where you talked about monoidal parsing |
| 02:52:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 02:53:46 | <koz_> | ski: That was me. |
| 02:53:53 | <ski> | ah, ok |
| 02:53:54 | <koz_> | (the monoid-on-monoid action thing) |
| 02:54:00 | <koz_> | (because I have a very mature imagination) |
| 02:54:09 | ski | already forgot who mentioned what :) |
| 02:55:53 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 02:57:36 | → | toorevitimirp joins (~tooreviti@117.182.182.60) |
| 02:57:49 | × | ddellacosta quits (~ddellacos@86.106.143.100) (Ping timeout: 276 seconds) |
| 02:59:05 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 03:07:29 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:07:35 | × | viluon quits (uid453725@gateway/web/irccloud.com/x-amxewsahyzvflymf) (Quit: Connection closed for inactivity) |
| 03:10:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 03:10:26 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 03:11:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 03:11:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 03:12:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 03:12:30 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 03:14:36 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 03:17:12 | → | jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de) |
| 03:18:38 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
| 03:19:58 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 03:19:58 | finn_elija | is now known as Guest45799 |
| 03:19:58 | FinnElija | is now known as finn_elija |
| 03:21:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 03:21:11 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-xtlevgyyzcpkswkn) (Quit: Connection closed for inactivity) |
| 03:21:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 03:21:29 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 272 seconds) |
| 03:23:28 | × | Guest45799 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 03:24:52 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 03:25:21 | <edwardk> | ski: re monoid on monoid action i give laws for that in coda |
| 03:25:56 | <edwardk> | ah i remember now |
| 03:26:04 | <edwardk> | you're looking for a 'unital distributive monoid action' |
| 03:26:36 | <edwardk> | distributive monoid action doesn't imply the taking of units to units per se |
| 03:27:50 | <ski> | hm, okay |
| 03:27:56 | <ski> | a bit of a mouthful :/ |
| 03:28:11 | <edwardk> | it is the only way you'll find the original literaturte |
| 03:28:13 | <edwardk> | er literature |
| 03:28:19 | <ski> | ok |
| 03:28:29 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 03:30:33 | <edwardk> | in 'coda' i wind up using a class 'Relative' rather than 'MonoidAction' because i can use backpack to make it a 1 parameter typeclass |
| 03:30:44 | <edwardk> | then i wind up with RelativeSemigroup and RelativeMonoid |
| 03:30:50 | <edwardk> | but its made up vocabulary |
| 03:31:00 | × | tv quits (~tv@unaffiliated/tv) (Ping timeout: 246 seconds) |
| 03:31:06 | <edwardk> | i should split this out into a hackage package |
| 03:31:28 | <edwardk> | and provide relative:group-relative and relative:monoid-relative libraries users can extend |
| 03:31:36 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 03:31:47 | <edwardk> | which can then offer the catenable lists, sets, maps, etc. |
| 03:31:59 | <edwardk> | with the optimizations i support to make O(1) relocatable maps and the like |
| 03:32:12 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 03:32:16 | <ski> | hm, right. i was wondering whether it was a good idea to have a class `MonoidAction' .. that is, how common would it be to want to talk about multiple parallel actions ? |
| 03:32:33 | <edwardk> | Relative works better than MonoidAction for two reasons |
| 03:32:40 | <edwardk> | one is single parameter typeclasses |
| 03:32:53 | <edwardk> | the other is i can unpack the monoid in data types parameterized on it |
| 03:33:04 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds) |
| 03:33:16 | → | tv joins (~tv@unaffiliated/tv) |
| 03:33:24 | <edwardk> | e.g. data List a = Nil | Cons {-# UNPACK #-} !Delta a (List a) |
| 03:33:34 | <edwardk> | or into the maps or fingertrees |
| 03:34:08 | <ski> | not seeing how the OPTC is related to unpacking |
| 03:34:24 | <edwardk> | the backpack solution is parameterized on the monoid. |
| 03:34:27 | <edwardk> | Delta is that monoid |
| 03:34:40 | <edwardk> | so its concrete for any instantiation of the package |
| 03:34:45 | <edwardk> | meaning unpack can fire on it |
| 03:35:12 | <edwardk> | if it was data List m a = Nil | Cons !m a (List a) -- for some Monoid m that acts on a that wouldn't work |
| 03:35:26 | <edwardk> | the m would still be, say a pointer to a box holding an Int# |
| 03:35:27 | → | Rob7 joins (49f11cfb@c-73-241-28-251.hsd1.ca.comcast.net) |
| 03:35:39 | <ski> | ah, ok |
| 03:35:43 | <edwardk> | and inference would suck on top of that |
| 03:35:53 | × | mstksg quits (~mstksg@unaffiliated/mstksg) (Quit: WeeChat 2.7) |
| 03:36:13 | → | jle` joins (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
| 03:36:13 | × | jle` quits (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
| 03:36:13 | → | jle` joins (~mstksg@unaffiliated/mstksg) |
| 03:37:03 | <edwardk> | this lets me cleanly deal with multiple actions because each class is a separate class, each function is a separate function, each type of catenable list that supports group or monoid actions in O(1) is a separate type that gets to monomorphize away the representation of the monoid |
| 03:37:34 | <edwardk> | now when you go to replicate this for the `mtl` life starts to suck |
| 03:37:42 | <edwardk> | but for basic stuff? easy |
| 03:38:04 | <ski> | aren't the classes effectively specialized partially applied versions of the MPTC ? |
| 03:38:14 | <edwardk> | the problem with the MTL is there's a common idiom of StateT (MyState s) (ST s) ... |
| 03:38:38 | <edwardk> | so you need to parameterize the modules over monads with parameters, not just monads you need the ability to smuggle that 's' down |
| 03:38:46 | <edwardk> | and into all the states even if you may not need it |
| 03:39:02 | <edwardk> | but then when we look at the MPTC classes we get another issue |
| 03:39:17 | <ski> | hmm |
| 03:39:40 | <edwardk> | which is that you wind up needing to make modules for each 'instance' you'd write. but then can't even benefit from default signatures on anything. |
| 03:39:46 | <edwardk> | so its just a worse typeclass mechanism |
| 03:39:50 | <ski> | would (uniformly) parameterizing modules over tyvars help, there ? |
| 03:39:56 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 03:39:56 | <edwardk> | and the user is writing a mixin line in their cabal file for every instantiation |
| 03:39:58 | <ski> | (if that was a thing, i mean) |
| 03:40:11 | <edwardk> | yes |
| 03:40:30 | <edwardk> | also we could reduce pressure by parameterizing on runtime reps or something |
| 03:40:34 | <edwardk> | instead of concrete types |
| 03:40:35 | <edwardk> | perhaps |
| 03:41:13 | <edwardk> | I don't care if you are State Word# a or State Char# a as they are both the same runtime kind (TYPE 'WordRep) |
| 03:41:29 | → | desophos joins (~desophos@2601:249:1680:a570:1ceb:ae8f:9938:9938) |
| 03:41:31 | <ski> | mhm, i see |
| 03:41:46 | <ski> | (not following the bit with default signatures) |
| 03:42:45 | <edwardk> | consider making a library which has a signature that you depend on some data M s a such that there is Monad (M s), etc. and the module the lib supplies offers get, put, modify |
| 03:43:11 | <edwardk> | you can't fill in the 'default' for get/put in terms of modify in anything for the result library |
| 03:43:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:43:52 | <edwardk> | so anyone who goes to write an equivalent of what was instance MonadState s m => MonadState s (ReaderT e m) -- has to write all 3 defs out longhand |
| 03:44:30 | <edwardk> | and you also need to explicitly mixin all these little baby backpack modules to make your fully unboxed mtl go |
| 03:44:36 | × | Rob7 quits (49f11cfb@c-73-241-28-251.hsd1.ca.comcast.net) (Quit: Connection closed) |
| 03:44:38 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) |
| 03:44:51 | <ski> | hm .. so this is a current issue/limitation with backpack ? |
| 03:46:06 | <ski> | well, it's cool that people are starting to play around with backpack, finding out where pain points are, and where there might be room for improvement. and seeing how it interacts with tyoe classes, what the trade-offs are |
| 03:46:09 | <edwardk> | i mean, sure. backpack doesn't 'mixin' the signature code with the module you supply it in any way. it isn't clear how it would. its just an hs-boot parser |
| 03:46:54 | <edwardk> | i pointed out a while back that in theory one could have a backpack like feature in a language that let you merge signatures into larger signatures, specify defaults/partial definitions, etc. doesn't feel like haskell but there's a language there |
| 03:47:15 | <edwardk> | has some cute benefits it can offer to the expression problem and the like if you can supply individual cases in the definitions even |
| 03:47:56 | <ski> | coming from different modules that you mix, you mean ? |
| 03:48:41 | <edwardk> | e.g. in "Shangri-La-skel" pretend you can make a signature for a module that looks like data Expr a; eval :: Expr a -> a |
| 03:48:52 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
| 03:49:15 | <edwardk> | then one could envision defining a module that said data Expr a where Lit :: Int -> Expr Int; Plus :: Int -> Int -> Expr Int; obvious eval. |
| 03:49:21 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 03:49:23 | <edwardk> | and another that offers Lam/Abs and the obvious eval |
| 03:49:59 | × | theDon_ quits (~td@muedsl-82-207-238-098.citykom.de) (Ping timeout: 265 seconds) |
| 03:50:00 | <edwardk> | and a desire to merge the two definitions into a composite module with all the data constructors and all the top level cases for eval merged. |
| 03:50:04 | <ski> | being able to combine two modules which each depend on a parameter module with a signature matching the other one could be useful sometimes. so one module can use some operations given by the other, and vice versa. so a mutually recursive instantiation, if you think of it as two module functors |
| 03:50:51 | <ski> | hm, yea. that's what i was thinking you had in mind more or less |
| 03:50:53 | → | theDon joins (~td@94.134.91.130) |
| 03:51:01 | <edwardk> | (you'd need something like jesper cockx's definitional equality for all: https://link.springer.com/chapter/10.1007%2F978-3-642-54833-8_6 |
| 03:51:02 | <ski> | binary operations is a problem, i guess |
| 03:51:22 | <edwardk> | its not a haskell-like language feature |
| 03:51:30 | <edwardk> | but in another language you can come up with ways to play with it |
| 03:52:13 | <edwardk> | to do binary you wind up needing module signatures for how the two types interoperate and then to inherit from that multiple times, messy, but doable |
| 03:52:35 | <edwardk> | e.g. a package parameterized on two others |
| 03:53:10 | <edwardk> | its a thing i played with for coda because it offers up interesting code reuse patterns we don't currently have |
| 03:53:17 | <edwardk> | but its also its own brand of crazy |
| 03:53:39 | <ski> | and then one can wonder what if one fragment would like one kind of effect in `eval', and another would like another fragment, how to combine |
| 03:53:49 | <edwardk> | anyways, the status quo is to define a fully backpacked mtl i'd have to suffer some serious pain. |
| 03:54:31 | <edwardk> | ski: thats handlable. you push the effect into another module signature. define combinators for interacting with it. then merge the signatures for what has to be fed you. |
| 03:55:20 | <ski> | hm, i think i see |
| 03:55:44 | <edwardk> | the pain point i have here is that my usual dodge for work effects now is to stop thinking in mtl terms and start using implicit parameters, but with all the representation polymorphic stuff i'm doing, i can't push unlifted or linear things onto the left of the => |
| 03:55:56 | <edwardk> | er for working with |
| 03:56:15 | <edwardk> | i think we talked about this trick before |
| 03:56:27 | <ski> | `(?foo :: Lev T) => ..' ? |
| 03:56:50 | → | rkrishnan joins (~rkrishnan@rkrishnan.org) |
| 03:56:51 | <edwardk> | lev makes that by name, which is super dangerous from a recomputation perspective |
| 03:57:59 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 03:58:58 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-cdhhieietudbtkyo) |
| 04:00:01 | × | alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:00:02 | × | haasn quits (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 04:00:52 | → | alexelcu joins (~alexelcu@142.93.180.198) |
| 04:00:52 | <ski> | hm. so need thunked version of `() => T' ? |
| 04:01:22 | <ski> | although, how would the caching work ? |
| 04:02:58 | <edwardk> | basically i'm just observing that with current haskell i can't quite maintain the unboxing tricks i have and the effect system tricks i've been using at the same time |
| 04:03:20 | <edwardk> | in my perfect world i'd use reflection to pass my argument as a CONSTRAINT 'IntRep or something |
| 04:06:00 | <ski> | mm |
| 04:06:23 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 04:07:02 | → | Rob30 joins (49f11cfb@c-73-241-28-251.hsd1.ca.comcast.net) |
| 04:10:37 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 276 seconds) |
| 04:10:55 | ← | Tordek parts (tordek@gateway/shell/blinkenshell.org/x-igtnswqonmwtslsx) () |
| 04:14:19 | → | ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
| 04:17:02 | × | Rob30 quits (49f11cfb@c-73-241-28-251.hsd1.ca.comcast.net) (Quit: Connection closed) |
| 04:19:13 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 272 seconds) |
| 04:19:15 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 04:19:20 | × | jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.0.1) |
| 04:19:30 | × | ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 04:20:06 | → | haasn joins (~nand@mpv/developer/haasn) |
| 04:22:10 | → | forgottenone joins (~forgotten@176.88.28.250) |
| 04:23:44 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds) |
| 04:31:00 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 04:31:46 | × | shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:750e:d23:b28:17e4) (Ping timeout: 258 seconds) |
| 04:32:32 | × | tomku|two quits (~tomku@unaffiliated/tomku) (Ping timeout: 272 seconds) |
| 04:37:31 | → | shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:9922:cfc5:8f27:49f4) |
| 04:38:49 | → | tomku joins (~tomku@unaffiliated/tomku) |
| 04:41:18 | → | psutcliffe joins (~psutcliff@2a00:801:44b:5fb3:b852:cfd3:ade7:f24f) |
| 04:41:57 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 04:42:22 | × | Tops2 quits (~Tobias@dyndsl-095-033-019-043.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 04:44:36 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 04:45:03 | × | soft-warm quits (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds) |
| 04:45:29 | → | Tario joins (~Tario@201.192.165.173) |
| 04:46:59 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
| 04:51:27 | × | conal_ quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 04:52:08 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@184.22.157.95) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:52:39 | × | gienah_ quits (~mwright@119-18-2-241.771202.syd.nbn.aussiebb.net) (Quit: leaving) |
| 04:57:46 | → | conal joins (~conal@64.71.133.70) |
| 05:01:38 | blissful | is now known as boomsayer |
| 05:01:47 | boomsayer | is now known as blissful |
| 05:03:07 | <zzz> | hey. why are circular imports not allowed? |
| 05:03:44 | <glguy> | They are allowed, but you have to help GHC along with a boot file |
| 05:04:22 | <zzz> | oh ok! where can i learn more about it? |
| 05:05:25 | <glguy> | generally if you need them it means your program structure isn't great, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/separate_compilation.html#how-to-compile-mutually-recursive-modules |
| 05:06:19 | → | drbean_ joins (~drbean@TC210-63-209-156.static.apol.com.tw) |
| 05:08:21 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
| 05:10:59 | zerok | is now known as z0k |
| 05:15:34 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 05:16:33 | <zzz> | yeah i'm feeling it's not great. I'm having trouble with types. is having a module with basically just all my custom types a healthy thing to do? |
| 05:17:36 | <zzz> | something like import Project.Types on all modules? |
| 05:18:01 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 05:20:02 | <EvanR> | that works, and simplifies types that form a loop |
| 05:20:41 | <EvanR> | ah that's what you were talking about |
| 05:21:38 | <zzz> | it kind of weirds me out but ill try |
| 05:23:13 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 05:24:45 | → | _d0t joins (void@gateway/vpn/mullvad/d0t/x-89419360) |
| 05:26:23 | <hyiltiz-M> | @monochrome What’s an MSc cert.? Is it gonna have a stamp on it ;P |
| 05:26:23 | <lambdabot> | Unknown command, try @list |
| 05:27:09 | <hyiltiz-M> | monochrome: What’s an MSc cert.? Is it gonna have a stamp on it with fancy old English font? ;P |
| 05:28:13 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 05:28:17 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Client Quit) |
| 05:28:37 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 276 seconds) |
| 05:29:00 | <pjb> | MicroSoft Consultant Certification. |
| 05:29:53 | <hyiltiz-M> | Do I get extra credit for making data Pair a=MkPair a a into a Hilbert space too? |
| 05:30:35 | <hyiltiz-M> | Is MSc a joke or a cert that is recognized by anyone else? |
| 05:31:08 | <hyiltiz-M> | I thought it was a joke when monochrome put out the challenge |
| 05:32:08 | <Feuermagier> | don't all big tech-companies think they have authority to hand out certs nowdays? |
| 05:33:06 | <MarcelineVQ> | msc https://en.wikipedia.org/wiki/Master_of_Science |
| 05:33:31 | <hyiltiz-M> | Yeah I was thinking MSc meant MS degree too and hence a joke |
| 05:35:37 | <hyiltiz__> | Anyway, I am intrigued and I'll bite next time I need a reason to procrastinate (and claim that MSc since monoschrome is not known to make false promises :D) And while I am on it, I'll make it an Hilbert space 'cuz why not. |
| 05:36:53 | <MarcelineVQ> | he promised me a rose garden once |
| 05:44:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:47:46 | × | Wuzzy quits (~Wuzzy@p5b0df8ea.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 05:48:04 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 05:48:15 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 05:52:57 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 05:53:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
| 05:53:21 | × | boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Ping timeout: 264 seconds) |
| 05:53:44 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@190-2-138-17.hosted-by-worldstream.net) |
| 05:55:33 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 05:55:57 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 05:56:22 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:56:25 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 05:57:34 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 05:57:37 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 05:58:31 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@190-2-138-17.hosted-by-worldstream.net) (Ping timeout: 276 seconds) |
| 06:00:58 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds) |
| 06:01:26 | → | aqd joins (~aqd@84.20.147.33) |
| 06:02:45 | × | dave_uy3 quits (~david@108.61.193.26) (Quit: The Lounge - https://thelounge.chat) |
| 06:03:46 | × | forgottenone quits (~forgotten@176.88.28.250) (Quit: Konversation terminated!) |
| 06:05:03 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 06:05:29 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 06:05:40 | → | dave_uy3 joins (~david@108.61.193.26) |
| 06:09:12 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:f4d9:46b5:acd5:46aa) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:13:07 | → | proteusguy joins (~proteusgu@cm-58-10-208-13.revip7.asianet.co.th) |
| 06:13:36 | × | mp___ quits (mp@hell.cx) (Ping timeout: 240 seconds) |
| 06:13:49 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 06:15:03 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 06:15:26 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 06:17:24 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 265 seconds) |
| 06:18:36 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-cdhhieietudbtkyo) (Quit: Connection closed for inactivity) |
| 06:19:19 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 06:20:33 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 06:23:18 | × | xff0x_ quits (~xff0x@2001:1a81:52d0:d300:24a8:fbee:5e92:3e0) (Quit: xff0x_) |
| 06:23:26 | → | xff0x joins (~xff0x@2001:1a81:52d0:d300:24a8:fbee:5e92:3e0) |
| 06:24:21 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 06:28:26 | → | geyaeb_ joins (~geyaeb@gateway/tor-sasl/geyaeb) |
| 06:29:05 | × | geyaeb quits (~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds) |
| 06:29:36 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 06:32:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 06:33:23 | <hyiltiz__> | oh that sounds like the beginning of a sad love story... Does it have a bottom? |
| 06:34:39 | <MarcelineVQ> | a cobottom |
| 06:35:07 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-csqlidmiacqyvucp) (Quit: Connection closed for inactivity) |
| 06:37:10 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:43:38 | × | echoreply quits (~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1) |
| 06:44:07 | → | echoreply joins (~echoreply@unaffiliated/echoreply) |
| 06:45:13 | × | hyiltiz__ quits (~quassel@31.220.5.250) (Quit: hyiltiz__) |
| 06:45:27 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 06:48:41 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 06:49:57 | <koz_> | MarcelineVQ: So, a top? |
| 06:53:54 | × | Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007) |
| 06:55:18 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-umknbygenttiqgds) |
| 06:55:38 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 06:56:31 | × | werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
| 06:56:41 | <Feuermagier> | how do i convert a normal boolean into an IO-Bool? |
| 06:58:44 | <Feuermagier> | nvmnd, just a missing bracket |
| 06:59:56 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Ping timeout: 240 seconds) |
| 07:00:35 | → | redmp joins (~redmp@172.58.38.168) |
| 07:00:53 | <redmp> | where does the "PostNoContent" in here come from? https://github.com/haskell-servant/servant/blob/master/servant/src/Servant/Test/ComprehensiveAPI.hs |
| 07:01:24 | <redmp> | when I ask for the :kind! of "PostNoContent" in ghci I get ... PostNoContent :: [*] -> * -> * |
| 07:01:33 | × | gioyik_ quits (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0) |
| 07:01:37 | <redmp> | but in the above it seems to be used without type-arguments |
| 07:01:55 | <redmp> | as it seems was decided in https://github.com/haskell-servant/servant/issues/828 |
| 07:02:26 | <redmp> | ah, nevermind.. i'm on and old version.. rubber duck etc, thank you |
| 07:05:44 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 07:06:04 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 07:10:24 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Read error: Connection reset by peer) |
| 07:10:45 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
| 07:11:10 | × | Cthalupa- quits (~cthulhu@47.186.47.75) (Read error: Connection reset by peer) |
| 07:11:28 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 07:11:45 | → | mp___ joins (mp@hell.cx) |
| 07:12:44 | × | spoonm quits (~spoonm@2602:ffd5:1:119::1) (Ping timeout: 240 seconds) |
| 07:16:52 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:19:57 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
| 07:21:07 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
| 07:21:19 | <zfnmxt> | I have a type like `Compose :: Func b c -> Func a b -> Fun a c`. Then, any function which takes a Func a c with some constraints: foo :: (C a, C c) => Fun a c -> ... can't determine if C holds for b. Is there a nice way to deal with this issue aside from doing something like `Comp :: (C1 b, C2 b, ...) => f b c -> f a b -> f a c` (which is super gross and might not even work)? |
| 07:21:56 | → | o1lo01ol1o joins (~o1lo01ol1@188.140.102.232) |
| 07:23:21 | → | mananamenos joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
| 07:26:31 | × | o1lo01ol1o quits (~o1lo01ol1@188.140.102.232) (Ping timeout: 265 seconds) |
| 07:26:52 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 07:29:03 | <c_wraith> | the problem is that you've made the type b existential, so GHC can't auto-populate the instance |
| 07:29:57 | <c_wraith> | None of the methods of dealing with that are very pleasant |
| 07:30:11 | <zfnmxt> | c_wraith: So is the best fix doing the somewhat artifical thing of changing `Func a b` to `Func a b c`? |
| 07:30:49 | <c_wraith> | or replacing the class with a function (or record of them) such that the type isn't being used to determine anything |
| 07:30:59 | × | redmp quits (~redmp@172.58.38.168) (Quit: leaving) |
| 07:31:57 | <zfnmxt> | Seems less than ideal, since then I can take advantage of libraries which define classes. (This issue just came up trying to make Func an instance of Pretty). |
| 07:32:35 | → | forgottenone joins (~forgotten@176.42.27.254) |
| 07:32:51 | <zfnmxt> | s/can/can't |
| 07:33:00 | <c_wraith> | Well, there are tools like the constraints package for moving classes to values |
| 07:33:23 | <zfnmxt> | I keep seeing that pop-up but haven't looked into it. Maybe now's the time! |
| 07:33:37 | <c_wraith> | but in the end the solution has to be some form of "reify the class" or "don't throw away the type information" |
| 07:34:11 | <zfnmxt> | But I think something like `type Func a b = Func' a b ()` and then having `data Func' a b c where...` isn't so ugly. |
| 07:34:21 | <c_wraith> | if it stops at 2.... |
| 07:34:47 | <zfnmxt> | 2 being the number of arguments to data constructors which are Funcs? |
| 07:34:56 | <c_wraith> | 2 functions being composed |
| 07:35:19 | <zfnmxt> | Oh. Yikes. |
| 07:38:22 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 256 seconds) |
| 07:39:29 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 07:41:13 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 07:46:24 | × | ddere quits (uid110888@gateway/web/irccloud.com/x-mbygtejiccludvmt) (Quit: Connection closed for inactivity) |
| 07:49:17 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:51:21 | → | polyrain joins (~polyrain@2001:8003:e4d8:4101:11d5:eb2a:5a3d:13dc) |
| 07:53:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 07:55:33 | <desophos> | i have a list of records that i want to generate length-n combinations of (game theory player matchups). i profiled my program and my function that generates these combinations was by far my largest bottleneck. i ended up memoizing a list of indexes for Data.Vector.! to massively improve the performance and now i have two questions: 1. is `V.fromList . sort . nub` faster than `V.fromList . S.toAscList . S.fromList`? i don't |
| 07:55:33 | <desophos> | know the complexity of `sort`. 2. is there a more sensible way to go about this? my approach feels inelegant! |
| 07:55:34 | <desophos> | https://paste.tomsmeding.com/RtEveHds |
| 07:56:24 | <koz_> | desophos: sort is n log(n). |
| 07:56:31 | <koz_> | (because in general you can't do better) |
| 07:56:41 | <koz_> | nub is horrendous and best not used - it's quadratic. |
| 07:57:11 | <desophos> | alright thanks, yeah i figured the Set conversion would be better because nub is O(n^2) |
| 07:57:18 | <koz_> | Do you need to generate _every_ length-n combination? |
| 07:58:04 | <desophos> | well... ideally, yes |
| 07:58:25 | <desophos> | i'd like to match each element against each other element |
| 07:58:35 | <koz_> | So is your 'n' fixed? |
| 07:58:38 | <desophos> | excluding duplicates and self-matches |
| 07:58:40 | × | ephemera_ quits (~E@122.34.1.187) (Quit: ephemera_) |
| 07:59:03 | <desophos> | `n` and `k` should be fixed during program execution |
| 07:59:32 | <koz_> | OK, so if you're excluding dupes, you can already do one thing and have your input be a HashSet, or a Set, as opposed to a list. |
| 07:59:33 | <desophos> | hence the memoization |
| 07:59:35 | <koz_> | That means no dupes. |
| 08:00:03 | <koz_> | In terms of combination generation, I'm trying to find a publically available reference for one of the loopfree generator algorithms. |
| 08:00:08 | <koz_> | Since they're basically the best you can do. |
| 08:00:43 | → | ephemera_ joins (~E@122.34.1.187) |
| 08:01:49 | → | __minoru__shirae joins (~shiraeesh@109.166.56.143) |
| 08:02:27 | <koz_> | https://dl.acm.org/doi/pdf/10.1145/321765.321781?casa_token=mqEhkgUN4eIAAAAA:j0ZM3Vmwt5eBKlJJx20e1aVHLtyWfHGzYKNvuLq7Jnrd2C1DBeYudym9y9YoVz-ddIF8XQ4ZXd-lLA |
| 08:02:31 | <koz_> | Algorithm 7 is what you seek. |
| 08:02:33 | <desophos> | taking a Set would be a good idea but that would require the caller to import Data.Set and perform the conversion anyway, right? |
| 08:02:39 | <koz_> | And? |
| 08:02:48 | <koz_> | You might as well burn out the dupes immediately. |
| 08:02:51 | → | Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
| 08:02:52 | <koz_> | Or demand your user do it. |
| 08:02:57 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:03:33 | <desophos> | right, there shouldn't actually be any dupes in the first place -- that would be a logic error |
| 08:03:44 | <koz_> | Then you lose nothing by asking for a Set. |
| 08:03:58 | <koz_> | And in fact you gain a lot, because now you have some guarantees no dork will feed you inappropriate input _ever_. |
| 08:04:06 | <desophos> | that's true |
| 08:04:24 | <koz_> | But yeah, read the link I gave you; algorithms 7 and 8 are _the_ best way to do what you want. |
| 08:04:32 | <koz_> | Since they're loopless. |
| 08:04:50 | <desophos> | hmm, it looks like this article is purchase-required? |
| 08:04:57 | <koz_> | My link worked? |
| 08:05:06 | <koz_> | I can access it fine. |
| 08:05:15 | <koz_> | (and I know I don't have ACM credentials) |
| 08:05:27 | → | Yumasi joins (~guillaume@2a01:e0a:5cb:4430:2f12:f782:a87b:e2ae) |
| 08:05:42 | <koz_> | Can you not access it? |
| 08:05:54 | <desophos> | no, only the abstract and references |
| 08:05:58 | <koz_> | Huh, weird. |
| 08:06:01 | <koz_> | One moment. |
| 08:06:11 | × | polyrain quits (~polyrain@2001:8003:e4d8:4101:11d5:eb2a:5a3d:13dc) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:06:18 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:07:09 | <desophos> | the great thing about memoization here is that the speed of the combination algorithm doesn't actually matter that much, since it'll only happen once per program execution |
| 08:07:10 | <koz_> | https://transfer.sh/urUNU/enjoy-reading.pdf |
| 08:07:15 | <desophos> | thank you! |
| 08:07:23 | <koz_> | I would say 'don't even worry about memoization at this stage'. |
| 08:07:30 | <koz_> | Use a proper loopfree combination generator. |
| 08:07:34 | <koz_> | You probably won't even need it. |
| 08:08:02 | <desophos> | wow alright, i'll see if i can implement it |
| 08:08:05 | <koz_> | To do this efficiently you might wanna make use of the vector library, because you'll need some arrays. |
| 08:08:10 | <koz_> | Again, algorithm 7 and 8 are what you want. |
| 08:08:21 | <koz_> | You can skip the others, although they're good background knowledge in any case. |
| 08:08:34 | × | __minoru__shirae quits (~shiraeesh@109.166.56.143) (Ping timeout: 265 seconds) |
| 08:08:35 | <koz_> | (Johnson-Steinhaus-Trotter is still what I reach for whenever I need permutation enumeration for example) |
| 08:09:28 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 08:09:53 | → | vilpan joins (~0@212.117.1.172) |
| 08:10:00 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 08:15:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:16:01 | × | xff0x quits (~xff0x@2001:1a81:52d0:d300:24a8:fbee:5e92:3e0) (Ping timeout: 258 seconds) |
| 08:16:40 | → | xff0x joins (~xff0x@port-92-195-110-249.dynamic.as20676.net) |
| 08:16:49 | → | __minoru__shirae joins (~shiraeesh@109.166.56.143) |
| 08:18:13 | → | ddellacosta joins (~ddellacos@86.106.143.201) |
| 08:19:52 | → | mawk joins (mawk@serveur.io) |
| 08:20:25 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 08:21:14 | <tomsmeding> | koz_: you're not by any chance on a university network? that acm link is inaccessible to me too unless I connect to my university's proxy |
| 08:21:22 | <koz_> | tomsmeding: Nope. |
| 08:21:29 | <koz_> | Unless my house is magically a university now. |
| 08:21:44 | <koz_> | But it's fine - it got where it needed to go. |
| 08:21:59 | <tomsmeding> | interesting |
| 08:22:01 | sphalerite_ | is now known as sphalerite |
| 08:22:23 | <koz_> | Meanwhile, here I am trying to find an ELI5 of l0 regularization. |
| 08:22:49 | × | ddellacosta quits (~ddellacos@86.106.143.201) (Ping timeout: 276 seconds) |
| 08:23:26 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 08:26:39 | <koz_> | Oh lol, number of nonzero elements. |
| 08:27:07 | × | mawk quits (mawk@serveur.io) (Ping timeout: 256 seconds) |
| 08:28:34 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 08:31:04 | × | toorevitimirp quits (~tooreviti@117.182.182.60) (Remote host closed the connection) |
| 08:31:35 | → | toorevitimirp joins (~tooreviti@117.182.182.60) |
| 08:36:40 | → | fendor joins (~fendor@178.115.128.24.wireless.dyn.drei.com) |
| 08:38:03 | → | mawk joins (mawk@serveur.io) |
| 08:39:17 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:43:04 | → | o1lo01ol1o joins (~o1lo01ol1@188.140.102.232) |
| 08:44:21 | × | __minoru__shirae quits (~shiraeesh@109.166.56.143) (Ping timeout: 264 seconds) |
| 08:45:23 | × | fendor quits (~fendor@178.115.128.24.wireless.dyn.drei.com) (Remote host closed the connection) |
| 08:48:17 | × | drbean_ quits (~drbean@TC210-63-209-156.static.apol.com.tw) (Ping timeout: 272 seconds) |
| 08:50:22 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 08:50:53 | → | shad0w_ joins (a0ca2456@160.202.36.86) |
| 08:51:38 | → | borne joins (~fritjof@200116b864cbc80010f2d07664396fd4.dip.versatel-1u1.de) |
| 08:52:04 | × | terrorjack quits (~terrorjac@ec2-52-47-143-92.eu-west-3.compute.amazonaws.com) (Quit: The Lounge - https://thelounge.chat) |
| 08:52:17 | → | chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
| 08:53:01 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 08:53:42 | → | terrorjack joins (~terrorjac@ec2-52-47-143-92.eu-west-3.compute.amazonaws.com) |
| 08:54:38 | × | desophos quits (~desophos@2601:249:1680:a570:1ceb:ae8f:9938:9938) (Ping timeout: 264 seconds) |
| 08:54:52 | → | desophos joins (~desophos@c-24-14-63-128.hsd1.il.comcast.net) |
| 08:55:15 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
| 08:55:26 | × | vchlup_ quits (~vchlup@nat.brnet.cz) (Ping timeout: 256 seconds) |
| 08:56:37 | → | ubert joins (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) |
| 08:57:17 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) |
| 09:00:11 | × | Sarievo[m] quits (sarievoale@gateway/shell/matrix.org/x-pwulriigshezukrd) (Quit: Idle for 30+ days) |
| 09:02:20 | peutri_ | is now known as peutri |
| 09:04:43 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 09:06:06 | → | kuribas joins (~user@ptr-25vy0i6y5ai1dlzwgol.18120a2.ip6.access.telenet.be) |
| 09:06:45 | × | shad0w_ quits (a0ca2456@160.202.36.86) (Quit: Connection closed) |
| 09:08:32 | → | CatWithMoustache joins (~CatWithMo@gateway/tor-sasl/catwithmoustache) |
| 09:09:05 | × | CatWithMoustache quits (~CatWithMo@gateway/tor-sasl/catwithmoustache) (Client Quit) |
| 09:09:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 09:09:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 09:09:48 | → | hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga) |
| 09:10:57 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 09:11:16 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 268 seconds) |
| 09:11:32 | → | m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 09:11:38 | × | guest222 quits (~user@49.5.6.87) (Remote host closed the connection) |
| 09:11:44 | → | chisui joins (5882391e@mue-88-130-57-030.dsl.tropolys.de) |
| 09:12:59 | × | aarvar quits (~foewfoiew@2601:602:a080:fa0:49bc:1f9e:3510:3fc5) (Ping timeout: 272 seconds) |
| 09:18:53 | → | michalz joins (~user@185.246.204.61) |
| 09:19:08 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 09:21:36 | × | kam1 quits (~kam1@5.125.126.175) (Ping timeout: 240 seconds) |
| 09:21:50 | → | pera joins (~pera@unaffiliated/pera) |
| 09:21:52 | → | Codaraxis joins (Codaraxis@gateway/vpn/mullvad/codaraxis) |
| 09:25:17 | → | pera_ joins (~pera@unaffiliated/pera) |
| 09:27:36 | × | o1lo01ol1o quits (~o1lo01ol1@188.140.102.232) (Remote host closed the connection) |
| 09:28:42 | → | ddellacosta joins (~ddellacos@86.106.143.84) |
| 09:28:57 | × | pera_ quits (~pera@unaffiliated/pera) (Client Quit) |
| 09:28:57 | × | pera quits (~pera@unaffiliated/pera) (Quit: leaving) |
| 09:29:07 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 09:29:18 | → | pera joins (~pera@unaffiliated/pera) |
| 09:30:10 | → | spoonm joins (~spoonm@tokyo.spoonm.org) |
| 09:30:15 | × | mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
| 09:30:36 | → | _noblegas joins (uid91066@gateway/web/irccloud.com/x-koxpwnnitfybavxb) |
| 09:32:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:33:38 | × | ddellacosta quits (~ddellacos@86.106.143.84) (Ping timeout: 265 seconds) |
| 09:34:26 | × | AWizzArd quits (~code@unaffiliated/awizzard) (Ping timeout: 240 seconds) |
| 09:34:33 | → | mananamenos joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
| 09:36:56 | × | runeks quits (sid21167@gateway/web/irccloud.com/x-knlehmbevkamnxoa) (Ping timeout: 240 seconds) |
| 09:37:17 | × | jbetz quits (sid283648@gateway/web/irccloud.com/x-mbznlfwgozuyecdk) (Ping timeout: 260 seconds) |
| 09:37:30 | × | topos quits (sid467876@gateway/web/irccloud.com/x-jjuaerngijjjrgfb) (Ping timeout: 265 seconds) |
| 09:37:35 | × | moobar quits (sid171730@gateway/web/irccloud.com/x-frdbmxzesbedehug) (Read error: Connection reset by peer) |
| 09:37:45 | → | runeks joins (sid21167@gateway/web/irccloud.com/x-rckbkalawmplrynn) |
| 09:37:45 | → | jbetz joins (sid283648@gateway/web/irccloud.com/x-xrbchakxhwrqcwzv) |
| 09:37:48 | → | moobar joins (sid171730@gateway/web/irccloud.com/x-lxdmnqustlyookkh) |
| 09:37:52 | → | topos joins (sid467876@gateway/web/irccloud.com/x-zlylmlnixcvrclez) |
| 09:38:36 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-umknbygenttiqgds) (Quit: Connection closed for inactivity) |
| 09:41:46 | × | zaquest_ quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 09:42:27 | <siers> | is it possible to make parser from invertible functions? say, a json parser |
| 09:43:06 | → | zaquest joins (~notzaques@5.128.210.178) |
| 09:43:30 | <koz_> | siers: jle` wrote a whole article on this! |
| 09:44:03 | <koz_> | https://blog.jle.im/entry/enhancing-functor-structures-step-by-step-1.html |
| 09:44:50 | → | catt joins (~r@31.127.31.99) |
| 09:45:18 | <siers> | sounds cool, I'll take a look! |
| 09:49:28 | <siers> | can the functor-combinators do the same thing as the invertible library? |
| 09:50:23 | <koz_> | siers: They're separate concerns. |
| 09:50:29 | <koz_> | You wanna read both parts all the way through. |
| 09:50:39 | → | viluon joins (uid453725@gateway/web/irccloud.com/x-dqymabneifveqvzq) |
| 09:51:11 | <siers> | I have to work now, I can't dig into it, but that's just something I wanted to ask off the top of my head :) |
| 09:53:25 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 09:53:31 | × | hiroaki__ quits (~hiroaki@2a02:8108:8c40:2bb8:cedc:3317:ccec:602b) (Ping timeout: 272 seconds) |
| 09:53:52 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
| 09:54:03 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 09:55:04 | cods_ | is now known as cods |
| 09:55:14 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (Changing host) |
| 09:55:14 | → | cods joins (~fred@unaffiliated/cods) |
| 09:57:13 | × | datajerk_ quits (~datajerk@sense.net) (Ping timeout: 256 seconds) |
| 09:58:14 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
| 09:59:36 | × | grumble quits (~Thunderbi@freenode/staff/grumble) (Quit: K-Lined) |
| 10:01:25 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 10:02:36 | → | datajerk joins (~datajerk@sense.net) |
| 10:03:11 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 10:03:41 | → | grumble joins (~Thunderbi@freenode/staff/grumble) |
| 10:04:17 | → | hiroaki__ joins (~hiroaki@2a02:8108:8c40:2bb8:8fe4:ef1e:34cd:b814) |
| 10:04:40 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-kzbgzpokvgnzruvp) (Quit: Connection closed for inactivity) |
| 10:06:11 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:07:23 | <kuribas> | I wonder, if parsing is done with a monad, then would generating be done with a comonad? |
| 10:08:01 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 10:08:01 | <kuribas> | since generating is the oposite of parsing |
| 10:08:04 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 10:08:25 | → | DavidEichmann joins (~david@234.109.45.217.dyn.plus.net) |
| 10:08:34 | <jle`> | generating would be a contravariant functor |
| 10:08:44 | <jle`> | which is the opposite of the covariant functor (monad) |
| 10:08:58 | <jle`> | i guess maybe not "the", but "a" :) |
| 10:09:43 | <jle`> | *an opposite |
| 10:10:37 | <dminuoso> | kuribas: Duality does not mean "opposite" in that sense. |
| 10:10:58 | <dminuoso> | Consider how Either is a categorical dual of (,) |
| 10:11:20 | <dminuoso> | (which is why sum types are sometimes called coproducts) |
| 10:11:48 | <shachaf> | But the dual of a covariant functor is also not a contravariant functor. |
| 10:13:36 | × | mp___ quits (mp@hell.cx) (Ping timeout: 240 seconds) |
| 10:17:33 | <kuribas> | It does seem to work: (\a -> myParserOfB) >=> (b -> (myParserOfC) |
| 10:19:10 | <ski> | i guess there's "abstract duals" and "concrete duals". the former you apply not to some particular thing, but to a concept. so, strictly speaking, `Either' is not dual to `(,)', but the concept of sum/coproduct is dual to the concept of product. the latter typically involves, given a thing, considering all functions/homomorphisms/arrows from it to some specific other thing, or considering a similar |
| 10:19:16 | <ski> | exponential object, or the corresponding thing in monoidal closed or compact closed categories. an example is that the dual of a vector space is the vector space of all linear transformations/maps from it to the vector space of scalars |
| 10:20:48 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 10:21:08 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 10:21:41 | × | AWizzArd quits (~code@gehrels.uberspace.de) (Changing host) |
| 10:21:41 | → | AWizzArd joins (~code@unaffiliated/awizzard) |
| 10:24:26 | × | _d0t quits (void@gateway/vpn/mullvad/d0t/x-89419360) (Quit: Konversation terminated!) |
| 10:26:45 | × | siers quits (~ij@raitis.veinbahs.lv) (Changing host) |
| 10:26:45 | → | siers joins (~ij@NixOS/user/siers) |
| 10:27:06 | siers | is now known as ij |
| 10:27:49 | Guest3557 | is now known as stilgart |
| 10:28:19 | stilgart | is now known as Guest10121 |
| 10:29:02 | Guest10121 | is now known as stilgart |
| 10:31:16 | × | aqd quits (~aqd@84.20.147.33) (Quit: Textual IRC Client: www.textualapp.com) |
| 10:32:04 | <kuribas> | to generate: (\GeneratorOfa -> b) =>= (\GeneratorOfB -> c) |
| 10:32:29 | <dminuoso> | kuribas: comonads dont "generate" - at least not the way Id think about them |
| 10:33:22 | <kuribas> | Well, I am thinking about filling in a form for example. |
| 10:34:02 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 10:34:06 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 10:34:26 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 10:35:05 | <kuribas> | So the comonad represents some field of the form... |
| 10:35:17 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:d1f1:eae:60e1:e53a) (Remote host closed the connection) |
| 10:36:00 | → | errst joins (~errst@unaffiliated/tirej) |
| 10:37:49 | × | psutcliffe quits (~psutcliff@2a00:801:44b:5fb3:b852:cfd3:ade7:f24f) (Quit: Leaving) |
| 10:38:16 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
| 10:39:01 | → | todda7 joins (~torstein@athedsl-258913.home.otenet.gr) |
| 10:40:23 | <kuribas> | what's the dual of applicative? |
| 10:41:09 | <kuribas> | ah wait, that's the contravariant functor jle` mentioned... |
| 10:43:17 | <kuribas> | https://hackage.haskell.org/package/contravariant-1.5.3/docs/Data-Functor-Contravariant-Divisible.html |
| 10:43:20 | <merijn> | Logically the dual of applicative would have to take a single 'c' and turn it into an arbitrary tuple? |
| 10:43:26 | <dminuoso> | If we think of monads as efffectful computations, then comonads might be closer to context sensitive comptuations |
| 10:44:08 | <dminuoso> | One of the very few comonadic examples we have, is something like cellular automatons. |
| 10:44:16 | <kuribas> | so a monad "adds" context to a computation, while a comonad "removes" it. |
| 10:44:19 | <dminuoso> | (Where computing the next cell state depends on surrounding state) |
| 10:44:26 | <dminuoso> | Not quite "removes it" but "depends on it" |
| 10:45:16 | <dminuoso> | In the common instances you usually have some concept of "focus" and "neighborhood" that you can inspect |
| 10:45:25 | <kuribas> | doesn't "w a -> b " remove the context? |
| 10:45:35 | <dminuoso> | I'd rather say it can "read" the context. |
| 10:45:42 | <dminuoso> | So the resulting value depends on it |
| 10:45:47 | <dminuoso> | Consider something like a blur filter |
| 10:45:56 | <dminuoso> | Where the computed value depends on the neighborhood |
| 10:46:29 | → | son0p joins (~son0p@181.58.39.182) |
| 10:47:22 | × | desophos quits (~desophos@c-24-14-63-128.hsd1.il.comcast.net) (Quit: Leaving) |
| 10:52:02 | <kuribas> | merijn: yes, that's the type of Divisble |
| 10:55:52 | → | davros1 joins (~davros@host86-183-29-83.range86-183.btcentralplus.com) |
| 10:56:53 | → | bitmagie joins (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) |
| 10:58:21 | × | davros_ quits (~davros@host86-184-190-159.range86-184.btcentralplus.com) (Ping timeout: 256 seconds) |
| 11:05:08 | → | jippiedoe joins (4dab983e@77-171-152-62.fixed.kpn.net) |
| 11:05:09 | → | _Alleria joins (~AllahuAkb@2603-7000-3040-0000-6cee-2fa2-b3ba-fa1a.res6.spectrum.com) |
| 11:07:21 | × | mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 11:07:46 | → | mananamenos joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
| 11:08:12 | × | Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-18b0-cfa2-5ed5-49de.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 11:10:56 | × | danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
| 11:11:45 | → | mp___ joins (mp@hell.cx) |
| 11:14:46 | → | danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 11:17:00 | × | bitmagie quits (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) (Quit: bitmagie) |
| 11:19:47 | → | __minoru__shirae joins (~shiraeesh@109.166.56.143) |
| 11:24:21 | → | boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
| 11:25:43 | → | Graf_Blutwurst joins (~grafblutw@2001:171b:226e:adc0:e40c:bc1a:ac08:b43b) |
| 11:30:29 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 11:31:34 | <kuribas> | hmm, it seems easier to have Form' a b, which is a Profunctor, meaning a form that returns something of type "b", and can be populated with something of type "a". |
| 11:31:53 | <kuribas> | then Form a = Form' a a |
| 11:33:00 | <kuribas> | Then I can do Person <$> (personAge >$< intField) <*> (personName >$< stringField) |
| 11:34:24 | <kuribas> | with intField :: Form Int, stringFIeld :: Form String |
| 11:34:56 | × | danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
| 11:35:23 | → | danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 11:36:03 | <kuribas> | But you'll need a selective functor for choice... |
| 11:36:06 | → | aqd joins (~aqd@84.20.147.33) |
| 11:36:48 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds) |
| 11:38:34 | statusfa1led | is now known as statusfailed |
| 11:39:04 | statusfailed | is now known as Guest334 |
| 11:39:47 | × | todda7 quits (~torstein@athedsl-258913.home.otenet.gr) (Quit: Konversation terminated!) |
| 11:39:56 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 11:39:57 | × | Guest334 quits (~statusfai@statusfailed.com) (Quit: leaving) |
| 11:40:02 | → | todda7 joins (~torstein@athedsl-258913.home.otenet.gr) |
| 11:40:15 | → | statusfa1led joins (~statusfai@statusfailed.com) |
| 11:40:59 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 11:44:20 | statusfa1led | is now known as statusfailed |
| 11:44:21 | <ski> | kuribas> :t (>$<) |
| 11:45:20 | <kuribas> | ski: right, it's lmap |
| 11:45:26 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 11:45:36 | <kuribas> | :t (>$<) |
| 11:45:37 | <lambdabot> | error: |
| 11:45:37 | <lambdabot> | • Variable not in scope: >$< |
| 11:45:37 | <lambdabot> | • Perhaps you meant one of these: |
| 11:45:37 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 276 seconds) |
| 11:45:42 | <kuribas> | :t lmap |
| 11:45:43 | <lambdabot> | Profunctor p => (a -> b) -> p b c -> p a c |
| 11:45:53 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 11:48:00 | × | ubert quits (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 11:48:07 | <Feuermagier> | following function: "f xs [] = False" ; "f [] xs = True" --- function: xxl = xxl ---- call: f [] xll --- question: why does this not evaluate to "True"? |
| 11:48:32 | <ski> | ok |
| 11:49:01 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 11:49:31 | <infinisil> | Feuermagier: What's xll? |
| 11:49:38 | <Feuermagier> | xll = xll |
| 11:49:45 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 11:49:47 | <Feuermagier> | recursive infinite definition |
| 11:50:01 | <ski> | `xll' is not a function here (it's a list) |
| 11:50:19 | × | pavonia^\_^\ quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 11:50:19 | <ski> | specificlly, it's a bottom value |
| 11:50:27 | <Feuermagier> | xll :: a ; xll = xll |
| 11:50:28 | <Taneb> | Feuermagier: the runtime has no idea if xll is an empty list or not |
| 11:50:30 | → | deja joins (~deja@212095008174.public.telering.at) |
| 11:50:36 | <Feuermagier> | *ah* |
| 11:50:48 | <Feuermagier> | it tries to evaluate it; thx! |
| 11:50:57 | <ski> | matching on `[]' in the second argument of `f' means that `f' becomes strict in that argument. meaning that if you pass a bottom value, the result will be bottom |
| 11:51:04 | <ski> | f xs _|_ = _|_ |
| 11:51:12 | <Taneb> | It has to evaluate it at least as far to see if it's empty or not |
| 11:54:17 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
| 11:54:55 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 11:56:57 | <Feuermagier> | do you have a good guide on how to make a function tail-recursive? |
| 11:57:54 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 11:59:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 12:00:02 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 264 seconds) |
| 12:00:28 | <ski> | you can try to introduce an accumulator. (one way of doing that is doing CPS, but that doesn't necessarily help) |
| 12:00:55 | <ski> | also, you should ask yourself *if* you want to make the definition tail-recursive |
| 12:01:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:01:52 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
| 12:01:58 | <ski> | it can be better to refrain from doing so, depending. if the function can be incremental, it's commonly better to refrain, since making it tail-recursive will make it bulky, i.e. non-incremental |
| 12:02:56 | <ski> | also, if you introduce an accumulator, then usually you'll want to force that accumulator to some extent at least, while you're iterating |
| 12:06:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 12:06:36 | → | bitmagie joins (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) |
| 12:06:37 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 12:06:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:09:49 | × | bitmagie quits (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) (Client Quit) |
| 12:12:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 12:12:44 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-pcguwrpjphfcmwqk) |
| 12:12:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:14:43 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 12:15:03 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 12:15:27 | → | fendor joins (~fendor@178.115.128.24.wireless.dyn.drei.com) |
| 12:19:45 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
| 12:19:52 | → | bitmagie joins (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) |
| 12:21:04 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:23:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 12:23:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 12:23:41 | × | bitmagie quits (~Thunderbi@200116b8065e3a00e0754dbe4af9ad6b.dip.versatel-1u1.de) (Client Quit) |
| 12:28:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 12:29:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:34:26 | × | Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving) |
| 12:34:54 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 12:37:09 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 264 seconds) |
| 12:39:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 12:39:50 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 12:40:33 | → | drbean_ joins (~drbean@TC210-63-209-12.static.apol.com.tw) |
| 12:40:55 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:41:41 | <Feuermagier> | I'm in an IO - function and I want to call another IO-function with an initial value- how do i do that? |
| 12:41:53 | <Feuermagier> | i have f :: Integer -> IO () |
| 12:42:03 | <Feuermagier> | and start :: IO |
| 12:42:20 | <Feuermagier> | I want to call "f 0" |
| 12:43:36 | <lortabac> | Feuermagier: start = f 0 |
| 12:43:48 | <lortabac> | or did I misunderstand the question? |
| 12:43:59 | <Feuermagier> | Couldn't match expected type `Integer -> IO ()' |
| 12:43:59 | <Feuermagier> | with actual type `IO ()' |
| 12:44:06 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 12:44:06 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 12:44:06 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 12:44:18 | <Feuermagier> | I tried that, but it dislikes the type |
| 12:44:45 | <lortabac> | can you paste your actual code somewhere? |
| 12:45:05 | × | dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 12:45:18 | <Feuermagier> | https://pastebin.com/rVSrUWZT |
| 12:45:26 | → | dirediresalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 12:46:06 | <lortabac> | there is a typo, vokalZaehler is calling itself instead of calling vokalZaehlerLoop |
| 12:46:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 12:46:16 | <Feuermagier> | omg |
| 12:46:18 | <Feuermagier> | thx |
| 12:46:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:46:46 | <lortabac> | when the errors are too strange, it's generally a silly typo :) |
| 12:49:58 | × | mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 276 seconds) |
| 12:50:20 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:b557:d49b:efe9:c5b5) |
| 12:51:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 12:52:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:53:00 | → | kam1 joins (~kam1@5.125.126.175) |
| 12:53:18 | → | ddellacosta joins (~ddellacos@86.106.143.32) |
| 12:55:03 | → | ubert joins (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) |
| 12:55:39 | × | kam1 quits (~kam1@5.125.126.175) (Remote host closed the connection) |
| 12:55:49 | → | mananamenos joins (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) |
| 12:56:21 | → | kam1 joins (~kam1@5.125.126.175) |
| 12:57:31 | → | peutetre joins (~peutetre@185.163.110.108) |
| 12:58:25 | × | ddellacosta quits (~ddellacos@86.106.143.32) (Ping timeout: 276 seconds) |
| 13:00:11 | × | mananamenos quits (~mananamen@193.red-88-11-66.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
| 13:01:21 | → | supercoven joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 13:01:22 | × | supercoven quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Max SendQ exceeded) |
| 13:01:28 | → | emmanuel_erc joins (~user@cpe-74-71-106-64.nyc.res.rr.com) |
| 13:01:31 | <ski> | Feuermagier : needs more brackets in `countChar', and less in `count' |
| 13:01:36 | → | supercoven joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 13:01:37 | × | supercoven quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Max SendQ exceeded) |
| 13:01:46 | <Feuermagier> | ski, yeah, fixed it already |
| 13:01:51 | → | supercoven joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) |
| 13:01:57 | <ski> | also, what about `y' ? |
| 13:02:26 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 264 seconds) |
| 13:02:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 13:02:49 | <ski> | i guess it's sometimes considered a vowel, sometimes a consonant, in english. but in german, it's a vowel, right ? |
| 13:03:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:04:04 | <boxscape> | ski that's typically how it's used, but only a, e, i, o, u are commonly called vowels in German |
| 13:04:31 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:b557:d49b:efe9:c5b5) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:04:35 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:04:58 | <Feuermagier> | exactly |
| 13:05:11 | <ski> | hm, i suppose `ä',`ö',`ü' are considered as versions of `a',`o',`u' |
| 13:05:13 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 13:05:26 | <boxscape> | (looking it up, the more precise statement is that the sound usually represented by y is a vowel but only a e i o u are "vowel letters") |
| 13:05:57 | <ski> | (that's not the case in swedish, though) |
| 13:06:03 | <boxscape> | interesting |
| 13:06:33 | <ski> | `å',`ä',`ö' are considered separate letters from `a' and `o' |
| 13:06:54 | <Feuermagier> | ä ö ü are as well |
| 13:06:59 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 13:07:02 | <ski> | (sorted separately (at the end of the alphabet), in dictionaries) |
| 13:07:07 | <brkscnce> | hey, does anyone know why all(inRange (0,7)) (1,9) is False, but all(inRange (0,7) (9,1) resolves to True? |
| 13:07:13 | <Feuermagier> | they are not in the alphabet here at all |
| 13:07:20 | <boxscape> | yeah in German a and ä are interspersed in the dictionary |
| 13:07:25 | <ski> | right |
| 13:07:47 | ← | thorsten` parts (~Thorsten@ananke.uberspace.de) ("WeeChat 2.7.1") |
| 13:08:19 | <Feuermagier> | often they are seen as equivalent to ae, oe, ue - often they get written that way as well. especially handy when you want to avoid localised font |
| 13:08:20 | <ski> | brkscnce : because `Foldable' for tuples only considers the last component as an "element" |
| 13:08:20 | × | totoro2021 quits (~t@unaffiliated/totoro2021) (Quit: WeeChat 2.7.1) |
| 13:08:50 | <brkscnce> | ah, that explains it |
| 13:09:22 | <ski> | > length (1,9) |
| 13:09:24 | <lambdabot> | 1 |
| 13:09:31 | <ski> | > sum (1,9) |
| 13:09:33 | <lambdabot> | 9 |
| 13:09:47 | <merijn> | ski: Also language dependendent |
| 13:10:03 | <ski> | merijn : yes, goes without saying ? |
| 13:10:08 | <merijn> | (the effect of diaeresis on vowels) |
| 13:10:09 | <brkscnce> | interesting |
| 13:10:45 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 13:10:47 | <merijn> | brkscnce: It makes sense when you consider "Foldable :: (* -> *) -> Constraint" i.e. foldable types take one argument |
| 13:11:13 | <merijn> | brkscnce: So if we rewrite (a, b) into prefix style "(,) a b", then only "(,) a" could be Foldable |
| 13:11:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 13:11:49 | <brkscnce> | haskell tuples are weird |
| 13:12:00 | <merijn> | How so? |
| 13:12:01 | <ski> | brkscnce : it's because of different components of tuples can have different types. and these types are parameters of the type constructor for the tuple type. only the last type parameter can effectively be subject to `Foldable' (and `Traversable'), by partially applying the tuple type constructor to the previous type parameters |
| 13:12:01 | <brkscnce> | they probably make a lot of sense, just not used to them yet |
| 13:12:32 | <merijn> | brkscnce: It makes sense when you stop considering them as "sequences of things" as they are in, for example, python |
| 13:12:42 | <brkscnce> | yup |
| 13:12:43 | <ski> | so, you have `Foldable ((,) a)' which means that in a value of type `(,) a b', only the component of type `b' will be folded |
| 13:13:09 | <ski> | for triples, it'd be `Foldable ((,,) a b)' folding over `c' in `(,,) a b c' |
| 13:13:53 | <brkscnce> | i mean i started writing haskell 2 days ago, probably going to take a bit until I get it down |
| 13:14:51 | <ski> | yea, tuples are heterogenous "aggregates" of some definite number of values (that therefore can have differing types. for a give tuple type, the value at the same position always has the same type) |
| 13:15:08 | <brkscnce> | makes sense |
| 13:15:08 | <ski> | while lists are homogenous collections of varying length |
| 13:15:28 | <ski> | (homogenous meaning that every element has the same type) |
| 13:15:38 | hpc_ | is now known as hpc |
| 13:15:55 | <brkscnce> | took me a second, but i was able to parse that sentence still |
| 13:15:58 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Ping timeout: 276 seconds) |
| 13:16:00 | <ski> | conceptually, these two cases are rather different. you'd handle them differently, in code |
| 13:16:02 | <merijn> | ski: something, something, Dynamic ;) *ducks* |
| 13:16:18 | <brkscnce> | haskell talk does seem a lot more mathy than python talk |
| 13:16:37 | → | gienah joins (~mwright@gentoo/developer/gienah) |
| 13:17:04 | <ski> | for a varying-length thing, normally you want to "do the same thing to every element" (that might be something slightly complex, like "if it's at an even index, do this; otherwise (odd index), do that") |
| 13:17:05 | <merijn> | That's because there's lots of good maths to steal ;) |
| 13:17:12 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 13:17:14 | × | pera quits (~pera@unaffiliated/pera) (Quit: leaving) |
| 13:17:15 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 13:17:26 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds) |
| 13:17:33 | → | Deide joins (~Deide@217.155.19.23) |
| 13:17:37 | <brkscnce> | yeah, I mean I'm really just using them for array indexing |
| 13:17:59 | <brkscnce> | so I need to generate series of them |
| 13:18:06 | <ski> | there are cases where one wants a varying-length sequence of elements not all of the same type. but this is comparatively rare. and normally, there's some definite pattern between the types, even in this cases |
| 13:18:40 | <merijn> | > (,) <$> [0..5] <*> [0..5] -- something like that? :p |
| 13:18:41 | <lambdabot> | [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,... |
| 13:18:42 | → | mayleesia joins (4dbf5b8f@x4dbf5b8f.dyn.telefonica.de) |
| 13:18:48 | <ski> | e.g. you might want a sequence, where the first element contains one object, the next contains two objects, the next contains three objects, and so on |
| 13:18:57 | <brkscnce> | yup |
| 13:19:12 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) |
| 13:19:19 | <ski> | or perhaps the first contains one, next one contains two, next one contains four, next eight .. doubling every time |
| 13:19:21 | <brkscnce> | actually that's quite neat, did not see the <> operators before |
| 13:19:32 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:19:36 | <brkscnce> | have to check out what those do |
| 13:19:38 | <merijn> | brkscnce: <$> is just fmap as operator |
| 13:19:45 | <boxscape> | brkscnce you'll learn about them once you learn about the Applicative class |
| 13:19:53 | <ski> | you can do these in Haskell, too, if you want to. but you'd have to make a custom sequence type for that particular use-case, can't use the regular homogenous lists |
| 13:20:09 | <merijn> | brkscnce: <*> is from Applicative, which, for lists, does cartesian product (speaking of mathy >.>) |
| 13:20:28 | <ski> | > liftA2 (,) [0 .. 3] [0 .. 2] |
| 13:20:29 | <lambdabot> | [(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2)] |
| 13:20:46 | <ski> | > [(x,y) | x <- [0 .. 3],y <- [0 .. 2]] |
| 13:20:48 | <lambdabot> | [(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2)] |
| 13:20:49 | <brkscnce> | I mean I'm honestly enjoying haskell so far |
| 13:20:56 | × | deja quits (~deja@212095008174.public.telering.at) (Quit: requested) |
| 13:21:04 | <ski> | > [(x,y) | x <- [0 .. 3],y <- [0 .. x]] |
| 13:21:05 | <lambdabot> | [(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2),(3,3)] |
| 13:21:23 | → | deja joins (~deja@212095008174.public.telering.at) |
| 13:21:25 | <merijn> | brkscnce: Occasional sensation of brains melting out of ears is considered expected behaviour ;) |
| 13:21:40 | <ski> | > do x <- [0 .. 3]; y <- [0 .. x]; return (x,y) |
| 13:21:41 | <lambdabot> | [(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2),(3,3)] |
| 13:21:56 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 13:21:58 | <ski> | @quote is.the.solution |
| 13:21:58 | <lambdabot> | quicksilver says: head-explosion is the solution, not the problem. |
| 13:22:04 | <merijn> | Not sure 50 variations of tupling lists will add much ;) |
| 13:22:10 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) (Client Quit) |
| 13:22:12 | <brkscnce> | I feel like it's just been constantly broiling since I've started |
| 13:22:57 | → | lemmih joins (~lemmih@2406:3003:2072:44:d8ed:96e9:a19d:e53b) |
| 13:23:16 | <swarmcollective> | Once you get used to the predictability of pure functions, it will balance out (at least in my experience). And that is wonderful. |
| 13:23:44 | <brkscnce> | there's also like so many ways to skin a cat here |
| 13:24:07 | <ski> | different approaches can be good in differing circumstances |
| 13:24:10 | <dminuoso> | brkscnce: That's programming. In Haskell we just have a larger plethora of tools and combinators. :) |
| 13:24:12 | <brkscnce> | i mean I mostly write python, which is very "this is the way you skin these cats" |
| 13:24:17 | <ski> | and there's room for variation, and for style and taste |
| 13:25:19 | <ski> | part of the point here is that it's usually relatively easy (at least compared to many other languages) to refactor some piece of code, step by step, by reformulating things successively |
| 13:26:01 | <ski> | without "multiple (slightly different, with different pros and cons) ways to do the same thing", that would presumably be harder |
| 13:26:07 | <brkscnce> | yeah, it does feel a lot more fluid |
| 13:26:15 | <boxscape> | yeah python has "there's only one obvious way to do things" as one of its mantras, doesn't it |
| 13:26:29 | <brkscnce> | indeed, it's part of the Zen of Python |
| 13:26:47 | <ski> | if the alternatives are more or less completely functionally equivalent, then there's not much point, agreed |
| 13:26:49 | <merijn> | brkscnce: Ironically, over time they are breaking their Zen more and more ;) |
| 13:26:57 | × | deja quits (~deja@212095008174.public.telering.at) (Quit: requested) |
| 13:27:04 | <merijn> | *Especially* "explicit is better than implicit" |
| 13:27:07 | <ski> | merijn : probably for good reason |
| 13:27:23 | <merijn> | ski: tbh, the Zen of Python has some sensible stuff |
| 13:27:41 | <xsperry> | > zip [0..3] [0..2] -- the most obvious (and boring) version |
| 13:27:43 | <lambdabot> | [(0,0),(1,1),(2,2)] |
| 13:27:45 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 13:27:53 | <merijn> | xsperry: That does something different |
| 13:27:57 | <ski> | "explicit is better than implicit" sounds like a thing that one ought to say "it depends" to |
| 13:27:58 | <__minoru__shirae> | brkscnce: why would a beginner use tuples as foldables though? |
| 13:28:01 | × | xff0x quits (~xff0x@port-92-195-110-249.dynamic.as20676.net) (Ping timeout: 256 seconds) |
| 13:28:15 | <xsperry> | uh, yeah I wasn't paying attention |
| 13:28:32 | <brkscnce> | trying to write a chess move generator, so I'm storing the board as an array |
| 13:28:35 | <boxscape> | __minoru__shirae because a lot of methods that encode very straightforward concepts require Foldable |
| 13:28:45 | <brkscnce> | which seemed fine to me, since I'm not mutating it, and i'm checking all over |
| 13:29:00 | <brkscnce> | so having nested lists seemed icky to me? |
| 13:29:15 | <merijn> | brkscnce: Also, slow :p |
| 13:29:23 | <ski> | beginners can easily conflate the "heterogenous, definite size" with the "homogenous, indefinite size" aggregates, coming from a language that doesn't that clearly emphasize the distinction |
| 13:29:24 | <brkscnce> | yup, O(n) over and over |
| 13:29:30 | <merijn> | brkscnce: Nested lists are a mess. They're slow, might have inconsistent dimensions, etc. |
| 13:29:38 | <merijn> | Array is much better |
| 13:29:47 | <boxscape> | tbf it's actually O(8) in both dimensions making it O(1) :P |
| 13:29:48 | <brkscnce> | hence the (0,0)(7,7) array |
| 13:29:53 | × | _noblegas quits (uid91066@gateway/web/irccloud.com/x-koxpwnnitfybavxb) (Quit: Connection closed for inactivity) |
| 13:29:54 | <ski> | brkscnce : two-dimensional array ? |
| 13:29:55 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:30:03 | <brkscnce> | for the board, yeah |
| 13:30:07 | <__minoru__shirae> | boxscape: I mean there should be an alternative, more beginner-friendly way of doing things than using tuples as foldables |
| 13:30:07 | <merijn> | brkscnce: Alternatively, you could have gone for "Map (Int, Int) Square", but for something as tiny as a chessboard it doesn't matter much |
| 13:30:46 | <merijn> | brkscnce: FYI, Array isn't limited to either 0 indexing nor integral indexing |
| 13:31:15 | <merijn> | brkscnce: You could, hypothetically, use an array that's indexed via, say (H, 5) :p |
| 13:31:23 | <ski> | you could make an enumeration type for the chess rows, and one for the chess columns, and index with those |
| 13:31:31 | <ski> | yea |
| 13:31:34 | <brkscnce> | right, because tuple indexes |
| 13:31:43 | <brkscnce> | and tuples being heterogenous |
| 13:31:47 | <ski> | (more specifically, the index types needs to be instances of `Ix') |
| 13:31:50 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-ozhkekfvbfssrzmb) |
| 13:31:54 | <merijn> | brkscnce: Well, the real trick is that it indexes via Ix |
| 13:32:03 | <merijn> | brkscnce: And you can provide custom instances for that |
| 13:32:13 | <merijn> | (Which tuples have) |
| 13:32:34 | <boxscape> | hm does [Int] have an Ix instance |
| 13:32:48 | → | deja joins (~deja@212095008174.public.telering.at) |
| 13:32:48 | <brkscnce> | should have, right? |
| 13:32:53 | <merijn> | Specifically "instance (Ix a, Ix b) => Ix (a, b)" (i.e. tuples are indexable if their components are) |
| 13:32:56 | <boxscape> | % range ([1,2], [3,4]) |
| 13:32:57 | <yahb> | boxscape: ; <interactive>:55:1: error:; * No instance for (Ix [Integer]) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
| 13:32:59 | <ski> | @let data Column = A | B | C | D | E | F | G | H deriving (Show,Read,Eq,Ord,Bounded,Enum,Ix) |
| 13:32:59 | <boxscape> | nope |
| 13:33:01 | <lambdabot> | Defined. |
| 13:33:11 | <boxscape> | (well, that was [Integer] not [Int], but close enough) |
| 13:33:29 | <merijn> | ski: Should have a bounded newtype with smart constructor for the column ;) |
| 13:33:31 | × | usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 276 seconds) |
| 13:33:55 | ski | forgets whether it's columns or rows that are lettered |
| 13:34:04 | <boxscape> | you mean ranks or files :P |
| 13:34:15 | <ski> | ty, that's better :) |
| 13:35:06 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 13:35:11 | <merijn> | So far today's "lets overcomplicate things" session ;) |
| 13:35:21 | ski | grins |
| 13:35:28 | <brkscnce> | hrm, that looks very clean, but at the same time, I think I'd probably need to define something to add a number to a rank, which seems like extra work |
| 13:35:56 | <brkscnce> | like A + 2 or B - 1 |
| 13:36:18 | <merijn> | "offsetRank :: Rank -> Int -> Maybe Rank" ;) |
| 13:36:38 | <merijn> | (or file, whatever) |
| 13:36:55 | <merijn> | brkscnce: You can go quite far with that, but whether it's worth the effort right now is...debatable :) |
| 13:37:12 | <ski> | > (toEnum . pred . fromEnum :: Column -> Column) C |
| 13:37:14 | <lambdabot> | B |
| 13:37:22 | <boxscape> | > (toEnum . pred . fromEnum :: Column -> Column) A |
| 13:37:24 | <lambdabot> | *Exception: toEnum{Column}: tag (-1) is outside of enumeration's range (0,7) |
| 13:37:28 | <boxscape> | partial :( |
| 13:37:29 | <merijn> | ski: You...probably don't want wrap around for a chess board :p |
| 13:37:31 | <brkscnce> | I mean the letter representations really only come back up when I'm converting the position tuples back to string moves |
| 13:37:46 | <brkscnce> | only if you're playing moebius chess |
| 13:37:53 | <ski> | no wrap |
| 13:37:58 | <boxscape> | ooh or klein bottle chess |
| 13:37:58 | → | encod3 joins (~encod3@45-154-157-94.ftth.glasoperator.nl) |
| 13:38:56 | <brkscnce> | right now I'm just doing posToString (x,y) = ['a'..'h'] !! x .. ['1'..'8'] !! y |
| 13:39:05 | → | totoro2021 joins (~t@unaffiliated/totoro2021) |
| 13:39:06 | <brkscnce> | which seems sufficient |
| 13:39:26 | <boxscape> | brkscnce the nice thing about the letter representation is that you're guaranteed to only have valid indices, since you can't even generate an index like (4,9) |
| 13:39:39 | × | encod3 quits (~encod3@45-154-157-94.ftth.glasoperator.nl) (Client Quit) |
| 13:39:40 | <brkscnce> | hrm, yeah |
| 13:39:45 | <boxscape> | though as merijn said "whether it's worth it is debateable" |
| 13:39:48 | <merijn> | boxscape: Supporting the numbered index is awkward, though |
| 13:39:49 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 13:39:52 | <boxscape> | yes |
| 13:40:01 | × | z0k quits (~user@115-186-141-91.nayatel.pk) (Ping timeout: 276 seconds) |
| 13:40:05 | <merijn> | You'd have to newtype + smart constructor and before you know it you're in funky town ;) |
| 13:40:07 | <brkscnce> | right now I'm using a filter function to try to restrict the generated ranges |
| 13:40:18 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:40:48 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 13:40:49 | <brkscnce> | which is where that fold problem popped up, since I was trying to do takeBounded = takeWhile $ all $ inRange (0,7) |
| 13:40:49 | <boxscape> | merijn could also go directly to funkytown with Fin (S (S (S (S (S (S (S (S Z)))))))) :) |
| 13:40:59 | → | Tario joins (~Tario@201.192.165.173) |
| 13:41:05 | <boxscape> | (actually 7 Ss, not 8) |
| 13:41:13 | <boxscape> | no, 8 |
| 13:41:30 | <ski> | off-by-one, here we come ! :) |
| 13:42:51 | <ski> | brkscnce : i'd use brackets there |
| 13:43:13 | <brkscnce> | for style reasons, or danger reasons? |
| 13:43:45 | × | sm2n quits (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Ping timeout: 264 seconds) |
| 13:43:46 | <ski> | style. `$' is ugly, i generally try to use it as little as possible .. with only a few exceptions |
| 13:43:49 | <boxscape> | how much $ is being used differs from code base to code base |
| 13:44:43 | <brkscnce> | I did read a page saying it was controversial |
| 13:44:50 | <ski> | at least `takeWhile . all . inRange $ (0,7)' would probably look nicer (and, imho, `(takeWhile . all . inRange) (0,7)', moreso). but there's nothing wrong with `takeWhile (all (inRange (0,7)))', either |
| 13:45:23 | <brkscnce> | right, the . for function composition, might change it to that |
| 13:45:40 | <brkscnce> | because that's more what I'm trying to say there |
| 13:45:42 | <merijn> | boxscape: Chess in typeclasses on the type level :p |
| 13:45:47 | <merijn> | I'm sure Oleg has done that |
| 13:45:52 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 276 seconds) |
| 13:46:10 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 13:46:11 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection) |
| 13:46:14 | <boxscape> | merijn hm reminds me of the blog post about the 8 queens problem in classes |
| 13:46:15 | <merijn> | You want "inRange ((0,0), (7,7))", no? |
| 13:46:29 | <ski> | it's generally a good habit to replace `foo $ bar $ baz $ quux $ blah' by `foo . bar . baz . quux $ blah' (or `(foo . bar . baz . quux) blah' or `foo (bar (baz (quux blah)))') |
| 13:46:30 | <merijn> | > inRange ((0,0),(7,7) (0,9) |
| 13:46:32 | <lambdabot> | <hint>:1:27: error: |
| 13:46:32 | <lambdabot> | <hint>:1:27: error: |
| 13:46:32 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 13:46:37 | <merijn> | > inRange ((0,0),(7,7)) (0,9) |
| 13:46:38 | <lambdabot> | False |
| 13:46:44 | <merijn> | > inRange ((0,0),(7,7)) (3,5) |
| 13:46:46 | <lambdabot> | True |
| 13:46:48 | <brkscnce> | oh, I can do that? |
| 13:46:52 | <ski> | sure |
| 13:46:55 | <merijn> | :t inRange |
| 13:46:56 | <lambdabot> | Ix a => (a, a) -> a -> Bool |
| 13:47:01 | <boxscape> | (i.e. https://aphyr.com/posts/342-typing-the-technical-interview ) |
| 13:47:16 | <merijn> | brkscnce: tuples are Ix instances, so yes :) |
| 13:47:24 | <ski> | `a' there is the index type. in this case, it's type of pairs of rank and file indices |
| 13:47:25 | <brkscnce> | well, that makes my function redundant, that's great |
| 13:48:25 | × | drbean_ quits (~drbean@TC210-63-209-12.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 13:49:03 | <brkscnce> | oh, also, i guess a style question, if I'm taking an input string, and doing things to it until its in the form I'd like it to be, and I do not care about intermediary results, would I pack all of that processing into a where? |
| 13:49:09 | <ski> | brkscnce : in `foo . bar . baz . quux', you could break/factor out any composition subsequence into its own definition, and vice versa. not so with the `$' version |
| 13:49:42 | <ski> | brkscnce : you could use `<$>', possibly |
| 13:50:13 | <brkscnce> | for composition or string processing? |
| 13:50:17 | <ski> | `where' can not access your local variable inside `do', unless the `where' is inside the `do' as well (which is usually not what happens. you'll know if you do this) |
| 13:50:33 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 13:50:51 | <merijn> | brkscnce: "It Depends (TM)" ;) |
| 13:50:58 | <ski> | myResult <- (finalProcess . moreProcess . initialProcess) <$> readLn |
| 13:51:09 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:51:18 | <ski> | however, if you want to catch parse errors and the like, you may want to break that up |
| 13:52:25 | <brkscnce> | I think catching fire on malformed input is fine and preferred for this script |
| 13:52:44 | <ski> | (i guess those brackets are redundant) |
| 13:53:15 | <brkscnce> | you'd use those if you're doing (f . g . h) (x), right? |
| 13:53:40 | <xsperry> | (f . g . h) x works too |
| 13:53:43 | ski | would |
| 13:54:00 | <merijn> | xsperry: Depends on if 'x' is a variable or a meta-variable ;) |
| 13:54:02 | <ski> | in general, `x' might be a non-atomic expression |
| 13:54:23 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
| 13:54:36 | ski | . o O ( meta all the variables ! ) |
| 13:55:11 | → | sm2n joins (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) |
| 13:55:17 | <brkscnce> | also, another thing I have yet to find a good example for, how would you split one value into several variables cleanly? |
| 13:55:28 | <brkscnce> | if the calculation of those variables shares processing |
| 13:55:47 | <ski> | return a tuple (or a list) is a common choice |
| 13:56:05 | <brkscnce> | so (x,y) = expression is fine? |
| 13:56:15 | <ski> | > let (front,back) = splitAt 2 "fubar" in back ++ front |
| 13:56:16 | <lambdabot> | "barfu" |
| 13:56:18 | <ski> | yes |
| 13:56:53 | <brkscnce> | right, just seemed like the kind of thing where it's either totally fine or I'm committing a grave sin, and I will be shamed for it |
| 13:57:22 | <Taneb> | This one's at the "totally find" end |
| 13:57:28 | <ski> | sometimes you'll want to pass on those two parts directly to some other function, without having to name them |
| 13:57:37 | <__minoru__shirae> | boxscape, hey, I searched aphyr! I heard that nickname in another language and didn't know how to spell it in english |
| 13:57:47 | × | hendursa1 quits (~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1) |
| 13:57:50 | <ski> | if that function accepts them curriedly, you could use `uncurry' on the function to be able to do this |
| 13:58:15 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 13:58:15 | <ski> | > (uncurry . flip) (++) (splitAt 2 "fubar") |
| 13:58:17 | <lambdabot> | "barfu" |
| 13:58:19 | → | hendursaga joins (~weechat@gateway/tor-sasl/hendursaga) |
| 13:58:55 | <brkscnce> | right, that's the one where you modify a function to take a tuple or reverse it |
| 13:59:06 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 13:59:09 | <brkscnce> | which, honestly, very neat |
| 13:59:20 | <ski> | yea, `uncurry' makes it take a pair, and then feeds the two components of that pair to the original function |
| 13:59:27 | <ski> | `curry' does the opposite thing |
| 13:59:31 | <merijn> | brkscnce: It also depends how complex your splitting is :p |
| 13:59:41 | <boxscape> | __minoru__shirae judging by your nickname, did you hear it in Japanese? |
| 13:59:44 | <merijn> | brkscnce: At some point the answer just becomes "write a proper parser" :p |
| 14:00:00 | <ski> | for more complicated cases, it's probably a better idea to name things, rather than attempting to juggle them, unnamed |
| 14:00:15 | <__minoru__shirae> | boxscape, no I heard it in a podcast in russian |
| 14:00:22 | <boxscape> | ah, got it |
| 14:02:34 | <brkscnce> | https://paste.tomsmeding.com/cAOk5jxp I mean this is roughly my two attempts at it so far |
| 14:04:28 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 14:04:31 | <brkscnce> | in the first I'm taking the string through various intermediary values, In the second I try to compose things a bit more, tuck away some of the intermediary functions |
| 14:04:35 | <ski> | [boardRaw,player2] = words testString -- ? |
| 14:04:37 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 14:05:27 | <brkscnce> | right, that works |
| 14:05:52 | → | petersen joins (~petersen@redhat/juhp) |
| 14:06:05 | <brkscnce> | didn't even think of that, i can pattern match lists, right |
| 14:06:13 | <ski> | numToSpc n = replicate ' ' |
| 14:06:31 | <ski> | @src replicate |
| 14:06:32 | <lambdabot> | replicate n x = take n (repeat x) |
| 14:06:46 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 14:07:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 14:07:33 | <ski> | `read [cha]' could be `digitToInt cha' |
| 14:07:38 | → | jacks2 joins (~bc8134e3@217.29.117.252) |
| 14:08:24 | <jacks2> | you can pattern match many things, including data of types you created |
| 14:08:51 | <ski> | concatMap f xs = concat (map f xs) |
| 14:08:53 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) |
| 14:08:57 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
| 14:08:58 | <brkscnce> | yeah, I keep thinking about it too much like pythons tuple unpacking |
| 14:10:00 | <ski> | why `init' in `boardSpc' ? |
| 14:11:04 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 14:11:44 | <brkscnce> | it's a chess variation with a depot marked down as a 9th rank, so the last element needs to be removed |
| 14:11:49 | <ski> | boardArr = array ((0,0),(7,7)) [((x,y),val) | (y,row) <- zip [0 ..] boardSpc,(x,val) <- zip [0 ..] row] |
| 14:11:53 | <ski> | if you define |
| 14:12:16 | <ski> | tabulate ix f = listArray ix [f i | i <- range ix] |
| 14:12:17 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 14:12:26 | <ski> | then you could say |
| 14:13:15 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 14:13:52 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 14:13:53 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Read error: Connection reset by peer) |
| 14:14:28 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 276 seconds) |
| 14:14:39 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:15:00 | <ski> | well, i guess it doesn't make much sense in this case to us `tabulate ((0,0),(7,7)) (\(x,y) -> ..x..y..)' |
| 14:15:19 | <ski> | boardArr = listArray ((0,0),(7,7)) boardSpc -- i think |
| 14:15:26 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 14:15:46 | <ski> | > range ((0,0),(2,1)) |
| 14:15:48 | <lambdabot> | [(0,0),(0,1),(1,0),(1,1),(2,0),(2,1)] |
| 14:16:29 | <ski> | ah, so it'd be `(y,x)', not `(x,y)', when indexing, if you use the standard ordering |
| 14:16:51 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 14:16:57 | → | carlomagno joins (~cararell@148.87.23.6) |
| 14:16:58 | <brkscnce> | so curses indexing |
| 14:17:18 | <ski> | (oh, guess you also need `(concat boardSpc)', not just `boardSpc') |
| 14:17:24 | → | ezrakilt_ joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 14:17:31 | <ski> | yea .. so might not be worth it |
| 14:17:37 | <brkscnce> | but that might actually work out, since the elements in the outer list are ranks |
| 14:17:50 | <zmagii> | When aphyr said he has a Mastodon for leather, I kind of thought for leather craft... eh. |
| 14:17:52 | <brkscnce> | so y is ranks, x is files |
| 14:18:16 | <ski> | (that tells me nothing, not being familiar with the terms "rank" and "file") |
| 14:19:17 | <brkscnce> | ah, chess ranks are the rows of the board, and files are the columns |
| 14:19:27 | <ski> | i'd definitely avoid the `concat' on the list comprehension, though |
| 14:19:53 | <ski> | ok |
| 14:21:30 | <brkscnce> | hrm, so I could do array ((0,0), (7,7)) (zip (range((0,0), (7,7))) (concat boardSpc)) |
| 14:21:36 | × | ezrakilt_ quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Ping timeout: 240 seconds) |
| 14:22:02 | <ski> | or just use `listArray' ? |
| 14:22:28 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 14:22:28 | <ski> | (it uses the `Ix' ordering of the elements) |
| 14:22:37 | × | Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 14:22:51 | <ski> | > listArray ((0,0),(2,1)) "abcdef" |
| 14:22:53 | <lambdabot> | array ((0,0),(2,1)) [((0,0),'a'),((0,1),'b'),((1,0),'c'),((1,1),'d'),((2,0),... |
| 14:23:06 | <brkscnce> | ah, right, didn't initally get what that function did |
| 14:23:26 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Read error: No route to host) |
| 14:23:50 | <ski> | listArray ix es = array ix (zip (range ix) es) -- basically |
| 14:24:16 | <brkscnce> | alright, that does look a lot cleaner |
| 14:24:47 | <ski> | as long as you're ok with the standard `Ix' ordering, that should be less cluttered |
| 14:25:09 | <ski> | `array', though, allowes the elements to come in any order, since their indices are attached |
| 14:25:13 | → | Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 14:25:29 | <ski> | (last one wins, if there's duplicates, iirc) |
| 14:25:50 | <brkscnce> | right, but if they're already correctly ordered, it isn't necessairy |
| 14:26:10 | <ski> | > array ((),()) (zip (repeat ()) [False,True]) |
| 14:26:12 | <lambdabot> | array ((),()) [((),True)] |
| 14:26:21 | <ski> | right |
| 14:26:31 | → | terzievk joins (~user@78.90.139.65) |
| 14:26:35 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 14:27:17 | <brkscnce> | thanks, that actually does simplify a number of spots where I was like "huh, there probably is a better way here" when I wrote them |
| 14:27:22 | hackage | lifted-async 0.10.1.3 - Run lifted IO operations asynchronously and wait for their results https://hackage.haskell.org/package/lifted-async-0.10.1.3 (MitsutoshiAoe) |
| 14:27:56 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-ueszxmgrjupzjwnp) |
| 14:29:46 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:29:55 | <terzievk> | Does anybody know happen to know how to tell emacs to use dynamic linking with haskell related stuff? Or maybe it's supposed to work with static linking only? Which one is preferred? |
| 14:30:21 | <Unhammer> | I'm having some weird issues with tempfiles disappearing in windows – I'm using System.Process.Typed and UnliftIO.Temporary, with something like |
| 14:30:22 | <Unhammer> | withSystemTempFile name $\f h ->withSystemTempFile name $\fe he -> runProcess (setStdout (useHandleOpen h) $ setStdErr (useHandleOpen he) $ proc prog args) >>= readOnFail f fe |
| 14:31:08 | <Unhammer> | shouldn't withSystemTempFile ensure the file exists as long as the path and handle are in scope? |
| 14:31:22 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Ping timeout: 276 seconds) |
| 14:31:31 | × | kuribas quits (~user@ptr-25vy0i6y5ai1dlzwgol.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 14:31:54 | <merijn> | Unhammer: No |
| 14:32:00 | <geekosaur> | terzievk, static linking for Haskell libs is preferred, add --dynamic if you really want dynamic linking |
| 14:32:28 | → | gr33nbits joins (~gr33nbits@a109-49-87-64.cpe.netcabo.pt) |
| 14:32:36 | <merijn> | Unhammer: Well, wait, maybe I dunno, I don't understand how that code associates |
| 14:32:36 | <Unhammer> | assuming I'm not actively deleting it of course |
| 14:34:04 | <merijn> | Unhammer: Why are you using temp files to access the output of the child process anyway? |
| 14:34:18 | <merijn> | Unhammer: Why not just use pipes? |
| 14:34:42 | <Unhammer> | I want to attach the output to an email if it's smaller than x bytes |
| 14:34:59 | <merijn> | That seems unrelated to the question? |
| 14:35:22 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 14:35:26 | <merijn> | You can read the data from the pipe and then do whatever you want, same as you appear to do now |
| 14:35:28 | <Unhammer> | I have to check the size of the output, and I don't want to keep it in memory (in case it's huge) |
| 14:35:32 | → | Tario joins (~Tario@201.192.165.173) |
| 14:35:54 | × | Graf_Blutwurst quits (~grafblutw@2001:171b:226e:adc0:e40c:bc1a:ac08:b43b) (Quit: WeeChat 3.0) |
| 14:35:56 | <Unhammer> | but I want the file to disappear when my whole program is done |
| 14:36:11 | <terzievk> | geekosaur: yes, compiling with ghc -dynamic does the job, but I was wondering if somebody knows how to tell emacs `haskell-mode` to use dynamic linking |
| 14:36:40 | <geekosaur> | I don't know the mode variable name offhand |
| 14:37:11 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) |
| 14:39:50 | × | ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
| 14:40:05 | <geekosaur> | in any case it is probably easier to specify it as part of a cabal or stack project, as opposed to hardcoding in your config or using a local vars section in specific source files |
| 14:40:12 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 14:40:17 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 14:40:34 | → | Tario joins (~Tario@201.192.165.173) |
| 14:41:21 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) |
| 14:41:48 | <terzievk> | geekosaur: thanks |
| 14:42:01 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 14:42:33 | × | son0p quits (~son0p@181.58.39.182) (Quit: leaving) |
| 14:43:15 | × | ubert quits (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) (Quit: ubert) |
| 14:43:45 | → | ubert joins (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) |
| 14:47:23 | × | borne quits (~fritjof@200116b864cbc80010f2d07664396fd4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 14:51:02 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 14:52:18 | → | z0k joins (~user@115-186-141-91.nayatel.pk) |
| 14:53:25 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:c8ae:4c2c:c3c0:6062:2fc9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:54:01 | → | coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
| 14:54:20 | → | son0p joins (~son0p@181.136.122.143) |
| 14:56:51 | hackage | too-many-cells 2.1.0.1 - Cluster single cells and analyze cell clade relationships. https://hackage.haskell.org/package/too-many-cells-2.1.0.1 (GregorySchwartz) |
| 14:57:17 | × | jacks2 quits (~bc8134e3@217.29.117.252) (Quit: quit) |
| 14:57:51 | hackage | ghc-trace-events 0.1.2.2 - Faster traceEvent and traceMarker, and binary object logging foreventlog https://hackage.haskell.org/package/ghc-trace-events-0.1.2.2 (MitsutoshiAoe) |
| 15:01:18 | × | nek0 quits (~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
| 15:06:44 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 15:08:41 | → | nhs joins (~nhs@ip68-2-235-160.ph.ph.cox.net) |
| 15:11:33 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
| 15:11:47 | → | cartwright joins (~chatting@gateway/tor-sasl/cantstanya) |
| 15:12:44 | → | avn joins (~avn@78-56-108-78.static.zebra.lt) |
| 15:16:01 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 15:21:25 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 276 seconds) |
| 15:22:04 | → | knupfer joins (~Thunderbi@i577BCEAC.versanet.de) |
| 15:23:01 | × | knupfer quits (~Thunderbi@i577BCEAC.versanet.de) (Client Quit) |
| 15:23:13 | → | knupfer joins (~Thunderbi@200116b824ff4800ec20a5b5814c5563.dip.versatel-1u1.de) |
| 15:25:04 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:bcbc:e9c6:2795:e9ee) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:25:10 | → | _noblegas joins (uid91066@gateway/web/irccloud.com/x-ifvgvksedlldsfmy) |
| 15:25:21 | → | Jd007 joins (~Jd007@162.156.11.151) |
| 15:27:31 | × | z0k quits (~user@115-186-141-91.nayatel.pk) (Read error: Connection reset by peer) |
| 15:27:56 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 15:28:09 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 264 seconds) |
| 15:28:38 | → | z0k joins (~user@115-186-141-91.nayatel.pk) |
| 15:28:44 | → | crobbins joins (~crobbins@2600:380:b821:1504:174:cc11:b263:1220) |
| 15:30:58 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 15:31:30 | × | hiroaki__ quits (~hiroaki@2a02:8108:8c40:2bb8:8fe4:ef1e:34cd:b814) (Remote host closed the connection) |
| 15:32:55 | → | CatWithMoustache joins (~CatWithMo@gateway/tor-sasl/catwithmoustache) |
| 15:33:30 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 15:37:22 | → | alx741 joins (~alx741@181.196.69.27) |
| 15:38:02 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 15:38:03 | × | Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Quit: Leaving) |
| 15:38:27 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:39:54 | × | thunderrd quits (~thunderrd@183.182.115.128) (Ping timeout: 272 seconds) |
| 15:43:45 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 15:47:16 | → | xff0x joins (~xff0x@2001:1a81:52d0:d300:e069:1246:9742:b9dd) |
| 15:49:31 | → | ozataman joins (~textual@pool-100-37-221-69.phlapa.fios.verizon.net) |
| 15:52:14 | × | crobbins quits (~crobbins@2600:380:b821:1504:174:cc11:b263:1220) (Ping timeout: 264 seconds) |
| 15:52:45 | → | thunderrd joins (~thunderrd@183.182.112.145) |
| 15:56:26 | → | ddellacosta joins (~ddellacos@86.106.143.10) |
| 15:56:47 | × | kam1 quits (~kam1@5.125.126.175) (Read error: Connection reset by peer) |
| 15:57:20 | → | ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net) |
| 15:57:28 | × | ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
| 15:57:28 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 15:58:40 | <bitmapper> | is there a way to use indexed lenses with iovector? |
| 15:58:58 | → | Wuzzy joins (~Wuzzy@p5b0df8ea.dip0.t-ipconnect.de) |
| 15:59:31 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 16:00:28 | × | deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
| 16:02:21 | × | aqd quits (~aqd@84.20.147.33) (Quit: Textual IRC Client: www.textualapp.com) |
| 16:02:24 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 16:02:30 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 16:04:26 | <zebrag> | When nat-transform horizontally composing `beta . alpha`, it is "beta after lifted alpha", or, "(the other)-lifted alpha after beta". I'm pretty sure I'm not mistaken there. The fact that alpha might be after beta, or equivalently, before, is mind-boggling. |
| 16:06:04 | <zebrag> | I'm pretty sure it's true, I've been doing the diagram chasing, but nevertheless I can't believe it. |
| 16:06:12 | hrdl_ | is now known as hrdl |
| 16:06:27 | <zebrag> | It just doesn't stick. |
| 16:06:39 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 16:07:03 | × | chisui quits (5882391e@mue-88-130-57-030.dsl.tropolys.de) (Ping timeout: 240 seconds) |
| 16:07:11 | <infinisil> | :t void . pure |
| 16:07:12 | <lambdabot> | Applicative f => a -> f () |
| 16:07:42 | <infinisil> | Saw this in a codebase, seems entirely useless! |
| 16:08:22 | <shapr> | ah, the purity of the void |
| 16:08:39 | <c_wraith> | bitmapper: see the lens-action package |
| 16:08:46 | → | soft-warm joins (44695313@ip68-105-83-19.sd.sd.cox.net) |
| 16:09:29 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 265 seconds) |
| 16:09:43 | <bitmapper> | thanks! |
| 16:10:59 | <infinisil> | % void . pure $ undefined |
| 16:10:59 | <yahb> | infinisil: |
| 16:11:10 | <infinisil> | Doesn't even evaluate the argument |
| 16:11:12 | ski | . o O ( insert standard complaint about that `void' name being exported from non-FFI modules ) |
| 16:11:13 | <hololeap> | nothing is useless |
| 16:12:23 | <ski> | Nothing seems pretty useful, to me |
| 16:12:36 | <hololeap> | although, arguably `pure ()` is butter |
| 16:12:53 | <hololeap> | and bread |
| 16:13:02 | <hololeap> | wow, good morning folks |
| 16:13:36 | ski | . o O ( butter cake ) |
| 16:13:56 | ski | waves |
| 16:14:22 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:14:24 | → | smitop joins (uid328768@gateway/web/irccloud.com/x-fvijgodnvjoivvsf) |
| 16:14:35 | <remexre> | is there a good way to have multiple runnable-as-main lhs files which can import things from each other? |
| 16:14:55 | <remexre> | would I wanna make each one a cabal executable? |
| 16:16:39 | <c_wraith> | that's a bit of an unexpected use case. You'd want to make each an executable no matter what, but importing from each other seems weird. |
| 16:17:28 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 16:17:35 | <remexre> | yeah; I've got a blog post that has an algorithm and a main function (to do some demo) |
| 16:17:53 | <remexre> | then a followup one that depends on it, and some misc tooling that depends on it too |
| 16:18:03 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 16:18:08 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 16:18:37 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 16:19:56 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 16:19:57 | <hololeap> | does cabal let you "overlap" dirs? can a lib and an executable stanza both point to the same dir? |
| 16:20:08 | <hololeap> | remexre: you may have to experiment with this yourself |
| 16:20:10 | <c_wraith> | hololeap: yes, but it doesn't work the way you'd hope. |
| 16:20:25 | <c_wraith> | hololeap: it recompiles modules instead of getting them from the lib |
| 16:21:01 | <c_wraith> | remexre: it should all just work. the problem is just that it would recompile stuff a lot. |
| 16:21:17 | <remexre> | okay, I'll try that; would this be like, |
| 16:21:28 | <remexre> | library exposed-modules: Foo, Bar |
| 16:21:33 | <remexre> | executable Foo main-is: Foo.hs |
| 16:21:36 | <remexre> | ? |
| 16:21:46 | <c_wraith> | I wouldn't have a library stanze. just the executables |
| 16:21:51 | <c_wraith> | *stanza |
| 16:22:11 | <bitmapper> | c_wraith: i don't really understand how to use it tbh |
| 16:22:17 | × | chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 16:22:17 | × | jippiedoe quits (4dab983e@77-171-152-62.fixed.kpn.net) (Quit: Connection closed) |
| 16:22:35 | <remexre> | oh, sweet, that works; thanks to both y'all! |
| 16:23:01 | <c_wraith> | bitmapper: well, it only works for Getters and Folds. If you want to update, it doesn't do the job. |
| 16:23:40 | <hololeap> | what about just sticking them all in the same dir, then just using ghc directly? `module Foo where ... main = ...` ; `module Bar where ... import Foo ... main = ...` |
| 16:23:59 | <hololeap> | then compile Foo.hs and Bar.hs directly with ghc |
| 16:24:16 | <remexre> | I tried this with ghci and it was unhappy |
| 16:24:26 | <remexre> | er, runghc* |
| 16:25:34 | → | crobbins joins (~crobbins@2601:2c1:200:ec50:6092:acc2:26a1:f490) |
| 16:26:17 | <hololeap> | remexre: are you going to be presenting this? |
| 16:26:27 | <hololeap> | (just curious) |
| 16:26:38 | <remexre> | uh like I'm not gonna be recommending my setup to anyone else :P |
| 16:26:56 | <hololeap> | you said it was for some kind of demo |
| 16:28:46 | <remexre> | More like, I'm demoing some language's semantics in a blogpost; the haskell implementation is... relevant, but not the "cool part" |
| 16:31:44 | <hololeap> | oh ok. i was just wondering. |
| 16:31:58 | → | syd joins (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
| 16:32:58 | → | gioyik joins (~gioyik@gateway/tor-sasl/gioyik) |
| 16:33:37 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:34:50 | → | chisui joins (5882391e@mue-88-130-57-030.dsl.tropolys.de) |
| 16:35:26 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:36:05 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 16:36:34 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 16:37:58 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:e9e3:841b:e645:b35e) |
| 16:38:00 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 265 seconds) |
| 16:38:13 | <ij> | I need to draw pixels on a canvas and export it as a png – juicypixels or hip? |
| 16:38:14 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:39:08 | <ij> | ah, I read the readmes, nvm |
| 16:42:58 | × | carlomagno quits (~cararell@148.87.23.6) (Quit: Leaving.) |
| 16:44:09 | → | ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
| 16:46:14 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving) |
| 16:49:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 16:49:52 | × | knupfer quits (~Thunderbi@200116b824ff4800ec20a5b5814c5563.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
| 16:50:06 | → | knupfer joins (~Thunderbi@200116b824ff48009d25b45d13597f3f.dip.versatel-1u1.de) |
| 16:50:15 | × | mayleesia quits (4dbf5b8f@x4dbf5b8f.dyn.telefonica.de) (Quit: Connection closed) |
| 16:50:37 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:e9e3:841b:e645:b35e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:51:13 | → | juri_ joins (~juri@178.63.35.222) |
| 16:53:08 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 16:53:23 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:e9e3:841b:e645:b35e) |
| 16:53:48 | → | bergey joins (~user@107.181.19.30) |
| 16:56:07 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 16:56:47 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:e9e3:841b:e645:b35e) (Client Quit) |
| 16:57:12 | × | usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving) |
| 16:57:22 | <shapr> | ij: what was the answer? |
| 17:02:22 | → | bennofs_ joins (~quassel@dslb-094-222-093-100.094.222.pools.vodafone-ip.de) |
| 17:03:17 | × | sMuNiX quits (~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca) (Ping timeout: 256 seconds) |
| 17:03:28 | <tomsmeding> | for those who have set their browser (or perhaps their OS) to prefer dark mode, what do you think of my colour choices? https://paste.tomsmeding.com/ | https://paste.tomsmeding.com/FbLBhrVM |
| 17:03:54 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection) |
| 17:03:54 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
| 17:04:05 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 17:04:16 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 17:04:17 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 17:04:33 | → | carlomagno joins (~cararell@148.87.23.4) |
| 17:04:42 | × | darjeeling_ quits (~darjeelin@122.245.218.150) (Ping timeout: 268 seconds) |
| 17:04:45 | → | sMuNiX joins (~sMuNiX@lnsm2-montreal02-142-118-236-120.internet.virginmobile.ca) |
| 17:05:37 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 17:05:46 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-xgujbhvivyzipvnb) |
| 17:07:01 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) |
| 17:07:15 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-ueszxmgrjupzjwnp) (Quit: Connection closed for inactivity) |
| 17:08:29 | <swarmcollective> | tomsmeding: Dark mode looks good, colour choices make the text quite readable. Thumbsup from me. |
| 17:08:48 | <maerwald> | is the dark mode based on the system theme? |
| 17:09:50 | <NieDzejkob> | yeah, it's a CSS feature known as prefers-color-scheme |
| 17:10:34 | <NieDzejkob> | see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme for how to enable it for firefox |
| 17:11:56 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 17:12:32 | <tomsmeding> | swarmcollective: thanks! Good to hear :) |
| 17:13:50 | <tomsmeding> | maerwald: I don't have a manual mode toggle yet; due to the way prefers-color-scheme works that would give some duplication of css rules, and I was lazy :) |
| 17:18:23 | × | dmwit quits (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Remote host closed the connection) |
| 17:19:33 | <sm[m]> | looks pretty good tomsmeding |
| 17:20:21 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
| 17:20:42 | → | Tario joins (~Tario@201.192.165.173) |
| 17:20:57 | → | darjeeling_ joins (~darjeelin@122.245.218.150) |
| 17:21:56 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:22:04 | <tomsmeding> | sm[m]: cool! |
| 17:22:42 | × | Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
| 17:23:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:24:14 | <brkscnce> | how would you flip the arguments of a function? |
| 17:24:25 | <boxscape> | tomsmeding not bad, personally I'd prefer the neon green to be a little less neon green, and comments to be a bit more visible |
| 17:24:29 | <koz_> | :t flip |
| 17:24:31 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
| 17:24:35 | <brkscnce> | neat :D |
| 17:27:10 | <tomsmeding> | boxscape: I'm using the monokai theme from highlightjs; I can change the colour values though, of course. Do you have a different theme you would suggest, or some changes to this one? |
| 17:27:34 | <tomsmeding> | If not I'll have a look after dinner |
| 17:28:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 17:28:22 | <boxscape> | tomsmeding hm I've just always used solarized but that's maybe a bit overdone. With the colors as is, I'd be happy if the green is a little darker and the grey used for comments a little lighter |
| 17:29:26 | <CatWithMoustache> | I have a list of (intA, intB) - how do i map it to a list of the larger int of the two pairs with a list comprehension? |
| 17:29:45 | <CatWithMoustache> | of the pair* |
| 17:30:55 | <koz_> | CatWithMoustache: [ max x y | (x, y) <- myList ] |
| 17:31:26 | <koz_> | Although I think a comprehension is unnecessary here. |
| 17:31:37 | <koz_> | You can just as well do something like 'uncurry max <$> myList' |
| 17:32:14 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 17:33:57 | × | wpcarro quits (sid397589@gateway/web/irccloud.com/x-cuzogimzlccgtoqb) (Ping timeout: 272 seconds) |
| 17:34:14 | × | totbwf quits (sid402332@gateway/web/irccloud.com/x-zjkfuwgfajmvzezn) (Ping timeout: 264 seconds) |
| 17:34:35 | × | jared-w quits (uid405292@gateway/web/irccloud.com/x-nwbhkmbdnnaxykxk) (Ping timeout: 272 seconds) |
| 17:34:47 | → | jared-w joins (uid405292@gateway/web/irccloud.com/x-izhpuwmltgyrnquq) |
| 17:34:52 | → | wpcarro joins (sid397589@gateway/web/irccloud.com/x-kqymfcxonhkyygxg) |
| 17:35:26 | × | saitamaplus quits (uid272474@gateway/web/irccloud.com/x-pvdimpwkxzjbymuk) (Ping timeout: 264 seconds) |
| 17:36:26 | → | saitamaplus joins (uid272474@gateway/web/irccloud.com/x-tqrynpyipoxrnkjn) |
| 17:36:41 | × | boxscape quits (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) (Quit: Ping timeout (120 seconds)) |
| 17:36:57 | → | boxscape joins (4ff0baf3@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.243) |
| 17:37:11 | → | totbwf joins (sid402332@gateway/web/irccloud.com/x-wekjmtigqhueuhzk) |
| 17:40:19 | <ntjns> | ls |
| 17:40:27 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 17:40:35 | <CatWithMoustache> | koz_, can I still use max if i have a tuple of ((String, int), (String, int)) and want to keep the string int pairs together? |
| 17:40:52 | <koz_> | :t maximumBy |
| 17:40:54 | <lambdabot> | Foldable t => (a -> a -> Ordering) -> t a -> a |
| 17:40:58 | <koz_> | :t maxBy |
| 17:40:59 | <lambdabot> | error: Variable not in scope: maxBy |
| 17:41:07 | → | psutcliffe joins (~psutcliff@2a00:801:44b:5fb3:b852:cfd3:ade7:f24f) |
| 17:41:32 | <koz_> | No, that'd require some more effort. |
| 17:41:58 | <koz_> | Easiest would be to first define 'maxBy :: (Ord b) => (a -> b) -> a -> a -> a' |
| 17:42:06 | <koz_> | Then use that to write the rest. |
| 17:42:33 | <koz_> | Using 'maxBy snd'. |
| 17:43:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:44:20 | → | ADG1089__ joins (~aditya@122.163.247.232) |
| 17:44:34 | × | terzievk quits (~user@78.90.139.65) (Remote host closed the connection) |
| 17:44:53 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) |
| 17:45:21 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:45:48 | × | Natch quits (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Read error: Connection reset by peer) |
| 17:46:47 | × | ADG1089__ quits (~aditya@122.163.247.232) (Client Quit) |
| 17:47:34 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 17:50:10 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 17:53:18 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 17:53:23 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) |
| 17:54:21 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 17:54:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:55:28 | × | zaquest quits (~notzaques@5.128.210.178) (Ping timeout: 276 seconds) |
| 17:57:03 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 17:57:11 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) (Client Quit) |
| 17:57:53 | → | zaquest joins (~notzaques@5.128.210.178) |
| 17:59:06 | × | Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving) |
| 18:00:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Ping timeout (120 seconds)) |
| 18:00:21 | hackage | linux-capabilities 0.1.0.0 - Linux capabilities Haskell data type https://hackage.haskell.org/package/linux-capabilities-0.1.0.0 (TristanCacqueray) |
| 18:00:24 | → | conal joins (~conal@64.71.133.70) |
| 18:00:37 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:01:30 | <__minoru__shirae> | @src Control.Monad.when |
| 18:01:30 | <lambdabot> | Source not found. Take a stress pill and think things over. |
| 18:02:57 | <geekosaur> | "@src" is a fraud |
| 18:03:12 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 18:03:22 | <geekosaur> | @src when |
| 18:03:23 | <lambdabot> | when p s = if p then s else return () |
| 18:03:41 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 18:03:57 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
| 18:04:20 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:05:04 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 18:06:31 | × | __minoru__shirae quits (~shiraeesh@109.166.56.143) (Ping timeout: 276 seconds) |
| 18:07:24 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:08:13 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Ping timeout: 260 seconds) |
| 18:08:36 | × | Wuzzy quits (~Wuzzy@p5b0df8ea.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 18:09:13 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 18:09:21 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
| 18:09:25 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 18:09:51 | × | esph quits (~weechat@unaffiliated/esph) (Ping timeout: 246 seconds) |
| 18:10:38 | × | vilpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 18:11:10 | × | fr33domlover quits (~fr33domlo@fsf/member/fr33domlover) (Quit: fr33domlover) |
| 18:12:09 | → | tzlil joins (~tzlil@unaffiliated/tzlil) |
| 18:13:39 | × | alx741 quits (~alx741@181.196.69.27) (Quit: alx741) |
| 18:14:52 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-lipeedvqihpcwewl) (Quit: Connection closed for inactivity) |
| 18:15:16 | → | esph joins (~weechat@unaffiliated/esph) |
| 18:16:26 | <swarmcollective> | @src foldl' |
| 18:16:27 | <lambdabot> | foldl' f a [] = a |
| 18:16:27 | <lambdabot> | foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs |
| 18:18:25 | → | raym joins (~ray@45.64.220.3) |
| 18:20:27 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 18:20:27 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 18:20:27 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 18:21:47 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) |
| 18:21:50 | → | fr33domlover joins (~fr33domlo@fsf/member/fr33domlover) |
| 18:22:24 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
| 18:22:39 | → | ADG1089__ joins (~aditya@122.163.247.232) |
| 18:22:50 | → | Natch joins (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
| 18:23:38 | → | minoru_shiraeesh joins (592a3c0a@gateway/web/cgi-irc/kiwiirc.com/ip.89.42.60.10) |
| 18:24:03 | <koz_> | If I enable ApplicativeDo and MonadComprehensions, can I potentially get Applicative-based comprehensions? |
| 18:24:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:24:57 | × | toorevitimirp quits (~tooreviti@117.182.182.60) (Remote host closed the connection) |
| 18:25:20 | → | Rob60 joins (268ce492@38.140.228.146) |
| 18:25:21 | <monochrom> | I think no. It is not ApplicativeComprehensions afterall. |
| 18:25:51 | <geekosaur> | I think the rewrite uses >>= |
| 18:26:04 | <geekosaur> | so it can't be Applicative |
| 18:26:10 | <koz_> | monochrom: My reasoning is this - MonadComprehensions desugars to do-notation, and ApplicativeDo can make (some) do-blocks only need Applicative. |
| 18:26:25 | <koz_> | Or am I misreading MonadComprehensions? |
| 18:26:33 | <geekosaur> | (specifically <- translates to >>=) |
| 18:26:39 | <koz_> | "Bindings are translated with the (>>=) and return functions to the usual do-notation:" |
| 18:26:41 | × | CatWithMoustache quits (~CatWithMo@gateway/tor-sasl/catwithmoustache) (Quit: Leaving) |
| 18:27:04 | <koz_> | Or does it actually mean to say 'Bindings are translated with the (>>=) and return functions to (the equivalent of) this do-notation:"? |
| 18:27:14 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 265 seconds) |
| 18:27:36 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 18:27:36 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 18:27:36 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 18:31:14 | <minoru_shiraeesh> | This is weird: I typed @src Control.Monad.when, got an answer from the lambdabot and then the electricity cut off |
| 18:32:13 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 18:32:22 | <minoru_shiraeesh> | As if my actions caused it |
| 18:33:53 | <geekosaur> | unlikely, especially since it actually rejected yours and took mine |
| 18:34:03 | <geekosaur> | (because @src is a fraud) |
| 18:34:24 | <koz_> | geekosaur: Drat, you're right. |
| 18:34:24 | <tomsmeding> | minoru_shiraeesh: lambdabot not only didn't like your input, it then proceeded to take revenge |
| 18:34:32 | <koz_> | The docs should probably be a bit clearer on this point. |
| 18:34:33 | <minoru_shiraeesh> | Some weird side-effect |
| 18:34:47 | × | ADG1089__ quits (~aditya@122.163.247.232) (Quit: Konversation terminated!) |
| 18:34:48 | <monochrom> | koz_: I tested and conclude that the user guide wording is poor. <- is really translated to >>= directly, not going though a do-notation intermediate. |
| 18:34:58 | <koz_> | (and ApplicativeComprehensions would be lovely) |
| 18:35:00 | → | redmp joins (~redmp@172.58.35.77) |
| 18:35:08 | <monochrom> | I think the time is ripe for a "do considered harmful". |
| 18:35:27 | <koz_> | In this case? It's 'bad documentation considered harmful' more than anything. |
| 18:35:55 | <koz_> | Maybe I might write a GHC proposal... |
| 18:36:04 | <redmp> | hello! anyone here familiar with how to use Servant.API.Generic to combine two record-apis into a single server? |
| 18:36:24 | <tomsmeding> | boxscape: right-hand side better? https://tomsmeding.com/ss/get/tomsmeding/lPoDSF (different theme) |
| 18:36:50 | <monochrom> | As usual, it is more like "<getting too used to do> considered harmful". |
| 18:36:56 | <minoru_shiraeesh> | Which suggests that maybe the matrix is not written in haskell, or not |
| 18:37:12 | <koz_> | Also, does anyone know where I can find the descriptions of the n^2 and n^3 algorithms for ApplicativeDo desugaring? |
| 18:37:20 | <tomsmeding> | minoru_shiraeesh: the matrix is currently written in python |
| 18:37:22 | <geekosaur> | tomsmeding, I prefer the right hand side, for what it's worth |
| 18:37:31 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 18:37:32 | <koz_> | I also prefer the right-hand side. |
| 18:37:33 | <monochrom> | So the confusing part is that the example in the user guide uses do-notation instead of >>=. When do-notation is completely irrelevant in the context. |
| 18:37:40 | <koz_> | The left one looks too electric. |
| 18:37:50 | <tomsmeding> | I agree |
| 18:37:52 | <koz_> | monochrom: Indeed. |
| 18:38:06 | <tomsmeding> | okay 'tomorrow night' is is :) |
| 18:38:09 | <monochrom> | And of course the sentence "... >>= ... do ..." simply fails to make up its mind. |
| 18:38:10 | <tomsmeding> | *it is |
| 18:38:13 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8c3e:8d1a:de68:76d3) (Remote host closed the connection) |
| 18:38:28 | <koz_> | monochrom: The 'les deux' of monad-oriented syntax. :P |
| 18:38:38 | <geekosaur> | tomsmeding, cue https://xkcd.com/224/ |
| 18:38:56 | → | nineonine joins (~nineonine@50.216.62.2) |
| 18:39:04 | <tomsmeding> | geekosaur: thanks for the due diligence |
| 18:39:45 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 18:39:49 | × | esph quits (~weechat@unaffiliated/esph) (Ping timeout: 272 seconds) |
| 18:40:45 | × | DataComp_ quits (~lumeng@50.43.26.251) (Ping timeout: 256 seconds) |
| 18:41:52 | <minoru_shiraeesh> | tomsmeding: by matrix you mean the messenger? I was making a joke about Matrix. |
| 18:41:52 | <tomsmeding> | instance has been updated with new theme: https://paste.tomsmeding.com/rT6TJbdr |
| 18:42:14 | <minoru_shiraeesh> | Neo, Morpheus, etc |
| 18:42:35 | <tomsmeding> | minoru_shiraeesh: and I was deliberately misinterpreting your reference :) |
| 18:42:45 | <tomsmeding> | in the style of the xkcd that geekosaur linked |
| 18:43:15 | <minoru_shiraeesh> | Oh, multi-layer jokes |
| 18:43:17 | → | mirrorb2rd joins (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) |
| 18:43:56 | → | DataComputist joins (~lumeng@50.43.26.251) |
| 18:44:44 | × | knupfer quits (~Thunderbi@200116b824ff48009d25b45d13597f3f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 18:45:09 | <redmp> | Here's what I mean record-apis: https://termbin.com/3rqc |
| 18:45:24 | <redmp> | I define a "parent" record API and have it contain a "child" record API |
| 18:45:27 | → | carlomagno1 joins (~cararell@148.87.23.4) |
| 18:45:49 | <redmp> | But `genericServe` seems unhappy with that, even though the type of the input is correct, and the `routes AsServer` gives no error.. |
| 18:45:50 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 18:46:09 | × | psutcliffe quits (~psutcliff@2a00:801:44b:5fb3:b852:cfd3:ade7:f24f) (Ping timeout: 272 seconds) |
| 18:46:23 | <redmp> | (ParentRoutes AsServer types correctly, with one field populated by ChildRoutes AsServer) |
| 18:46:56 | × | carlomagno quits (~cararell@148.87.23.4) (Ping timeout: 240 seconds) |
| 18:48:23 | × | minoru_shiraeesh quits (592a3c0a@gateway/web/cgi-irc/kiwiirc.com/ip.89.42.60.10) (Quit: Connection closed) |
| 18:48:30 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 18:50:21 | → | ADG1089__ joins (~aditya@122.163.247.232) |
| 18:50:34 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 18:50:52 | → | __minoru__shirae joins (~shiraeesh@46.34.207.247) |
| 18:51:16 | × | DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...) |
| 18:51:23 | <redmp> | Thanks in advance, if anybody can take a look at that example :) |
| 18:51:50 | <koz_> | Also, does anyone know where I can find the descriptions of the n^2 and n^3 algorithms for ApplicativeDo desugaring? <-- anyone? |
| 18:52:07 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:2c68:3465:24dc:c80f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:52:12 | → | carlomagno joins (~cararell@148.87.23.4) |
| 18:52:34 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 18:53:45 | <__minoru__shirae> | koz_, if I'm not misunderstanding a question, you just substitute a specific applicative's bind implementation after desugaring the do notation into binds, no? |
| 18:53:57 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 18:54:08 | <__minoru__shirae> | wait, applicative's don't have biind |
| 18:54:10 | <tomsmeding> | __minoru__shirae: applicative != monad |
| 18:54:22 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) |
| 18:54:23 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:54:27 | <koz_> | __minoru__shirae: There are, according to the GHC docs, two desugaring algorithms. One is n^2, the other, more thorough, one, n^3. |
| 18:54:32 | <koz_> | I wanted to know what those are. |
| 18:54:36 | <tomsmeding> | koz_: I assume you've already looked at https://simonmar.github.io/bib/papers/applicativedo.pdf ? |
| 18:54:48 | <tomsmeding> | no saying the algorithms are in there (haven't read it) |
| 18:54:53 | <tomsmeding> | s/^no/not/ |
| 18:55:01 | × | carlomagno1 quits (~cararell@148.87.23.4) (Ping timeout: 272 seconds) |
| 18:55:07 | <koz_> | tomsmeding: I have not, but that lineup is amazing. |
| 18:55:18 | <tomsmeding> | it is, isn't it? |
| 18:55:21 | <koz_> | Two Simons, an Edward and the Selective guy? |
| 18:55:25 | <koz_> | Sign me up. |
| 18:55:45 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
| 18:56:22 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 18:56:41 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 18:58:28 | × | ADG1089__ quits (~aditya@122.163.247.232) (Remote host closed the connection) |
| 18:58:46 | <tomsmeding> | note the sudden appearance of game theory in the second bullet point of section 8 |
| 18:59:07 | <swarmcollective> | tomsmeding: Yeah, the colour theme looks good. |
| 18:59:23 | <swarmcollective> | And, now I know I can have two files. :D |
| 18:59:45 | <tomsmeding> | swarmcollective: :D |
| 18:59:57 | <tomsmeding> | did you miss the big button? :p |
| 19:00:28 | × | emmanuel_erc quits (~user@cpe-74-71-106-64.nyc.res.rr.com) (Ping timeout: 276 seconds) |
| 19:02:13 | <Rob60> | I'm looking for haskell stars in the SF Bay Area - if you're in the market, please drop me a note at rob@banyaninfrastructure.com. |
| 19:02:19 | × | jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:02:50 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:02:51 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 256 seconds) |
| 19:02:52 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 19:02:54 | <koz_> | Rob60: Do you accept remote? |
| 19:02:56 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds) |
| 19:03:28 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:03:29 | <Rob60> | We're all remote now, but we're a small company and want people that can not be remote in the hopeful days ahead when Covid isn't such a thing. |
| 19:03:46 | <maerwald> | in 2022 :) |
| 19:03:56 | × | smitop quits (uid328768@gateway/web/irccloud.com/x-fvijgodnvjoivvsf) (Quit: Connection closed for inactivity) |
| 19:03:58 | → | esph joins (~weechat@unaffiliated/esph) |
| 19:04:05 | <koz_> | Rob60: Would you be good with someone who wanted to _stay_ remote? |
| 19:04:37 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds) |
| 19:04:38 | <Rob60> | it wouldn't be our first choice, but I have some flexibility for the right person, of course |
| 19:04:48 | <koz_> | Rob60: What's the job? |
| 19:05:44 | <__minoru__shirae> | what do you as a company do with haskell in production, did you start with haskell, or did you move to it from another language? |
| 19:05:56 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 19:06:27 | <Rob60> | senior dev - our code started in haskell |
| 19:06:37 | <Rob60> | https://angel.co/company/banyan-infrastructure/jobs/1157302-senior-developer-haskell-java |
| 19:08:43 | × | chisui quits (5882391e@mue-88-130-57-030.dsl.tropolys.de) (Ping timeout: 240 seconds) |
| 19:08:43 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 19:10:20 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 19:10:44 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:11:00 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) |
| 19:13:46 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 19:14:18 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
| 19:14:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:18:13 | → | DataComputist joins (~lumeng@50.43.26.251) |
| 19:18:25 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 19:18:54 | <boxscape> | tomsmeding yes, thanks, right hand side is quite a bit better |
| 19:19:04 | <tomsmeding> | it's live :) |
| 19:19:14 | <boxscape> | nice |
| 19:20:16 | × | redmp quits (~redmp@172.58.35.77) (Ping timeout: 240 seconds) |
| 19:21:59 | → | Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it) |
| 19:22:20 | → | redmp joins (~redmp@172.58.35.77) |
| 19:22:23 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 19:24:16 | <infinisil> | :t foldr (<|>) empty |
| 19:24:17 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
| 19:24:27 | <infinisil> | Is there some function which does that already ^? |
| 19:26:05 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds) |
| 19:28:40 | <tomsmeding> | :t asum |
| 19:28:41 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
| 19:28:47 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 19:28:49 | <tomsmeding> | infinisil: ^ |
| 19:29:21 | <infinisil> | Oh nice |
| 19:29:41 | <infinisil> | Wasn't there a type signature search in lambdabot |
| 19:30:26 | <swarmcollective> | @hoogle t (f a) -> f a |
| 19:30:27 | <lambdabot> | No results found |
| 19:31:28 | <__minoru__shirae> | @hoogle (Foldable t, Alternative f) => t (f a) -> f a |
| 19:31:29 | <lambdabot> | Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a |
| 19:31:29 | <lambdabot> | Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a |
| 19:31:29 | <lambdabot> | BasePrelude asum :: (Foldable t, Alternative f) => t (f a) -> f a |
| 19:31:55 | <tomsmeding> | infinisil: which also exists as a web service: https://hoogle.haskell.org/ |
| 19:32:21 | hackage | bitwise-enum 1.0.1.0 - Bitwise operations on bounded enumerations https://hackage.haskell.org/package/bitwise-enum-1.0.1.0 (jnbooth) |
| 19:32:28 | <infinisil> | Ohh I have been using hoogle for a while but never used that |
| 19:33:31 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 19:33:35 | <__minoru__shirae> | a question regarding "when" function: how does it short-circuit? I'm trying to desugar a do block with "when" inside, and I don't see how. |
| 19:34:01 | <tomsmeding> | @src when |
| 19:34:02 | <lambdabot> | when p s = if p then s else return () |
| 19:34:12 | → | kam1 joins (~kam1@5.125.126.175) |
| 19:34:12 | <__minoru__shirae> | do when p (return "a"); return "b" |
| 19:34:30 | <tomsmeding> | = when p (return "a") >> return "b" |
| 19:34:36 | <geekosaur> | it doesn't really short-circuit, were you thinking of guard? |
| 19:34:44 | <tomsmeding> | = (if p then return "a" else return ()) >> return "b" |
| 19:34:48 | <redmp> | i found a solution to the problem i was having before |
| 19:35:13 | <__minoru__shirae> | (if p then return "a" else return ()) >>= \_ -> return "b" |
| 19:35:16 | <__minoru__shirae> | right? |
| 19:35:36 | <redmp> | the solution is to convert the record-apis types to normal api types and then combine them as siblings (not through composition) same as how you would combine normal apis q |
| 19:35:39 | <redmp> | https://termbin.com/0t72 |
| 19:35:49 | <redmp> | hope that helps if anybody has the same question; cheers |
| 19:36:08 | <tomsmeding> | __minoru__shirae: true, that means the same thing |
| 19:36:18 | <geekosaur> | __minoru__shirae, you already have a type error there (unless you have some funky extensions and instances in scope) |
| 19:36:23 | × | ozataman quits (~textual@pool-100-37-221-69.phlapa.fios.verizon.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 19:36:43 | <monochrom> | Again, it doesn't short-circuit, not in my sense of the word. |
| 19:37:17 | <__minoru__shirae> | how does it ignore the rest of the do-block when the condition is met? |
| 19:37:22 | <geekosaur> | it doesn't |
| 19:37:24 | <monochrom> | It doesn't. |
| 19:38:08 | <geekosaur> | I'll ask again: are you thinking of guard? |
| 19:38:27 | <__minoru__shirae> | hmm, but it won't run IO actions if they are after when and the condition is met, right? |
| 19:38:41 | <monochrom> | Have you tested? |
| 19:38:48 | <__minoru__shirae> | I'm reading about continuations and callCC |
| 19:38:56 | <geekosaur> | hoo boy |
| 19:38:59 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 19:39:06 | <monochrom> | That's not IO. |
| 19:39:21 | <__minoru__shirae> | and "when" is used in the examples |
| 19:39:23 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:39:59 | × | mirrorb2rd quits (~psutcliff@2a00:801:3f2:4b56:e93e:1663:ff0c:6c42) (Ping timeout: 272 seconds) |
| 19:40:08 | <monochrom> | Has it occurred to you that maybe it's callCC that does the skipping? |
| 19:40:15 | <tomsmeding> | % do when True (putStrLn "abc") ; putStrLn "def" |
| 19:40:16 | <yahb> | tomsmeding: abc; def |
| 19:40:40 | <__minoru__shirae> | oh, I midunderstood the logic of when, then |
| 19:40:46 | → | alx741 joins (~alx741@181.196.69.27) |
| 19:41:31 | <monochrom> | It's every 1st-year STEM student's common sense that if you have two moving parts, you can't just pick one of them and blame everything on it. |
| 19:42:56 | <tomsmeding> | monochrom: do you mean that it _should be_ every 1st-year stem studen's common sense, or that is _is_? |
| 19:43:14 | geekosaur | is always wary of "common sense" |
| 19:43:22 | <monochrom> | hehe |
| 19:43:44 | <tomsmeding> | because the former, sure, but the latter, no way :p |
| 19:46:44 | → | cntrl joins (~cntrl@p200300ea6f413600978678b2fc08a449.dip0.t-ipconnect.de) |
| 19:47:51 | hackage | xlsx 0.8.3 - Simple and incomplete Excel file parser/writer https://hackage.haskell.org/package/xlsx-0.8.3 (KirillZaborsky) |
| 19:48:06 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:49:24 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 265 seconds) |
| 19:50:32 | <redmp> | I created an issue (for documentation) about the above servant question that I had. If you want to chime in, here's the link: https://github.com/haskell-servant/servant/issues/1394 |
| 19:51:18 | × | cntrl quits (~cntrl@p200300ea6f413600978678b2fc08a449.dip0.t-ipconnect.de) (Client Quit) |
| 19:53:41 | × | xff0x quits (~xff0x@2001:1a81:52d0:d300:e069:1246:9742:b9dd) (Ping timeout: 258 seconds) |
| 19:53:41 | → | cntrl joins (~cntrl@p200300ea6f413600978678b2fc08a449.dip0.t-ipconnect.de) |
| 19:54:30 | → | xff0x joins (~xff0x@2001:1a81:52d0:d300:4228:6d0f:7477:ec73) |
| 19:54:38 | × | cntrl quits (~cntrl@p200300ea6f413600978678b2fc08a449.dip0.t-ipconnect.de) (Client Quit) |
| 19:55:56 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:00:21 | hackage | zip-stream 0.2.1.0 - ZIP archive streaming using conduits https://hackage.haskell.org/package/zip-stream-0.2.1.0 (DylanSimon) |
| 20:00:57 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) |
| 20:01:21 | hackage | tasty-bench 0.2.2 - Featherlight benchmark framework https://hackage.haskell.org/package/tasty-bench-0.2.2 (Bodigrim) |
| 20:01:36 | × | syd quits (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 20:03:52 | × | Rob60 quits (268ce492@38.140.228.146) (Quit: Connection closed) |
| 20:05:03 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 20:05:28 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 276 seconds) |
| 20:06:55 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 20:07:15 | → | petersen joins (~petersen@redhat/juhp) |
| 20:09:58 | → | kipras joins (~Kipras@78-56-235-39.static.zebra.lt) |
| 20:10:31 | → | frozenErebus joins (~frozenEre@94.128.219.166) |
| 20:11:21 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 20:11:56 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 240 seconds) |
| 20:12:40 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 20:13:06 | → | Wuzzy joins (~Wuzzy@p5790e341.dip0.t-ipconnect.de) |
| 20:15:13 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 20:15:27 | → | lolololppppp joins (68ab32ea@104.171.50.234) |
| 20:16:17 | <lolololppppp> | how would you write foldL using foldR in haskell? I have tried for many hours but i do not know |
| 20:17:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:18:06 | × | lolololppppp quits (68ab32ea@104.171.50.234) (Client Quit) |
| 20:18:11 | <davean> | lolololppppp: ok, so whats the relation between foldL and foldR? |
| 20:18:50 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 20:21:06 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 20:21:29 | → | fendor_ joins (~fendor@91.141.0.74.wireless.dyn.drei.com) |
| 20:23:01 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 20:23:52 | → | terzievk joins (~user@78.90.139.65) |
| 20:24:58 | × | fendor quits (~fendor@178.115.128.24.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
| 20:25:18 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ) |
| 20:25:58 | × | jneira quits (501e6551@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.81) (Ping timeout: 260 seconds) |
| 20:26:10 | × | averell quits (~averell@unaffiliated/averell) (Remote host closed the connection) |
| 20:27:45 | <terzievk> | `ghcup install ghc` finished with `GHC installation successful`, but i get `bash: ghc: command not found`. However installing cabal the same way works fine. What am I missing? |
| 20:29:10 | → | averell joins (~averell@unaffiliated/averell) |
| 20:29:24 | × | averell quits (~averell@unaffiliated/averell) (Remote host closed the connection) |
| 20:29:37 | <maerwald[m]> | terzievk: ghcup set ghc 8.10.4 |
| 20:29:55 | → | averell joins (~averell@unaffiliated/averell) |
| 20:30:17 | <maerwald[m]> | Also see `ghcup tui` |
| 20:30:45 | × | kipras quits (~Kipras@78-56-235-39.static.zebra.lt) (Read error: Connection reset by peer) |
| 20:31:27 | <Uniaika> | the TUI is <3 |
| 20:31:39 | <terzievk> | well, 8.10.4 is installed, but ghcup set does nothing. Should I add something to my bash_profile? |
| 20:32:44 | <Uniaika> | terzievk: yes, I prepend this to my PATH |
| 20:32:45 | <Uniaika> | GHCUP_PATH="${HOME}/.ghcup/bin" |
| 20:33:23 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) |
| 20:33:29 | → | hiroaki_ joins (~hiroaki@2a02:908:4b18:8c40:417b:587b:f9ad:a890) |
| 20:33:52 | → | juri_ joins (~juri@178.63.35.222) |
| 20:34:27 | <maerwald[m]> | terzievk: `source ~/.ghcup/env` |
| 20:35:07 | <maerwald[m]> | Did you install the binary manually? |
| 20:35:28 | <maerwald[m]> | Usually the installation explains those steps |
| 20:35:36 | × | ukari quits (~ukari@unaffiliated/ukari) (Ping timeout: 240 seconds) |
| 20:37:03 | × | soft-warm quits (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds) |
| 20:37:08 | → | vchlup_ joins (~vchlup@115.128.broadband17.iol.cz) |
| 20:37:47 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 20:37:47 | <terzievk> | I have no .ghcup/env directory; I got ghcup-hs-bin from AUR, which links to here https://gitlab.haskell.org/haskell/ghcup-hs |
| 20:38:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:39:23 | <maerwald[m]> | terzievk: https://aur.archlinux.org/cgit/aur.git/tree/ghcup-hs-bin.install?h=ghcup-hs-bin |
| 20:39:37 | <maerwald[m]> | There is a post install message explaining it |
| 20:39:39 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds) |
| 20:39:53 | × | _noblegas quits (uid91066@gateway/web/irccloud.com/x-ifvgvksedlldsfmy) (Quit: Connection closed for inactivity) |
| 20:40:28 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7506:7a46:fb18:8236) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:41:23 | → | orion joins (~orion@c-76-19-236-20.hsd1.ct.comcast.net) |
| 20:41:23 | × | orion quits (~orion@c-76-19-236-20.hsd1.ct.comcast.net) (Changing host) |
| 20:41:23 | → | orion joins (~orion@unaffiliated/orion) |
| 20:43:03 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
| 20:43:25 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 20:43:43 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 20:43:47 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 20:44:09 | → | hexagenic joins (~mattias@81-224-116-201-no71.tbcn.telia.com) |
| 20:44:17 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 20:44:31 | <terzievk> | maerwald[m]: how did you find this |
| 20:44:45 | <maerwald[m]> | terzievk: magic |
| 20:45:31 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:45:54 | <maerwald[m]> | The XDG option might be more popular for arch users |
| 20:46:12 | <maerwald[m]> | I remember they're into that |
| 20:46:51 | <hexagenic> | We're into what now? |
| 20:47:26 | <maerwald[m]> | :D |
| 20:47:36 | <terzievk> | maerwald[m]: thanks :) |
| 20:48:12 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:48:23 | × | apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 272 seconds) |
| 20:48:27 | <maerwald[m]> | hexagenic: https://wiki.archlinux.org/index.php/XDG_Base_Directory |
| 20:48:40 | <hexagenic> | Yes, we're into that |
| 20:49:15 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 20:49:36 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 20:50:53 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) (Client Quit) |
| 20:51:16 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-116-244.w86-198.abo.wanadoo.fr) |
| 20:51:42 | → | jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de) |
| 20:53:04 | <hexagenic> | But who isn't into a wellstrcutured home directory? |
| 20:53:58 | <terzievk> | and now I have to learn what XDG is :d |
| 20:55:00 | <geekosaur> | it's a specification for unixlike desktop machines. in this case specifically it's the base directory specification, which says where applications should put their files |
| 20:55:06 | × | sujeet quits (sujeet@unaffiliated/freeboson) (Quit: bye) |
| 20:55:15 | <geekosaur> | https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html |
| 20:55:17 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 20:55:41 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:56:02 | <geekosaur> | ("XDG" is "X11 Desktop Group" which was the forerunner of the current standards group) |
| 20:56:36 | <davean> | Weird, here I thought GNOME was ;) |
| 20:56:49 | × | frozenErebus quits (~frozenEre@94.128.219.166) (Ping timeout: 276 seconds) |
| 20:57:09 | geekosaur | refuses to go there |
| 20:58:31 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 20:59:03 | <hexagenic> | To Gnome? |
| 20:59:48 | <geekosaur> | I have Opinions about RH more or less becoming the Linux world's Microsoft |
| 21:00:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 21:00:50 | × | forgottenone quits (~forgotten@176.42.27.254) (Quit: Konversation terminated!) |
| 21:01:35 | <maerwald[m]> | Well, in his early days Lennart tried with standards. But at one point he gave up on them |
| 21:02:52 | → | soft-warm joins (44695313@ip68-105-83-19.sd.sd.cox.net) |
| 21:04:00 | → | knupfer joins (~Thunderbi@200116b824ff48008ca8ba96c8c7f12e.dip.versatel-1u1.de) |
| 21:04:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:05:58 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 21:06:05 | → | jyp joins (~user@155.4.127.210) |
| 21:06:18 | × | emmanuel_erc quits (~user@2603-7000-9600-01c9-c589-d024-9ed2-1840.res6.spectrum.com) (Read error: Connection reset by peer) |
| 21:06:28 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:07:18 | <merijn> | I know you meant formal standards, but I'm going to pretend you meant engineering standards ;) |
| 21:09:03 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 21:10:36 | → | conal joins (~conal@64.71.133.70) |
| 21:12:38 | → | chrpape joins (~user@2a01:4f9:c010:632d::1) |
| 21:13:09 | <maerwald[m]> | Whatever works for bashing Lennart :p |
| 21:15:53 | → | nineonine joins (~nineonine@50.216.62.2) |
| 21:17:49 | → | nineonin_ joins (~nineonine@50.216.62.2) |
| 21:19:56 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
| 21:23:53 | <terzievk> | came for advice, stayed for the jokes |
| 21:23:58 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:24:50 | → | sujeet joins (sujeet@unaffiliated/freeboson) |
| 21:27:52 | → | Rob38 joins (268ce492@38.140.228.146) |
| 21:30:20 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:d121:eb35:d957:d1dd) |
| 21:32:06 | → | frozenErebus joins (~frozenEre@94.128.219.166) |
| 21:32:32 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 21:32:45 | → | tafa joins (~tafa@vps-83a5c612.vps.ovh.net) |
| 21:33:59 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 21:34:53 | → | son0p joins (~son0p@181.136.122.143) |
| 21:35:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 21:36:13 | × | hexagenic quits (~mattias@81-224-116-201-no71.tbcn.telia.com) (Quit: WeeChat 1.9.1) |
| 21:37:38 | → | akasha joins (~user@unaffiliated/akasha) |
| 21:38:14 | → | dmwit joins (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) |
| 21:38:57 | → | ixlun joins (~user@213.205.241.237) |
| 21:40:37 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 21:40:48 | × | kam1 quits (~kam1@5.125.126.175) (Remote host closed the connection) |
| 21:41:21 | × | errst quits (~errst@unaffiliated/tirej) (Ping timeout: 264 seconds) |
| 21:41:29 | <ixlun> | Hi all, quick question. I've got data EvalM = StateT (Map String Obj) IO, and I'm trying to do: 'doEval obj = eval obj >>= lift print' |
| 21:41:42 | <ixlun> | However, for some reason lift print doesn't typecheck |
| 21:42:05 | <ixlun> | where doEval :: Eval () |
| 21:42:12 | → | kam1 joins (~kam1@5.125.126.175) |
| 21:42:45 | <ixlun> | oops, doEval :: EvalM () |
| 21:44:31 | × | Rob38 quits (268ce492@38.140.228.146) (Quit: Connection closed) |
| 21:45:01 | → | banyanRob joins (268ce492@38.140.228.146) |
| 21:45:42 | → | geyaeb joins (~geyaeb@gateway/tor-sasl/geyaeb) |
| 21:46:04 | <ixlun> | I'm guessing that '>>=' doesn't do what I think it does on a transformed monad |
| 21:46:10 | × | geyaeb_ quits (~geyaeb@gateway/tor-sasl/geyaeb) (Remote host closed the connection) |
| 21:46:52 | × | frozenErebus quits (~frozenEre@94.128.219.166) (Ping timeout: 276 seconds) |
| 21:46:56 | × | alx741 quits (~alx741@181.196.69.27) (Ping timeout: 240 seconds) |
| 21:47:10 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 21:47:36 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:47:37 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 21:48:36 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 21:51:43 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 21:52:23 | → | Tops2 joins (~Tobias@dyndsl-095-033-090-206.ewe-ip-backbone.de) |
| 21:53:12 | × | dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 21:56:06 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 21:56:31 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds) |
| 21:56:33 | <monochrom> | lift . print |
| 21:57:04 | <monochrom> | For beginners it is best to not write pointfreely. Then everything makes sense. |
| 21:57:16 | <monochrom> | eval obj >>= \x -> lift (print x) |
| 21:57:35 | × | lawid quits (~quassel@dslb-090-186-099-002.090.186.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 21:58:14 | × | ubert quits (~Thunderbi@p200300ecdf25d992a0d2e31ed48a2cf4.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:58:41 | → | lawid joins (~quassel@dslb-090-186-099-002.090.186.pools.vodafone-ip.de) |
| 21:59:49 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 22:00:12 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:00:16 | → | alx741 joins (~alx741@186.178.108.37) |
| 22:02:16 | <ixlun> | Ah, yeah that makes sense. Thanks monochrom |
| 22:04:44 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 265 seconds) |
| 22:05:35 | → | rndnoise joins (~rndnoise@136.32.107.152) |
| 22:06:36 | <rndnoise> | /query NickServ |
| 22:06:51 | hackage | yesod-markdown 0.12.6.4 - Tools for using markdown in a yesod application https://hackage.haskell.org/package/yesod-markdown-0.12.6.4 (PatrickBrisbin) |
| 22:06:56 | × | sm2n quits (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Ping timeout: 240 seconds) |
| 22:07:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:07:06 | × | banyanRob quits (268ce492@38.140.228.146) (Quit: Connection closed) |
| 22:08:09 | ← | rndnoise parts (~rndnoise@136.32.107.152) () |
| 22:09:06 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 246 seconds) |
| 22:12:03 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 22:13:16 | → | frozenErebus joins (~frozenEre@94.128.219.166) |
| 22:13:23 | × | coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 22:14:15 | × | kam1 quits (~kam1@5.125.126.175) (Remote host closed the connection) |
| 22:14:20 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 22:14:48 | → | kam1 joins (~kam1@5.125.126.175) |
| 22:16:28 | → | deviantfero joins (~deviantfe@190.150.27.58) |
| 22:16:49 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
| 22:18:41 | × | mp___ quits (mp@hell.cx) (Remote host closed the connection) |
| 22:18:58 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 22:21:50 | × | kam1 quits (~kam1@5.125.126.175) (Remote host closed the connection) |
| 22:22:15 | → | kam1 joins (~kam1@5.125.126.175) |
| 22:23:07 | <ij> | shapr, well, since hip uses juicypixels and juicypixels says it's a serialization library, it seems like hip has more power and is more general and probably also more convenient |
| 22:23:35 | × | fendor_ quits (~fendor@91.141.0.74.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 22:24:32 | → | mp___ joins (mp@hell.cx) |
| 22:24:50 | × | michalz quits (~user@185.246.204.61) (Remote host closed the connection) |
| 22:27:45 | × | terzievk quits (~user@78.90.139.65) (Remote host closed the connection) |
| 22:27:50 | → | rndnoise joins (~rndnoise@136.32.107.152) |
| 22:28:28 | × | ixlun quits (~user@213.205.241.237) (Ping timeout: 276 seconds) |
| 22:29:05 | → | geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr) |
| 22:29:48 | → | merelyme joins (~merelyme@192.154.196.18) |
| 22:30:21 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 22:31:52 | → | theelous3 joins (~theelous3@unaffiliated/theelous3) |
| 22:32:04 | → | conal joins (~conal@64.71.133.70) |
| 22:32:27 | × | neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving) |
| 22:34:40 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 22:38:13 | × | jyp quits (~user@155.4.127.210) (Ping timeout: 276 seconds) |
| 22:39:20 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Remote host closed the connection) |
| 22:39:28 | × | knupfer quits (~Thunderbi@200116b824ff48008ca8ba96c8c7f12e.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 22:39:51 | × | merelyme quits (~merelyme@192.154.196.18) (Ping timeout: 272 seconds) |
| 22:41:57 | × | Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving) |
| 22:43:10 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 22:43:31 | × | catt quits (~r@31.127.31.99) (Remote host closed the connection) |
| 22:43:47 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:d121:eb35:d957:d1dd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:48:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 22:48:38 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:49:27 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 22:53:49 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
| 22:57:50 | → | Narinas joins (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
| 22:58:12 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:58:36 | → | conal joins (~conal@64.71.133.70) |
| 22:59:01 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 276 seconds) |
| 22:59:37 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 23:00:36 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 23:01:26 | × | rndnoise quits (~rndnoise@136.32.107.152) (Quit: leaving) |
| 23:03:38 | → | desophos joins (~desophos@2601:249:1680:a570:b97d:e49f:4b50:473b) |
| 23:04:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 23:05:21 | × | bergey quits (~user@107.181.19.30) (Ping timeout: 264 seconds) |
| 23:05:35 | × | klardots1 quits (~klardotsh@75-172-17-41.tukw.qwest.net) (Quit: WeeChat 3.0.1) |
| 23:06:33 | × | gr33nbits quits (~gr33nbits@a109-49-87-64.cpe.netcabo.pt) (Quit: Konversation terminated!) |
| 23:06:38 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 23:10:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:13:02 | → | hidedagger joins (~nate@unaffiliated/hidedagger) |
| 23:14:03 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) |
| 23:14:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 23:19:18 | → | pavonia^\_^\ joins (~user@unaffiliated/siracusa) |
| 23:19:43 | → | ezrakilty joins (~ezrakilty@97-113-55-149.tukw.qwest.net) |
| 23:19:45 | → | klardotsh joins (~klardotsh@75-172-17-41.tukw.qwest.net) |
| 23:19:47 | → | myShoggoth joins (~myShoggot@75.164.81.55) |
| 23:20:05 | → | afidegnum joins (~afidegnum@102.176.65.26) |
| 23:20:08 | × | geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 23:20:32 | × | frozenErebus quits (~frozenEre@94.128.219.166) (Quit: leaving) |
| 23:24:03 | hnOsmium0001 | is now known as hnOsmium0002 |
| 23:24:33 | × | ezrakilty quits (~ezrakilty@97-113-55-149.tukw.qwest.net) (Ping timeout: 264 seconds) |
| 23:25:07 | hnOsmium0002 | is now known as hnOsmium0001 |
| 23:26:06 | × | omnitrogen quits (~omnitroge@vps-c9700282.vps.ovh.net) (Read error: Connection reset by peer) |
| 23:28:14 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-ozhkekfvbfssrzmb) (Quit: Connection closed for inactivity) |
| 23:28:21 | → | omnitrogen joins (~omnitroge@vps-c9700282.vps.ovh.net) |
| 23:34:08 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 23:37:16 | → | bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
| 23:38:57 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 23:39:30 | → | sm2n joins (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) |
| 23:40:09 | × | hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 3.0) |
| 23:41:03 | × | soft-warm quits (44695313@ip68-105-83-19.sd.sd.cox.net) (Ping timeout: 240 seconds) |
| 23:42:22 | × | bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 23:43:27 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:54c9:782b:f60f:635d) (Remote host closed the connection) |
| 23:46:16 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:47:31 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 23:49:21 | → | sm2n_ joins (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) |
| 23:49:21 | × | Jd007 quits (~Jd007@162.156.11.151) (Ping timeout: 246 seconds) |
| 23:49:25 | → | conal_ joins (~conal@64.71.133.70) |
| 23:52:09 | × | sm2n quits (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) (Ping timeout: 264 seconds) |
| 23:53:40 | → | sm2n joins (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) |
| 23:54:56 | × | sm2n_ quits (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-251.dsl.bell.ca) (Ping timeout: 240 seconds) |
| 23:56:01 | × | Narinas quits (~Narinas@187.250.25.111.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 23:56:10 | → | Narinas joins (~Narinas@187.250.25.111.dsl.dyn.telnor.net) |
| 23:56:36 | × | theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer) |
| 23:57:03 | → | theelous3 joins (~theelous3@unaffiliated/theelous3) |
| 23:57:15 | <hololeap> | @unmtl ContT r1 (Cont r2) a |
| 23:57:15 | <lambdabot> | (a -> (r1 -> r2) -> r2) -> (r1 -> r2) -> r2 |
| 23:57:39 | <hololeap> | @unmtl ContT () (Cont r) a |
| 23:57:39 | <lambdabot> | (a -> (() -> r) -> r) -> (() -> r) -> r |
All times are in UTC on 2021-02-26.