| 1 | module Main where |
|---|
| 2 | |
|---|
| 3 | data Foo = Foo Int deriving (Eq, Show) |
|---|
| 4 | |
|---|
| 5 | class Proposition a where |
|---|
| 6 | |
|---|
| 7 | instance Proposition Foo where |
|---|
| 8 | |
|---|
| 9 | data (Proposition a, Show a) => F a = P a | F :/\: F |
|---|
| 10 | -- data (Proposition a, Show a) => F a = P a | (F a) :/\: (F a) |
|---|
| 11 | |
|---|
| 12 | f = (P (Foo 3)) :/\: (P (Foo 5)) |
|---|