Copyright | (C) 2011-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Documentation
Instances
Foldable Future Source # | |
Defined in Data.Stream.Future fold :: Monoid m => Future m -> m # foldMap :: Monoid m => (a -> m) -> Future a -> m # foldMap' :: Monoid m => (a -> m) -> Future a -> m # foldr :: (a -> b -> b) -> b -> Future a -> b # foldr' :: (a -> b -> b) -> b -> Future a -> b # foldl :: (b -> a -> b) -> b -> Future a -> b # foldl' :: (b -> a -> b) -> b -> Future a -> b # foldr1 :: (a -> a -> a) -> Future a -> a # foldl1 :: (a -> a -> a) -> Future a -> a # elem :: Eq a => a -> Future a -> Bool # maximum :: Ord a => Future a -> a # minimum :: Ord a => Future a -> a # | |
Traversable Future Source # | |
Applicative Future Source # | |
Functor Future Source # | |
Comonad Future Source # | |
ComonadApply Future Source # | |
Foldable1 Future Source # | |
Defined in Data.Stream.Future fold1 :: Semigroup m => Future m -> m # foldMap1 :: Semigroup m => (a -> m) -> Future a -> m # foldMap1' :: Semigroup m => (a -> m) -> Future a -> m # toNonEmpty :: Future a -> NonEmpty a # maximum :: Ord a => Future a -> a # minimum :: Ord a => Future a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Future a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Future a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Future a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Future a -> b # | |
Alt Future Source # | |
Apply Future Source # | |
Extend Future Source # | |
Traversable1 Future Source # | |
Data a => Data (Future a) Source # | |
Defined in Data.Stream.Future gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Future a -> c (Future a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Future a) # toConstr :: Future a -> Constr # dataTypeOf :: Future a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Future a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Future a)) # gmapT :: (forall b. Data b => b -> b) -> Future a -> Future a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Future a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Future a -> r # gmapQ :: (forall d. Data d => d -> u) -> Future a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Future a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Future a -> m (Future a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Future a -> m (Future a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Future a -> m (Future a) # | |
Semigroup (Future a) Source # | |
IsList (Future a) Source # | |
Read a => Read (Future a) Source # | |
Show a => Show (Future a) Source # | |
Eq a => Eq (Future a) Source # | |
Ord a => Ord (Future a) Source # | |
Defined in Data.Stream.Future | |
type Item (Future a) Source # | |
Defined in Data.Stream.Future |
length :: Foldable t => t a -> Int #
Returns the size/length of a finite structure as an Int
. The
default implementation just counts elements starting with the leftmost.
Instances for structures that can compute the element count faster
than via element-by-element counting, should provide a specialised
implementation.
Examples
Basic usage:
>>>
length []
0
>>>
length ['a', 'b', 'c']
3>>>
length [1..]
* Hangs forever *
Since: base-4.8.0.0