adamc@757: fun isNil (t ::: Type) (ls : list t) = adamc@757: case ls of adamc@757: Nil => True adamc@757: | _ => False adamc@196: adamc@757: fun delist (ls : list string) : xbody = adamc@757: case ls of adamc@757: Nil => Nil adamc@757: | Cons (h, t) => {[h]} :: {delist t} adamc@196: adamc@758: fun callback ls = return adamc@758: {delist ls} adamc@758: adamc@758: adamc@757: fun main () = return adamc@757: {[isNil (Nil : list bool)]}, adamc@757: {[isNil (Cons (1, Nil))]}, adamc@757: {[isNil (Cons ("A", Cons ("B", Nil)))]} adamc@196: adamc@757:

{delist (Cons ("X", Cons ("Y", Cons ("Z", Nil))))}

adamc@758: Go! adamc@757: