summaryrefslogtreecommitdiff
path: root/testdata/typeclass.out
blob: 7d92928d3326fe6956dc3150451a633d1bec23ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
main is not found
------------ desugared source code
infix 4 ==

infix 4 /=

infix 4 <

infixr 3 &&

infixr 2 ||

not = \(a :: _) -> case'Bool (\_ -> _) (_rhs True) (_rhs False) a

(&&) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs False) (_rhs b) a

(||) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs b) (_rhs True) a

'Eq :: Type -> Type
'Eq
  = \(a :: _) -> match'Bool
    (\_ -> _)
    (_rhs 'Unit)
    a
    (_rhs ('Empty "no instance of 'Eq on ???"))

(==) :: forall a . Eq a => a -> a -> Bool
(==)
  = \ @a @_ -> match'Bool
    (\_ -> _)
    (_rhs
      let b
        = \(c :: _) (d :: _) -> case'Bool (\_ -> _) (_rhs (not d)) (_rhs d) c in b)
    a
    (_rhs undefined)

(/=) = \(a :: _) (b :: _) -> _rhs (not (a == b))
------------ trace
not :: Bool -> Bool
(&&) :: Bool -> Bool -> Bool
(||) :: Bool -> Bool -> Bool
'Eq :: Type -> Type
(==) :: forall a . Eq a => a -> a -> Bool
(/=) :: forall a . Eq a => a -> a -> Bool
------------ tooltips
testdata/typeclass.lc 8:1-8:4
    Bool -> Bool
testdata/typeclass.lc 8:12-8:17
    Bool
testdata/typeclass.lc 8:12-9:17
    Bool -> Bool
testdata/typeclass.lc 9:13-9:17
    Bool
testdata/typeclass.lc 11:6-11:8
    Bool -> Bool -> Bool
testdata/typeclass.lc 11:13-11:14
    _b
testdata/typeclass.lc 11:13-12:19
    Bool -> Bool
testdata/typeclass.lc 12:14-12:19
    Bool
testdata/typeclass.lc 14:7-14:9
    Bool -> Bool -> Bool
testdata/typeclass.lc 14:14-14:15
    _c
testdata/typeclass.lc 14:14-15:17
    Bool -> Bool
testdata/typeclass.lc 15:13-15:17
    Bool
testdata/typeclass.lc 17:7-17:9
    Type -> Type | Type -> Type
testdata/typeclass.lc 17:7-18:27
    Type
testdata/typeclass.lc 18:6-18:8
    forall a . Eq a => a -> a -> Bool
testdata/typeclass.lc 18:13-18:14
    Type
testdata/typeclass.lc 18:13-18:27
    Type
testdata/typeclass.lc 18:18-18:19
    Type
testdata/typeclass.lc 18:18-18:27
    Type
testdata/typeclass.lc 18:23-18:27
    Type | Type
testdata/typeclass.lc 20:3-20:5
    forall a . Eq a => a -> a -> Bool
testdata/typeclass.lc 20:10-20:13
    Bool -> Bool
testdata/typeclass.lc 20:10-20:22
    Bool
testdata/typeclass.lc 20:15-20:16
    _f
testdata/typeclass.lc 20:15-20:19
    _e -> Bool
testdata/typeclass.lc 20:15-20:21
    Bool
testdata/typeclass.lc 20:17-20:19
    forall a . Eq a => a -> a -> Bool
testdata/typeclass.lc 20:20-20:21
    _c
testdata/typeclass.lc 23:17-23:18
    Bool
testdata/typeclass.lc 23:17-24:23
    Bool -> Bool
testdata/typeclass.lc 24:18-24:21
    Bool -> Bool
testdata/typeclass.lc 24:18-24:23
    Bool
testdata/typeclass.lc 24:22-24:23
    _b