fun/deepthought_state.bruijn
# state monad example: logger/writer
:import std/Combinator .
:import std/List .
:import std/Number .
:import std/Monad/State .
log [[[[0 (1 ++ 2) 3]]]]
deepthought answer >>= [correct >>= [check >>= [return]]]
answer log (+42) "Finding answer... "
correct log (0 =? (+42)) "Checking answer... "
check 0 (log [[0]] "Is correct!") (log [[0]] "Is false!")
return pure 2
:test (deepthought [[0]]) ([0 (+42) "Finding answer... Checking answer... Is correct!"])
main [deepthought [[0]] [[0]]]