 | syb-with-class-0.2: Scrap Your Boilerplate With Class | Contents | Index |
|
| Data.Generics.SYB.WithClass.Basics |
|
|
|
|
|
| Synopsis |
|
|
|
| Documentation |
|
| module Data.Typeable |
|
| module Data.Generics.SYB.WithClass.Context |
|
| data Proxy |
|
|
| class (Typeable a, Sat (ctx a)) => Data ctx a where |
| | Methods | | gfoldl :: Proxy ctx -> (forall b c . Data ctx b => w (b -> c) -> b -> w c) -> (forall g . g -> w g) -> a -> w a | | | gunfold :: Proxy ctx -> (forall b r . Data ctx b => c (b -> r) -> c r) -> (forall r . r -> c r) -> Constr -> c a | | | toConstr :: Proxy ctx -> a -> Constr | | | dataTypeOf :: Proxy ctx -> a -> DataType | | | dataCast1 :: Typeable1 t => Proxy ctx -> (forall b . Data ctx b => w (t b)) -> Maybe (w a) | | Mediate types and unary type constructors
| | | dataCast2 :: Typeable2 t => Proxy ctx -> (forall b c . (Data ctx b, Data ctx c) => w (t b c)) -> Maybe (w a) | | Mediate types and binary type constructors
|
| | Instances | | Sat (ctx Bool) => Data ctx Bool | | Sat (ctx Char) => Data ctx Char | | Sat (ctx DataType) => Data ctx DataType | | Sat (ctx Double) => Data ctx Double | | Sat (ctx Float) => Data ctx Float | | Sat (ctx Handle) => Data ctx Handle | | Sat (ctx Int) => Data ctx Int | | Sat (ctx Int16) => Data ctx Int16 | | Sat (ctx Int32) => Data ctx Int32 | | Sat (ctx Int64) => Data ctx Int64 | | Sat (ctx Int8) => Data ctx Int8 | | Sat (ctx Integer) => Data ctx Integer | | Sat (ctx Ordering) => Data ctx Ordering | | Sat (ctx TyCon) => Data ctx TyCon | | Sat (ctx TypeRep) => Data ctx TypeRep | | Sat (ctx Word) => Data ctx Word | | Sat (ctx Word16) => Data ctx Word16 | | Sat (ctx Word32) => Data ctx Word32 | | Sat (ctx Word64) => Data ctx Word64 | | Sat (ctx Word8) => Data ctx Word8 | | Sat (ctx ()) => Data ctx () | | (Sat (ctx (a, b)), Data ctx a, Data ctx b) => Data ctx (a, b) | | (Sat (ctx (a, b, c)), Data ctx a, Data ctx b, Data ctx c) => Data ctx (a, b, c) | | (Sat (ctx (a, b, c, d)), Data ctx a, Data ctx b, Data ctx c, Data ctx d) => Data ctx (a, b, c, d) | | (Sat (ctx (a, b, c, d, e)), Data ctx a, Data ctx b, Data ctx c, Data ctx d, Data ctx e) => Data ctx (a, b, c, d, e) | | (Sat (ctx (a, b, c, d, e, f)), Data ctx a, Data ctx b, Data ctx c, Data ctx d, Data ctx e, Data ctx f) => Data ctx (a, b, c, d, e, f) | | (Sat (ctx (a, b, c, d, e, f, g)), Data ctx a, Data ctx b, Data ctx c, Data ctx d, Data ctx e, Data ctx f, Data ctx g) => Data ctx (a, b, c, d, e, f, g) | | (Sat (ctx (a -> b)), Data ctx a, Data ctx b) => Data ctx (a -> b) | | (Sat (ctx (ForeignPtr a)), Typeable a) => Data ctx (ForeignPtr a) | | (Sat (ctx (IO a)), Typeable a) => Data ctx (IO a) | | (Sat (ctx (IORef a)), Typeable a) => Data ctx (IORef a) | | (Sat (ctx (MVar a)), Typeable a) => Data ctx (MVar a) | | (Sat (ctx (Maybe a)), Data ctx a) => Data ctx (Maybe a) | | (Sat (ctx (Ptr a)), Typeable a) => Data ctx (Ptr a) | | (Sat (ctx (Ratio a)), Data ctx a, Integral a) => Data ctx (Ratio a) | | (Sat (ctx (StablePtr a)), Typeable a) => Data ctx (StablePtr a) | | (Sat (ctx [a]), Data ctx a) => Data ctx [a] | | (Sat (ctx [b]), Sat (ctx (Array a b)), Typeable a, Data ctx b, Data ctx [b], Ix a) => Data ctx (Array a b) | | (Sat (ctx (Either a b)), Data ctx a, Data ctx b) => Data ctx (Either a b) | | (Sat (ctx (ST s a)), Typeable s, Typeable a) => Data ctx (ST s a) |
|
|
|
| type GenericT ctx = forall a . Data ctx a => a -> a |
|
| gmapT :: Proxy ctx -> GenericT ctx -> GenericT ctx |
|
| newtype ID x |
|
|
| type GenericM m ctx = forall a . Data ctx a => a -> m a |
|
| gmapM :: Monad m => Proxy ctx -> GenericM m ctx -> GenericM m ctx |
|
| type GenericQ ctx r = forall a . Data ctx a => a -> r |
|
| gmapQ :: Proxy ctx -> GenericQ ctx r -> GenericQ ctx [r] |
|
| gmapQr :: Data ctx a => Proxy ctx -> (r' -> r -> r) -> r -> GenericQ ctx r' -> a -> r |
|
| newtype Qr r a |
|
|
| fromConstr :: Data ctx a => Proxy ctx -> Constr -> a |
| Build a term skeleton
|
|
| fromConstrB :: Data ctx a => Proxy ctx -> (forall b . Data ctx b => b) -> Constr -> a |
| Build a term and use a generic function for subterms
|
|
| fromConstrM :: (Monad m, Data ctx a) => Proxy ctx -> (forall b . Data ctx b => m b) -> Constr -> m a |
| Monadic variation on "fromConstrB"
|
|
| data DataType |
| Representation of datatypes.
| A package of constructor representations with names of type and module.
| The list of constructors could be an array, a balanced tree, or others.
| | Constructors | | Instances | |
|
|
| data Constr |
| Representation of constructors
| | Constructors | | Instances | |
|
|
| data DataRep |
| Public representation of datatypes
| | Constructors | | AlgRep [Constr] | | | IntRep | | | FloatRep | | | StringRep | | | NoRep | |
| Instances | |
|
|
| data ConstrRep |
| Public representation of constructors
| | Constructors | | Instances | |
|
|
| type ConIndex = Int |
| Unique index for datatype constructors.
| Textual order is respected. Starts at 1.
|
|
| data Fixity |
| Fixity of constructors
| | Constructors | | Instances | |
|
|
| dataTypeName :: DataType -> String |
| Gets the type constructor including the module
|
|
| dataTypeRep :: DataType -> DataRep |
| Gets the public presentation of datatypes
|
|
| constrType :: Constr -> DataType |
| Gets the datatype of a constructor
|
|
| constrRep :: Constr -> ConstrRep |
| Gets the public presentation of constructors
|
|
| repConstr :: DataType -> ConstrRep -> Constr |
| Look up a constructor by its representation
|
|
| mkDataType :: String -> [Constr] -> DataType |
| Constructs an algebraic datatype
|
|
| mkConstr :: DataType -> String -> [String] -> Fixity -> Constr |
| Constructs a constructor
|
|
| dataTypeConstrs :: DataType -> [Constr] |
| Gets the constructors
|
|
| constrFields :: Constr -> [String] |
| Gets the field labels of a constructor
|
|
| constrFixity :: Constr -> Fixity |
| Gets the fixity of a constructor
|
|
| showConstr :: Constr -> String |
| Gets the string for a constructor
|
|
| readConstr :: DataType -> String -> Maybe Constr |
| Lookup a constructor via a string
|
|
| isAlgType :: DataType -> Bool |
| Test for an algebraic type
|
|
| indexConstr :: DataType -> ConIndex -> Constr |
| Gets the constructor for an index
|
|
| constrIndex :: Constr -> ConIndex |
| Gets the index of a constructor
|
|
| maxConstrIndex :: DataType -> ConIndex |
| Gets the maximum constructor index
|
|
| mkIntType :: String -> DataType |
| Constructs the Int type
|
|
| mkFloatType :: String -> DataType |
| Constructs the Float type
|
|
| mkStringType :: String -> DataType |
| Constructs the String type
|
|
| mkPrimType :: DataRep -> String -> DataType |
| Helper for mkIntType, mkFloatType, mkStringType
|
|
| mkPrimCon :: DataType -> String -> ConstrRep -> Constr |
|
| mkIntConstr :: DataType -> Integer -> Constr |
|
| mkFloatConstr :: DataType -> Double -> Constr |
|
| mkStringConstr :: DataType -> String -> Constr |
|
| mkNorepType :: String -> DataType |
| Constructs a non-representation
|
|
| isNorepType :: DataType -> Bool |
| Test for a non-representable type
|
|
| Produced by Haddock version 0.8 |