2014-12-22 2 views
4

제한 자격을 갖춘 수입에 접두사를 재사용하는 방법 말 :내가 자주는 관련 모듈 세트로 라이브러리를 사용하고 찾을 수

A.B 
A.B.C 
A.B.D 

내가 아는 내가

import A.B (f1, f3) 
import A.B.C (f7) 

하지만 가끔은 작업을 수행 할 수 있습니다 이 함수들은 공통 네임 스페이스를 가지고있어서 메인 네임 스페이스를 오염시키고 싶지 않습니다.

import qualified A.B (f1, f3) 
import qualified A.B.C (f7) 

을하지만 꽤 긴 A.B.C.f7 같은 함수를 호출 할 수 있습니다

그래서 할 수 있습니다.

내가 할 수있는 :

조금 도움이되지만 난 아직도 기억하고 내 기능 B 또는 C에서인지 지정해야
import qualified A.B as B 
import qualified A.B.C as C 

내가 발견 한 것은 당신이다 이 작업을 수행 할 수 있습니다

import qualified A.B as B 
import qualified A.B.C as B 

를 제외하고이 같은 이름을 가진 두 A.BA.B.C의 기능 그리고 당신은 당신이 컴파일 오류가 발생합니다 그것을 사용하려고합니다.

import qualified A.B (f1, f3) as B 
import qualified A.B.C (f7) as B 

하지만이 컴파일되지 않습니다 :

는 그래서 기본적으로 내가하고 싶은 것은 이것이다. 이것이 가능한가요? (아마도 확장 기능 포함), 그렇다면 어떻게 될까요?

답변

5

거의 다 왔어. 대신 시도하십시오

import qualified A.B as B (f1, f3) 
import qualified A.B.C as B (f7) 

이것은 GHC의 확장없이 가능합니다.

관련 문제