Skip to content

add support for ADTs in haskell module import #387

@agentm

Description

@agentm

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions