[Haskell-cafe] Type family weirdness
David Feuer
david.feuer at gmail.com
Sun Dec 6 02:58:25 UTC 2015
If I have
{-# LANGUAGE PolyKinds, TypeFamilies #-}
import Data.Type.Coercion
type family X :: k
and I want
coercionXX :: Coercion X X,
the obvious thing,
coercionXX = Coercion,
doesn't work:
Couldn't match representation of type ‘X’ with that of ‘X’
NB: ‘X’ is a type function, and may not be injective
Relevant role signatures: type role X nominal
Relevant bindings include
coercionXX :: Coercion X X (bound at Fold.hs:167:1)
In the expression: Coercion
In an equation for ‘coercionXX’: coercionXX = Coercion
However, if I write
coercionXX = x where x = Coercion,
that does work! What gives?
More information about the Haskell-Cafe
mailing list