main :: Bool main = True ------------ desugared source code 'B = _lhs 'B (_rhs 'Bool) 'F = _lhs 'F \(a :: _) (b :: _) -> _rhs ' (a, b) main = _lhs main (_rhs ((True :: B) && fst ((True, 'c') :: F Bool Char))) ------------ core code 'B :: Type 'B = _rhs 'Bool 'F :: Type -> Type -> Type 'F = \a b -> _rhs ' (a, b) main :: Bool main = _rhs True ------------ tooltips 3:6-3:7 Type 3:10-3:14 Type 5:6-5:7 Type -> Type -> Type 5:14-5:20 Type 5:15-5:16 _e 5:15-5:19 [Type] 5:18-5:19 _c | [Type] 7:1-7:5 Bool 7:8-7:22 Bool -> Bool 7:8-7:55 Bool 7:9-7:13 Bool 7:9-7:18 B 7:17-7:18 Type 7:20-7:22 Bool -> Bool -> Bool 7:23-7:26 forall a b . (a, b) -> a 7:23-7:55 Bool 7:28-7:39 (Bool, Char) 7:28-7:54 F Bool Char 7:29-7:33 Bool 7:35-7:38 Char | ((Char)) 7:43-7:44 Type -> Type -> Type 7:43-7:49 Type -> Type 7:43-7:54 Type 7:45-7:49 Type 7:50-7:54 Type