[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / lib / ghc / Maybes_mc.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Maybes where
3 import Prelude(thenMaybe)
4 import PreludeStdIO(Maybe(..))
5 data Maybe a   = Nothing | Just a
6 data MaybeErr a b   = Succeeded a | Failed b
7 allMaybes :: [Maybe a] -> Maybe [a]
8         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
9 assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
10         {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
11 catMaybes :: [Maybe a] -> [a]
12         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
13 failMaB :: b -> MaybeErr a b
14         {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
15 failMaybe :: Maybe a
16         {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
17 findJust :: (a -> Maybe b) -> [a] -> Maybe b
18         {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
19 firstJust :: [Maybe a] -> Maybe a
20         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
21 foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
22         {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
23 listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
24         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
25 mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
26         {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
27 maybeToBool :: Maybe a -> Bool
28         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing  -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
29 mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
30         {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
31 returnMaB :: a -> MaybeErr a b
32         {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
33 returnMaybe :: a -> Maybe a
34         {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
35 thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
36         {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_  u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
37 thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
38         {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing  -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_  u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
39