Issue 023 の対応過程で、renClassDecls :: [A.ClassDecl] -> RN [TempBind] 内関数である clsadd を super class に対応させたが、 かなり特別なケースのみ対応となっている。
現状のコードは以下のようになっている:
clsadd (maybe_sc, A.AppTy (A.Tycon n) _) = do cname <- qname $ origName n sps <- case maybe_sc of Just sc -> do s <- qname $ (\(A.ParTy (A.AppTy (A.Tycon i) _)) -> origName i) sc return [s] Nothing -> return [] st <- get let ce = rnCe st ce' = fromMaybe (error $ "addClass failed: " ++ show (cname, ce)) (addClass cname sps ce) put $ st{rnCe=ce'} return cname
いずれも、言語仕様にそって、一般的な形を受け付けるようにしなければならない。