Bor*_*ris 9 haskell default type-constraints
定义默认约束时遇到了一个奇怪的问题.如果约束是单位,则不选择默认实例.在所有其他情况下,它按预期工作.
{-# LANGUAGE TypeFamilies, ConstraintKinds #-}
import qualified GHC.Exts as E
class Expression a where
type Constr a v :: E.Constraint
--type Constr a v = () -- with this line compilation fails
--type Constr a v = v ~ v -- compiles
wrap :: Constr a v => a -> Maybe v
instance Expression () where
wrap () = Just undefined
main = print (wrap () :: Maybe Int)
Run Code Online (Sandbox Code Playgroud)
有人可以澄清类型检测器行为的原因吗?
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |