Add minimal function types support * [x] Optional * [x] Either * [ ] Result
Add minimal function types support