You have assigned a type to the Personname Blah, but the constructor for Personis still Person {weight :: Int, height :: Int}. Type constructors and type names are different and even stored in different namespaces in Haskell.
As an example:
> data MyBool = MyFalse | MyTrue deriving (Show, Eq)
> type Blah = MyBool
Here the constructors for MyBoolare MyFalseand MyTrue, each with a view *(no type parameters). Then I add an alias MyBoolto Blah:
> MyTrue :: MyBool
MyTrue
> MyTrue :: Blah
MyTrue
, , , , .