Shea Levy

Results 136 comments of Shea Levy

@phadej Even when fully concrete? I.e. wouldn't `ReaderT Int IO` be representational? When not concrete we can just require `m` to be `RepresentationalMonad` too, right?

Indeed the universal instance here when specialized to `ReaderT` should automatically be morally equivalent to `instance RepresentationalMonad m => RepresentationalMonad (ReaderT r m)`

Yes, this works ```haskell foo :: (forall a b. Coercible a b => Coercible (f a) (f b), Applicative f) => f () foo = pure () bar :: IO...

Hmm I see. I don't fully understand why yet, but yes that's not working here to redefine ReaderT as a data type. Are there any real-world examples of such transformers?...

It's odd to me that `p2` typechecks but `p3` doesn't... Is this a necessary limitation? ```haskell newtype ReaderT r m a = ReaderT { runReaderT :: r -> m a...

Right, but fully unsaturated `ReaderT` doesn't have representational role either. I'm wondering why partial saturation doesn't change role inference in one case and does in another. It's not clear why...

Sorry to bring this back up. I've opened https://gitlab.haskell.org/ghc/ghc/-/issues/22644, which I think would help with specifically the issue here without requiring the full solution of higher order roles or the...

Currently putting this into my project ```haskell {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE StandaloneKindSignatures #-} module Control.Monad.Trans.Control.Extra where...

For what it's worth, this makes `MonadTransControl` *less* general and arguably less "fancy". But fair enough on my use case, it's somewhat esoteric, I want to use `ReaderT` to implicitly...

I'm not able to set a blink-exported location as the default download location for Safari