-- Programmed by Jedidiah Barber -- Licensed under the Sunset License v1.0 -- See license.txt for further details with Ada.Strings.Unbounded, Ada.Text_IO, Kompsos.Pretty_Print; procedure Membero is package SU renames Ada.Strings.Unbounded; package TIO renames Ada.Text_IO; function "+" (Item : in String) return SU.Unbounded_String renames SU.To_Unbounded_String; package InKomp is new Kompsos (SU.Unbounded_String); use InKomp; package Printer is new InKomp.Pretty_Print (SU.To_String); Verse : World := Empty_World; Test_Item : constant Term := T (T (+"one") & T (+"two") & T (+"three") & T (+"four")); begin TIO.Put_Line ("Test program to check if membero, and hence recursion, is working."); TIO.Put_Line ("Not currently designed to check for infinite recursion."); TIO.New_Line; TIO.Put_Line ("Should find all possible members of (one two three four)"); TIO.New_Line; Verse.Member (Verse.Fresh ("result") & Test_Item); TIO.Put_Line (Printer.Image (Verse)); end Membero;