summaryrefslogblamecommitdiff
path: root/test/files/neg/bug608.scala
blob: 24f515651a23b91e062ef21d6ce08af6897de341 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
















                                                                                      
trait CrashDueToTypeError {
	def id[a](x :a) :a = x

	trait Bifunctor {
		type a; //	 content
		type s <: Bifunctor

		// uncomment        this-vvvvvvvvvvvvvvvvvvvvvvvvvvvv, and it compiles
		def bimap[c](f :a=>c) :s{/*type s=Bifunctor.this.s;*/type a=c; }
	}

	def hylo[hs <: Bifunctor,ha,hb,hc]
	    (f :hb=>hs{type s=hs; type a=ha},
	     g :hs{type s=hs; type a=ha}=>hc)(x :hb)
	     :hc
	     = g(f(x).bimap(id))
}