public Iterable<MessageType> getAllMessages() {
   Iterable<WMethodDeclaration> _methods = WMethodContainerExtensions.methods(this.object);
   final Function1<WMethodDeclaration, MessageType> _function =
       new Function1<WMethodDeclaration, MessageType>() {
         public MessageType apply(final WMethodDeclaration it) {
           Result<MessageType> _messageType = ObjectLiteralWollokType.this.messageType(it);
           return _messageType.getFirst();
         }
       };
   return IterableExtensions.<WMethodDeclaration, MessageType>map(_methods, _function);
 }
 protected void _bind(final WClass c) {
   ClassBasedWollokType _classBasedWollokType = new ClassBasedWollokType(c, null, null);
   this.fixedNode(_classBasedWollokType, c);
   Iterable<WVariableDeclaration> _variableDeclarations =
       WMethodContainerExtensions.variableDeclarations(c);
   final Procedure1<WVariableDeclaration> _function =
       new Procedure1<WVariableDeclaration>() {
         public void apply(final WVariableDeclaration it) {
           BoundsBasedTypeSystem.this.bind(it);
         }
       };
   IterableExtensions.<WVariableDeclaration>forEach(_variableDeclarations, _function);
   Iterable<WMethodDeclaration> _methods = WMethodContainerExtensions.methods(c);
   final Procedure1<WMethodDeclaration> _function_1 =
       new Procedure1<WMethodDeclaration>() {
         public void apply(final WMethodDeclaration it) {
           BoundsBasedTypeSystem.this.bind(it);
         }
       };
   IterableExtensions.<WMethodDeclaration>forEach(_methods, _function_1);
 }
 public String getName() {
   Iterable<WMethodDeclaration> _methods = WMethodContainerExtensions.methods(this.object);
   final Function1<WMethodDeclaration, String> _function =
       new Function1<WMethodDeclaration, String>() {
         public String apply(final WMethodDeclaration it) {
           return it.getName();
         }
       };
   Iterable<String> _map = IterableExtensions.<WMethodDeclaration, String>map(_methods, _function);
   String _join = IterableExtensions.join(_map, " ; ");
   String _plus = ("{ " + _join);
   return (_plus + " }");
 }
 protected void _bind(final WMemberFeatureCall call) {
   this.inferredNode(call);
   WExpression _memberCallTarget = call.getMemberCallTarget();
   if ((_memberCallTarget instanceof WThis)) {
     WMethodDeclaration _method = WollokModelExtensions.method(call);
     WMethodContainer _declaringContext = WollokModelExtensions.declaringContext(_method);
     String _feature = call.getFeature();
     EList<WExpression> _memberCallArguments = call.getMemberCallArguments();
     final WMethodDeclaration referencedMethod =
         WMethodContainerExtensions.lookupMethod(
             _declaringContext, _feature, _memberCallArguments);
     this.operator_spaceship(call, referencedMethod);
   }
 }
 public WMethodDeclaration lookupMethod(final MessageType message) {
   WMethodDeclaration _xblockexpression = null;
   {
     String _name = message.getName();
     List<WollokType> _parameterTypes = message.getParameterTypes();
     final WMethodDeclaration m =
         WMethodContainerExtensions.lookupMethod(this.object, _name, _parameterTypes);
     WMethodDeclaration _xifexpression = null;
     boolean _notEquals = (!Objects.equal(m, null));
     if (_notEquals) {
       _xifexpression = m;
     } else {
       _xifexpression = null;
     }
     _xblockexpression = _xifexpression;
   }
   return _xblockexpression;
 }