public boolean isDerivation(Type parent, Type child) {
		if (child.equals(parent)) {
			return true;
		} else if (child instanceof Type.Nominal) {
			Type.Nominal t = (Type.Nominal) child;
			Decl.Type decl = t.getLink().getTarget();
			return isDerivation(parent, decl.getType());
		} else {
			return false;
		}
	}
public boolean isDerivation ( Type parent , Type child ) { if ( child . equals ( parent ) ) { return true ; } else if ( child instanceof Type . Nominal ) { Type . Nominal t = ( Type . Nominal ) child ; Decl . Type decl = t . getLink ( ) . getTarget ( ) ; return isDerivation ( parent , decl . getType ( ) ) ; } else { return false ; } }
Check whether one type is a derivation of another. For example, in this
scenario:

<pre>
type parent is (int p) where ...
type child is (parent c) where ...
</pre>

@param parent
The type being derived to
@param child
The type we are trying to derive
@return