module HaskellMaybe where
import Testbed
import StaticMaybe
defnsHaskellMaybe
= ["isJust" :>:
Forall [Star]
([] :=>
(TAp tMaybe (TGen 0) `fn` tBool)),
"isNothing" :>:
Forall [Star]
([] :=>
(TAp tMaybe (TGen 0) `fn` tBool)),
"fromJust" :>:
Forall [Star]
([] :=>
(TAp tMaybe (TGen 0) `fn` TGen 0)),
"fromMaybe" :>:
Forall [Star]
([] :=>
(TGen 0 `fn` TAp tMaybe (TGen 0) `fn` TGen 0)),
"maybeToList" :>:
Forall [Star]
([] :=>
(TAp tMaybe (TGen 0) `fn` TAp tList (TGen 0))),
"listToMaybe" :>:
Forall [Star]
([] :=>
(TAp tList (TGen 0) `fn` TAp tMaybe (TGen 0))),
"catMaybes" :>:
Forall [Star]
([] :=>
(TAp tList (TAp tMaybe (TGen 0)) `fn` TAp tList (TGen 0))),
"mapMaybe" :>:
Forall [Star, Star]
([] :=>
((TGen 0 `fn` TAp tMaybe (TGen 1)) `fn` TAp tList (TGen 0) `fn` TAp tList (TGen 1)))]