[Haskell-cafe] Identity operator for types

Jack Kelly jack at jackkelly.name
Fri May 17 23:52:27 UTC 2019

Juan Miguel Vilar <jvilar at uji.es> writes:

> El 17/5/19 a las 13:01, Jack Kelly escribió:
>> I do not like the sibling thread's suggestion of using closed type
>> families...
> I can't see the sibling thread you mentioned. On the other hand, as I
> said it is sort of an aesthetic question, so I think I can live with
> Identity.

Oh. In that case, here is the blog post they discussed, with the
approach that I personally dislike:


The key part is the HKD type family:

    {-# LANGUAGE TypeFamilies #-}

    -- "Higher-Kinded Data"
    type family HKD f a where
      HKD Identity a = a
      HKD f        a = f a

    data Person' f = Person
      { pName :: HKD f String
      , pAge  :: HKD f Int
      } deriving (Generic)


-- Jack

More information about the Haskell-Cafe mailing list