uniplate-1.6.12: Help writing simple, concise and fast generic operations.

Safe HaskellNone
LanguageHaskell98

Data.Generics.Str

Contents

Description

This module provides the Str data type, which is used by the underlying uniplate and biplate methods. It should not be used directly under normal circumstances.

Synopsis

The Data Type

data Str a Source

Constructors

Zero 
One a 
Two (Str a) (Str a) 

Instances

strMap :: (a -> b) -> Str a -> Str b Source

strMapM :: Monad m => (a -> m b) -> Str a -> m (Str b) Source

strType :: Str a -> a Source

Take the type of the method, will crash if called

strList :: Str a -> [a] Source

Convert a Str to a list, assumes the value was created with listStr

listStr :: [a] -> Str a Source

Convert a list to a Str

strStructure :: Str a -> ([a], [a] -> Str a) Source

Transform a Str to a list, and back again, in a structure preserving way. The output and input lists must be equal in length.