Opened 5 years ago

Closed 5 years ago

#3038 closed bug (duplicate)

Associated type use triggers a bogus error message

Reported by: conal Owned by:
Priority: normal Milestone:
Component: Compiler Version: 6.11
Keywords: associated type synonym Cc: conal@…
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty:
Test Case: Blocked By:
Blocking: Related Tickets:

Description

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

Change History (1)

comment:1 Changed 5 years ago by chak

  • Resolution set to duplicate
  • Status changed from new to closed

The signature of `ch' is ambiguous. See #1897 for similar examples and a long discussion.

Note: See TracTickets for help on using tickets.