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
|
{-# LANGUAGE TypeOperators #-}
module Identifiers where
import Data.List (elem, (++))
data Id = Id
data a :* b = a :* b
{-|
* Unadorned:
- Unqualified: '++', 'elem'
- Qualified: 'Data.List.++', 'Data.Lis.elem'
- Namespaced: v'++', t'++', v'elem', t'elem', v'Id', t'Id', v':*', t':*'
* Parenthesized:
- Unqualified: @'(++)' [1,2,3] [4,5,6]@
- Qualified: @'(Data.List.++)' [1,2,3] [4,5,6]@
- Namespaced: v'(++)', t'++', v'(:*)', t'(:*)'
* Backticked:
- Unqualified: @1 '`elem`' [-3..3]@
- Qualified: @1 '`Data.List.elem`' [-3..3]@
- Namespaced: v'`elem`', t'`elem`', v'`Id`', t'`Id`'
* Edge cases:
- Tuples: '()', '(,,,)'
-}
foo :: ()
foo = ()
|