text: package org.klesun.deep_assoc_completion.structures.psalm;
  
  import java.util.List;
  
  public class TFunc implements IType
  {
  	final public List<Param> params;
  	final public IType returnType;
  
  	public TFunc(List<Param> params, IType returnType)
  	{
  		this.params = params;
  		this.returnType = returnType;
  	}
  
  	public static class Param
  	{
  		final IType type;
  		final Boolean isOptional;
  		final Boolean isSpread;
  
  		public Param(IType type, Boolean isOptional, Boolean isSpread) {
  			this.type = type;
  			this.isOptional = isOptional;
  			this.isSpread = isSpread;
  		}
  	}
  }
  