list a ::= Nil | Cons a (list a); tp2 a b ::= Mk2 a b; tp3 a b c ::= Mk3 a b c; tp4 a b c d ::= Mk4 a b c d; ;; error = error; zip la lb = case la of Nil -> case lb of Nil -> Nil; Cons b bs -> error end; Cons a as -> case lb of Nil -> error; Cons b bs -> Cons (Mk2 a b) (zip as bs) end end; zip2 la lb = case la of Nil -> Nil; Cons a as -> case lb of Nil -> Nil; Cons b bs -> Cons (Mk2 a b) (zip2 as bs) end end; zip3 la lb lc = case la of Nil -> Nil; Cons a as -> case lb of Nil -> Nil; Cons b bs -> case lc of Nil -> Nil; Cons c cs -> Cons (Mk3 a b c) (zip3 as bs cs) end end end; zip4 la lb lc ld = case la of Nil -> Nil; Cons a as -> case lb of Nil -> Nil; Cons b bs -> case lc of Nil -> Nil; Cons c cs -> case ld of Nil -> Nil; Cons d ds -> Cons (Mk4 a b c d) (zip4 as bs cs ds) end end end end; { Arg Result Group Total Func Case Anna Norm Norm Name Rec Points Points Max Nodes Nodes Nodes Cost ap rp ------------------------------------------------------------------------------------------------ _zip2 yes 16 7 5 21 1 2 251588 5671.3 306.2 _zip3 yes 64 11 6 29 1 3 1726793 6487.6 177.82 _zip4 yes 256 19 7 37 1 4 13445545 9471.6 114.35 }