2013-09-30 2 views
3

데이터 패밀리 인스턴스의 생성자를 내보내려면 어떻게해야합니까? 나는 (코드 주석 참조) 성공하지 않고 다양한 방법을 시도했다 :데이터 패밀리 인스턴스 생성자 내보내기

module Test (
    --Foo() (..) 
    --type Foo() (..) 
    --UnitBar 
) where 

class Foo a where 
    data Bar a :: * 

instance Foo() where 
    data Bar() = UnitBar 

내가 successfuly 생성자를 내보낼 수 있었던 유일한 방법은

module Test where

을 수행 할 때

괄호가 없음을 확인하십시오. 이 방법의 단점은 정보가 너무 많이 남습니다!

+0

'모듈 테스트 (Bar (..)) where' – viorior

답변

8

사용

module Test (
    Bar(..) 
) where 

관련 데이터 가족 Bar에서 모든 생성자를 보냅니다. 또는

module Test (
    Bar(UnitBar) 
) where 

단일 생성자 만 내보내기.

자세한 내용은 relevant section in GHC's documentation을 참조하십시오.

관련 문제