小编gre*_*ias的帖子

如何有效地添加存在类型的安全货币值?

我编写了一个玩具库,它使用依赖类型来表示货币及其类型签名中的货币:

data Currency = CHF | EUR | PLN | USD
  deriving stock (Bounded, Enum, Eq, Read, Show)

data CurrencyWitness (c :: Currency) where
  CHFWitness :: CurrencyWitness CHF
  EURWitness :: CurrencyWitness EUR
  PLNWitness :: CurrencyWitness PLN
  USDWitness :: CurrencyWitness USD

deriving stock instance Eq (CurrencyWitness c)
deriving stock instance Show (CurrencyWitness c)


data Money (currency :: Currency) representation = Money
  { moneyCurrency :: !(CurrencyWitness currency)
  , moneyAmount :: !representation
  }
  deriving stock (Eq, Show)

add :: (Num r) => Money …
Run Code Online (Sandbox Code Playgroud)

haskell currency existential-type dependent-type

4
推荐指数
1
解决办法
114
查看次数

如何在 macOS 上使用 Kitty 来使用 Fish 的 Alt 绑定

我第一次获得 macOS 机器,我不知道如何使用alt+等命令E打开.$EDITOR

\n

我不想将\xe2\x8c\x98密钥重新映射到alt系统范围,但我不知道如何在 Kitty 或 Fish 中重新映射。

\n

为什么鱼绑定在 mac os 中不起作用?是一个相关问题,但那里的答案仅适用于 iTerm2。

\n

macos terminal keyboard-events fish

0
推荐指数
1
解决办法
1922
查看次数