Quick actions

cmd+k|ctrl+k

Navigation

Languages

Bounded length string

Snippet info

Language

Idris

Visibility

public

Author

mjg.py3

Created

2017-05-26T01:48:26Z

Updated

2017-05-26T01:48:26Z

module Main

import Data.Fin
import Data.Vect

data BoundedString : (maxLen: Nat) -> Type where
  MaxLenString : (s: String) -> { auto prf : length s < maxLen = True } -> BoundedString maxLen

Str4 : Type
Str4 = BoundedString 4

a : Str4
a = MaxLenString ""

b : Str4
b = MaxLenString "a"

c : Str4
c = MaxLenString "abc"

-- Won't compile
-- c : Str4
-- c = MaxLenString "abcd"
   
main : IO ()
main = putStrLn "Hello World!"
INFO