-- TODO: improve this code, defining an instance of Data for Atom GADT
-- and use the Data type class interface to get the constructor.
getType :: (Typeable a) => Atom a -> String
getType = head . words . show
getType :: (Typeable a) => Atom a -> String
getType = head . words . show
getType = head . words . show