使用Peano风格的类型级自然函数,编写一个绝对不同的类型级函数(也就是类型族)是相当容易的: {-# LANGUAGE DataKinds, StandaloneKindSignatures, TypeFamilies#-}
type family AbsDiff xy where AbsDiff Z y
我正在尝试定义一个函数来找出两个数字的绝对差,这样两个数都 absoluteDifference 2 5absoluteDifference = abs . (-) 在我看来,这将abs应用于减去两个数字的结果。然而,这给了我一个错误 * Could not deduce (Num (a -> a)) arising from a use of `abs'
(maybe you h
我正在将概括为一个n-ary组合,但我很难将界面做得很好。也就是说,我不知道如何在类型级别上使用数字文字,同时仍然能够对后继者进行模式匹配。翻滚我自己的nats{-# LANGUAGE MultiParamTypeClasses #-}myTwo :: Nat-- But GHC thinks my type-level nat literal is a