CurryInfo: boxes-3.0.0 / Boxes.takePA

definition:
takePA :: Alignment -> a -> Int -> [a] -> [a]
takePA c b x = glue . (takeP b (numRev c x) *** takeP b (numFwd c x)) . split
 where
  split t = fReverse . splitAt (numRev c (length t)) $ t
  glue = uncurry (++) . fReverse
  numFwd AlignFirst n = n
  numFwd AlignLast  _ = 0
  numFwd AlignCenter1 n = n `div` 2
  numFwd AlignCenter2 n = (n + 1) `div` 2
  numRev AlignFirst _ = 0
  numRev AlignLast  n = n
  numRev AlignCenter1 n = (n + 1) `div` 2
  numRev AlignCenter2 n = n `div` 2
demand:
no demanded arguments
deterministic:
deterministic operation
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,_) |-> {.._#lambda508}}
name:
takePA
precedence:
no precedence defined
result-values:
{.._#lambda508}
signature:
Alignment -> a -> Prelude.Int -> [a] -> [a]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term