type-families

    4热度

    1回答

    有没有推荐的方法来使用类型类来模拟类OCaml的参数化模块? 对于一个实例,我需要实现复杂的泛型计算的模块,该模块可能会使用不同的 misc进行parmetrized。类型,函数等。更具体地说,让它成为可以用不同的 类型的值,矢量类型(列表,未装箱的矢量,矢量,元组等), 和距离计算策略参数化的kMeans实现。为了方便起见,为了避免疯狂量的中间类型,我想要 有这种计算多态的DataSet类,它包

    0热度

    1回答

    我不能让下面的编译: class Typeable f => Foo f where data Bar :: Typeable 换句话说,我希望定义一个类Foo,其中有一个相关的类型必须是Typeable一个实例。 它看起来像我可以FunctionalDependencies定义同样的事情: class (Typeable b,Typeable f) => Foo f b | f -

    1热度

    1回答

    给定以下代码,从go类型中删除forall a r将失败,并显示“重叠实例用于可键入(D r)”。我想知道为什么? {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVar

    8热度

    2回答

    对不起,我无法想象任何更好的问题标题,所以请先阅读。试想一下,我们有一个封闭式的家庭映射每一种类型,以它的相应Maybe除了maybes自己: doMagic :: a -> Family a doMagic = undefined exampleA = doMagic $ Just() exampleB = doMagic $() 在GHCI摆弄它: type family Fami

    2热度

    1回答

    我正在为我的haskell程序创建一个eDSL,以允许定义一组指令来存储数据。这些指令可能依赖于每个其他结果,甚至序列化到文件以进一步恢复。这里是我想出了(相当冗长,但它是最少的代码量,我可以提取重现我的问题): {-# LANGUAGE TypeFamilies, RankNTypes, ExistentialQuantification, FlexibleContexts #-} modul

    6热度

    1回答

    我试图做一个'UnMaybe'类型的家庭,但它不编译(实例家庭冲突)。 这里是我的代码 {-# LANGUAGE TypeFamilies #-} type family UnMaybe a :: * type instance UnMaybe (Maybe a) = a type instance UnMaybe a = a 错误消息 test.hs:4:16: Conf

    3热度

    1回答

    我从沙箱从Hackage安装最新的GHC-MOD(5.2.1.1)收到此错误: [15 of 38] Compiling Language.Haskell.GhcMod.CabalConfig (Language/Haskell/GhcMod/CabalConfig.hs, dist/dist-sandbox-94286619/build/Language/Haskell/GhcMod/Cabal

    3热度

    1回答

    我已经实现了一个地图类型家庭类型这样 type family MapT (t :: * -> *) (e::[*]) type instance MapT t '[] = '[] type instance MapT t (a ': as) = (t a) ': (MapT t as) 它与类型构造: type MList = MapT Maybe '[Int, String] 给 '

    10热度

    2回答

    我可以说服编译器,一个封闭类型家族中的类型同义词总是满足一个约束吗?这个家庭被一系列有限的促销价值索引。沿 data NoShow = NoShow data LiftedType = V1 | V2 | V3 type family (Show (Synonym (a :: LiftedType)) => Synonym (a :: LiftedType)) where Syno

    8热度

    1回答

    所以我有一个函数apply :: proxy tf -> tf Int -> tf Int它采取一个代理旨在携带一个类型家庭和应用诠释到该类型家庭来确定第二个参数和返回值的类型。 但是,我收到了GHC的一些令人困惑的回应。 {-# LANGUAGE TypeFamilies #-} import Data.Proxy type family F (a :: *) :: * where