ref: d87c0959d85b40fcf60b9c6dd0a2f2111f888b55
dir: /test/traitimpl.myr/
use std
trait frobable @a =
frob : (val : @a -> @a)
;;
impl frobable int =
frob = {val
-> val * 2
}
;;
impl frobable int16 =
frob = {val
-> val * 4
}
;;
impl frobable byte[:] =
frob = {val
-> val[:4]
}
;;
generic foo = {x : @a :: frobable @a
-> frob(x)
}
const main = {
var a, b, c
a = foo(123)
b = foo((11 : int16))
c = frob("meeeeeeh")
std.put("{},{},{}\n", a, b, c)
}