packages feed

deepcontrol-0.5.3.0: test/unit_MonadMorph-bind2.hs

import Test.HUnit hiding (State)

import DeepControl.Applicative
import DeepControl.Monad.Morph 
import DeepControl.Monad.Trans.Except
import DeepControl.Monad.Trans.Identity

import Control.Monad.Trans.Maybe

-----------------------------------------------
-- Level-1 

a :: MaybeT Identity a
a = (|*|) $ (.*) undefined

b :: MaybeT Identity a
b = (|*|) $ (.*) undefined

f :: Identity a -> Identity a1 -> IO a2
f x y = (.*) $ undefined

program :: MaybeT IO a
program = 
    a |>= \x ->
    b |>= \y -> 
    (|*|) (f x y)

calc_program :: IO (Maybe a)
calc_program = runMaybeT program

-- > calc_program

------------------------------------------------------
--

main :: IO ()
main = do
    --runTestTT tests_
    return ()

{-
tests_ :: Test
tests_ = test [ 
      "1" ~: do
        actual <- calc_program
        actual @?= Just undefined
    ]
-}