--- /dev/null
+Methods in Ocean
+
+methods are any function that is found from a given value.
+It can be associated with the type or the value
+
+An interface is a set of methods. A concrete type can export an
+interface and a formal type can require an interface.
+
+A value can be combined with a concrete interface to override or augment
+what it's type natively has. Value methods are not so easily
+overridden.
+
+The first arg of a method must match the owner, and other args can be of
+that type
+
+Interface names are per module.
+Method names are per interface. When a variable supports multiple
+interfaces and names don't conflict, interface name can be left out.
+
+maybe value method use . and type methods use : ??
+ that would make "case functionname :" tricky to parse.
+
+
+Thought:
+ Rather than anon structs, allow struct AND references to be marked as 'follow'
+ so anything behind the object appears in the parent.
+ Then foo.method can possible follow a chain of pointers from foo to find the method.
+
+ foo might be an inode and have a pointer to a superblock, which has a
+ pointer to a methods struture contains 'getattr'. Then 'foo.getattr'
+ transparently becomes 'foo.super.super_methods.getattr.
+
+ Question. In what circumstances is 'foo' passed as first argument?
+ Probably it happens by default, but some syntactic escape allows something else
+ to be passed. Maybe foo::something() ??