module PlacePos where data PlacePos a = PlaceTop | PlaceBottom | PlaceBefore ! a | PlaceAfter ! a deriving (Show,Eq) instance Functor PlacePos where fmap f PlaceTop = PlaceTop fmap f PlaceBottom = PlaceBottom fmap f (PlaceBefore x) = PlaceBefore (f x) fmap f (PlaceAfter x) = PlaceAfter (f x)