标签: haskell-src-exts

使用haskell-src-exts解析UnicodeSyntax

我有一个使用Unicode语法的Haskell源文件:

{-# LANGUAGE UnicodeSyntax #-}
succ' :: Int ? Int
succ' = succ

main :: IO ()
main = print $ succ' 1
Run Code Online (Sandbox Code Playgroud)

这与GHC解析并运行良好.另外,Stylish-haskell和hlint(都基于haskell-src-exts)可以毫无困难地读取这个文件.但是,当我尝试使用haskell-src-exts解析它时:

import Language.Haskell.Exts (parseModule)

main = do
    x <- readFile "test.hs"
    print $ parseModule x
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

ParseFailed (SrcLoc {srcFilename = "<unknown>.hs", srcLine = 6, srcColumn = 1}) "TypeOperators is not enabled"
Run Code Online (Sandbox Code Playgroud)

但是,在扩展列表中显式提供UnicodeSyntax或使用parseFile工作正常:

import Language.Haskell.Exts

main = do
    x <- readFile "test.hs"
    print $ parseModuleWithMode defaultParseMode
        { extensions = [UnicodeSyntax]
        } x

    parseFile "test.hs" >>= print
Run Code Online (Sandbox Code Playgroud)

知道第一种方法失败的原因吗?

haskell haskell-src-exts

11
推荐指数
1
解决办法
461
查看次数

Haskell表达式的Alpha转换

给定一个Haskell表达式,我想执行alpha转换,即.重命名一些非自由变量.

我已经开始实现我自己的函数了,它可以在haskell-src-exts Exp树上运行,但事实证明它非常重要,所以我不禁想知道 - 是否有一个易于使用的已建立的库这种源转换的解决方案?理想情况下,它应该与haskell-src-exts集成.

haskell lambda-calculus haskell-src-exts

4
推荐指数
1
解决办法
865
查看次数