Macro hygiene is the concept of macros that work in all contexts; they don't affect and aren't affected by anything around them. Ideally all macros would be fully hygienic, but there are lots of pitfalls and traps that make it all too easy to accidentally write unhygienic macros. This guide attempts to provide a comprehensive resource for writing the most hygienic macros.
First, a little aside on the details of Rust's module system, and specifically paths; it is
| {-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
| module SliderPuzzle where | |
| import Prelude hiding (Either(..)) | |
| import Data.Vector (Vector, (//), (!?)) | |
| import qualified Data.Vector as Vec | |
| import Control.Arrow (second, (***)) | |
| import Control.Monad.State.Strict | |
| import Data.Set (Set) | |
| import qualified Data.Set as Set |
Twelve Go Best Practices
Francesc Campoy Flores Gopher at Google @francesc http://campoy.cat/+
- Best practices
This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.
https://web.archive.org/web/20070429181654/http://www.sics.se/~joe/