}
// Top level supercombinator logic
if (nElements <= 0) {
return list.getValue();
} else {
TYPE_List $case2;
switch (($case2 = (((TYPE_List)(java.lang.Object)list.getValue()))).getOrdinalValue()) {
case 0: {
// Cal.Core.Prelude.Nil
return Drop.i_Nil;
}
case 1: {
// Cal.Core.Prelude.Cons
// Decompose data type to access members.
RTValue listTail = $case2.get_tail();
nElements = (nElements - 1);
list = listTail.evaluate($ec);
continue TRLoop;
}