import "Prelude" import "JavaBuiltin" as Java class Seq seq el where myLength :: seq -> Integer myGet :: seq -> Integer -> el instance (b ~ Character) => Seq String b where myLength = Java.method "length" myGet = Java.method "charAt" instance (b ~ a) => Seq [a] b where myLength = Java.method "size" myGet = Java.method "get" //main :: (Character, String) main = (myGet "abc" 1, myGet ["a", "b", "c"] 1) -- (b,b)