finos / finos/morphir-dotnet

Implement a Morphir IR TypeProvider

Open
#65 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
F#
Stars
14
Forks
12
PR merge metrics
No merged PRs in 30d

Description

Taking a deeper look at F# TypeProviders and its code generation capabilities and meta-programming positioning, it seems like a compelling value add for `morphir-dotnet` to support a TypeProvider that would generate a Morphir model.

**Describe the solution you'd like**

This TypeProvider would allow someone to provide one (or more) Morphir IR files, from which we could generate code that would expose the modules, types, and functions in those files.

Since a TypeProvider allows us to interact with the compiler, we'd be able to also generate compiler errors if there are model errors such as linking errors.

TODO: Add more implementation details (just capturing this as a thought right now)

**Describe alternatives you've considered**
There are other alternatives that provide similar functionality but I think these are all just point in time items as I can see us executing the following over time:

- Create a Morphir to F# code generator using any of or a combination of (FCS, Fantomas, etc)
- Create a Myriad plugin that would give us more power around code-generation and meta-programming
- Create an Elm TypeProvider that generates Morphir IR from Elm (doing this as a type provider would allow us to get compile time support

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.