如何隐式导入常用模块?

xzh*_*zhu 7 haskell

最近我在Haskell中编写了很多脚本.这是一次非常愉快的体验,因为它是我曾经触及过的最简洁的语言之一.

但是,困扰我的一件事是,我必须为import我编写的每个脚本键入相同的s,并且我几乎每次都使用一组模块,例如

import Control.Monad as MO
import Data.ByteString.Lazy as BS
import Data.Char as CH
import Data.Csv as C
import Data.Csv.Streaming as CS
import Data.Foldable as FOLD
import Data.Functor as F
import Data.List as L
import Data.List.Split as LS
import Data.Text.Lazy as T
import Data.Text.Lazy.IO as TI
import Data.Vector as V
import Debug.Trace as TR
import Prelude as P
Run Code Online (Sandbox Code Playgroud)

我的意思是我每次都可以复制和粘贴它们,但有没有办法可以隐藏这些繁琐的进口?就像Prelude隐含进口一样?

dfe*_*uer 13

一些用于某些目的的选项是编写一个或多个"厨房水槽"模块供您自己使用,并且每次都只需导入.不幸的是,当涉及到命名合格的导入时,这似乎没有太大作用.另一种选择是使用{-# LANGUAGE CPP #-}#include一些股票头件.

但是,我不会特别推荐任何这些选项.只需使用您最喜爱的GHC扩展和模块导入保留"库存模板",并教您的文本编辑器使用它.不要忘记修剪你实际上不需要的东西.