summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/tc106.hs
blob: 565bbad9b4d5cb1f43c521f5dc16b2ac1bf8a671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE MultiParamTypeClasses, FlexibleContexts #-}

-- !!! Mutually recursive kind inference
-- Exposes a bug in 4.08 (fixed in 4.08 pl1)

module ShouldCompile where

-- This pair will tickle the bug
class Lookup c k a where
    lookupAll :: Sequence seq a => c -> k -> seq a

class Lookup (s a) Int a => Sequence s a where
    foo :: s a


-- This decl will tickle it all by itself
class Matrix a e where
   amap2  :: (Matrix a d) =>
             (e -> d -> e) -> a ix e -> a ix d -> a ix e