Skip to content

Associated type use triggers a bogus error message

In GHCi, version 6.11.20090115 built from HEAD

{-# LANGUAGE TypeOperators, TypeFamilies #-}
{-# OPTIONS_GHC -Wall #-}

-- With associate type synonym, the ch' definition leads to
-- 
--       Couldn't match expected type `Basis u1'
--              against inferred type `Basis u'
--         Expected type: u1 :-* v
--         Inferred type: u :-* v
--       In the expression: ch
--       In the definition of `ch'': ch' = ch
-- 
-- With associated data type, no problem.


class HasBasis u where type Basis u :: *

-- class HasBasis u where data Basis u :: *


type u :-* v = Basis u -> v

ch :: (HasBasis u, HasBasis v) =>
      (v :-* w) -> (u :-* v) -> (u :-* w)
ch = undefined

ch' :: (HasBasis u, HasBasis v) =>
       (v :-* w) -> (u :-* v) -> (u :-* w)
ch' = ch
Trac metadata
Trac field Value
Version 6.11
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC conal@conal.net
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information