GHC 8.0.1挂起。解释或编译错误?

时间:2016-08-22 17:36:16

标签: haskell ghc type-families

有人可以解释为什么以下代码导致G​​HC 8.0.1在编译时永远循环,或者这是一个错误吗?

{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE AllowAmbiguousTypes #-}

main = return $ f (Just 'c')

data D1 x
data D2

type family TF x = t | t -> x
type instance TF (D1 x, a) = Maybe (TF (x, a))
type instance TF (D2, ()) = Char

f :: TF (x, a) -> ()
f _ = ()

1 个答案:

答案 0 :(得分:3)

编译器在没有Cart.tutors << tutor UndecidableInstances的情况下陷入无限循环是一个编译器错误,如jberryman stated。您应该在GHC Trac网站上报告。

我简化了您的示例,可能会或可能不会澄清事情,并可能使您的错误报告更有效。

UndecidableSuperclassCycles