Here is a small example which shows the problem

{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE AllowAmbiguousTypes #-}

module TypeFamilyTest where

import GHC.Prim

type family A ∷ * → Constraint

type family C f g a where C f g a = f (g a)

a ∷ A (f (g a)) ⇒ ()
a = ()

b ∷ A (C f g a) ⇒ ()
b = a


On Wednesday, August 13, 2014 6:54:45 PM UTC-7, Richard Eisenberg wrote:
Your operating assumption sounds right. Do you have a complete, minimal example showing the error? If not, I recommend using -fprint-explicit-kinds to see if kinds are getting in your way at all.

Richard

On Aug 13, 2014, at 8:02 PM, Ian Milligan <ianm...@gmail.com> wrote:

> When a closed type family has only one instance it seems like it should never fail to simplify. Yet this doesn't appear to be the case. When I defined (in GHC 7.8.3) the closed type family
> type family (:.:) f g a where (:.:) f g a = f (g a)
> I get errors such as
> 'Could not deduce (Object c3 ((:.:) f g a) ~ Object c3 (f (g a)))'
> (where Object is a Constraint family), indicating that f (g a) is not being substituted for (:.:) f g a as desired. Any idea why this happens?
> _______________________________________________
> Haskell-Cafe mailing list
> Haskel...@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe