하스켈에서 두 개의 스택 대기열을 구현하려고했지만 처음에는이 오류가 발생합니다. "접두사로"심지어 모호한 어커런스 '빈'
TwoStacksQueue.hs:3:5:
Ambiguous occurrence ‘empty’
It could refer to either ‘DataStructures.Queue.TwoStacksQueue.empty’,
defined at TwoStacksQueue.hs:15:1
or ‘LS.empty’,
imported from ‘DataStructures.Stack.LinearStack’
이
코드입니다 (난 IsEmpty 함수로 시작 캔트) :module A (Foo, Bar) where
data Foo = …
data Bar = …
당신이 쓰기 :
module DataStructures.Queue.TwoStacksQueue
(Queue
, empty
, isEmpty
, enqueue
, dequeue
, first
) where
import DataStructures.Stack.LinearStack as LS
data Queue a = Empty | Node a (Stack a) (Stack a)
empty :: Queue a
empty = Empty
줄 번호를 확인하십시오. 오류는 내보내기 목록에 있습니다. 당신은'empty'를 export하지만 그 범위 내에 두 개의 이름이 있습니다. 당신은 아마도'Import qualified DataStructures.Stack ... '를 원할 것입니다. – user2407038