它看起来replit.com
是基于 Nix 的,它使用replit.nix
配置文件来配置 Nix 环境,包括加载的 GHC 包。
因此,让这个工作的一种方法是编辑replit.nix
文件。(默认情况下,“文件”选项卡中不会显示,但您可以单击右上角垂直的“...”并选择“显示隐藏文件”进行查看。)修改它看起来就像是:
{ pkgs }: {
deps = [
(pkgs.haskellPackages.ghcWithPackages (pkgs: [
pkgs.cryptonite
]))
pkgs.haskell-language-server
];
}
现在,当您运行源代码时,它应该重新配置 Nix 环境并加载所需的cryptonite
包。您可能还需要稍微修改您的代码,因为它使用OverloadedStrings
扩展,而hashWith
不是 IO 操作。我得到了以下Main.hs
工作:
{-# LANGUAGE OverloadedStrings #-}
import Crypto.Hash (hashWith, SHA256(..))
import Data.ByteString (ByteString)
main = do
print $ hashWith SHA256 ("hello" :: ByteString)