Различные результаты, полученные стеком runghc против стека ghci Haskell

Я пишу парсер, используя Megaparsec. По сути, основной файл открывает и читает содержимое файла, а затем анализирует его. При запуске основного файла в ghci все вырабатывалось правильно img-1

Но когда я попытался запустить основной файл, используя стек runghc - app / Main.hs, произошла странная ошибка синтаксического анализа: img-2

Вот проект на GitHub: https://github.com/phuongduyphan/dbml-parser-haskell

Может ли sb взглянуть и сказать, что я делаю не так? Почему запуск одной и той же основной функции приводит к различным выводам из стека ghci и стека runghc?

Всего 1 ответ


Я клонировал ваш репозиторий и попытался:

stack runghc -- app/Main.hs holistics.dbml

И получил:

Right 
( DBMLState 
    { tableS = fromList 
        [ 
            ( 0
            , NTable 
                { ntId = 0
                , ntGroupId = Nothing
                , ntName = "users" 
                , ntTableSettings = Nothing
                , ntFieldIds = [ 0 ]
                , ntIndexIds = []
                } 
            ) 
        ]
    , enumS = fromList []
    , refS = fromList []
    , tableGroupS = fromList []
    , fieldS = fromList 
        [ 
            ( 0
            , NField 
                { nfId = 0
                , nfTableId = 0
                , nfEnumId = Nothing
                , nfName = "id" 
                , nfType = "int" 
                , nfFieldSettings = Just [ FieldNote "abc" ]
                } 
            ) 
        ]
    , indexS = fromList []
    , endpointS = fromList []
    , tableIdCounter = 1
    , enumIdCounter = 0
    , refIdCounter = 0
    , tableGroupIdCounter = 0
    , fieldIdCounter = 1
    , indexIdCounter = 0
    , endpointIdCounter = 0
    } 
)

Проблема, скорее всего, связана с тем, как настроен стек или локальная среда разработки. Для справки, работает

stack --version

Дает мне

Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2

Обновление или переустановка стека может быть возможным решением.


Есть идеи?

10000