bind(fromL.next(), toL.next(), variables, bound);
}
if (fromL.hasNext() || toL.hasNext())
throw new BindException("Iterables are not of the same size");
} else if (from instanceof MapWithTail && to instanceof Map) {
final MapWithTail fromMWT = (MapWithTail) from;
final Map<Object, Object> toM = (Map<Object, Object>) to;
final Map<Object, Object> tail = Maps.newLinkedHashMap(toM);
if (toM.size() < fromMWT.map.size())
throw new BindException("Map must be at least size of head of MWT");
for (final Entry<Object, Object> e : fromMWT.map.entrySet()) {