Файл Test.hs:
data RestrictionMechanismName = Seccomp | AppArmor | SeLinux | Namespaces | Chroot | Capabilities | CGroups
data LinuxSecurityModule = AppArmor | SeLinux
Из-за строки
data LinuxSecurityModules = AppArmor | SeLinux
`stack runhaskell Test.hs` выдаёт ошибку
Test.hs:3:29:
Multiple declarations of ‘AppArmor’
Declared at: Test.hs:1:43
Test.hs:3:29
Test.hs:3:40:
Multiple declarations of ‘SeLinux’
Declared at: Test.hs:1:54
Test.hs:3:40
Но по смыслу AppArmor и SeLinux это и RestrictionMechanismName и LinuxSecurityModule. Как выход пока сделал функцию:
linuxSecurityModules :: [RestrictionMechanismName]
linuxSecurityModules = [AppArmor, SeLinux]
Есть ли возможность в Haskell сделать, чтобы значение принадлежало нескольким типам по-другому для этого примера?