summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/FD4.hs
blob: 51650324caa897da5bab6e0ac80f90f008dac359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{-# LANGUAGE
    MultiParamTypeClasses,
    FunctionalDependencies,
    UndecidableInstances,
    FlexibleInstances,
    EmptyDataDecls #-}

-- Trac #1797

module ShouldCompile where

data True

data False

class TypeEq type1 type2 result | type1 type2 -> result where
    typeEq :: type1 -> type2 -> result

instance TypeEq soleType soleType True where
    typeEq _ _ = undefined

instance (TypeCast False result) => TypeEq type1 type2 result where
    typeEq _ _ = undefined

class TypeCast type1 type2 | type1 -> type2, type2 -> type1

instance TypeCast soleType soleType