main :: forall a . (Eq a, Num (MatVecScalarElem a), Eq a, Num a) => Bool main = \b c d e f -> (b == c) (g (fromInt b f 3) (fromInt b f 1)) (fromInt b f 5) ------------ desugared source code f = _lhs f \(a :: _) -> case'List (\(_ :: _) -> _) (_rhs undefined) (\(b :: _) (_ :: _) -> _rhs (b : a)) a g = _lhs g \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs undefined) (_rhs (a + b)) (fromInt 3 == b) main :: Bool main = _lhs main (_rhs (g (fromInt 3) (fromInt 1) == fromInt 5)) ------------ core code f :: forall a . [a] -> [a] f = \a b -> case'List (\_ -> [a]) (_rhs (undefined [a])) (\c _ -> _rhs (c : b)) b g :: forall a . (Num (MatVecScalarElem a), Eq a, Num a) => a -> a -> a g = \a b c d e f -> case'Bool (\_ -> a) (_rhs (undefined a)) (_rhs (PrimAdd a b e f)) ((a == c) (fromInt a d 3) f) main :: forall a . (Eq a, Num (MatVecScalarElem a), Eq a, Num a) => Bool main = \a b c d e -> _rhs ((a == b) (g (fromInt a e 3) (fromInt a e 1)) (fromInt a e 5)) ------------ tooltips as-pattern01.lc 1:1-1:2 forall a . [a] -> [a] as-pattern01.lc 1:14-1:15 _e as-pattern01.lc 1:14-1:16 [_d] -> [_d] as-pattern01.lc 1:14-1:17 [_c] as-pattern01.lc 1:15-1:16 forall a . a -> [a] -> [a] as-pattern01.lc 1:16-1:17 _e as-pattern01.lc 3:1-3:2 forall a . (Num (MatVecScalarElem a), Eq a, Num a) => a -> a -> a as-pattern01.lc 3:11-3:12 _g as-pattern01.lc 3:11-3:14 _f -> _f as-pattern01.lc 3:11-3:16 _d as-pattern01.lc 3:13-3:14 forall a . Num (MatVecScalarElem a) => a -> a -> a as-pattern01.lc 3:15-3:16 _c as-pattern01.lc 7:9-7:13 Type as-pattern01.lc 8:1-8:5 forall a . (Eq a, Num (MatVecScalarElem a), Eq a, Num a) => Bool as-pattern01.lc 8:8-8:9 forall a . (Num (MatVecScalarElem a), Eq a, Num a) => a -> a -> a as-pattern01.lc 8:8-8:11 _e -> _e as-pattern01.lc 8:8-8:13 _f as-pattern01.lc 8:8-8:16 _e -> Bool as-pattern01.lc 8:8-8:18 Bool as-pattern01.lc 8:10-8:11 _b as-pattern01.lc 8:12-8:13 _b as-pattern01.lc 8:14-8:16 forall a . Eq a => a -> a -> Bool as-pattern01.lc 8:17-8:18 _b ------------ warnings Uncovered pattern(s) at as-pattern01.lc:1:1: f y@(x:xs) = x:y ^ Missing case(s): f _ | [] <- _a Uncovered pattern(s) at as-pattern01.lc:3:1: g x@3 y = x + y ^ Missing case(s): g _ _ | False <- fromInt 3 == _a