Note that the constructor's argument type doesn't have to match the type argument of the data type (see LessThan and Cond above). The following is perfectly legal (though of dubious utility): ```haskell data Thing a where ThingA :: Int -> Thing Bool ThingB :: Bool -> Thing Int
https://github.com/freckle/guides/blob/main/haskell-best-practices.md
Note that the constructor's argument type doesn't have to match the type argument of the data type (see LessThan and Cond above). The following is perfectly legal (though of dubious utility): ```haskell data Thing a where ThingA :: Int -> Thing Bool ThingB :: Bool -> Thing Int
CREATED PULL REQUEST