Solution (source code)

= Solution

Use a <type synonym> for names and an <algebraic data type> with the two teams and their goals in the given positional order:

``
type Team = String
data Match = Match Team Int Team Int
``

`Team` is a synonym, not a new runtime wrapper. `Match` on the left is the <type constructor>, while the same spelling on the right is a <data constructor> in a different namespace. Its value-level <type signature> is `Match :: Team -> Int -> Team -> Int -> Match`.