use std trait frobable @a = frob : (val : @a -> void);; impl frobable int# = frob = {val std.put("intptr,") };; impl frobable char# = frob = {val std.put("charptr\n") };; generic foo = {x : @a :: frobable @a frob(x)} const main = { var a = (123 : int) var b = 'c' foo(&a) foo(&b)}
use std
trait frobable @a =
frob : (val : @a -> void)
;;
impl frobable int# =
frob = {val
std.put("intptr,")
}
;;
impl frobable char# =
frob = {val
std.put("charptr\n")
}
;;
generic foo = {x : @a :: frobable @a
frob(x)
}
const main = {
var a = (123 : int)
var b = 'c'
foo(&a)
foo(&b)
}