Attempt to change branch -> Expression

* CodeBlock<generic> : to output casted types
* CodeBlock = ImmutableList
* Word is now primitively made of LambdaExpression instead of Func<>
* Word take Type as IN/OUT