type Element { E | A | B | C } ; see: https://mathworld.wolfram.com/Vierergruppe.html mult : Element Element -- Element =: [ { case | E -> | A -> { case | E -> A | A -> E | B -> C | C -> B } | B -> { case | E -> B | A -> C | B -> E | C -> A } | C -> { case | E -> C | A -> B | B -> A | C -> E } } ] %foreign kabi mult