# 代数的データ型 Algebraic Data Types (ADT) 直和型 ```haskell data Shape = Circle Float | Rectangle Float Float ``` 直積型 ```haskell data Person = Person String Int ```