fun trivial(x,y,z) = 1.0; fun mouse(shrew) = shrew::nil; fun easy(simple, complex) = simple orelse complex > 0; fun trout(salmon, pike, mackerel, sole) = let val snapper = (salmon, 4); val eel = if hd(pike) then [mackerel, tl(pike)] else []; in {scales = "a " ^ #1(snapper), tail = (eel, sole)} end;