CLASE-2008.7.21: Cursor Library for A Structured EditorContentsIndex
Data.Cursor.CLASE.Language
Documentation
data Up
data Down
type family Invert d :: *
data DirectionT a where
Constructors
UpT :: DirectionT Up
DownT :: DirectionT Down
class Reify l a where
Methods
reify :: a -> TypeRep l a
data ExistsR l r where
Constructors
ExistsR :: Reify l a => r a -> ExistsR l r
class Language l where
Associated Types
data Context l :: * -> * -> *
data Movement l :: * -> * -> * -> *
data TypeRep l :: * -> *
Methods
buildOne :: Context l a b -> a -> b
unbuildOne :: Movement l Down a b -> a -> Maybe (Context l b a, b)
invertMovement :: Movement l d a b -> Movement l (Invert d) b a
movementEq :: Movement l d a b -> Movement l d a c -> Maybe (TyEq b c)
reifyDirection :: Movement l d a b -> DirectionT d
contextToMovement :: Context l a b -> Movement l Up a b
downMoves :: TypeRep l a -> [ExistsR l (Movement l Down a)]
moveLeft :: Movement l Down a x -> Maybe (ExistsR l (Movement l Down a))
moveRight :: Movement l Down a x -> Maybe (ExistsR l (Movement l Down a))
contextMovementEq :: Language l => Context l a b -> Movement l Up a c -> Maybe (TyEq b c)
data Path l r a b where
Constructors
Stop :: Path l r a a
Step :: Reify l b => r a b -> Path l r b c -> Path l r a c
foldPath :: (forall from to. Reify l to => r from to -> from -> to) -> start -> Path l r start finish -> finish
data Cursor l x a
Constructors
Reify l a => Cursor
it :: a
ctx :: Path l (Context l) a l
log :: Route l a x
data CursorWithMovement l d x from where
Constructors
CWM :: Reify l to => Cursor l x to -> Movement l d from to -> CursorWithMovement l d x from
rebuild :: Language l => Cursor l x a -> l
applyMovement :: (Language l, Reify l a, Reify l b) => Movement l d a b -> Cursor l x a -> Maybe (Cursor l x b)
genericMoveUp :: Language l => Cursor l x a -> Maybe (CursorWithMovement l Up x a)
genericMoveDown :: Language l => Cursor l x a -> Maybe (CursorWithMovement l Down x a)
genericMoveLeft :: Language l => Cursor l x a -> Maybe (ExistsR l (Cursor l x))
genericMoveRight :: Language l => Cursor l x a -> Maybe (ExistsR l (Cursor l x))
genericMoveSideways :: forall l x a. Language l => (forall a z. Movement l Down a z -> Maybe (ExistsR l (Movement l Down a))) -> Cursor l x a -> Maybe (ExistsR l (Cursor l x))
moveToRoot :: Language l => Cursor l x a -> Cursor l x l
data Route l from to where
Constructors
Route :: Reify l mid => Path l (Movement l Up) from mid -> Path l (Movement l Down) mid to -> Route l from to
route_invariant :: forall l from to. Language l => Route l from to -> Bool
updateRoute :: (Language l, Reify l a, Reify l b) => Movement l d a b -> Route l a c -> Route l b c
resetLog :: Cursor l x a -> Cursor l a a
appendRoute :: (Language l, Reify l a, Reify l b, Reify l c) => Route l a b -> Route l b c -> Route l a c
followRoute :: Language l => Cursor l x a -> Route l a c -> Maybe (Cursor l x c)
Produced by Haddock version 2.2.2