typ 0.1.1

Type-level programming in Rust
Documentation
pub use by_address::ByAddress;
pub use indexmap::{IndexMap, IndexSet};
pub use itertools::Itertools;
pub use proc_macro2::{Span, TokenStream};
pub use quote::{format_ident, quote, quote_spanned, ToTokens};
pub use radix_trie::{Trie, TrieCommon, TrieKey};
pub use std::{
    borrow::{Borrow, BorrowMut, Cow},
    cell::{Cell, Ref, RefCell, RefMut},
    cmp::Ordering,
    collections::{BTreeMap, BTreeSet, HashMap, HashSet},
    convert::{TryFrom, TryInto},
    fmt::Debug,
    hash::Hash,
    hash::Hasher,
    iter::{self, Extend, FromIterator, Sum},
    mem,
    ops::{Add, AddAssign, Deref, DerefMut},
    rc::{Rc, Weak},
};
pub use syn::{
    parse::{Parse, ParseStream},
    parse_macro_input,
    punctuated::Punctuated,
    spanned::Spanned,
    token,
    visit_mut::VisitMut,
    Arm, AttrStyle, Attribute, BinOp, Block, ConstParam, Error, Expr, ExprAssign, ExprBinary,
    ExprBlock, ExprCall, ExprIf, ExprIndex, ExprLet, ExprLit, ExprMatch, ExprMethodCall, ExprPath,
    ExprReturn, ExprTuple, ExprUnary, Field, Fields, FnArg, GenericArgument, GenericParam,
    Generics, Ident, ImplItem, ImplItemMethod, ImplItemType, Item, ItemEnum, ItemFn, ItemImpl,
    ItemMod, ItemStruct, ItemTrait, ItemUse, Lifetime, LifetimeDef, Lit, LitBool, LitInt, Local,
    Pat, PatIdent, PatPath, PatTuple, PatType, Path, PathArguments, PathSegment, PredicateType,
    QSelf, Receiver, ReturnType, Signature, Stmt, Token, TraitBound, TraitBoundModifier, Type,
    TypeParam, TypeParamBound, TypeParen, TypePath, TypeTraitObject, TypeTuple, UnOp, Variant,
    Visibility, WherePredicate,
};

pub const IDENT_PREFIX: &str = "__TYP_";