9 Oct
2024
9 Oct
'24
3:33 p.m.
On 8 Oct 2024, at 00:14, Tom Ellis <tom-lists-haskell-cafe-2023@jaguarpaw.co.uk> wrote: data PossiblyRootedTree lengths labels where RootedTree :: AugmentedTree [NodeId] lengths labels UnrootedTree :: AugmentedTree () lengths labels
Isn’t that invalid syntax? Wouldn’t you need either data PossiblyRootedTree lengths labels where RootedTree :: AugmentedTree [NodeId] lengths labels -> PossiblyRootedTree lengths labels UnrootedTree :: AugmentedTree () lengths labels -> PossiblyRootedTree lengths labels or simply (avoiding GADT syntax altogether): data PossiblyRootedTree lengths labels = RootedTree (AugmentedTree [NodeId] lengths labels) | UnrootedTree (AugmentedTree () lengths labels)