main :: Bool main = True ------------ desugared source code a :: [Float] a = _lhs a (_rhs let a = _lhs _k (_rhs 2.0); b = _lhs k (_rhs ((\(c :: _) -> c) a)) in concatMap (\(d :: _) -> [d *! b]) [1.0, b]) main :: Bool main = _lhs main (_rhs ((\(a :: _) -> case'List (\(_ :: _) -> _) undefined (\(b :: _) (c :: _) -> case'Bool (\(_ :: _) -> _) undefined (case'List (\(_ :: _) -> _) undefined (\(d :: _) (e :: _) -> case'Bool (\(_ :: _) -> _) undefined (case'List (\(_ :: _) -> _) True (\(_ :: _) (_ :: _) -> undefined) e) (4.0 == d)) c) (2.0 == b)) a) a)) ------------ core code a :: [Float] a = _rhs (1.0 *! k : [] ++ foldr (++) [] (map (\a -> [a *! k]) [k])) main :: Bool main = _rhs True ------------ tooltips 1:6-1:13 Type 1:7-1:12 Type 2:1-2:2 [Float] 2:6-2:7 _f 2:6-2:9 MatVecScalarElem _e -> _e 2:6-2:10 _e | [_d] 2:6-2:36 [Float] 2:7-2:9 forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a 2:9-2:10 Float 2:15-2:16 _b | Float 2:19-2:22 Float 2:28-2:36 [Float] 2:29-2:32 Float 2:34-2:35 Float | [Float] 4:9-4:13 Type 5:1-5:5 Bool 5:8-6:28 Bool 5:13-5:14 [Float] 6:24-6:28 Bool | Bool | Bool | Bool | Bool ------------ warnings Uncovered pattern(s) at testdata/listcompr04.lc:5:13: main = case a of ^ Missing case(s): [] (_ : _) | False <- 2.0 == _b [_] | True <- 2.0 == _b (_ : _ : _) | True <- 2.0 == _b, False <- 4.0 == _b (_ : _ : _ : _) | True <- 2.0 == _b, True <- 4.0 == _b