Skip to content

Instantly share code, notes, and snippets.

@dpavsrtrl
Created May 24, 2019 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpavsrtrl/1987bdd8423dc8e609b30abf08da4c13 to your computer and use it in GitHub Desktop.
Save dpavsrtrl/1987bdd8423dc8e609b30abf08da4c13 to your computer and use it in GitHub Desktop.
structural type equality
trait Ate
fun food(): String val => "Something"
interface Named
fun name(): String val => "Somebody"
type NamedEater is (Ate & Named)
class Charlie is (Ate & Named)
new create() =>
None
fun name(): String val => "Charlie"
actor Main
var _env: Env
new create(env: Env) =>
_env = env
var c = Charlie
use_named(c)
fun use_named(x : NamedEater) =>
_env.out.print(x.name() + " ate " + x.food())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment