Logs: liberachat/#haskell
| 2025-12-03 16:38:11 | <tomsmeding> | the function looks like: \sh -> let suffixes = ... in \i -> ...body... |
| 2025-12-03 16:38:46 | <tomsmeding> | putting the (\i -> body) in a separate binding and NOINLINE-marking that binding seems to ensure that 'suffixes' is properly shared over multiple adjacent calls |
| 2025-12-03 16:39:21 | <Leary> | `let { {-# NOINLINE suffixes #-}; suffixes = ... } in \i -> ...` |
| 2025-12-03 16:39:58 | <tomsmeding> | doesn't work |
| 2025-12-03 16:40:28 | <Leary> | Weird. I've used it in a `where` block. |
| 2025-12-03 16:40:45 | × | lucabtz quits (~lucabtz@user/lucabtz) (Remote host closed the connection) |
| 2025-12-03 16:40:45 | <tomsmeding> | I recall that it worked before, in this very function -- something broke it |
| 2025-12-03 16:41:20 | <tomsmeding> | anyway, I'll just live with the 10% :) |
| 2025-12-03 16:41:25 | <tomsmeding> | thanks for thinking along |
| 2025-12-03 16:43:41 | <fgarcia> | /buffer 2 |
| 2025-12-03 16:47:17 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
| 2025-12-03 16:49:38 | → | sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 2025-12-03 16:50:45 | × | aljazmc quits (~aljazmc@user/aljazmc) (Quit: Leaving) |
| 2025-12-03 16:56:04 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-03 17:02:45 | → | comerijn joins (~merijn@77.242.116.146) |
| 2025-12-03 17:02:46 | trickard_ | is now known as trickard |
| 2025-12-03 17:03:40 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2025-12-03 17:05:43 | → | Googulator55 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-03 17:05:51 | × | Googulator56 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-03 17:07:23 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-03 17:07:31 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 2025-12-03 17:09:15 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.7.2) |
| 2025-12-03 17:09:46 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds) |
| 2025-12-03 17:13:19 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 2025-12-03 17:13:39 | × | spew quits (~spew@user/spew) (Ping timeout: 260 seconds) |
| 2025-12-03 17:15:11 | <ski> | @hoogle (a -> [a] -> b -> b) -> b -> [a] -> b |
| 2025-12-03 17:15:11 | <lambdabot> | No results found |
| 2025-12-03 17:15:16 | → | spew joins (~spew@user/spew) |
| 2025-12-03 17:17:11 | → | mikess joins (~sam@user/mikess) |
| 2025-12-03 17:19:50 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-12-03 17:23:51 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-12-03 17:26:23 | × | kuribas` quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 2025-12-03 17:28:16 | → | Tuplanolla joins (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) |
| 2025-12-03 17:35:51 | × | Googulator55 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-03 17:36:04 | → | Googulator55 joins (~Googulato@85-238-68-117.pool.digikabel.hu) |
| 2025-12-03 17:39:53 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
| 2025-12-03 17:40:25 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-12-03 17:41:49 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2025-12-03 17:41:54 | → | pr1sm joins (~pr1sm@24.91.163.31) |
| 2025-12-03 17:42:18 | → | euphores joins (~SASL_euph@user/euphores) |
| 2025-12-03 17:47:16 | × | pr1sm quits (~pr1sm@24.91.163.31) (Remote host closed the connection) |
| 2025-12-03 17:47:32 | × | Jackneill quits (~Jackneill@178-164-177-218.pool.digikabel.hu) (Remote host closed the connection) |
| 2025-12-03 17:47:42 | → | Jackneill joins (~Jackneill@178-164-177-218.pool.digikabel.hu) |
| 2025-12-03 17:56:08 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 2025-12-03 17:56:37 | × | annamalai quits (~annamalai@157.32.222.111) (Read error: Connection reset by peer) |
| 2025-12-03 17:56:57 | → | annamalai joins (~annamalai@157.32.222.111) |
| 2025-12-03 17:59:01 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 255 seconds) |
| 2025-12-03 17:59:01 | divlamir_ | is now known as divlamir |
| 2025-12-03 18:02:09 | → | wbooze joins (~wbooze@2001-4dd7-9813-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) |
| 2025-12-03 18:05:22 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 2025-12-03 18:05:46 | × | Googulator55 quits (~Googulato@85-238-68-117.pool.digikabel.hu) (Quit: Client closed) |
| 2025-12-03 18:08:44 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-03 18:09:08 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-03 18:09:55 | × | mulk quits (~mulk@pd9514972.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 2025-12-03 18:14:38 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-12-03 18:18:11 | → | mulk joins (~mulk@pd9514972.dip0.t-ipconnect.de) |
| 2025-12-03 18:23:38 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-03 18:23:46 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 2025-12-03 18:23:52 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-03 18:25:53 | <__monty__> | tomsmeding: That part of the structure is necessary. Ordering of the elements is significant. |
| 2025-12-03 18:27:33 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 2025-12-03 18:31:25 | ← | Anarchos parts (~Anarchos@91-161-254-16.subs.proxad.net) () |
| 2025-12-03 18:31:52 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 2025-12-03 18:33:59 | × | skum quits (~skum@user/skum) (Quit: WeeChat 4.7.2) |
| 2025-12-03 18:34:22 | → | skum joins (~skum@user/skum) |
| 2025-12-03 18:37:36 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 2025-12-03 18:42:46 | <haskellbridge> | <Zemyla> If f is representational and Applicative, then does that necessarily imply that liftA2 coerce a b = coerce a <*> b? |
| 2025-12-03 18:44:24 | <tomsmeding> | well, `liftA2 f x y = f <$> x <*> y` is a law |
| 2025-12-03 18:45:33 | <tomsmeding> | so it sounds like you're asking: if f's argument is representational, do we have `fmap coerce x = coerce x` for `x :: f (a -> b)` |
| 2025-12-03 18:46:11 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-03 18:47:48 | <tomsmeding> | which sounds like it _ought_ to be true, but I don't know what to conclude that from |
| 2025-12-03 18:48:48 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-03 18:49:01 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-12-03 18:49:56 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 2025-12-03 19:01:45 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 2025-12-03 19:03:15 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-03 19:03:15 | ljdarj1 | is now known as ljdarj |
| 2025-12-03 19:07:28 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-03 19:07:41 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-03 19:10:19 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 260 seconds) |
| 2025-12-03 19:12:11 | <Leary> | Zemyla: Say we have `Functor F` with `type role F representational`. That means we have `forall a b. Coercible a b => Coercible (F a) (F b)`. `Coercible` can be modeled as an implicit `->` restricted to canonical no-ops, so (ignoring the other direction) this corresponds to a `liftCoercion :: (a -> b) -> F a -> F b` function operating on the restricted domain. |
| 2025-12-03 19:12:24 | <Leary> | @free liftCoercion :: (a -> b) -> F a -> F b |
| 2025-12-03 19:12:24 | <lambdabot> | g . h = k . f => $map_F g . liftCoercion h = liftCoercion k . $map_F f |
| 2025-12-03 19:13:04 | <Leary> | Let g = k = coerce @a @b; h = f = id @a. This satisfies the precondition, giving us: fmap (coerce @a @b) . liftCoercion (coerce @a @a) = coerce @(F a) @(F b) . fmap (id @a) |
| 2025-12-03 19:13:44 | <Leary> | Boiling down to `fmap coerce = coerce`. |
| 2025-12-03 19:16:41 | → | Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-03 19:23:24 | → | ft joins (~ft@p508db844.dip0.t-ipconnect.de) |
| 2025-12-03 19:26:10 | <haskellbridge> | <Zemyla> Okay, so it is true. |
| 2025-12-03 19:27:39 | <yin> | @type join @((->) _) |
| 2025-12-03 19:27:43 | <lambdabot> | Monad ((->) w) => (w -> (w -> a)) -> w -> a |
| 2025-12-03 19:27:54 | <yin> | aren't those parenthesis redundant? |
| 2025-12-03 19:28:07 | <yin> | the inner ones |
| 2025-12-03 19:28:20 | <EvanR> | yes |
| 2025-12-03 19:29:11 | <yin> | grinds my gears |
| 2025-12-03 19:29:15 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2025-12-03 19:31:12 | <haskellbridge> | <Zemyla> I'm not sure, but I think it'd even mean that liftA2 coerce = coerce (<*>). |
| 2025-12-03 19:34:58 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-12-03 19:35:40 | × | Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-03 19:35:47 | → | Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-03 19:44:09 | × | Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
All times are in UTC.