# Difference between revisions of "Unicode-symbols"

Roelvandijk (talk | contribs) (created) |
Roelvandijk (talk | contribs) (More content (work in progress)) |
||

Line 10: | Line 10: | ||

Alternatives for existing operators have the same fixity. New operators will have a suitable fixity defined. | Alternatives for existing operators have the same fixity. New operators will have a suitable fixity defined. | ||

+ | |||

+ | ==== UnicodeSyntax ==== | ||

+ | |||

+ | GHC offers the [http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#unicode-syntax UnicodeSyntax] language extension. If you decide to use Unicode in your Haskell source then this extension can greatly improve how it looks. | ||

+ | |||

+ | ==== Input methods ==== | ||

+ | |||

+ | These symbols are all very nice but how do you type them? | ||

+ | |||

+ | TODO | ||

== base-unicode-symbols == | == base-unicode-symbols == | ||

− | + | Extra symbols for the [http://hackage.haskell.org/package/base base] package. | |

+ | |||

+ | API docs: http://hackage.haskell.org/package/base-unicode-symbols | ||

+ | |||

+ | darcs get http://code.haskell.org/~roelvandijk/code/base-unicode-symbols | ||

+ | |||

+ | ====New symbol ideas==== (please add your own) | ||

+ | {| class="wikitable" border="1" | ||

+ | |- | ||

+ | ! Original | ||

+ | ! Symbol | ||

+ | ! Code point | ||

+ | ! Name | ||

+ | |- | ||

+ | | [http://haskell.org/ghc/docs/latest/html/libraries/base-4.2.0.0/Control-Monad.html#v:%3E%3E Control.Monad.>>] | ||

+ | | ≫ | ||

+ | | U+226B | ||

+ | | MUCH GREATER-THAN | ||

+ | |} | ||

== containers-unicode-symbols == | == containers-unicode-symbols == | ||

− | + | Extra symbols for the [http://hackage.haskell.org/package/containers containers] package. | |

+ | |||

+ | API docs: http://hackage.haskell.org/package/containers-unicode-symbols | ||

+ | |||

+ | darcs get http://code.haskell.org/~roelvandijk/code/containers-unicode-symbols | ||

+ | |||

+ | ==== Fixities ==== | ||

+ | |||

+ | What should the fixities for the following symbols be? | ||

+ | |||

+ | {| class="wikitable" border="1" | ||

+ | |- | ||

+ | ! Symbol | ||

+ | ! Code point | ||

+ | ! Name | ||

+ | |- | ||

+ | | ∪ | ||

+ | | U+222A | ||

+ | | UNION | ||

+ | |- | ||

+ | | ∩ | ||

+ | | U+2229 | ||

+ | | INTERSECTION | ||

+ | |- | ||

+ | | ⊆ | ||

+ | | U+2286 | ||

+ | | SUBSET OF OR EQUAL TO | ||

+ | |- | ||

+ | | ⊇ | ||

+ | | U+2287 | ||

+ | | SUPERSET OF OR EQUAL TO | ||

+ | |- | ||

+ | | ⊈ | ||

+ | | U+2288 | ||

+ | | NEITHER A SUBSET OF NOR EQUAL TO | ||

+ | |- | ||

+ | | ⊉ | ||

+ | | U+2289 | ||

+ | | NEITHER A SUPERSET OF NOR EQUAL TO | ||

+ | |- | ||

+ | | ⊂ | ||

+ | | U+2282 | ||

+ | | SUBSET OF | ||

+ | |- | ||

+ | | ⊃ | ||

+ | | U+2283 | ||

+ | | SUPERSET OF | ||

+ | |- | ||

+ | | ⊄ | ||

+ | | U+2284 | ||

+ | | NOT A SUBSET OF | ||

+ | |- | ||

+ | | ⊅ | ||

+ | | U+2285 | ||

+ | | NOT A SUPERSET OF | ||

+ | |} | ||

+ | |||

+ | Intuitively there is a correspondence with numerical operators. Compare the following operators: | ||

+ | |||

+ | {| class="wikitable" border="1" | ||

+ | | ∪ | ||

+ | | + | ||

+ | |- | ||

+ | | ⊃ | ||

+ | | > | ||

+ | |- | ||

+ | | ⊄ | ||

+ | | ≮ | ||

+ | |} | ||

+ | |||

+ | Likewise you would like similar associativities and precedence levels: | ||

+ | |||

+ | <tt> | ||

+ | x + y + z < w == ((x + y) + z) < w | ||

+ | x ∪ y ∪ w ⊂ z == ((x ∪ y) ∪ z) ⊂ w | ||

+ | </tt> | ||

+ | |||

+ | ====New symbol ideas==== (please add your own) |

## Revision as of 12:37, 23 March 2010

## Contents

## Overview

An overview of the packages that provide Unicode symbols.

Naming: A package ** X-unicode-symbols** defines new symbols for functions and operators from the package

**.**

`X`All symbols are documented with their actual definition and information regarding their Unicode code point. They should be completely interchangeable with their definitions.

Alternatives for existing operators have the same fixity. New operators will have a suitable fixity defined.

#### UnicodeSyntax

GHC offers the UnicodeSyntax language extension. If you decide to use Unicode in your Haskell source then this extension can greatly improve how it looks.

#### Input methods

These symbols are all very nice but how do you type them?

TODO

## base-unicode-symbols

Extra symbols for the base package.

API docs: http://hackage.haskell.org/package/base-unicode-symbols

darcs get http://code.haskell.org/~roelvandijk/code/base-unicode-symbols

====New symbol ideas==== (please add your own)

Original | Symbol | Code point | Name |
---|---|---|---|

Control.Monad.>> | ≫ | U+226B | MUCH GREATER-THAN |

## containers-unicode-symbols

Extra symbols for the containers package.

API docs: http://hackage.haskell.org/package/containers-unicode-symbols

darcs get http://code.haskell.org/~roelvandijk/code/containers-unicode-symbols

#### Fixities

What should the fixities for the following symbols be?

Symbol | Code point | Name |
---|---|---|

∪ | U+222A | UNION |

∩ | U+2229 | INTERSECTION |

⊆ | U+2286 | SUBSET OF OR EQUAL TO |

⊇ | U+2287 | SUPERSET OF OR EQUAL TO |

⊈ | U+2288 | NEITHER A SUBSET OF NOR EQUAL TO |

⊉ | U+2289 | NEITHER A SUPERSET OF NOR EQUAL TO |

⊂ | U+2282 | SUBSET OF |

⊃ | U+2283 | SUPERSET OF |

⊄ | U+2284 | NOT A SUBSET OF |

⊅ | U+2285 | NOT A SUPERSET OF |

Intuitively there is a correspondence with numerical operators. Compare the following operators:

∪ | + |

⊃ | > |

⊄ | ≮ |

Likewise you would like similar associativities and precedence levels:

`
`

x + y + z < w == ((x + y) + z) < w x ∪ y ∪ w ⊂ z == ((x ∪ y) ∪ z) ⊂ w

`
`

====New symbol ideas==== (please add your own)