ermine-0.6: Ermine

Copyright(c) Edward Kmett and Dan Doel 2012-2014
LicenseBSD3
MaintainerDan Doel <dan.doel@gmail.com>
Stabilityexperimental
Portabilitynon-portable (DeriveDataTypeable)
Safe HaskellNone
LanguageHaskell2010

Ermine.Syntax.Data

Description

This module provides the AST for data type declarations

Documentation

data DataType k t Source

Constructors

DataType Global [Hint] [(Hint, Scope Int Kind k)] [Constructor (Var Int k) (Var Int t)] 

Instances

Show2 DataType 
Eq2 DataType 
Bitraversable DataType 
Serial2 DataType 
Bifunctor DataType 
Bifoldable DataType 
Functor (DataType k) 
Foldable (DataType k) 
Traversable (DataType k) 
Show k => Show1 (DataType k) 
Eq k => Eq1 (DataType k) 
Serial k => Serial1 (DataType k) 
BoundBy (DataType k) (Type k) 
(Eq k, Eq t) => Eq (DataType k t) 
(Show k, Show t) => Show (DataType k t) 
Generic (DataType k t) 
(Binary k, Binary t) => Binary (DataType k t) 
(Serialize k, Serialize t) => Serialize (DataType k t) 
(Serial k, Serial t) => Serial (DataType k t) 
HasName (DataType k t) 
HasGlobal (DataType k t) 
Typeable (* -> * -> *) DataType 
HasKindVars (DataType k t) (DataType k' t) k k' 
HasTypeVars (DataType k t) (DataType k t') t t' 
type Rep (DataType k t) 

kparams :: Lens' (DataType k t) [Hint] Source

tparams :: Lens' (DataType k t) [(Hint, Scope Int Kind k)] Source

typeParameters :: Traversal' (DataType k t) (Hint, Scope Int Kind k) Source

constrs :: Lens (DataType k t) (DataType k u) [Constructor (Var Int k) (Var Int t)] [Constructor (Var Int k) (Var Int u)] Source

constructors :: Traversal (DataType k t) (DataType k u) (Constructor (Var Int k) (Var Int t)) (Constructor (Var Int k) (Var Int u)) Source