$newline never
$maybe descr <- sheetDescription sheet
  <section>
    <h2 #description>_{MsgSheetDescription}
    <p>
      #{descr}

<section>
  <dl .deflist>
    <dt .deflist__dt>_{MsgAccessibleSince}
    <dd .deflist__dd>
      $maybe invisible <- visibleFrom
        ^{invisible}
      $nothing
        #{isVisible False}
        _{MsgSheetInvisible}
    <dt .deflist__dt>
      $if hasSubmission
        _{MsgSheetActiveFromParticipant}
      $else
        _{MsgSheetActiveFromParticipantNoSubmit}
    $maybe ts <- sheetFrom
      <dd .deflist__dd>#{ts}
    $nothing
      <dd .deflist__dd>_{MsgSheetActiveFromUnset}
    $if hasSubmission
      <dt .deflist__dt>_{MsgSheetActiveToParticipant}
      $maybe ts <- sheetTo
        <dd .deflist__dd>#{ts}
      $nothing
        <dd .deflist__dd>_{MsgSheetActiveToUnset}
    $maybe hints <- hintsFrom <* guard hasHints
      <dt .deflist__dt>_{MsgSheetHintFrom}
      <dd .deflist__dd>#{hints}
    $maybe solution <- solutionFrom <* guard hasSolution
      <dt .deflist__dt>_{MsgSheetSolutionFrom}
      <dd .deflist__dd>#{solution}
    <dt .deflist__dt>_{MsgSheetSubmissionMode}
    <dd .deflist__dd>_{classifySubmissionMode (sheetSubmissionMode sheet)}
      $case sheetSubmissionMode sheet
        $of SubmissionMode True _
          ^{messageTooltip submissionTip}
        $of _
    $case sheetSubmissionMode sheet
      $of SubmissionMode True _
        <dt .deflist__dt>_{MsgSheetPseudonym}
        <dd .deflist__dd #pseudonym>
          $maybe pseudonym <- mPseudonym
            <span .pseudonym>#{pseudonym}
          $nothing
            ^{generateForm}
      $of _
    <dt .deflist__dt>_{MsgSheetType}
    <dd .deflist__dd>_{sheetType sheet}

$maybe marktxt <- markingText
  <section>
    <h2>_{MsgSheetMarking}
    <p>
      #{marktxt}

$if hasFiles
  <section>
    <h2>^{simpleLinkI (SomeMessage MsgSheetFiles) zipLink}
    ^{fileTable}
