| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Deontic.Civil
Contents
Description
Korean Civil Act (민법) — Type-Level Stratified Deontic Encoding
Coverage Summary
총칙 (General Provisions)
Module Articles Act Type Layers Pattern
────────────────── ───────── ──────────────────── ────────────────────────────────── ─────────────────────────
Persons §5 MinorAct '[Proviso, Base] 단서 override
Acts §103-110 JuristicAct '[SpecialRule, Proviso, Base] 3-layer stack
§108 ShamAct '[Proviso, Base] 제3자 보호 (proviso)
§109 MistakeAct '[Proviso, Base] 중과실 방어 (proviso)
§110 FraudAct '[Proviso, Base] 제3자 사기 (proviso)
Agency §114,§118 AuthAgencyAct '[Proviso, Base] 자기계약 금지
§125-132 UnauthAgencyAct '[ApparentAuth, Ratification, Base] 표현대리·추인
Rescission §146 RescissionAct '[Base] 제척기간 (3년/10년, §157 역산)
AgencyRemedies §134-135 AgencyWithdrawalAct '[CounterpartyKnowledge, Base] 상대방 악의 면책
AgentLiabilityAct '[Proviso, Base] 대리인 면책
Invalidity §137-139 PartialInvalidityAct '[Conversion, HypotheticalIntent, Base] 일부무효·전환·추인
Cancellation §141-145 CancellableAct '[ConstructiveRatification, GeneralRatification, Base] wrapper pattern
ConditionalAct §147-152 ConditionalAct '[BadFaithCondition, IllegalCondition, Base] 정지/해제조건·시기/종기
물권법 (Property Law)
Module Articles Act Type Layers Pattern ────────────────── ───────── ──────────────────── ────────────────────────────────── ───────────────────────── Possession §197,§200 PossessionAct '[Rebuttal, Presumption] 반증에 의한 추정 번복 PropertyTransfer §186-188 PropertyTransferAct '[FormException, Base] 등기/인도 + §187 예외 CoOwnership §264 CoOwnershipAct '[Base] 전원 동의 (∀ quantification) AcqPrescription §245 AcqPrescriptionAct '[ShortPrescription, Base] 20년/10년 (§157 역산)
채권 총론 (General Obligations)
Module Articles Act Type Layers Pattern ────────────────── ───────── ──────────────────── ────────────────────────────────── ───────────────────────── Prescription §162-174 PrescriptionAct '[Interruption, Expiration] 시효만료 + 중단 (§157 역산) DefaultObligation §387-390 DefaultAct '[CreditorDefense, Base] 이행지체·불능 + 채권자과실
채권 각론 (Specific Obligations)
Module Articles Act Type Layers Pattern ────────────────── ───────── ──────────────────── ────────────────────────────────── ───────────────────────── SaleWarranty §580-582 WarrantyAct '[BuyerKnowledge, Base] 하자담보 + 매수인 악의 면책 Lease §618-640 LeaseAct '[RenewalRight, Base] 묵시적 갱신 + 2기 연체 해지
불법행위 (Torts)
Module Articles Act Type Layers Pattern ────────────────── ───────── ──────────────────── ────────────────────────────────── ───────────────────────── Tort §750,§396 TortAct '[ContributoryNeg, Base] 4요건 + 과실상계
Defeasibility Patterns Used
- 단서 override — Proviso layer overrides Base when exception applies (§5①)
- 3-layer stack — SpecialRule > Proviso > Base for graduated defeasibility (§103-107)
- Rebuttable presumption — Presumption (default Valid) + Rebuttal override; absence = delegation (§197)
- Lex specialis — FormException overrides general formality rule (§187 vs §186)
- Temporal reasoning —
Daydates withaddGregorianYearsClipper §157 역산 (§146, §162, §245) - Universal quantification —
allover owners list in instance body (§264) - Verdict-conditional override — override fires only when
verdict prev == Void(§390, §396, §580②) - Multi-condition override — conjunction of several facts required (§639 묵시적 갱신)
- Wrapper pattern — CancellableAct takes prior Verdict as input, applies meta-rules (§141-§145)
- Deemed fulfillment — bad faith re-evaluates condition state via recursive query (§150)
Fact Type Strategy
Set CivilFact— for boolean/flag-based facts (§5, §103-110, §114-132, §186-188, §197-200)- Domain records — stored in
DMap DomainKey Identity(fromdependent-map), keyed byDomainKeyGADT:PrescriptionFacts,RescissionFacts,AcqPrescFacts,DefaultFacts,WarrantyFacts,LeaseFacts,CoOwnershipFacts,TortFacts,PartialInvalidityFacts,CancellationFacts,ConditionalFacts
Test Coverage
203 tests across unit tests (per-module), case studies (multi-issue disputes), and real-case tests (based on 대법원 판례).
Synopsis
- module Deontic.Civil.Types
- module Deontic.Civil.Render
- module Deontic.Civil.Evaluate