typechecking - Transitivity of upper bound constraints in scala type checking -


i'm experimenting type-level programming in scala. think following code should type check,

trait t[x] {   type t <: x }  trait a[x, e <: t[t[x]]] extends t[x] {   final type t  = e # t # t } 

but keep getting following type error:

error: overriding type t in trait t bounds <: x;  type t has incompatible type        trait a[x, e <: t[t[x]]] extends t[x] { final type t  = e # t # t }                                                           ^ nothing <: a.this.t? true a.this.t <: x? false 

i though constraint type t <: x in trait t whould force e#t <: t[x] , e#t#t <: x. wrong?


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -