我创建了创建一个名为dispatcher与3同伙功能get-dispatcher,set-dispatcher和call-dispatcher与调度员的工作(他们得到一个调度功能,添加一个或拨打一个宏)。这一切都很好!但是,现在我想自动创建相关的函数名称,因此我将所有这些宏的内部元素放入一个定义了这个简单构造函数的let中。请注意,在下面的代码中,只有get-函数的名称由该自动化构造而成。 set
我有一些代码使用类型来消除实例的歧义(真正的代码是使用GHC.TypeLits类型标记的singletons,但我认为这不是密切相关的),我想使用let绑定来避免文本级别的重复;不幸的是,这会使结果单调。 以下是问题的一个例子: class Foo a where
foo :: a
instance Foo Int where
foo = 0
instance Foo