diff options
Diffstat (limited to 'hypsrc-test/src')
| -rw-r--r-- | hypsrc-test/src/Constructors.hs | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/hypsrc-test/src/Constructors.hs b/hypsrc-test/src/Constructors.hs index c52bdc72..8cb46535 100644 --- a/hypsrc-test/src/Constructors.hs +++ b/hypsrc-test/src/Constructors.hs @@ -25,3 +25,11 @@ unnorf :: Norf -> [Foo]  unnorf (Norf (Bar, xs, Bar)) = xs  unnorf (Norf (Baz, xs, Baz)) = reverse xs  unnorf _ = undefined + + +unnorf' :: Norf -> Int +unnorf' x@(Norf (f1@(Quux _ n), _, f2@(Quux f3 _))) = +    x' + n * unfoo f1 + aux f3 +  where +    aux fx = unfoo f2 * unfoo fx * unfoo f3 +    x' = sum . map unfoo . unnorf $ x  | 
