Motivation

Für Datentyp

data Tree a = Leaf 
     | Branch { left :: Tree a, key :: a, right :: Tree a }
instance Functor Tree where fmap f t = ...
schreibe Funktion
relabel :: Tree a -> [b] ->  ( Tree b, [b] )
mit Spezifikation
let ( u, ys ) = relabel t xs 
in   fmap (const ()) u == fmap (const ()) t
  && inorder u ++ ys == xs



Johannes Waldmann 2011-01-18