existential-type

    10热度

    1回答

    我已经得到了他们的工作是计算型a WRT类型的某些价值函数的一些最佳值的函数a -> v type OptiF a v = (a -> v) -> a 然后我有一个想要存储这样的容器与另一种功能在一起的功能,其使用的值的值: data Container a = forall v. (Ord v) => Cons (OptiF a v) (a -> Int) 的想法是,谁实现类型的函数Op

    9热度

    1回答

    我想在我的代码中添加一些本地函数的类型签名。但是,它们的类型涉及匿名的,存在边界的类型变量。由于它们是匿名的,我不知道如何编写类型签名。我怎样才能引用这种类型的变量? 在以下示例中,go的类型为[b] -> Int -> Int,其中b是由模式匹配T (x_shared:xs) g绑定的类型。我可以写什么类型的签名? data T = forall a. T [a] (a -> a -> Int)

    2热度

    2回答

    我想在Scala中使用foldLeft运算符连接一系列Traversable视图,并且遇到了我不明白的类型差异错误。 我可以使用reduce连接像这样的Traversable视图的列表。 val xs = List(1,2,3,4).map(Traversable(_).view).reduce((a: TraversableView[Int, Traversable[_]], b: Traver

    4热度

    1回答

    我感兴趣的是从Coutts等人的Stream Fusion论文中编码此Stream类型。我正在探索Scala中的流融合,尝试使用宏代替GHC的重写规则。 data Stream a = ∃s. Stream (s → Step a s) s data Step a s = Done | Yield a s | Skip s 我已经尝试了几种不同的方法,但我不知

    5热度

    1回答

    符合遇到问题,类型为“种”: trait Sys[ S <: Sys[S]] trait Expr[S <: Sys[S], A] trait Attr[S <: Sys[S], A[_]] def test[ S <: Sys[S]]: Attr[S, ({type l[x<:Sys[x]]=Expr[x,Int]})#l] = ??? 这种失败 error: kinds of the

    9热度

    2回答

    假设我正在编写DSL并希望支持幻像类型支持和严重类型表达式。我的值类型可能是 {-# LANGUAGE GADTs, DataKinds #-} data Ty = Num | Bool deriving (Typeable) data Val a where VNum :: Int -> Val Num VBool :: Bool -> Val Bool ,我可以

    1热度

    1回答

    界是否有可能写出这样的事情和重用HelperTest.AnyHelper类型? class HelperUtil { /* this is what I would like to write... reuse the AnyHelper type in the definition */ def accept[HelperTest.AnyHelper](helper : Help

    0热度

    2回答

    通过this问题,我发现this文章关于来自Precog的'配置'模式。我想这两个模块: case class Pet(val name: String) trait ConfigComponent { type Config def config: Config } trait Vet { def vaccinate(pet: Pet) = {

    1热度

    1回答

    使用以下类型和类定义,我不明白为什么我会在下面创建instance时出错并发生错误。 我需要MyMap来保存异构值的映射。 {-# LANGUAGE ExistentialQuantification #-} module Scratch.SO_ExtistentialTypes where import Data.Map type MyMap a = Map String a cl

    3热度

    1回答

    {-# LANGUAGE ExistentialQuantification, DeriveDataTypeable #-} import Data.Typeable; data EnumBox = forall s. (Enum s, Show s) => EB s deriving Typeable instance Show EnumBox where sh