My goal is to create a declarative language, with a few places that can be "extended" with functions, so maybe I'm looking at this the wrong way, please let me know if I am.
I'm able to create a ConceptFunction subconcept, and custom Type concept, and custom ConceptFunctionParameter that uses that custom type concept. The thing is, there seems to be a lot of boilerplate for something that seems like it should be fairly simple. The custom Type has something that is very similar to "fields" in BaseLangauge, and actually will probably generate into them, but only some of the fields are available in the function.
Is there a "better" way define functions, parameters, and Types?
I feel like this is missing some languages in MPS core. Like a "ConceptFunctionDeclaration" which could contain a list of parameters declarations, which could contain a Type or function that gets the Type.
And a "type operations" language which let you easily create "dot" operations which can be done on your type in baseLanguage.
Am I thinking about this backward somehow? If not, would it be possible for me to contribute such languages to MPS?