add apply obj
move module
move either definition
implements List monad (alpha)
implements some error pattern
add explain to define extend method to Stream class