-- * Class 'Gram_Source'
class
( Gram_Reader (Source_Input src) g
- , Inj_Source (Span (Source_Input src)) src
+ , SourceInj (Span (Source_Input src)) src
) => Gram_Source src g where
source :: Functor g => g (src -> a) -> g a
source g =
askAfter $ askBefore $
(\f (beg::Source_Input src) (end::Source_Input src) ->
- f (inj_Source $ Span beg end::src))
+ f (sourceInj $ Span beg end::src))
<$> g
instance
( Gram_Reader (Source_Input src) g
- , Inj_Source (Span (Source_Input src)) src
+ , SourceInj (Span (Source_Input src)) src
) => Gram_Source src g