Ticket #7296: Splittable.hs

File Splittable.hs, 500 bytes (added by maeder, 19 months ago)
Line 
1{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, OverlappingInstances #-}
2    class Test a b where
3            test :: a -> b -> [b]
4
5
6
7    data Spec1 = Spec1 Spec2 deriving (Show)
8
9
10
11    data Spec2 = Spec2 deriving (Show)
12
13
14
15    instance Test a Spec1 where
16     test a (Spec1 b) = map Spec1 $ test a b
17
18
19
20    instance Test a Spec2 where
21     test _ _ = [Spec2]
22
23
24
25    instance Test Bool Spec2 where
26     test _ _ = []
27
28
29
30    a = test True (Spec1 Spec2)
31
32    b = map Spec1 $ test True (Spec2)
33