summaryrefslogtreecommitdiff
path: root/testsuite/tests/overloadedlists/should_run/overloadedlistsrun04.hs
blob: 478d8d2c2268f52a2e25d5587822021aecda14fa (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
28
{-# LANGUAGE OverloadedLists, TypeFamilies #-}

import qualified Data.Set as S
import GHC.Exts

main = do putStrLn (f [])       
          putStrLn (f [1,2])    
          putStrLn (f [2,0])    
          putStrLn (f [3,2])     
          putStrLn (f [2,7])
          putStrLn (f [2,2])
          putStrLn (f [1..7])


f :: S.Set Int -> String
f [] = "empty"
f [_] = "one element"
f [2,_] = "two elements, the smaller one is 2"
f [_,2] = "two elements, the bigger one is 2"
f _ = "else"

          
instance Ord a => IsList (S.Set a) where
 type (Item (S.Set a)) = a
 fromList = S.fromList
 toList = S.toList