cleaned up effect inference. signatures as expected now. introduced effect checking contexts. use optional expected effect when computing the effect of a tree, this allows to report effect mismatch errors precisely wherer they are introduced.