Copyright | (c) Marcus Völker 2017-2018 |
---|---|
License | MIT |
Maintainer | marcus.voelker@rwth-aachen.de |
Safe Haskell | Safe |
Language | Haskell2010 |
This module contains the TokenStream
class, an abstraction of lists, similar to Traversable
, but geared for use with LParse
Synopsis
- class (Functor t, Foldable t) => TokenStream t where
- drop :: TokenStream s => Int -> s a -> s a
- zip :: TokenStream s => s a -> s b -> s (a, b)
- zipWith :: TokenStream s => (a -> b -> c) -> s a -> s b -> s c
- filter :: TokenStream s => (a -> Bool) -> s a -> s a
Documentation
class (Functor t, Foldable t) => TokenStream t where Source #
TokenStream
abstracts a list, i.e., something that has a next element to process and a rest afterwards
nil
gives the empty TokenStream
. Similar to `[]`
cons :: a -> t a -> t a Source #
cons
prepends an element to the TokenStream
. Similar to `(:)`
Instances
TokenStream [] Source # | |
TokenStream Maybe Source # | |
TokenStream (Either a) Source # | |
drop :: TokenStream s => Int -> s a -> s a Source #
TokenStream
version of drop
zip :: TokenStream s => s a -> s b -> s (a, b) Source #
TokenStream
version of zip
zipWith :: TokenStream s => (a -> b -> c) -> s a -> s b -> s c Source #
TokenStream
version of zipWith
filter :: TokenStream s => (a -> Bool) -> s a -> s a Source #
TokenStream
version of filter