@@ -5,6 +5,7 @@ module Data.OneOrMore
@@ -62,3 +63,22 @@ map func oneOrMore =
63 More left right ->
64 More left right ->
64 More (map func left) (map func right)
65 More (map func left) (map func right)
72+destruct :: (a -> [a] -> b) -> OneOrMore a -> b
73+destruct func oneOrMore =
74+ destructHelp func oneOrMore []
77+destructHelp :: (a -> [a] -> b) -> OneOrMore a -> [a] -> b
78+destructHelp func oneOrMore xs =
84+ destructHelp func a (toListHelp b xs)