| sumList : rec t {l : <Cons {data : U32,rest : rec t!}#|Nil Unit>}! -> U32; |
| sumList r = take r2 { l = z } = r : rec t {l : <Cons {data : U32,rest : rec t!}# |
| |Nil Unit>}! |
| in case z : <Cons {data : U32,rest : rec t!}#|Nil Unit> of |
| Nil u -> 0 : U32 |
| | v2 -> case v2 : <Cons {data : U32,rest : rec t!}# |
| |Nil Unit take> of |
| Cons s -> take s2 { rest = x } = s : {data : U32 |
| ,rest : rec t {l : <Cons {data : U32 |
| ,rest : rec t!}# |
| |Nil Unit>}!}# |
| in ((s : {data : U32 |
| ,rest : rec t!}#).data : U32) + ((sumList[ ] : rec t {l : <Cons {data : U32 |
| ,rest : rec t!}# |
| |Nil Unit>}! |
| -> U32) (x : rec t {l : <Cons {data : U32 |
| ,rest : rec t!}# |
| |Nil Unit>}!) : U32) : U32 |
| end : U32 |
| end : U32 |
| end : U32 |
| end : U32; |