 	}
 }
 
-struct Fun<A, C> {
+struct Fun<A : protocol<Arbitrary, CoArbitrary>, C : Arbitrary> {
 	let p : FunProxy<A, Any, C>
 
 


}

extension Fun /*: Functor*/ {
	typealias B = Swift.Any


//  Copyright (c) 2015 Robert Widmann. All rights reserved.
//

internal class FunProxy<A : protocol<Arbitrary, CoArbitrary>, B, C : Arbitrary> { }

internal class Pair<A, B, C> : FunProxy<A, B, C> {
	typealias FunType = Fun<(A, B), C>
