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 |