相关疑难解决方法(0)

类型族实例中的约束

我正在Haskell中探索类型系列,试图确定我可以定义的类型级函数的复杂性.我想定义一个封闭的类型级版本mod,如下所示:

{-# LANGUAGE TypeFamilies, DataKinds, TypeOperators, UndecidableInstances #-}
import GHC.TypeLits

type family Mod (m :: Nat) (n :: Nat) :: Nat where
  n <= m => Mod m n = Mod (m - n) n
  Mod m n = m
Run Code Online (Sandbox Code Playgroud)

但是,编译器(GHC 7.10.2)拒绝这一点,因为不允许第一个等式中的约束.价值级别的警卫如何转换为类型级别?这在Haskell目前是否可行?

haskell type-families

8
推荐指数
1
解决办法
321
查看次数

标签 统计

haskell ×1

type-families ×1