Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Area
- fromTo :: Loc -> Loc -> Area
- spanArea :: Span -> Area
- (+) :: Area -> Area -> Area
- (-) :: Area -> Area -> Area
- addSpan :: Span -> Area -> Area
- firstSpan :: Area -> Maybe Span
- lastSpan :: Area -> Maybe Span
- start :: Area -> Maybe Loc
- end :: Area -> Maybe Loc
- areaSpan :: Area -> Maybe Span
- spansAsc :: Area -> [Span]
- spanCount :: Area -> Natural
- areaShowsPrec :: Int -> Area -> ShowS
- areaReadPrec :: ReadPrec Area
Documentation
A set of non-overlapping, non-abutting Span
s. You may also think of an Area
like a span that can be empty or have “gaps”.
Construct and combine areas using mempty
, spanArea
, fromTo
, +
, and -
.
Instances
Eq Area Source # | |
Data Area Source # | |
Defined in Data.Loc.Area gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Area -> c Area # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Area # dataTypeOf :: Area -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Area) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Area) # gmapT :: (forall b. Data b => b -> b) -> Area -> Area # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Area -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Area -> r # gmapQ :: (forall d. Data d => d -> u) -> Area -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Area -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Area -> m Area # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Area -> m Area # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Area -> m Area # | |
Ord Area Source # | |
Read Area Source # | |
Show Area Source # | |
Semigroup Area Source # | |
Monoid Area Source # | |
Constructing
Combining
(+) :: Area -> Area -> Area Source #
The union of two Area
s. Spans that overlap or abut will be merged in the
result.
>>>
read "[1:1-1:2]" + mempty
[1:1-1:2]
>>>
read "[1:1-1:2]" + read "[1:2-1:3]"
[1:1-1:3]
>>>
read "[1:1-1:2]" + read "[1:1-3:1]"
[1:1-3:1]
>>>
read "[1:1-1:2]" + read "[1:1-11:1]"
[1:1-11:1]
>>>
read "[1:1-3:1,6:1-6:2]" + read "[1:1-6:1]"
[1:1-6:2]
>>>
read "[1:1-3:1]" + read "[5:1-6:2]"
[1:1-3:1,5:1-6:2]
Querying
spanCount :: Area -> Natural Source #
>>>
spanCount mempty
0
>>>
spanCount (read "[3:4-7:2]")
1
>>>
spanCount (read "[3:4-7:2,15:6-17:9]")
2
Show and Read
areaReadPrec :: ReadPrec Area Source #
>>>
readPrec_to_S areaReadPrec minPrec "[]"
[([],"")]
>>>
readPrec_to_S areaReadPrec minPrec "[3:2-5:5,8:3-11:4]"
[([3:2-5:5,8:3-11:4],"")]
>>>
readPrec_to_S areaReadPrec minPrec "[3:2-5:5,11:4-8:3]"
[([3:2-5:5,8:3-11:4],"")]
>>>
readPrec_to_S areaReadPrec minPrec "[3:2-5:5,8:3-8:3]"
[]