diff options
Diffstat (limited to 'testsuite/tests/deSugar/should_compile/ds025.hs')
-rw-r--r-- | testsuite/tests/deSugar/should_compile/ds025.hs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/testsuite/tests/deSugar/should_compile/ds025.hs b/testsuite/tests/deSugar/should_compile/ds025.hs new file mode 100644 index 0000000000..fdbf0ff6ae --- /dev/null +++ b/testsuite/tests/deSugar/should_compile/ds025.hs @@ -0,0 +1,16 @@ +-- !!! ds025 -- overloaded assoc -- AbsBinds + +module ShouldCompile where + +ehead xs loc | null xs = error ("4"++loc) + | True = head xs + +assoc key lst loc + = if (null res) then error ("1"++loc++"2"++(show key)) + else (ehead res "3") + where res = [ val | (key',val) <- lst, key==key'] + +assocMaybe :: (Eq a) => a -> [(a,b)] -> Maybe b +assocMaybe key lst + = if (null res) then Nothing else (Just (head res)) + where res = [ val | (key',val) <- lst, key==key'] |