关于haskell中"类型"和"数据"的困惑

sry*_*sry 3 haskell types

data MoneyAmount = Amount Float Currency
     deriving (Show, Eq)
data Currency = EUR | GBP | USD | CHF 
     deriving (Show, Eq)     
type Account = (Integer, MoneyAmount)

putAmount :: MoneyAmount -> Account -> Account
putAmount mon acc = undefined
Run Code Online (Sandbox Code Playgroud)

我需要编写一个为账户增加资金的功能(如果增加的钱是账户中的错误货币,则显示错误).

我知道如何创建金额

let moni = Amount 6.6 EUR
Run Code Online (Sandbox Code Playgroud)

但我不知道写什么来创建一个帐户?(我希望句子有意义)我不知道如何操纵输入来做整个添加帐户的事情.

我尝试过类似的东西

let acc = Account 1 moni
Run Code Online (Sandbox Code Playgroud)

我的问题是如何操纵帐户,以便我可以编写该功能.

jwo*_*der 6

type创建一个类型同义词 ; an Account与an 完全相同(Integer, MoneyAmount),你用同样的方式写它:

let acc = (1, moni)
Run Code Online (Sandbox Code Playgroud)