Haskell prelude函数可以简化为一组核心函数吗



Haskell prelude函数是否可以简化为一组核心函数,以便所有其他函数都可以根据核心集进行定义?如果是,核心功能是什么?

我刚刚浏览了关于Hackage的Prelude文档。我无法想象在"朴实无华"的Haskell中实现的仅有两个操作是errorseq。在error的情况下,我甚至可以想象用无修饰的Haskell实现一些具有正确指称语义的东西,但它不共享打印到控制台的操作语义。

当然,IO操作的执行引擎和IO操作的实现之间需要一些合作,但操作本身可以合理地在未修饰的Haskell中实现,例如,在Prelude中可用的操作上使用免费monad。

如此微小的核心是可能的,这并不奇怪;毕竟,即使是无聊的旧lambda演算也可以模拟各种有趣的数据类型。