Diagonalization/ dupe for monads and tuples?

Matthew Farkas-Dyck strake888 at gmail.com
Wed Sep 16 19:39:46 UTC 2020


We also have

diag = join bipure

and (in pseudo-Haskell)

diag = unJoin . pure
  where
    newtype Join f a = Join { unJoin :: f a a } deriving (Functor)
    deriving instance Biapplicative f => Applicative (Join f)

The latter seems on its face potentially related to the instance for
lists of fixed length, but i am not sure how deep the connection may
be.


More information about the Libraries mailing list