class GuestEqChar g where
<[ (==) ]> :: <[ Char -> Char -> Bool ]>@g
-{-
+
staged_accept ::
Regex
-> forall c s.
<[ \s -> if gs_empty s
then false
else (gs_head s) == ~~(guestCharLiteral c) && ~~k (gs_tail s) ]>
--}
+
-- this type won't work unless the case for (Star e) is commented out;
-- see loop above
id = Code <[ \x -> x ]>
f . g = Code <[ \x -> ~~(unCode f) (~~(unCode g) x) ]>
-instance GArrow Code (,) where
+instance GArrow Code (,) () where
ga_first f = Code <[ \(x,y) -> ((~~(unCode f) x),y) ]>
ga_second f = Code <[ \(x,y) -> (x ,(~~(unCode f) y)) ]>
ga_cancell = Code <[ \(_,x) -> x ]>