data-kiln-0.1.0.0: Sculpt mutable recursive data with reference equality; bake it using a data kiln into an immutable lazy structure

Safe HaskellNone
LanguageHaskell2010

Data.Kiln.Examples

Synopsis

Documentation

composedly :: (f (g a) -> f' (g' a')) -> Compose f g a -> Compose f' g' a' Source

Apply a function to the value inside a Compose.

type MSLL s a = Clay s (Compose ((,) a) Maybe) Source

type SLL a = Fix (Compose ((,) a) Maybe) Source

cons :: a -> Maybe (MSLL s a) -> Squishy s (MSLL s a) Source

setCar :: MSLL s a -> a -> Squishy s () Source

setCdr :: MSLL s a -> Maybe (MSLL s a) -> Squishy s () Source

sllToList :: SLL a -> [a] Source

type MNode s n e = Clay s (Compose (Compose ((,) n) []) ((,) e)) Source

type Node n e = Fix (Compose (Compose ((,) n) []) ((,) e)) Source

node :: n -> [(e, MNode s n e)] -> Squishy s (MNode s n e) Source

emptyNode :: n -> Squishy s (MNode s n e) Source

readNode :: MNode s n e -> Squishy s (n, [(e, MNode s n e)]) Source

relabelNode :: n -> MNode s n e -> Squishy s () Source

editEdges :: ([(e, MNode s n e)] -> [(e, MNode s n e)]) -> MNode s n e -> Squishy s () Source

addEdge :: e -> MNode s n e -> MNode s n e -> Squishy s () Source