Currently, Project:M36 will effectively coalesce the atom function signature Integer -> Integer into [IntegerAtom val1, IntegerAtom val2] with a Haskell wrapper, but the wrapper does not support algebraic data types. The goal of this feature would be to support something like this:
import ProjectM36.Module
data Light = Red | Yellow | Green
carCanGo :: Light -> Bool
carCanGo Green = True
carCanGo _ = False
projectM36Functions = do
declareAtomFunction "carCanGo"
To achieve this, Project:M36 needs to verify that the database's definition of Light matches the modules version, then complete the type wrapper.
Currently, Project:M36 will effectively coalesce the atom function signature
Integer -> Integerinto[IntegerAtom val1, IntegerAtom val2]with a Haskell wrapper, but the wrapper does not support algebraic data types. The goal of this feature would be to support something like this:To achieve this, Project:M36 needs to verify that the database's definition of
Lightmatches the modules version, then complete the type wrapper.