==================
module
==================

module Strict where

open import Level
open import Agda.Builtin.Equality

open import Agda.Builtin.Strict
     renaming ( primForce to force
              ; primForceLemma to force-≡) public

-- Derived combinators
module _ {ℓ ℓ′ : Level} {A : Set ℓ} {B : Set ℓ′} where

  force′ : A → (A → B) → B
  force′ = force

  force′-≡ : (a : A) (f : A → B) → force′ a f ≡ f a
  force′-≡ = force-≡

  seq : A → B → B
  seq a b = force a (λ _ → b)

  seq-≡ : (a : A) (b : B) → seq a b ≡ b
  seq-≡ a b = force-≡ a (λ _ → b)

---

(source_file
    (module (module_name (qid)))
    (open (import (module_name (qid))))
    (open (import (module_name (qid))))
    (open (import (module_name (qid)))
        (import_directive
            (renaming (id) (id))
            (renaming (id) (id)))
        (import_directive))
    (comment)
    (module
        (module_name)
        (typed_binding (atom (qid)) (atom (qid)) (expr (atom (qid))))
        (typed_binding (atom (qid))                         (expr (atom (SetN (atom (qid))))))
        (typed_binding (atom (qid))                         (expr (atom (SetN (atom (qid))))))
        (function
            (lhs (function_name (atom (qid))))
            (rhs (expr
                    (atom (qid))
                    (expr
                        (atom (expr
                            (atom (qid))
                            (expr (atom (qid)))))
                        (expr (atom (qid)))))))
        (function
            (lhs (atom (qid)))
            (rhs (expr (atom (qid)))))
        (function
            (lhs (function_name (atom (qid))))
            (rhs (expr
                (typed_binding
                    (atom (qid))
                    (expr (atom (qid))))
                (typed_binding
                    (atom (qid))
                    (expr
                        (atom (qid))
                        (expr (atom (qid)))))
                (expr
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))))))
        (function
            (lhs (atom (qid)))
            (rhs (expr (atom (qid)))))
        (function
            (lhs (function_name (atom (qid))))
            (rhs (expr
                (atom (qid)) (expr
                    (atom (qid))
                    (expr (atom (qid)))))))
        (function
            (lhs (atom (qid)) (atom (qid)) (atom (qid)))
            (rhs (expr
                (atom (qid))
                (atom (qid))
                (atom (expr (lambda
                    (untyped_binding (bid))
                    (expr (atom (qid)))))))))
        (function
            (lhs (function_name (atom (qid))))
            (rhs (expr
                (typed_binding
                    (atom (qid))
                    (expr (atom (qid))))
                (typed_binding
                    (atom (qid))
                    (expr
                        (atom (qid))))
                (expr
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))
                    (atom (qid))))))
        (function
            (lhs (atom (qid)) (atom (qid)) (atom (qid)))
            (rhs (expr
            (atom (qid))
            (atom (qid))
            (atom (expr (lambda
            (untyped_binding (bid))
            (expr (atom (qid)))))))))))
