norename class list{A}

noncreation

    map{B}(f: fun1{A, B}): list{B}

    fold(g: fun2{A, A, A}, id: A): A

    le(other: list{A}, el_le: fun2{A, A, bool}): bool

    private nge(ohead: A, otail: list{A}, el_le: fun2{A, A, bool}): bool

end
