2011-08-30 6 views
0

F # 파일을 여러 파일로 분리하려고하는데, 현재 멈추었습니다. 내 원래 Main.fs에서 다음 줄을 Ast.fs에 전달하려고 시도했습니다. Ast.fs에서 나는 넣어했습니다F # 파일을 여러 파일로 분할 할 때 문제가 발생했습니다.

... 
type StartPosition = Position 
type EndPosition = Position 
type TokenPosition = TokenPosition of StartPosition * EndPosition 
... 

가 그때 내 Main.fs

open Ast 

을 추가했습니다. 더입니다 StartPosition로하고 EndPosition, 많은 이해가되지 않습니다

let parse_token token = pipe3 getPosition token getPosition (fun sp t ep -> (t, TokenPosition(sp, ep))) 

, 나는 추측 : 구축하려고 할 때, 이제 다음과 같은 오류

This expression was expected to have type  StartPosition but here has type  Position 
sp 이상

ep을 받고 없습니다입니다 Position의 "typedefs"이상입니다. 여기 뭐가 잘못 됐니?

답변

4

StartPosition이 별칭이 Position 인 경우이 오류 메시지가 표시되어서는 안되는 다른 오류가 있어야합니다. 더 완전한 샘플없이 얘기하기 어렵다, 그러나 여기에서 확인할 수있는 몇 가지 있습니다 :

  • 가 오른쪽 Position 유형 언급하는가? (유형 이름 위에 마우스 포인터를 가져 가면 얻을 수있는 툴팁을보고 유형에 대한 전체 정보를 확인할 수 있습니다)

  • Position 유형이 하나의 파일로 정의되어 있습니까? 다른 파일이 다시 정의 된 경우 Position이라는 두 가지 유형이 있습니다.

+1

스팟! AST.fs.에서 "FParsec를 열지 못했습니다." –

관련 문제