{-# OPTIONS --without-K --safe #-}

module Data.Subset where

open import Level using (Level; _⊔_)

record Subset {a b} (A : Set a) (B : Set b) : Set (a  b) where
  field into : A  B
open Subset public

open import Data.List.Base using (List; []; _∷_)
open import Data.Char.Base using (Char)
open import Data.String.Base using (String; fromList)

instance

  Subset-list :  {a} {A : Set a}  Subset A (List A)
  Subset-list .into a = a  []

  Subset-chars : Subset Char String
  Subset-chars .into c = fromList (c  [])

  Subset-refl :  {a} {A : Set a}  Subset A A
  Subset-refl .into x = x